Existuje způsob (nejlépe v aplikaci Excel), jak vypočítat vzdálenost (na základě lat, lon) mezi dvěma seznamy bodů?

Mým konečným cílem by bylo například mít seznam Starbucks a seznam McDonalds, a pak ukázat nejbližšího souseda, pokud chcete.

Komentáře

  • Hledám minimální vzdálenost.
  • Kterým unetem vrátím vzdálenost?

/ li>

  • @Jeed Jakákoli jednotka by byla v pořádku, v tomto případě pravděpodobně míle.
  • Odpověď

    Vzhledem k seznamu párů geografických souřadnic můžete implementovat vzorec Haversine přímo v aplikaci Excel.


    Nejjednodušší způsob použití tohoto (nebo přesnějšího, ale myslím, že to není váš případ) vzorce spočívá v stisknutí Alt+F11 otevřete editor VBA, klikněte na Insert --> Module a poté (zkopírujte a) vložte např. kód laskavě navrhl 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 

    V tabulce bude k dispozici nová vlastní getDistance funkce (unit = kilometer), která přijímá čtyři parametry, tj. dva páry souřadnic, následovně:

    getDistance(latitude1, longitude1, latitude2, longitude2) 

    kde latitude1, longitude1, latitude2, longitude2 by měl být nahrazen jejich relativními odkazy na buňky.

    sem zadejte popis obrázku

    komentáře

    • přímé link: codecodex.com/wiki/…
    • @ blah238 Děkujeme za váš návrh. Přidal jsem ' krátké návody, aby to fungovalo.
    • @afalciano Díky za procházku & kód. Moje otázka však zní, jaké jsou konečné jednotky z této rovnice? jsou to metry?
    • @Kerry It ' s kilometrů. Také tam, kde vzorec říká " Sqr ", by měl být " Sqrt ".
    • Jednotkou měření vzdáleností jsou kilometry, stejně jako poloměr Země.

    Odpověď

    Přesnějším způsobem je použití vzorce Vicenty „. Je založen na elipsoidu místo na sféra. Pokud však pracujete ve městě, předchozí odpověď to zvládne (rozdíly lze ve vašem případě zanedbávat). Nalezl jsem kód Excel VB zde pro každý případ.

    Upozorňujeme, že pokud pracujete ve městě, může být používání „ptačího letu“ zavádějící. Bylo by lepší použít síťové vzdálenosti. Kompromisem je použití „vzdálenosti na Manhattanu“

    Napsat komentář

    Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *