База населених пунктів України у форматі MySQL
Одного разу треба було мені прикрутити до реєстрації вибір населеного пункту. Звісно, спочатку я почав шукати готове рішення але десь за пів години зрозумів – україномовної бази населених пунктів України – немає. Тому, я вирішив зробити свою.
Оскільки для мого проекту потрібні були лише великі міста та села міського, я вирішив взяти дані із української та російської вікіпедій. Так-так, саме з вікіпедій. Тому що сайт Верховної Ради постійно падає, а АРІ Вконтакті працює не зовсім коректно (станом на 5,01,2015 повертає українською лише міста обласного та районного значення а менші населені пункти – російською).
Викладаю те, що мені вдалося зібрати: ukraine_01.01.2015
В базі населених пунктів України присутні 1343 міста та смт українською та російською мовами.
Приклади запитів
1. Витягує усі міста та смт з відповідної області.
SELECT cat.cid as city_id,
cat.uk_name as city_name_uk,
cat.ru_name as city_name_ru
FROM cities_and_towns as cat
LEFT JOIN regions_cities rc ON cat.cid = rc.cid
WHERE rc.rid = 9
ORDER BY city_name_uk ASC;
rc.rid = 9 – ID області.
2. Витягує назву відповідної місту області за ID міста.
SELECT r.rid AS id,
r.uk_name AS oblast_name_uk,
r.ru_name AS oblast_name_ru
FROM regions AS r
LEFT JOIN regions_cities rc ON r.rid = rc.rid
WHERE rc.cid = 256
LIMIT 0, 1;
rc.cid = 256 – ID міста.
чому ж немає? от, прошу:
http://zx-page.org.ua/blog/?p=153 (з того ж сайту ВР), правда там трохи наплутано, ось тут з моїми правками: http://www.fayloobmennik.net/5487121
або ось ще:
http://drive.google.com/uc?export=view&id=0B0f9Yj4IgIm4SC0zbWZ6Z2hjLUU (у вікіпедиків https://uk.wikipedia.org/wiki/%D0%92%D1%96%D0%BA%D1%96%D0%BF%D0%B5%D0%B4%D1%96%D1%8F:%D0%9F%D1%80%D0%BE%D0%B5%D0%BA%D1%82:%D0%9D%D0%B0%D1%81%D0%B5%D0%BB%D0%B5%D0%BD%D1%96_%D0%BF%D1%83%D0%BD%D0%BA%D1%82%D0%B8_%D0%A3%D0%BA%D1%80%D0%B0%D1%97%D0%BD%D0%B8 )