Van-e mód (lehetőleg Excel-ben) két pontlista közötti távolság kiszámításához (lat, lon alapján)?

A végcélom például az lenne, hogy legyen egy Starbucks és egy McDonald listája, majd mutassa meg a legközelebbi szomszédot, ha akarja.

Megjegyzések

  • I ' m minimális távolságot keresek.
  • Melyik unet segítségével adja vissza a távolságot?
  • @Jeed Bármely egység jó lenne, ebben az esetben valószínűleg mérföldek.

Válasz

Megadva a földrajzi koordinátapárok listáját, megvalósíthatja a Haversine képletet közvetlenül az Excel programban.


Ennek (vagy pontosabbnak, de szerintem nem az önnek) képlet legegyszerűbb módja a a VBA Szerkesztő megnyitásához kattintson a Insert --> Module elemre, majd (másolja és illessze be) pl. a kódot kedvesen javasolta a 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 

Új, egyedi getDistance függvény (egység = kilométer) lesz elérhető a táblázatban, amely négyet elfogad paraméterek, vagyis a két koordinátapár, a következők szerint:

getDistance(latitude1, longitude1, latitude2, longitude2) 

ahol a latitude1, longitude1, latitude2, longitude2 elemeket helyettesíteni kell relatívjukkal cellahivatkozások.

írja ide a kép leírását

megjegyzések

hozzáadtam egy rövid útmutatót annak érdekében, hogy működőképes legyen.

  • @afalciano Köszönöm a & kód. A kérdésem mégis az, hogy mik az egység végső egységei? méteres?
  • @Kerry It ' s kilométer. Továbbá, ahol a képlet azt mondja, hogy " Sqr ", akkor " Sqrt ".
  • A távolságok mértékegysége kilométer, akárcsak a Föld sugara.
  • Válasz

    Pontosabb módszer a Vicenty “s képlet használata. Ez egy ellipszoidon alapszik a gömböt. Azonban az előző válasz elvégzi a munkát, ha városban dolgozik (a különbségek esetenként elhanyagolhatók). Itt találtam egy excel vb kódot itt minden esetre.

    Ne feledje, hogy ha városban dolgozik, akkor a “madárrepülés” távolságok megtévesztése lehet félrevezető. Jobb lenne hálózati távolságokat használni. Kompromisszum a “manhattani távolság”

    használata

    Vélemény, hozzászólás?

    Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük