¿Hay alguna forma (preferiblemente en Excel) de calcular la distancia (basada en lat, lon) entre dos listas de puntos?

Mi objetivo final sería, por ejemplo, tener una lista de Starbucks y una lista de McDonald «s, y luego mostrar el vecino más cercano, si lo desea.

Comentarios

  • Yo ' estoy buscando la distancia mínima.
  • ¿Por qué unet, devolverá la distancia?
  • @Jeed Cualquier unidad estaría bien, probablemente millas en este caso.

Respuesta

Dada una lista de pares de coordenadas geográficas, puede implementar la fórmula de Haversine directamente en Excel.


La forma más sencilla de usar esta fórmula (o una más precisa, pero creo que no es su caso) consiste en presionar Alt+F11 para abrir el Editor de VBA, haga clic en Insert --> Module y luego (copie y) pegue, por ejemplo el código amablemente sugerido por 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 

Habrá una nueva función getDistance personalizada (unidad = kilómetro) disponible en su hoja de cálculo que acepta cuatro parámetros, es decir, los dos pares de coordenadas, como sigue:

getDistance(latitude1, longitude1, latitude2, longitude2) 

donde latitude1, longitude1, latitude2, longitude2 debe ser reemplazado por su relativo referencias de celda.

ingrese la descripción de la imagen aquí

Comentarios

  • Directo link: codecodex.com/wiki/…
  • @ blah238 Gracias por tu sugerencia. ' he añadido un breve tutorial para que funcione.
  • @afalciano Gracias por el recorrido & código. Sin embargo, mi pregunta es ¿cuáles son las unidades últimas de esta ecuación? ¿Son metros?
  • @Kerry Son ' s kilómetros. Además, donde la fórmula dice " Sqr " debe ser " Sqrt ".
  • La unidad de medida de las distancias son los kilómetros, al igual que el radio de la Tierra.

Respuesta

Una forma más precisa es utilizar la fórmula de Vicenty «s . Se basa en un elipsoide en lugar de un esfera. Sin embargo, la respuesta anterior funcionará si trabaja en una ciudad (las diferencias se pueden descuidar en su caso). He encontrado un código Excel vb aquí por si acaso.

Tenga en cuenta que si trabaja en una ciudad, utilizar distancias de «vuelo de pájaro» puede resultar engañoso. Sería mejor utilizar distancias de red. Un compromiso es utilizar la «distancia de Manhattan»

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *