Местоположение пользователя

Учитывая перспективы развития сайта давно хочется заняться географией пользователей. Если попросту, то хочется по ip-адресу определять местоположение пользователя (а именно - страну и регион). И даже предлагаться зарегистрированным пользователям сохранять свое основное местоположение в своих профилях. Далее подробней.

1. Создать иерархический справочник "География" со странами и регионами.

2. При входе на сайт определять по IP местоположение пользователя.
Порядок следующий. На внешнем сервисе (на сколько я понял подходящих два: отечественный IpGeoBase и импортный MaxMind GeoIP® City Database. Для обоих есть соответствующие модули) определять страну и регион по IP-адресу. Проверять в словаре с географическими терминами наличие определенной страны и региона. В случае отсутствия добавлять их в справочник. Страну корневым термином, регион - дочерним.
2.1. Гостю (незарегистрированному пользователю - гостю) только отображать определенное местоположение с возможностью его коррекции. Местоположение хранить все время действия сессии.
2.2. При регистрации нового пользователя заполнять поле с местоположением на основе определенного по IP. Опять же, с возможностью коррекции.
2.3. Зарегистрированным пользователям отображать указанное в профиле местоположение и предлагать сохранить его в случае коррекции.

3. Зарегистрированным пользователям обеспечить возможность корректировать местоположение в профиле.

Теперь буду искать подходящие модули. О ходе буду писать в комментариях.

Назрел первый вопрос:
1. Большинство средств определяют страну и регион в формате ISO 3166. Через это вопрос, стоит ли париться с таксономией, или все-таки сделать таблицу в базе?

Созданный словарь подтащил к

Созданный словарь подтащил к профилю модулем User Terms.
Для словаря "География" сделал иерархический выбор при помощи модулей Hierarchical Select, Hierarchical Select Taxonomy.
Подружил иерархический выбор и пользовательской таксономией с помощью Hierarchical Select User Terms

Пока создал словарь. Привязал

Пока создал словарь. Привязал его к материалам.

Теперь хочу привязать к пользователям.

Боюсь, что тему с автоматическим определением местоположения придется отложить.

Тут же ставил Profile

Тут же ставил Profile Taxonomy. Частная реализация - мое почтение. Но в общую картину не складывается :/

Так и не уговорил я его. В

Так и не уговорил я его.

В итоге остановился на User Terms

Попробовал модуль Profile

Попробовал модуль Profile Location. Позволяет пользователю выбирать страну и регион своего местонахождения. Данные берет из собственных таблиц, а не из словаря таксономии. Не совсем подходит.

Посмотрел модуль GeoIP. Вроде

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

Еще одна тонкость - сведения хранятся в файле. Не в базе и не на внешнем сервисе. Вернее, на внешнем сервисе стоит денег. Файл периодически обновляется. Надо скачивать и обновлять у себя.

Сведения на английском языке.

Пробовал модуль Location.

Пробовал модуль Location. Чувствуется, фундаментальная вещь. Вроде бы есть модули и для пользователей и для таксономии. Русского описания использования модуля не нашел. Как определять местоположение пользователя по IP-адресу не понял. Отложил. Буду пробовать еще.

Очень похожим оказался модуль

Очень похожим оказался модуль Addresses.