2ball
@2ball
Хардкор кодер

К чему привязаться при создании базы городов?

Доброго люди.

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


Со странами все понятно. У них есть ISO и Alpha коды. Телефонный сразу отпал, как выяснилось, что у Казахстана тоже +7. По регионам тоже понятно. В некоторых странах можно привязаться к автомобильному коду регионами, в некоторых есть почтовые участки. В общем-то, застрял я на момента классификации городов, присоединенных к Москве. Мытищи, Химки, Зеленоград имеют тот же телефонный код, тот же автомобильный код, что и Москва.


Сейчас крайний вариант вязаться к стартовому индексу города. Но нет особого желания. Если у кого-то есть опыт по вопросу — подскажите.


Заранее спасибо за ответы.
  • Вопрос задан
  • 7325 просмотров
Решения вопроса 1
ruskar
@ruskar
Conflict Intelligence Team
Дополню ответ rasstroen. КЛАДР уже давно ушёл в прошлое и вместо него появился более адекватный, полный ФИАС. В нём вам нужна таблица ADDROBJ. Имеющие для вас значения поля в этой таблице:
AOGUID — уникальный идентификатор объекта в БД
PARENTGUID — уникальный идентификатор родительского объекта (т.е. AOGUID региона, области)
AOLEVEL — уровень объекта по иерархии, в соответствии с документацией. Вам нужен AOLEVEL = 4 — это города. Но учтите, что Москва и Питер имеют AOLEVEL = 1, ибо это города-субъекты РФ.
REGIONCODE — код региона (не соответствует автомобильному, учтите)
ACTSTATUS — отбирайте только записи со значением actstatus = 1. Все прочие — уже недействующие записи, сохранены в базе для истории изменений.

Также можете взять таблицу SOCRBASE — там расшифровки сокращений, используемых в базе (г — город, пгт — посёлок городского типа и т.д.)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
rasstroen
@rasstroen
в России — КЛАДР

Код дома по КЛАДРУ 0100000100000000001
Адыгея — 0100000000000
Москва 7700000000000
(первые 2 цифры — регион)
Зеленоград — 7700000200000 (Регион Москва, двоечка появилась)
По любому коду можно вернуть иерархию до региона, очень удобно. Базы в свободном доступе
Ответ написан
@IDVsbruck
Интересно. А не для России что-то подобное есть?
Ответ написан
Ваш ответ на вопрос

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

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