Алгоритм вычисления ближайшего местоположения на основе долготы и широты - PullRequest
17 голосов
/ 19 августа 2011

В настоящее время я пытаюсь разработать алгоритм для расчета, какие известные местоположения наиболее близки к текущему известному местоположению.

У меня есть список, скажем, 100 известных мест (имеется в виду и широта, и долгота). Из этих 100 я выбираю одно местоположение, и после выбора этого места я хочу, чтобы в списке был указан, скажем, 8 ближайших к нему известных местоположений.

Каким будет возможное решение этого вопроса?

Редактировать

Я не ищу, как рассчитать расстояния. Я ищу, как рассчитать, какие известные местоположения находятся ближе всего к текущему местоположению.

Пример:

Скажем, список содержит 100 локаций кинотеатров. Я нахожусь в театре 5, и я хочу узнать, какие другие кинотеатры в списке находятся поблизости. Не расстояние, а их местоположение.

Ответы [ 4 ]

17 голосов
/ 19 августа 2011

Существует API матрицы расстояний . Этот API позволяет рассчитывать расстояния между некоторыми заданными позициями.

Вы также можете сделать это самостоятельно с помощью haversine formula

1 голос
/ 30 декабря 2016

Попробуйте реализовать алгоритм дерева k-d с поиском ближайшего соседа.

1 голос
/ 26 мая 2014

Ссылка ниже может быть полезной.

http://www.scribd.com/doc/2569355/Geo-Distance-Search-with-MySQL

1 голос
/ 19 августа 2011

1-я идея: если ваши «100 известных местоположений» остаются в основном одинаковыми, вы можете разделить известные местоположения на более мелкие группы и сохранить структуру. Тогда просто играйте с ближайшей группой.

Здесь больше математических подходов

...