Как получить ближайшие POI - PullRequest
2 голосов
/ 18 апреля 2010

У меня есть база данных с достопримечательностями, у которых есть адрес.

Я хочу знать, что такое метод / имя / вызов , чтобы получить все поблизости POI с заданной позиции.

Я понимаю, что мне нужно преобразовать все мои адреса как минимум в LAT / LON, но мой вопрос:

для заданного LAT / LONG, как мне получить из базы данных / массива, какие POI находятся поблизости по расстоянию, например:

Вы здесь 0,0 Ближайшие POI в радиусе 2 км :

  • POI A (при 1,1 км)
  • POI C (при 1,3 км)
  • POI F (на 1,9 км)

Понятия не имею, на что мне обратить внимание, чтобы получить то, что я хочу: - (

Любая помощь очень ценится. Спасибо

1 Ответ

2 голосов
/ 18 апреля 2010

Я хочу знать, каков метод / имя / вызов для получения всех близлежащих POI с заданной позиции.

Вычисление расстояния по большому кругу между двумя координатами широты / долготы легко с формулой haversine . Вы можете прочитать далее и проверить реализацию в Рассчитать расстояние, направление и многое другое между точками широты / долготы Крисом Венессом.

Для данного LAT / LONG, как я могу получить из базы данных / массива, какие POI находятся поблизости на расстоянии?

Если у вас будет только несколько POI, вы можете просто рассчитать расстояние по большому кругу от вашей точки до каждой POI. Затем просто отсортируйте список результатов по расстоянию.

Однако, если у вас будет много POI, вам следует рассмотреть возможность использования базы данных с возможностями пространственного индексирования . MySQL , PostgreSQL и SQL Server 2008 имеют геопространственные функции (как исходные, так и через расширения), которые включают пространственное индексирование и реализации формулы haversine.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...