Получить регион для адреса API Карт Google - PullRequest
0 голосов
/ 11 ноября 2011

Я пишу веб-приложение, использующее Google Maps API v3, которое отображает интересные места для моих клиентов.Это не будут места, которые отображаются на картах Google, и я хочу, чтобы пользователи могли фильтровать результаты в соответствии с их конкретными потребностями.

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

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

Другая функция, которую я хотел бы реализовать, - это поиск только результатов в пределах определенного (определяемого пользователем) расстояния от заданного местоположения.В настоящее время все места хранятся в базе данных MySQL (с их адресом, широтой и долготой), и я перебираю все места и использую эту формулу для определения расстояния.Я ожидаю, что я могу получить 50 000 мест в базе данных.

Должен ли я беспокоиться о времени отклика для этого вычисления, и есть ли способ, которым я могу сделать это быстрее?Является ли мои данные, хранящиеся в базе данных MySQL, хорошей идеей для такого рода приложений?

1 Ответ

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

Смещение результатов геокодера:

Чтобы сместить результаты геокодера, вы можете использовать navigator.language в качестве параметра region.Он должен предоставлять более релевантные результаты пользователю.

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

Использование текущего местоположения пользователя для получения значения для параметра region проблематично,Я не знаю, есть ли какой-нибудь общедоступный API для получения языкового подтега IANA из местоположения.Но вы можете использовать обратный геокодер для перевода местоположения, а затем извлечь код страны из результатов.Проблема заключается в том, что некоторые коды стран не соответствуют требуемым языковым подтэгам IANA (например, ca - это код страны для Канады, но языковой подтэг для каталонского, валенсийского).Однако в большинстве случаев использование кода страны вместо языкового подтэга должно улучшить результаты.

Хранение latlng в MySQL db:

Боюсь, что итерация по всем местам и применение формулы Хаверсайна может занять очень много времени (некоторые изучают это here ).

Вероятно, лучший способ обработки запаздывающих данных в MySQL - это использование пространственных расширений . хороший пост в блоге о его использовании.

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