Wie berechnet man den Abstand zwischen zwei Markierungen in Google Maps V3? (Ähnlich der distanceFrom
Funktion inV2.)
Vielen Dank..
javascript
google-maps-api-3
Waheed
quelle
quelle
Antworten:
Wenn Sie es selbst berechnen möchten, können Sie die Haversine-Formel verwenden:
quelle
p1.lat()
und setzenp1.lng()
voraus, dass Ihre Eingabedatengoogle.maps.LatLng
Objekte sind. Wenn Sie nur Rohdaten wie diese haben{lat: __, lon: __}
, würden Sie stattdessenp1.lat
zum Beispiel verwenden.Es scheint tatsächlich eine Methode in GMap3 zu geben. Es ist eine statische Methode des
google.maps.geometry.spherical
Namespace.Es werden zwei
LatLng
Objekte als Argumente verwendet und ein Standard-Erdradius von 6378137 Metern verwendet, obwohl der Standardradius bei Bedarf mit einem benutzerdefinierten Wert überschrieben werden kann.Stellen Sie sicher, dass Sie Folgendes angeben:
in deinem Kopfteil.
Der Anruf wird sein:
quelle
Beispiel mit GPS Breite / Länge von 2 Punkten.
quelle
Fügen Sie dies einfach am Anfang Ihres JavaScript-Codes hinzu:
und dann verwenden Sie die Funktion wie folgt:
quelle
quelle
script
Tag einfügen und diese Methoden aufrufen können. Wie reaktionsgeboren.Hier ist die c # -Implementierung dieses Forums
quelle
Mit Google können Sie es tun , um die Verwendung von sphärischen api ,
google.maps.geometry.spherical.computeDistanceBetween (latLngA, latLngB);
.Wenn die Genauigkeit einer sphärischen Projektion oder einer Haversine-Lösung für Sie jedoch nicht genau genug ist (z. B. wenn Sie sich in der Nähe des Pols befinden oder größere Entfernungen berechnen), sollten Sie eine andere Bibliothek verwenden.
Die meisten Informationen zu diesem Thema habe ich hier auf Wikipedia gefunden .
Ein Trick, um festzustellen, ob die Genauigkeit eines bestimmten Algorithmus angemessen ist, besteht darin, den maximalen und minimalen Radius der Erde auszufüllen und festzustellen, ob der Unterschied Probleme für Ihren Anwendungsfall verursachen kann. Viele weitere Details finden Sie in diesem Artikel
Am Ende wird die Google API oder Haversine den meisten Zwecken ohne Probleme dienen.
quelle
Mit PHP können Sie die Entfernung mit dieser einfachen Funktion berechnen:
quelle
K
, Sie die Entfernung in km erhalten. Prüfen Sie.OFFLINE-LÖSUNG - Haversine-Algorithmus
Referenz: https://en.wikipedia.org/wiki/Great-circle_distance
quelle
Musste es tun ... Das Action-Skript so
quelle
In meinem Fall war es am besten, dies in SQL Server zu berechnen, da ich den aktuellen Standort übernehmen und dann nach allen Postleitzahlen in einer bestimmten Entfernung vom aktuellen Standort suchen wollte. Ich hatte auch eine Datenbank, die eine Liste der Postleitzahlen und ihrer Lat-Longs enthielt. Prost
quelle
quelle
Mit dem Google Distance Matrix-Dienst ist das ganz einfach
Der erste Schritt besteht darin, den Distance Matrix-Dienst über die Google API-Konsole zu aktivieren. Es gibt Entfernungen zwischen einer Reihe von Orten zurück. Und wenden Sie diese einfache Funktion an
Wobei origin1 Ihr Standort und destinationA der Zielstandort ist. Sie können über zwei oder mehr Daten hinzufügen.
Rad Vollständige Dokumentation mit einem Beispiel
quelle
Ich habe eine Online-Version gefunden, die zu 80% richtig ist, aber den falschen Parameter eingesteckt hat und bei der Verwendung der Eingaben inkonsistent ist. Diese Version hat dies vollständig behoben
quelle
Um die Entfernung in Google Maps zu berechnen, können Sie die Wegbeschreibungs-API verwenden. Das wird einer der einfachsten Wege sein, dies zu tun. Um Daten von Google Server abzurufen, können Sie Retrofit oder Volley verwenden. Beides hat seinen eigenen Vorteil. Schauen Sie sich den folgenden Code an, in dem ich ihn nachgerüstet habe:
Oben ist der Funktionscode build_retrofit_and_get_response zur Berechnung der Entfernung angegeben. Unten finden Sie die entsprechende Nachrüstschnittstelle:
}}
Ich hoffe das erklärt deine Anfrage. Alles Gute :)
Quelle: Google Maps Entfernungsrechner
quelle