2016-07-24 2 views
0

Wenn der Benutzer einen Desktop-PC verwendet, der über Ethernet verbunden ist und mit einem Google-Konto (in Chrome) eingeloggt ist, wird er den Standort des Geräts (für dasselbe Konto) auf maps.google.com sehen, aber wenn ich den Standort über JS (navigator.geolocation) anfordere. getCurrentPosition ...) es wird einen anderen Ort anzeigen (ich vermute, es wird der Standort des Internetproviders sein). Wie kann ich mithilfe von Google Maps einen genauen Standort ermitteln?Ist es möglich, eine genaue Benutzerposition in Chrome zu erhalten, wenn sich der Benutzer über das Google-Konto angemeldet hat?

Antwort

0

Ja, die Google Maps Geolocation API gibt einen Standort und einen Genauigkeitsradius basierend auf Informationen über Mobilfunkmasten und WLAN-Knoten zurück, die der mobile Client erkennen kann. In diesem Dokument wird das Protokoll beschrieben, mit dem diese Daten an den Server gesendet und eine Antwort an den Client zurückgegeben werden.

Die Kommunikation erfolgt über HTTPS mit POST. Sowohl die Anfrage als auch die Antwort werden als JSON formatiert, und der Inhaltstyp von beiden ist application/json.

HTTP-Anforderung:

https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR_API_KEY 

Eine erfolgreiche geolocation Anforderung zurückkehren wird eine JSON-formatierte Antwort einen Ort und Radius definieren.

  • Standort: Die geschätzte Breite und Länge des Benutzers in Grad. Enthält ein lat und ein lng Unterfeld.
  • Genauigkeit: Die Genauigkeit der geschätzten Position in Metern. Dies entspricht dem Radius eines Kreises um den angegebenen Ort herum.

{ "Standort": { "lat": 51,0, "lng": -0,1}, "Genauigkeit": 1200,4}

Wenn Ihre Geolokalisierung Reaktion einen sehr hohen Wert zeigt in Im Feld für die Genauigkeit kann der Dienst basierend auf der IP-Anforderung anstelle von WLAN-Punkten oder Mobilfunkmasten geolocatiert werden. Dies kann passieren, wenn keine Mobilfunkmasten oder Access Points gültig oder erkannt sind.

Verwandte Themen