Отримати базу даних країн, регіонів, населених пунктів з перекладом назв і зв'язками безкоштовно і без реєстрації? Це реально!
database.getCountries - Повертає список країн.
database.getRegions - Повертає список регіонів.
database.getCities - Повертає список населених пунктів.
database.getCountriesById - Повертає інформацію про країни по їх ідентифікаторів
database.getCitiesById - Повертає інформацію про міста по їх ідентифікаторів.
параметри:
v - вказує на версію API. У різних версіях структура JSON буде різною. Наприклад, починаючи з версії 5.0 додано значення count, яке містить загальну кількість елементів у вибірці і при спільному використанні з параметром offset допоможе отримати всі значення. За замовчуванням дані повертаються в старій версії (мабуть для сумісності зі старими програмами).
count - максимальна кількість значень, що повертаються методом. Максимальне значення параметра, яке можна задати, становить 1000 елементів. Мінімальна і значення за замовчуванням для кожного методу може відрізнятися і слід звірятися з документацією.
need_all - необов'язковий параметр, за замовчуванням дорівнює «0», вказує на те, що не слід робити вибірку невеликих регіонів / країн / населених пунктів
Інші параметри для кожної функції розписувати немає сенсу, так вони є в офіційній документації, перейдемо ж до неофіційних можливостям:
Отримуємо список країн для різних мов
Ось короткий список ідентифікаторів мов:
Отримуємо список регіонів для різних мов
Перелік параметрів, для методу і опис можна подивитися в документації. Однак варто зауважити, що повернутий JSON може бути порожнім, т. Е. Не для всіх країн можуть бути задані регіони. в такому випадку, при отриманні списку міст параметр region_id можна опустити.
Отримуємо список населених пунктів
Повертаються дані для кожного населеного пункту можуть також містити наступні параметри:
area - назва району (провінції і т. д.)
important рівне «1» - позначення великих міст, з'являється тільки при використанні параметра need_all
Увага! Деякі регіони можуть не містити населених пунктів (або самі бути населеними пунктами, як я зрозумів).
Деякі отримані значення можуть містити спецсимволи, теги (наприклад і
).
На даний момент всі нюанси, які помітив при отриманні даних описав в статті. Отримав сирої дамп, наспіх написаним парсером з помилкою (в дампі НЕ вивантажені міста, що не належать до жодного з регіонів). Процес вивантаження зайняв 4 години. При імпорті в Postgres вилітали помилки, що виникають із за недостатнього екранування деяких символів. Через кілька днів планую переписати парсер і сформувати більш «чистий» дамп + зробити дампи в декількох форматах.
Сирий дамп завантажує:
234 країни
3721 регіонів
1896563 міст
Переклади: Російська, Українська, Англійська, Іспанська, Португальська, Німецька, Французька, Італійська