Ich hatte mal ein paar Geräte in Java programmiert. Das Problem dabei ist, dass Java sehr Hardware fern ist und daher kaum Klassen zum steuern von Hardware oder ähnlichem hat. Ich habe bisher keine Klasse zum steuern von WLAN Hardware gesehen. Die Geräte für dich ich die Java Programme programmiert hatte hatte ich letzendlich über JNI (Java Native Interface) angesteuert, dass war dafür das einfachste. Ich hätte zwar auch eine der Java USB APIs verwenden gekonnt, das wäre aber um einiges komplizierter als mit JNI weil ich mit JNI eine fertige C Bibliothek in Java einbinden konnte. Das ganze war dadurch aber nicht mehr Plattform unabhängig. Du musst dich also erstmal schlau machen, wie du die WLAN Karte mit Java ansteuern kannst, vielleicht gibt es ja doch APIs dazu, ich vermute aber, dass nicht. Wenn nicht dann musst du entscheiden, ob du du komplett auf eine andere Hardware nahe Programmiersprache umsteigst oder ob du die Funktion für die WLAN Karte mit C oder C++ umsetzt und dann über JNI in Java aufrufst. Mit C sollte es möglich sein die WLAN Karte richtig anzusteuern, dazu gibt es sicherlich irgendeine Win API.

Eine andere Idee wäre es, wenn du das ganze Programm für ein Android Handy schreiben würdest. Das Android Handy wäre direkt Portabel, du könntest also rumlaufen um genug Messpunkte zu nehmen. Es hätte gleichzeitig auch noch den Vorteil, dass das Handy vermutlich ohnehin einen GPS Empfänger integriert hat, du hast also auch eine einfache Möglichkeit um die Position auszulesen. Android Programme werden ohnehin meistens in Java geschrieben und dank der riesigen Android API sollte es auch möglich sein, die WLAN Signal Stärke und die GPS Koordinaten ohne verwendung von Fremdbibliotheken auszulesen.

Du sagtest, dass du das Mathematische größtenteils bereits hast, das würde mich mal wirklich interessieren.
Wie viele Meßpunkte nimmst du? Wenn man annimmt, dass der Wlan Router in der gleichen Höhe wie man selbst steht dann würden theoretisch 2 Meßpunkte genügen, das würde aber sobald der Wlan Router in der Höhe verschoben ist zu einer falschen Ortung führen. Für einen 3 Dimensionalen Raum würde man also min. 3 Punkte brauchen. Aber auch bei 3 Punkten kann es wenn ich mir das richtig überlegt habe zwei Lösungen geben, wie reagierst du darauf wenn du zwei Punkte rausbekommst? Oder nimmst du 4 Punkte und kriegst damit ein eindeutiges Ergebnis raus?
Eine weitere Frage die ich mir stelle ist, wie gehst du mit Wänden und anderen Störungen aus? Eine Wand dämpft das Signal, dadurch könnte eine Wand eine falsches Ergebnis verursachen. Das gilt zumindest wenn du die Signalstärke zum berechnen verwendest. Aber was anderes fällt mir zu WLAN nicht ein weil so wie GPS mit der Signallaufzeit rechnen geht ja schwer weil man die nicht rausbekommt. Zumindest ist mir nicht bekannt, dass es bei WLAN eine Funktion gibt um die exakte Signallaufzeit herauszubekommen zumal es sich dabei vermutlich ohnehin um Zeiten im Nanosekunden Bereich handelt.
Das mit dere Signalstärke führt mich zur nächsten Frage: falls du sie zur Positionsbestimmung benutzt ist die überhaupt genau genug? Diese Werte kommen mir manchmal nämlich etwas komisch vor. Dann muss man auch wissen, wie die Signalstärke berechnet wird. Und dann zuletzt wie sieht das mit der Entfernungsberechnung aus, die Signalstärke ist ja eigentlich nur eine relative Größe, dass bedeutet, dass man keine genaue Entfernung hat sondern nur weiß, der Router ist von dem Punkt x entfernt und wenn die Signalstärke woanders 1/4 beträgt dass er das doppelt soweit entfernt ist (Die Leistung des Signals nimmt mit der Entfernung zum Quadrat ab). Also muss man irgendwie auch das x ausrechnen.