Как стать автором
Обновить

Комментарии 48

Мне кажется, для обработки человеком удобнее форма со списком, упорядоченным по алфавиту.
В какой-то степени да. А ещё если взять по соотношению пользователей, то можно дать в начале Москву, область и СПб. Отдаю это на откуп пользователям. Важен был именно исходный код и юридическая правильность
У вас где-то ошибка. Вологодская область это 35 регион
Уже поправил и заменил цифровую кодировку на название региона
Вы бы тогда уж привели просто список регионов РФ в порядке упоминания в конституции. Ибо, ИМХО, полезность от такой именно HTML-разметки стремится к нулю.
Так и сделал. Отсортированы в порядке упоминания в Конституции. Полезность небольшая, но кому-то сэкономит время
А еще лучше в виде дампа таблички :)
Создал второй вариант с цифровыми кодами. Ошибки поправил.
<option value=«50»>Магаданская область</option>
<option value=«51» >Московская область</option>

Московская область — это 50, а не 51. Про Магадан не знаю.
Поправил — заменил на название региона. Кроме того, была путаница с этими самыми объединёнными регионами.
<option value="Адыгея">Адыгея</option>
Это вообще как? )
хм… а что не нравится?
Ну, к БД с таким параметром обращаться не очень быстро получится. Коды регионов были логичнее.
Только что тестировал, в БД отправляется нормально.

Я был бы благодарен, если бы вы объяснили, чем коды лучше названий в кириллице. В любом случае, сделаю второй код с цифровыми кодами.
Коды — это числа. Числа короче чисто физически, сравнение чисел обычно быстрее, чем сравнение строк. Может быть, путаю что-то, но индексы по числам строить проще, чем по строкам. Кириллица зависит от кодировки, цифры — нет. Вот как-то так.
Спасибо за пояснение. Уже добавил. Два варианта для любых потребностей.
боюсь на таблице из 83 записей густо вы не сэкономите :) Так что тут нужно пользоваться так, как вам удобнее
Вот если бы вы сделали REST-сервис, отдающий список регионов — была бы полезная штука.
оо, на REST у меня, компетенции, к сожалению, не хватит.
мне казалось REST изначально предполагает использование методов http для получения/изменения: сделать DELETE и удалить пару регионов. А если нужно всего лишь получить имя региона по host/region/1 — то это просто сервис с френдли-url.
Так и есть! Но такой френдли-url как раз и построен по логике REST. :)
Здорово! Совсем другое дело
у регионов есть iso коды, которые вполне уместно использовать вместо цифровых id
спасибо. Сейчас добавлю вариант.
Добавил вариант с ISO. Посмотрите.
ага, хорошо
Почему-то у половины субъектов отсутсвуют типы региона (республика, область и т.п.)
Отсутствуют только области.
Автономная область и Автономные округа сокращены в АО.
Не сочтите за шовинизм. Я и области хотел убрать, но если республики можно переделать из Республики Татарстан в Татарстан, то с областями получается менее логично.
ой, то есть республики. Прошу прощения
Поправил. Добавил везде республики
<option value=«20»>Чеченская </option>
<option value=«21»>Чувашская Республика</option>

Ну либо так либо так. Вообще регионы имеет смысл писать полностью с типом, в том числе республики, но сортировать по названию. Ну и уж точно не просто отрезать слово.

Убедили поправил. Везде республика. Чечню упустил из виду. Спасибо
А не было бы проще сделать массив, хотя бы JS, а затем его использовать?
Например, такой regions.js:

function getRegions() {
return [
[«RU-AD», «Республика Адыгея»],
[«RU-AL», «Республика Алтай»],
[«RU-BA», «Республика Башкортостан»],
[«RU-BU», «Республика Бурятия»],
[«RU-DA», «Республика Дагестан»],
[«RU-IN», «Республика Ингушетия»],
[«RU-KB», «Кабардино-Балкарская Республика»],
[«RU-KL», «Республика Калмыкия»],
[«RU-KC», «Карачаево-Черкесская Республика»],
[«RU-KR», «Республика Карелия»],
[«RU-KO», «Республика Коми»],
[«RU-ME», «Республика Марий Эл»],
[«RU-MO», «Республика Мордовия»],
[«RU-SA», «Республика Саха (Якутия)»],
[«RU-SE», «Республика Северная Осетия — Алания»],
[«RU-TA», «Республика Татарстан»],
[«RU-TY», «Республика Тыва»],
[«RU-UD», «Удмуртская Республика»],
[«RU-KK», «Республика Хакасия»],
[«RU-CE», «Чеченская Республика»],
[«RU-CU», «Чувашская Республика»],
[«RU-ALT», «Алтайский край»],
[«RU-ZAB», «Забайкальский край»],
[«RU-KAM», «Камчатский край»],
[«RU-KDA», «Краснодарский край»],
[«RU-KYA», «Красноярский край»],
[«RU-PER», «Пермский край»],
[«RU-PRI», «Приморский край»],
[«RU-STA», «Ставропольский край»],
[«RU-KHA», «Хабаровский край»],
[«RU-AMU», «Амурская область»],
[«RU-ARK», «Архангельская область»],
[«RU-AST», «Астраханская область»],
[«RU-BEL», «Белгородская область»],
[«RU-BRY», «Брянская область»],
[«RU-VLA», «Владимирская область»],
[«RU-VGG», «Волгоградская область»],
[«RU-VLG», «Вологодская область»],
[«RU-VOR», «Воронежская область»],
[«RU-IVA», «Ивановская область»],
[«RU-IRK», «Иркутская область»],
[«RU-KGD», «Калининградская область»],
[«RU-KLU», «Калужская область»],
[«RU-KEM», «Кемеровская область»],
[«RU-KIR», «Кировская область»],
[«RU-KOS», «Костромская область»],
[«RU-KGN», «Курганская область»],
[«RU-KRS», «Курская область»],
[«RU-LEN», «Ленинградская область»],
[«RU-LIP», «Липецкая область»],
[«RU-MAG», «Магаданская область»],
[«RU-MOS», «Московская область»],
[«RU-MUR», «Мурманская область»],
[«RU-NIZ», «Нижегородская область»],
[«RU-NGR», «Новгородская область»],
[«RU-NVS», «Новосибирская область»],
[«RU-OMS», «Омская область»],
[«RU-ORE», «Оренбургская область»],
[«RU-ORL», «Орловская область»],
[«RU-PNZ», «Пензенская область»],
[«RU-PSK», «Псковская область»],
[«RU-ROS», «Ростовская область»],
[«RU-RYA», «Рязанская область»],
[«RU-SAM», «Самарская область»],
[«RU-SAR», «Саратовская область»],
[«RU-SAK», «Сахалинская область»],
[«RU-SVE», «Свердловская область»],
[«RU-SMO», «Смоленская область»],
[«RU-TAM», «Тамбовская область»],
[«RU-TVE», «Тверская область»],
[«RU-TOM», «Томская область»],
[«RU-TUL», «Тульская область»],
[«RU-TYU», «Тюменская область»],
[«RU-ULY», «Ульяновская область»],
[«RU-CHE», «Челябинская область»],
[«RU-YAR», «Ярославская область»],
[«RU-MOW», «Москва»],
[«RU-SPE», «Санкт-Петербург»],
[«RU-YEV», «Еврейская АО»],
[«RU-NEN», «Ненецкий АО»],
[«RU-KHM», «Ханты-Мансийский АО»],
[«RU-CHU», «Чукотский АО»],
[«RU-YAN», «Ямало-Ненецкий АО»],
];
}


И достаточно простое его использование:
<html>
<body>
<form>
<select name=«regions»>
</select>
</form>
<script src=«regions.js»></script>
<script>
regions = getRegions();
for (i in regions) {
document.forms[0].elements['regions'].options.add(new Option(regions[i][1], regions[i][0]));
}
</script>
</body>
</html>
Только хабр поломал все ковычки на левые и правые. На самом деле у меня они двойные :)
ковычки — это примерно как корованы…
www.gnivc.ru/Document.aspx?id=80
Офф классификатор, там есть все от регионов до номеров домов.
База правда не самая удобная, но документация по ней неплохая, так что конвертить ее в нормальный вид не проблема.

Где-то натыкался на какой-то рест сервис, кстати, сделанный на основе этого классификатора.

Кроме того где-то видел виндовую прогу с этим классификатором, там она ставит мускул, соответсвенно можно в использовать ее, если с дбф проблемы.

Вообще, по-хорошему, уже давно должен быть оффициальный сервис для этого, как в западных странах.
ух ты, спасибо. Вычленить бы оттуда названия городов и посёлков (третий уровень) — но качать влом. Кстати, интересно, что база основана по старой схеме, т.е. ещё не после муниципальной реформы.

Не знаете, они эту базу часто обновляют?
См. мой пост ниже — бери из 1С.
Несколько раз в год точно. На данный момент:
Дата актуальности — 30.07.2009
А можно подробнее про реформу?
Смысл муниципальной реформы — довести существующий закон о местном самоуправлении до соответствия в Конституции, в которой говорится, что «МСУ отдельно от государственной власти», т.е. депутаты выборные, главые муниципалитетов — выборные, живут на свои деньги и т.д. Не буду вдаваться в детали а) задумки, б) планирования, в) реализации — т.к. на всех этапах было сделано криво.

Но, вернёмся к сути вопроса. В соответствии со старой моделью была чёткая постсоветская иерархическая структура:

федерация
регион | город фед.подчинения
район | город областного подчинения
сельсовет | город районного подчинения

Новая структура на верхних этажах осталась такой же, а вот нижние изменились. Получилось так:

федерация (я не беру фед.округа, т.к. это отдельная история)
регион | город фед.подчинения
городской округ | муниципальный район
городское поселение | сельское поселение

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

судя по обозначениям в таблице — используется старая система. С одной стороны — логично, т.к. муниципальная реформа закончилась официально только 1 января 2009-го года, но реальное воплощение ещё не близко, не говоря уже о классификации по новым принципам. С другой — в ближайшем будущем стоит ждать пусть и формального, но изменения классификации.
Где Байконур? Это российский анклав, имеет код 99.

Я для регистрации пользователя на проекте, где сейчас работаю, импортил базу субъектов из 1С — там несколько уровней вложенности — республики/края, районы, главные населенные пункты, населенные пункты областей, улицы и т.п. В полном варианте — 8 или 9 уровней иерархии. Поскольку база большая, брал только края, районы и населенные пункты — получилось 180000 записей. Зато сейчас можно указывать город совершенно точно, без ошибки. :)

Для всех форм на сайте (регистрация, оформление заказа, редактирование личных данных) сделал 3 уровня выбора на аяксе — только так можно было эту массу как-то представить пользователю:
shop.amayama.ru/register

Пока делал, узнал много нового про топонимику родной страны и родного Владивостока в частности :)))

P.S. Надо бы накатать отдельный пост про это дело…
Если не ошибаюсь, в 1С она на основе того же КЛАДРа сделана.
Уровней должно быть 7 (последний — квартиры/офисы).
Байконур — это не российский регион. Это арендуемая у Казахстана территория. В Конституции его нет.

Буду ждать пост по теме.
посмотрел сейчас код ОКАТО распакованный — это же .sql в 47 мегов.
Ну и как говориться, повторенье мать ученья. Есть такой сайт classifiers, да верно классификаторы.
спасибо за ссылку. Но в комментах, касающихся городов, нарекания.
Ещё раз посмотрел — ОКАТО — нормальный SQL. Пригодится
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории