Esiste un modo (preferibilmente in Excel) per calcolare la distanza (basata su lat, lon) tra due elenchi di punti?

Il mio obiettivo finale sarebbe, ad esempio, avere un elenco di Starbucks e un elenco di McDonald “e quindi mostrare il vicino più vicino, se vuoi.

Commenti

  • I ' sto cercando la distanza minima.
  • Di quale unet restituirà la distanza?
  • @Jeed Qualsiasi unità andrebbe bene, probabilmente miglia in questo caso.

Risposta

Dato un elenco di coppie di coordinate geografiche, puoi implementare la formula di Haversine direttamente in Excel.


Il modo più semplice per utilizzare questa formula (o una più accurata, ma credo che non sia il tuo caso) consiste nel premere Alt+F11 per aprire leditor VBA, fai clic su Insert --> Module e quindi (copia e) incolla ad es. il codice gentilmente suggerito da blah238.

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 

Sarà disponibile una nuova funzione getDistance personalizzata (unit = chilometro) disponibile nel foglio di lavoro che accetta quattro parametri, cioè le due coppie di coordinate, come segue:

getDistance(latitude1, longitude1, latitude2, longitude2) 

dove latitude1, longitude1, latitude2, longitude2 dovrebbe essere sostituito dal relativo riferimenti di cella.

inserisci qui la descrizione dellimmagine

Commenti

  • Diretto link: codecodex.com/wiki/…
  • @ blah238 Grazie per il tuo suggerimento. Ho ' ho aggiunto una breve guida per farlo funzionare.
  • @afalciano Grazie per la guida & codice. La mia domanda però è: quali sono le unità finali di questa equazione? sono metri?
  • @Kerry It ' s chilometri. Inoltre, dove la formula dice " Sqr " dovrebbe essere " Sqrt ".
  • Lunità di misura delle distanze è i chilometri, proprio come il raggio terrestre.

Risposta

Un modo più accurato è utilizzare la formula Vicenty “s . È basata su un ellissoide invece di un sfera. Tuttavia, la risposta precedente funzionerà se lavori in una città (le differenze possono essere trascurate nel tuo caso). Ho trovato un codice excel vb qui per ogni evenienza.

Tieni presente che se lavori in una città, utilizzare le distanze di “volo degli uccelli” potrebbe essere fuorviante. Sarebbe meglio utilizzare le distanze di rete. Un compromesso consiste nellusare la “distanza di Manhattan”

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *