2011-08-19 15 views
14

Obecnie próbuję opracować algorytm do obliczania, które znane lokalizacje są najbliższe aktualnej znanej lokalizacji.Algorytm obliczania najbliższego położenia na podstawie długości i szerokości geograficznej

Mam listę 100 znanych lokalizacji (co oznacza, że ​​mam zarówno długą, jak i szerokość geograficzną). Spośród tych 100 wybieram jedną lokalizację, a po wybraniu tej lokalizacji chcę wyświetlić listę 8 najbardziej znanych lokalizacji.

Jakie jest możliwe rozwiązanie tego problemu?

Edit

ja nie szukam sposobu obliczania odległości. Szukam sposobu obliczania, które znane lokalizacje znajdują się najbliżej aktualnej lokalizacji.

Przykład:

Say lista zawiera 100 lokalizacje kin. Jestem w teatrze 5 i chcę się dowiedzieć, jakie inne kina na liście znajdują się w pobliżu. Nie odległość, ale ich lokalizacja.

+0

Według lokalizacji masz na myśli lat/lon? – ScruffyDuck

Odpowiedz

16

Istnieje Distance Matrix API. Ten interfejs API pozwala obliczyć odległości między określonymi pozycjami.

Można to zrobić także przez własną rękę z haversine formula

+0

Dziękuję za linki, może ci się przydać później, ale w tej chwili nie szukam sposobu obliczania odległości, szukam, jak znaleźć, które miejsce jest najbliżej obecnego. Odmiennie jestem w kinie "Mój teatr" i chcę wiedzieć, jakie są inne teatry. Nie odległości do nich, ale ich lokalizacji. – diceler

+0

Ale nadal jest to rozwiązanie dla ciebie;) Musisz zdobyć punkt "Mój teatr" i wszystkie 100 innych lokalizacji. Następnie obliczyć wszystkie 100 odległości i wybrać najmniejszy. Aby znaleźć najbliższy punkt (najmniejszy dystans), musisz znać wszystkie odległości. – hsz

+1

W pewnym momencie będziesz musiał zdecydować, czy _distance_ z bieżącej lokalizacji do x jest poza twoim progiem ... – PLane

1

1 pomysł: Jeśli „100 znane lokalizacje” pozostają w większości takie same, można podzielić znanych miejscach na mniejsze grupy i utrzymać strukturę. Następnie graj z najbliższą grupą.

More mathematical approaches here

+0

dzięki za sugestię, zrobię małe grupy i użyję jednej lokalizacji na grupę do obliczenia początkowej najbliższej lokalizacji. – netsmertia

1

próby wdrożenia k-d algorytm wyszukiwania drzewo z Najbliższy sąsiad.

Powiązane problemy