Запрос, чтобы найти места рядом со мной (Google Map) - PullRequest
0 голосов
/ 12 февраля 2011

Для целей моего приложения я использую карты Google, чтобы: пользователь пометил на карте место, где он остановился (он хранится в БД).Затем, когда он снова просматривает карту, на ней должны отображаться другие пользователи, которые находятся рядом с ним.

Координаты хранятся в поле базы данных пользователей, например, с именем coords, в этой форме: 22.515578,33.265897 (широта)., долгота)

Каким должен быть запрос, чтобы найти все отметки, которые находятся +/- 1 (или на любом другом расстоянии) от него ??(Например, если он на 22.515578,33.265897, то он должен искать других, например, на 21.515578,32.265897 или 23.515578,34.265897)

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 12 февраля 2011

Это может помочь вам.

Например, здесь пусть заданные широта и долгота равны 32, -122 и расстояние меньше 25 миль.

SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance 
FROM geocodeTable HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;
0 голосов
/ 13 февраля 2011

Не изобретайте колесо. Если вы используете mysql, попробуйте пространственные расширения и пространственные функции между геометриями (например, расстояние ). Если вы попытаетесь сделать это вручную, чем , вы должны перейти Другой способ . Развеселить

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