Existe-t-il un moyen (de préférence dans Excel) de calculer la distance (basée sur la latitude, la longitude) entre deux listes de points?

Mon objectif final serait, par exemple, davoir une liste de Starbucks et une liste de McDonald « , puis dafficher le voisin le plus proche, si vous voulez.

Commentaires

  • Je ' m recherche la distance minimale.
  • Par quel unet, retournera la distance?
  • @Jeed Nimporte quelle unité conviendrait, probablement des miles dans ce cas.

Réponse

À partir dune liste de paires de coordonnées géographiques, vous pouvez mettre en œuvre la formule Haversine directement dans Excel.


La façon la plus simple dutiliser cette formule (ou une formule plus précise, mais je pense que ce nest pas votre cas) consiste à appuyer sur Alt+F11 pour ouvrir léditeur VBA, cliquez sur Insert --> Module puis (copiez et) collez par exemple le code aimablement suggéré par 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 

Il y aura une nouvelle fonction getDistance personnalisée (unit = kilomètre) disponible dans votre feuille de calcul qui en accepte quatre paramètres, cest-à-dire les deux paires de coordonnées, comme suit:

getDistance(latitude1, longitude1, latitude2, longitude2) 

latitude1, longitude1, latitude2, longitude2 doit être remplacé par leur relatif références de cellule.

entrez la description de limage ici

Commentaires

  • Direct lien: codecodex.com/wiki/…
  • @ blah238 Merci pour votre suggestion. Jai ' ajouté un petit guide pratique pour le faire fonctionner.
  • @afalciano Merci pour la visite & code. Ma question est cependant de savoir quelles sont les unités ultimes de cette équation? est-ce des mètres?
  • @Kerry It ' s kilomètres. De plus, là où la formule indique " Sqr ", cela devrait être " Sqrt ".
  • Lunité de mesure des distances est le kilomètre, tout comme le rayon de la Terre.

Réponse

Une méthode plus précise consiste à utiliser la formule de Vicenty « . Elle est basée sur un ellipsoïde au lieu dun Cependant, la réponse précédente fera laffaire si vous travaillez dans une ville (les différences peuvent être négligées dans votre cas). Jai trouvé un code vb excel ici juste au cas où.

Notez que si vous travaillez dans une ville, lutilisation de distances de « vol doiseau » peut être trompeuse. Il serait préférable dutiliser les distances du réseau. Un compromis est dutiliser la « distance de Manhattan »

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *