Frage

Gibt es einfache Möglichkeiten, das Standardverhalten der Geolocation api und nur schwer Code zu überschreiben Ihr aktueller Standort?

Ich denke, das für die Prüfung sinnvoll wäre und aus Datenschutzgründen (vorausgesetzt, gefälschte Standortdaten)

Ich dachte, es war ein für dieses Add-on, aber ich kann nicht scheinen, einen zu finden. Nur jetzt Option scheint die über sich zu ändern. Config geo.wifi.url zu einem gewissen alternativen Webservice, die ich zu kompliziert betrachten

Irgendwelche Ideen?

Danke

Ideal-Szenario

Jemand setzt eine Add-on, wo eine Google-Karte angezeigt und ich kann einen neuen Standard-Speicherort auswählen.

War es hilfreich?

Lösung

Die geo.wifi.uri braucht nicht ein Webservice zu sein. Sie können sie auch zu einem lokalen uri mit Datei festgelegt: // ...

Die Datei eine JSON-Datei mit Inhalt so sein sollte:

{"location": {
              "latitude": 48.777025000000002, 
              "longitude": 9.1713909999999998, 
              "accuracy": 10.0}}

Update: Für Firefox 9+ hat sich das Format geändert:

{
    "status": "OK",
    "accuracy": 10.0,
    "location": {"lat": 48.777, "lng": 9.171}
}

Sie können sie kombinieren beide unterstützen:

{
    "status": "OK",
    "accuracy": 10.0,
    "location": {
        "lat": 48.777,
        "lng": 9.171,
        "latitude": 48.777,
        "longitude": 9.171,
        "accuracy": 10.0
    }
}

Update: sieht es aus wie manuell diese Einstellung Einstellung vom Provider gesperrt wird, um den Google-Dienst übernimmt. Siehe Bug 716453 Update 2: geo.wifi.uri nicht geo.wifi.url

Andere Tipps

Der einfachste Weg ist zu navigieren in der Filterbox auf about:config und dann geo.wifi.uri eingeben, doppelklicken Sie auf die einzige Config Zeile, die nach oben zeigt, und geben Sie den Wert unten, nachdem Sie ersetzen xxx und yyy mit den Koordinaten Sie bekommen ein Dienst wie http://www.getlatlon.com/ :

data:application/json,{"location":{"latitude":xxx,"longitude":yyy,"accuracy":10}}

Dieser Trick erfordert keine Add-ons oder lokal / gehosteten Dateien. Stellen Sie sicher, dass der Wert ohne Leerzeichen und ist auf einer einzigen Zeile!

Geolocater ist eine experimentelle Add-on, können Sie bearbeiten: Geolocation.

In Chrome können Sie die Handbuch Geolokalisierung Chrome-Erweiterung verwenden. Es lasse Sie grafisch Handbuch Standort wählen.

Hmmm, kann man nicht Mock navigator.geolocation direkt - vielleicht können Sie Ihren Code Refactoring, die es verwendet ein anderes Objekt zu verwenden - sagen customGeoLocation

.

In der Produktion können Sie gerade eingestellt customGeoLocation navigator.geolocation und in Tests verwenden eine Mock-Implementierung, was auch immer Funktionen, die Sie verwenden.

EDIT: Stellt sich heraus, Sie Funktionen auf navigator.geolocation Objekt ersetzen kann, aber das ist immer noch nutzlos, wenn Sie ein Mock-Bibliothek verwenden (wie JsMock), die ein Mock-Objekt erstellen muss. Also würden Sie nicht in der Lage sein navigator.geolocation mit einem Mock zu ersetzen.

Sie können tun, die sich auf diese Weise spöttisch:

var getCurrentPositionCalled = false;
navigator.geolocation.getCurrentPosition = function() { 
  getCurrentPositionCalled = true; 
};

//Your app code here
//...
assert(getCurrentPositionCalled);

Ich habe Google Latitude zu Firefox Geolocation verdrahtet. Auf diese Weise können Sie manuell Ihren Standort in Google Latitude aktualisieren mit einem einzigen Mausklick, statt Ihre Breite des Nachschlagens und Länge selbst und in eine lokale Datei eingeben. Mein Artikel über das Thema ist Machen Sie Firefox Nehmen Geolokalisierung von Google Latitude .

erforderlich Die Lösung, die eine geringe Menge an serverseitige Codierung (I liefere Quellcode in dem Artikel), aber ich bin für die Zeit, diesen Code als kostenloser Live-Dienst wird ausgeführt, die Sie verwenden können.

Cheers, MetaEd

Ich habe eine einfache Web-Anwendung erstellt, die als Geolocation Endpunkt dienen Sie den Browser des geo.wifi.uri verweisen. Es ist kompatibel mit der Google-API-Spezifikation. Um es zu nutzen, geben Sie einfach die folgenden, ersetzt [Breite] und [Länge] mit den Soll-Werten:

http://geolocation-mocker.phitherek.me/geolocate/[latitude]/[longitude]

und es sollte funktionieren. Um zu überprüfen, ob der Dienst ist, so navigieren zu

http://geolocation-mocker.phitherek.me

und überprüfen, ob die HTML-Seite richtig angezeigt werden. Sie können den Quellcode für diese einfache Anwendung bei

finden

https://github.com/Phitherek/geolocation-mocker

Ich hoffe, dass dieses Tool wird sich als nützlich erweisen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top