#php #javascript #geolocation #google-maps-api-3
#php #javascript #геолокация #google-maps-api-3
Вопрос:
Итак, я пытаюсь разработать приложение, которое будет отображать списки пользователей. Сайт должен определять местоположение пользователя (для этого я использую maxmind api), а затем показывать списки из местоположения пользователя городов в пределах указанного пользователем радиуса.
Как мне это сделать? MaxMind API позволяет мне определять город пользователя по IP-адресу, но как мне найти близлежащие города?
Справочный сайт: www.oodle.com (вы также можете вручную изменить город радиус).
Сангвиник
Комментарии:
1. Вы нашли какой-нибудь API для этого?
Ответ №1:
Вместо того, чтобы хранить и сравнивать города, сохраняйте и сравнивайте широты и долготы, которые представляют собой конкретные местоположения, а не двусмысленные названия. Все базы данных GeoIP MaxMind предоставляют их. Быстрый поиск в Google должен предоставить вам математические данные для вычисления расстояний между точками на земле.
Если вы действительно хотите найти близлежащие города, а не близлежащих пользователей, как вы сказали, то вам нужна база данных, сопоставляющая города с местоположениями. Опять же, MaxMind предоставляет это для всех своих баз данных. Зайдите на их веб-сайт, перейдите на страницу о базе данных, которую вы приобрели или скачали, и ознакомьтесь с инструкциями по вставке формата CSV в базу данных SQL. Это даст вам широту и долготу каждого города. Затем, опять же, поиск в Google предоставит вам математические данные для вычисления расстояния между двумя точками на земле (пары широта / длина) в SQL-запросе. Упорядочите по этому вычислению, чтобы получить ближайшие города.
Извините, что даю вам только совет, а не код, но есть много мелочей, которые вы просто должны сделать сами, чтобы создать этот сайт.
Комментарии:
1. Спасибо, Дэн. Это было полезно. Я надеялся найти API, который делает это, потому что существует довольно много сайтов, которые показывают результаты, основанные на вашем местоположении и близлежащих локациях. Теперь, с вашими исходными данными, это не кажется очень сложной задачей для программирования. Еще раз спасибо.