Как определить и хранить локацию пользователей?

Всем привет! Столкнулся с такой проблемой (скорее всего простой).
Мне нужно, чтобы пользователь мог указать страну, область и город, где он проживает, а так же я мог сам определить (например по IP) примерное расположение.
Я взялся искать БД стран и городов и нашел с 2млн городов (кто-то парсил из вконтакте).
Но тут проблема, города есть, но определить местоположение невозможно... И даже если я буду использовать сторонние сервисы типа GeoIP, то все равно не не смогу связать найденый город с таким же как у меня в базе. У них же для этого должен быть по крайней мере одинаковый ID или еще что-то...

Я взглянул на БД GeoIP, которая, стоит 300$, но я не уверен поможет ли она мне. Ведь это стороння база, поэтому мне придется, по сути, спарсить её в MySql, чтобы можно было вывести например город пользователя с помощью JOIN. Но я понимаю что это бред. Опять же... если придется указать город на карте google, то как указать именно этот город, ведь в google свои идентификаторы, а у GeoIP свои.

В общем кромешная тьма у меня...
Опишите пожалуйста логику работы с такими данными? Откуда брать названия городов, как их унифицировать, где хранить и как привязать к сущностям на сайте, в приложении и при этом имметь возможность интегрировать с такими сервисами как google карты или яндекс карты? Ведь, если в будущем мне придется поменять карту, то мне нужно будет как-то определить что это за город и какой у него идентификатор именно в yandex картах.
  • Вопрос задан
  • 123 просмотра
Пригласить эксперта
Ответы на вопрос 1
orlov0562
@orlov0562
I'm cool!
Все верно мыслишь.

Начни с GeoLite2 и API отсюда GeoIP2-PHP, там прямо есть пример с названием "City Example", в котором в том числе есть latitude/longitude (долгота/широта) с помощью которых можно координаты перенести на любую карту.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы