2012-04-05 8 views
1

Ich versuche, ein rein lokales WLAN ohne Zugriff auf das breitere Internet einzurichten. d. h., alle Websites werden von Hosts über 192.168.x.x-Adressen bedient.Wie erhalten Sie lat lange Informationen mit navigator.geolocation beim Herstellen einer Verbindung zu 192.168.x.x

Ein Host (192.168.1.100) in eine Webseite mit dieser Art von Javascript dienen:

navigator.geolocation.getCurrentPosition (showPosition, errorPosition, {enableHighAccuracy: true});

und ich eine Verbindung zu diesem Host mit einem Android-Handy. (Das Ziel ist, die GPS-Position des Telefons zu extrahieren und sie auf den Host hochzuladen, um dort in Google Earth über eine KML-Datei angezeigt zu werden). Die Browser-App für Android stellt der gleichen Anwendung einen Standort zur Verfügung, wenn auf sie über einen benannten Server wie http://example.com/locationtest.html zugegriffen wird, aber wenn ich vom WAN getrennt werde und eine Verbindung zum lokalen LAN herstelle und die gleiche Seite lade Dann scheint navigator.geolocation.getCurrentPosition nicht zu funktionieren.

Ideen? Bekannte Verbote? Methoden zum Debuggen dieses Problems? (Wir haben nicht einen schönen Javascript-Debugger auf dem Gerät selbst ... ist es eine Möglichkeit, zu fälschen die Art und Weise dieses Gerät auf einem Desktop reagiert?)

Dank im Voraus

Antwort

1

Ich glaube, das Problem liegt mit Geolokalisierung; dass es für mehr als nur GPS verwendet wird. Ich weiß, dass Sie enableHighAccuracy auf true setzen. welches GPS erzwingen sollte, wenn das Gerät es hat, aber abhängig davon, wie der Browser getCurrentPosition implementiert; Es kann die Arbeit verweigern, wenn keine Geolocation-Datenbank zur Verbindung vorhanden ist.

Sie könnten versuchen, maximumAge sehr hoch zu setzen, um zwischengespeicherte Daten zu verwenden oder Timeout zu setzen, um GPS zu erzwingen oder etwas in dieser Richtung; aber Sie erhalten möglicherweise keine konsistenten Ergebnisse in allen Android-Browsern.

Eigentlich; Ich bin ein wenig überrascht, dass Sie dieses Problem haben. Ich bin sicher, dass ich User Cases in der W3C Geolocation API Specification gelesen habe, die Offline-Szenarien beschreiben. Sie sollten versuchen, die von der PositionError-Schnittstelle zurückgegebenen Daten anzuzeigen und zu prüfen, ob Sie weitere Informationen erhalten können.