Вряд ли кто-то не в курсе про ФИАС fias.nalog.ru/Updates если не принимать во внимание некоторые ошибки (циклы по NEXTID, несколько актуальных записей одного объекта без PREVID и т.п.), которые иногда возникают и относительно оперативно устраняются по запросу, то лучшего источника нет. Однако, в своём продукте хочется сделать все красиво и удобно: например, изначально при простом поиске отсеять небольшие населённые пункты а такой информации в ФИАС, к сожалению, нет. Перейти к более простой двухуровневой иерархии: населённый пункт внутри региона никаких муниципальных районов. Возможно ли? На практике оказалось, что да (небольшая демонстрация в поисковой строке сайта). Если мы возьмём населённые пункты с более 1000 жителями, то получим охват примерно в 89% населения.
В общем, короткое введение закончилось и представляю небольшой open data проект населённые пункты РФ с численностью населения более 1000 человек. Каждая запись содержит идентификатор ФИАС по нему сопоставляется ОКТМО, ОКАТО (которые часто меняются); часовой пояс если у вас есть оповещение по СМС, польза очевидна; ссылка на статью Википедии, откуда получена информация о численности населения и координатах.
Небольшие очевидные замечания:
- эта база данных не подойдет для заполнения граф типа место рождения для неё следует использовать полную БД ФИАС, более того с историческими данными (если честно, лучше этого не делать делайте поле строкой)
- если ваш проект затрагивает очень маленькие населённые пункты, то можно использовать эту БД только для удобства выбора, нужен расширенный режим который тоже можно чуть упростить, исключив из полной БД ФИАС населенные пункты, содержащиеся в этой базе
- используя ФИАС, храните не только выбранный AOID, AOGUID, а также используемую версию БД ФИАС
Обратная связь, проверка, корректировка данных, предложение ввода дополнительных полей и парсеры данных для них из открытых источников приветствуются.