Onko mahdollista (mieluiten Excelissä) laskea etäisyys (pisteiden, lonien perusteella) kahden pistelistan välillä?

Päätavoitteeni olisi esimerkiksi saada luettelo Starbucksista ja luettelo McDonaldista ja näyttää sitten lähin naapuri, jos haluat.

Kommentit

  • Etsin ' m etsimällä vähimmäisetäisyyttä.
  • Millä tavalla unet palauttaa etäisyyden?
  • @Jeed Mikä tahansa yksikkö olisi hieno, todennäköisesti tässä tapauksessa mailia.

Vastaa

Annettuasi luettelon maantieteellisistä koordinaattipareista, voit toteuttaa Haversinen kaava suoraan Excelissä.


Yksinkertaisin tapa käyttää tätä (tai tarkempaa, mutta mielestäni se ei ole sinun tapaustasi) kaava koostuu painamalla Alt+F11 avataksesi VBA-editorin, napsauta Insert --> Module ja sitten (kopioi ja) liitä esim. blah238: n ystävällisesti ehdottama -koodi .

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 

Laskentataulukossasi on uusi mukautettu getDistance -toiminto (yksikkö = kilometri), joka hyväksyy neljä parametrit, ts. kaksi koordinaattiparia, ovat seuraavat:

getDistance(latitude1, longitude1, latitude2, longitude2) 

missä latitude1, longitude1, latitude2, longitude2 tulisi korvata niiden suhteellisella soluviitteet.

kirjoita kuvan kuvaus tähän

kommentit

  • suora linkki: codecodex.com/wiki/…
  • @ blah238 Kiitos ehdotuksestasi. Olen ' lisännyt lyhyen ohjeen saadaksesi sen toimimaan.
  • @afalciano Kiitos kulkemisesta & koodi. Kysymykseni on kuitenkin, mitkä ovat tämän yhtälön lopulliset yksiköt? onko se metriä?
  • @Kerry It ' s kilometriä. Jos kaavassa lukee " Sqr ", sen on oltava " Sqrt ".
  • Etäisyyksien mittayksikkö on kilometrejä, aivan kuten maapallon säde.

Vastaa

Tarkempi tapa on käyttää Vicenty ”s -kaavaa. Se perustuu ellipsoidiin a pallo. Edellinen vastaus kuitenkin toimii, jos työskentelet kaupungissa (eroavaisuudet voidaan jättää huomioimatta). Löysin Excel-koodin täältä vain siinä tapauksessa.

Huomaa, että jos työskentelet kaupungissa, lintulentojen käyttäminen voi olla harhaanjohtavaa. Olisi parempi käyttää verkon etäisyyksiä. Kompromissina on käyttää Manhattanin etäisyyttä

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *