Этот репозиторий содержит данные (и скрипты для их извлечения) по административным единицам России (вплоть до уровня 4 — населённый пункт), а также федеральным округам, в которые они входят.
Данные о населённых пунктах и административном делении извлекаются из базы КЛАДР.
Данны о разбиении регионов по федеральным округам, остутствующие в КЛАДР, извлекаются из статьи Википедии.
Данные могут быть полезны, например, для отрисовки статистики или для создания форм регистрации пользователей с указанием места жительства.
Описанные ниже файлы лежат в репозитории в папке data. Извлечь более свежие данные можно с помощью скриптов, лежащих в папке script (инструкции в разделе «Запуск скриптов»).
Данные можно использовать, склонировав/скачав репозиторий, или забирать онлайн через CDN RawGit, см. «Онлайн-использование данных»
Описание файлов с данными:
Данные в CSV-формате. Колонки (заголовки есть в файле):
code
— код КЛАДР;level
— уровень КЛАДР (1 — регион, 2 — район, 3 — город, 4 — населённый пункт);type
— расшифровка уровня КЛАДР (соответственно region, raion, city, settlement);name
— название (для регионов также см.колонкуregion_wikiname
);city_code
— для города — повторение КЛАДР-кода города; для посёлка, подчинённого городу — КЛАДР-код города, которому он подчинён;city_name
— расшифровкаcity_code
;raion_code
— код района, в котором находится данный город/посёлок; для района — его собственный код;raion_name
— расшифровкаraion_code
;region_code
— код региона, в котором находится данный город/посёлок/район; для региона — его собственный код;region_name
— расшировкаregion_code
;district
— название федерального округа, в который входит регион (без слов «ФО»/«федеральный округ»);region_wikiname
— название региона согласно Википедии (обычно полнее и читабельнее названия по КЛАДР).
NB: и да, слово raion в английском языке есть и означает именно то, что нам надо, спасибо за беспокойство.
Те же данные, что в kladr.csv, в виде JSON-хеша (код КЛАДР → данные). Один элемент хеша:
{
...
"6600000100000": {
"code": "6600000100000",
"level": 3,
"type": "city",
"name": "Екатеринбург",
"district": "Уральский",
"region": {
"code": "6600000000000",
"name": "Свердловская",
"wikiname": "Свердловская область"
},
"city": {
"code": "6600000100000",
"name": "Екатеринбург"
}
}
...
}
Простой хеш для быстрого отображения названия населённого пункта в название региона:
{
"Екатеринбург": "Свердловская"
}
Внимание! При наличии нескольких совпадающих названий населённых пунктов — ключом, естественно, может стать только один. Предпочтение отдаётся тому, что больше (региону «Москва», а не нескольким различным городам и посёлкам «Москва»), при наличии нескольких населённых пунктов одного размера (напр. посёлок Зырянка) — тому, у которого меньше КЛАДР-код.
То же что предыдущее, но с названиями регионов из Википедии, а не КЛАДР (более красивыми).
{
"Екатеринбург": "Свердловская область"
}
Простой хеш для быстрого отображения названия населённого пункта в федеральный округ:
{
"Екатеринбург": "Уральский"
}
То же, что settlement2region.json
, но только для административных
единиц уровня 3 (город) и выше.
То же, что settlement2region2.json
, но только для административных
единиц уровня 3 (город) и выше.
То же, что settlement2district.json
, но только для административных
единиц уровня 3 (город) и выше.
CDN RawGit предоставляет доступ к данным онлайн.
Пример полезного URL: https://rawgit.com/zverok/ruadm/master/data/settlement2district.json
Пример Ruby-кода, использующего данные:
require 'json'
require 'open-uri'
url = 'https://rawgit.com/zverok/ruadm/master/data/settlement2region2.json'
data = JSON.parse(open(url).read)
data['Зырянка'] # => 'Республика Саха (Якутия)'
Внимание: для реального использования рекомендуется почитать инструкции на главной RawGit!
- Скачайте данные КЛАДР отсюда: http://www.gnivc.ru/inf_provision/classifiers_reference/kladr/
- Распакуйте и положите KLADR.DBF в
script/data
- Запустите скрипты в следующем порядке:
# извлекает csv из DBF
ruby script/dbf2csv.rb
# разбирает КЛАДР-коды
ruby script/parse_codes.rb
# извлекает федеральные округа
ruby script/extract_districts.rb
# сливает федеральные округа с данными КЛАДР и кладёт в data/kladr.csv
ruby script/merge-districts.rb
# делает JSON-файлы
ruby script/csv2json.rb
(Человеческими словами — данные в общем под свободной лицензией, но если сомневаетесь — лучше почитайте по ссылкам.)