Лучший способ найти близлежащие места?
В моем приложении мы требуем, чтобы пользователь ввел почтовый индекс для запроса близлежащих местоположений. Мы используем объект LatLng почтового индекса в качестве источника, а затем рисуем воображаемую "ограничивающую рамку", чтобы запросить базу данных для всех местоположений в этом диапазоне. Эти местоположения будут отображаться в виде маркеров на карте, которые пользователь сможет видеть. Мы хотим ограничить результаты примерно 10-15.
Пример базы данных:
Я думал об использовании MySQL BETWEEN
оператор для запроса в пределах ±2 градусов по вертикали и горизонтали, а затем LIMIT n
эти результаты, ИЛИ я мог бы перенести всю базу данных в PHP, а затем абстрагировать ее с помощью range()
.
Я не совсем уверен, как лучше всего подойти к этому, поэтому я был бы признателен, если бы кто-нибудь из вас уже сталкивался с этим сценарием раньше и мог бы дать некоторое представление о том, как его решить.
1 answers
Сделайте это в sql
SELECT
id,
( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance
FROM
markers
HAVING
distance < 25
ORDER BY
distance
LIMIT
0 , 20;