Gibt es eine Möglichkeit (vorzugsweise in Excel), den Abstand (basierend auf lat, lon) zwischen zwei Punktelisten zu berechnen?
Mein Endziel wäre beispielsweise, eine Liste von Starbucks und eine Liste von McDonalds zu haben und dann den nächsten Nachbarn anzuzeigen, wenn Sie so wollen.
Kommentare
- Ich ' suche nach einem Mindestabstand.
- Mit welchem Unet wird der Abstand zurückgegeben?
- @Jeed Jede Einheit wäre in Ordnung, wahrscheinlich Meilen in diesem Fall.
Antwort
Bei einer Liste von geografischen Koordinatenpaaren können Sie die Haversine-Formel direkt in Excel.
Der einfachste Weg, diese (oder eine genauere, aber ich denke, es ist nicht Ihr Fall) Formel zu verwenden, besteht darin, Um den VBA-Editor zu öffnen, klicken Sie auf Insert --> Module
und (kopieren und) fügen Sie z Der Code wurde freundlicherweise von blah238 vorgeschlagen.
Public Function getDistance(latitude1, longitude1, latitude2, longitude2) earth_radius = 6371 Pi = 3.14159265 deg2rad = Pi / 180 dLat = deg2rad * (latitude2 - latitude1) dLon = deg2rad * (longitude2 - longitude1) a = Sin(dLat / 2) * Sin(dLat / 2) + Cos(deg2rad * latitude1) * Cos(deg2rad * latitude2) * Sin(dLon / 2) * Sin(dLon / 2) c = 2 * WorksheetFunction.Asin(Sqr(a)) d = earth_radius * c getDistance = d End Function
In Ihrer Tabelle ist eine neue benutzerdefinierte getDistance
-Funktion (Einheit = Kilometer) verfügbar, die vier Funktionen akzeptiert Parameter, dh die beiden Koordinatenpaare, lauten wie folgt:
getDistance(latitude1, longitude1, latitude2, longitude2)
wobei latitude1, longitude1, latitude2, longitude2
durch ihren Verwandten ersetzt werden sollte Zellreferenzen.
Kommentare
- Direkt Link: codecodex.com/wiki/…
- @ blah238 Vielen Dank für Ihren Vorschlag. Ich ' habe eine kurze Anleitung hinzugefügt, damit es funktioniert.
- @afalciano Vielen Dank für den Spaziergang durch & Code. Meine Frage ist jedoch, was sind die ultimativen Einheiten aus dieser Gleichung? sind es Meter?
- @Kerry Es sind ' Kilometer. Wenn die Formel " Sqr " lautet, sollte es " Sqrt ".
- Die Maßeinheit für Entfernungen ist Kilometer, genau wie der Erdradius.
Antwort
Eine genauere Methode ist die Verwendung der Formel Vicenty . Sie basiert auf einem Ellipsoid anstelle von a Sphäre. Die vorherige Antwort erledigt jedoch die Aufgabe, wenn Sie in einer Stadt arbeiten (Unterschiede können in Ihrem Fall vernachlässigt werden). Ich habe hier einen Excel-VB-Code gefunden nur für den Fall.
Beachten Sie, dass die Verwendung von „Vogelflug“ -Distanzen irreführend sein kann, wenn Sie in einer Stadt arbeiten. Es wäre besser, Netzwerkentfernungen zu verwenden. Ein Kompromiss besteht darin, „Manhattan-Entfernung“
zu verwenden