Как я могу искать на основе расстояния с помощью API Карт Google? - PullRequest
3 голосов
/ 17 марта 2010
  1. Так вот в чем проблема ... У меня есть поле, где пользователи могут вводить свой адрес (который будет GeoCoded через Google Maps API).
  2. У меня есть несколько адресов виджетов в моей базе данных(сохраненный как адрес .. снова можно легко геокодировать).

Мне нужно, чтобы пользователь набрал свой адрес и чтобы список моих виджетов появлялся на основе расстояния от их адреса.,У меня ТЫСЯЧИ адресов для моих виджетов, и у пользователей, очевидно, бесконечное количество адресов.

Есть идеи?

Спасибо.

Ответы [ 4 ]

2 голосов
/ 27 августа 2014
SELECT latitude, longitude, SQRT( POW( 69.1 * ( latitude - 52.58 ) , 2 ) + 
POW( 69.1 * ( - 1.12 - longitude ) * COS( latitude / 57.3 ) , 2 ) ) AS distance 
FROM location ORDER BY distance

Нажмите здесь Они предоставляют несколько способов расчета расстояния - выберите наиболее подходящий для вас.

2 голосов
/ 18 марта 2010

Если вы храните элементы в БД MySQL, тогда вот то, что вам нужно

1 голос
/ 11 ноября 2012

Вы действительно не можете использовать Google, чтобы рассчитать фильтрацию географического расстояния. Для этого вам нужно будет отправить им ВАШИ данные, попросить их сохранить их и запросить за вас. Они могут предложить эту услугу сейчас или в будущем, но я не слышал об этом.

В порядке более легальных, более способных, более дорогих:

A / As ЕДИНСТВЕННЫЕ точки или места интереса вводятся клиентами вашего сайта, собирать географические координаты. Затем используйте свою собственную поисковую систему и ищите по расстоянию от точки. МОЖЕТ быть нарушением соглашения с Google, но они упоминают результаты «кэширования», чтобы снять нагрузку с их серверов. (Причина - мое личное предположение.)

B / Используйте Google для массового геокодирования, возможно, ОДИН за один раз, максимум до 5000 в день на IP-адрес вашего сайта, который я видел в последний раз. Даже не уверен, что это не является нарушением соглашения об использовании.

C / Купите контракт со службой геокодирования и сохраните для вас то, что они геокодируют.

D / Приобрести библиотеку геокодирования и выполнить собственное геокодирование.

0 голосов
/ 17 марта 2010

Это сообщение в блоге, "Расчет расстояния с помощью API Карт Google" , может оказаться полезным

...