Получить все города всех стран

Содержание
  1. API данных о городах, областях, регионах, странах
  2. Получение частей света
  3. Получение всех стран или список стран указанной части света
  4. Получение всех областей(регионов, штатов) указанной страны
  5. Получение всех районов указанной области(региона, штата)
  6. Получение всех городов указанного района внутри области
  7. Получение всех городов указанной области(региона, штата) без деления на районы
  8. Получение полного списка населенных пунктов (городов) страны
  9. Информация о городе по id
  10. Получение полного списка районов населенного пункта (города)
  11. Информация о стране по коду или названию
  12. Информация о регионе(штате,области) по коду
  13. API получения списка городов (населенных пунктов) по части названия города
  14. API получения ближайших городов(населенных пунктов) от заданного
  15. API получения ближайших городов (населенных пунктов) от заданных координат
  16. API получения города по GPS — координатам
  17. API расчета расстояния между городами
  18. Получить названия населенных пунктов, областей, регионов на разных языках, переименования и синонимы
  19. Поиск по названию в странах, областях, районах, больших городах
  20. Ограничение
  21. Получаем i18n список стран, регионов, населенных пунктов из ВКонтакте
  22. Получить базу данных стран, регионов, населенных пунктов с переводом названий и связями бесплатно и без регистрации? Это реально!
  23. Получаем список стран для различных языков
  24. Получаем список регионов для различных языков
  25. Получаем список населенных пунктов
  26. Коллизии
  27. Updated
  28. Updated 2
  29. Updated 3
  30. База стран и городов
  31. Страны — country
  32. Области — area
  33. Города — city
  34. Районы области — rajon
  35. Районы города — rajon_city
  36. Список POLYGON — координаты окружающих район в городе, город, область, регион
  37. Соответствие IP и страны/города — geo__base
  38. Диапазоны IP адресов и их whois — geo__ip
  39. Телефонные операторы, в т.ч. сотовые — oper
  40. Данные об MNP переносах — phone
  41. Телефонные номера, коды и регион привязки — telcod
  42. Синонимы, альтернативные названия и названия на иностранных языках — sinonim
Читайте также:  Каспийское море побережье страны

API данных о городах, областях, регионах, странах

Набор API для получения информации обо всех городах, областях, регионах, странах.

Получение частей света

Структура API запроса для получения всех частей света:

Получение всех стран или список стран указанной части света

Структура API запроса для получения всех областей(регионов, штатов) указанной страны:

Для получения всех стран Европы:
http://htmlweb.ru/geo/api.php?location=Европа&json&api_key=API_KEY_из_профиля

Для получения всех стран передайте пустое location.

Для получения только кодов и названий, передайте параметр short.

Получение всех областей(регионов, штатов) указанной страны

Структура API запроса для получения всех областей(регионов, штатов) указанной страны:

Например, для получения всех областей и округов России:

Для получения одной записи «Республика Крым» в формате sql: http://htmlweb.ru/geo/api.php?country=ru&id=115&sql&api_key=API_KEY_из_профиля

Также вы можете задать альтернативные форматы xml, html или sql:

Кодовая страница по умолчанию для sql формата utf-8. Для выгрузки в формате windows-1251 добавьте параметр &charset=windows-1251

Если формат не указан, формируется список option для select-запроса

Получение всех районов указанной области(региона, штата)

Структура API запроса для получения всех областей(регионов, штатов) указанной страны:

КОД_ОБЛАСТИ — поле id в ответе на запрос «Список всех областей»

Например, для получения всех областей и округов Амурской области России:

Получение всех городов указанного района внутри области

Структура API запроса для получения всех городов указанного района внутри области:

КОД_РАЙОНА — поле id в ответе на запрос «Список всех районов области»

Получение всех городов указанной области(региона, штата) без деления на районы

Структура API запроса для получения всех городов :

КОД_ОБЛАСТИ — поле id в ответе на запрос «Список всех областей»

Например, для получения всех городов Амурской области России:

Для включения в выборку только крупных городов добавьте параметр level=2. Если хотите получить только крупнейшие города, добавьте параметр level=1.

Для получения ответа в формате MySql используйте параметр sql[=имя_таблицы]:

Например, для получения всех городов Амурской области России:

Получение полного списка населенных пунктов (городов) страны

Структура API запроса для получения всех городов :

Входные параметры:

    country — страна. Может быть задана кодом или названием
  • area — регион, если передан, то выводятся только населенные пункты этого региона
  • rajon — район, если передан, то выводятся только населенные пункты этого района
  • level — размер населенного пункта (0-4) Для включения в выборку только крупных городов добавьте параметр level=2. Если хотите получить только крупнейшие города, добавьте параметр level=1
  • p, perpage — с какой страницы и сколько на странице
  • Информация о городе по id

    Для получения информации о конкретном городе по id в формате json выполните следующий запрос:

    В кратком формате:

    Для получения строки в формате SQL для сохранения в базу выполните следующий запрос:

    или в старом формате:

    Для получения краткой информации о конкретном городе по id в формате json выполните следующий запрос:

    Для получения строки в формате SQL для сохранения в базу с указанием списка полей, выполните следующий запрос:

    Получение полного списка районов населенного пункта (города)

    Структура API запроса для получения всех районов города:

    Входные параметры:

    • city — код города

    Пример для Ростова-на-Дону:

    Для поиска города по части названия удобно использовать поиск. Пример для Ростова-на-Дону:

    Информация о стране по коду или названию

    Для получения информации о стране по id в формате json выполните следующий запрос:

    Для получения краткой информации о стране по названию в формате json выполните следующий запрос:

    Информация о регионе(штате,области) по коду

    Для получения информации о стране по id в формате json выполните следующий запрос:

    API получения списка городов (населенных пунктов) по части названия города

    Структура API запроса для получения списка городов по части названия:

    Вариант запроса для получения готового html кода для вставки на страницу в

    API получения ближайших городов(населенных пунктов) от заданного

    Структура API запроса для получения ближайших населенных пунктов:

    Например, для Москвы:

    Вариант запроса для получения готового html кода для вставки на страницу:

    Дополнительные необязательные параметры:
    length=50 — расстояние в пределах которого осуществляется поиск, км
    level=1 — только крупнейшие города
    level=2 — большие и крупнейшие города
    p=N — с какой страницы выдавать список городов
    perpage=30 — сколько городов выводить в списке (за каждые 50 населенных пунктов списывается один запрос, подробнее. )

    API получения ближайших городов (населенных пунктов) от заданных координат

    Структура API запроса для получения ближайших населенных пунктов:

    API получения города по GPS — координатам

    Структура запроса для получения ближайшего города по GPS-координатам:

    API расчета расстояния между городами

    Структура API запроса для расчета расстояния между городами:

    Например, для расчета расстояния между Москвой и Ростовом-на-Дону:

    Вариант запроса для получения готового html кода для вставки на страницу:

    Получить названия населенных пунктов, областей, регионов на разных языках, переименования и синонимы

    Структура API запроса для получения всех городов :

    • sinonim — для какого названия требуется список синонимов
    • lang2obj — заменить в выборке поле lang на объект, содержащий подробную информацию о языке. При передаче этого параметра дополнительно спишется ещё один запрос

    Поиск по названию в странах, областях, районах, больших городах

    Структура API запроса для поиска:

    • search — Страна или ISO код страны или название столицы или город в стране
    • tbl = country | area | rajon | city — искать только в странах, областях, районах, городах
    • country — искать только в указанной стране
    • capital2obj — заменить в выборке поле capital на объект, содержащий подробную информацию о столице, иначе возвращается только код столицы. Спишется +1 запрос
    • area2obj — заменить в выборке поле area на объект, содержащий подробную информацию о регионе, иначе возвращается только код региона.

    Кроме стандартного набора форматов вывода (json, xml, api), поддерживает формат html — возвращает список ссылок в html-формате. Для этого добавьте в запрос параметр &html, например: https://htmlweb.ru/api/geo/search/Москва?html .

    • country — список стран
    • area — список регионов
    • rajon — список районов
    • city — список населенных пунктов

    Ограничение: возвращается не более 50 позиций в каждом элементе выборки

    Ограничение

    При расчете лимита за один запрос принимается один запрос с выборкой не более 50 записей. Тарификация производится за каждый запрос!

    Обратите внимание, по умолчанию выводится с 1-ой по 50-ую записи. Если Вы хотите вывести следующие 50 записей укажите дополнительный параметр:

    Если Вы хотите выводить не по 50, а другое кол-во укажите параметр:

    Источник

    Получаем i18n список стран, регионов, населенных пунктов из ВКонтакте

    Получить базу данных стран, регионов, населенных пунктов с переводом названий и связями бесплатно и без регистрации? Это реально!

    При разработке небольшого стартап-проекта с большими амбициями столкнулся с необходимостью в базе данных стран, регионов и городов, с переводом названий хотя бы на самые распространенные языки (английский, русский, испанский, немецкий и т. д.). Готовое решение найдено не было, поэтому стал искать источники, из которых можно спарсить необходимые данные. На ум сразу пришли известные социальные сети. В этой статье уже описывалось получение данных из ВКонтакте, но покопавшись в документации API ВКонтакте, был приятно удивлен, найдя открытые документированные методы получения геоданных:

    database.getCountries — Возвращает список стран.

    database.getRegions — Возвращает список регионов.

    database.getCities — Возвращает список населенных пунктов.

    database.getCountriesById — Возвращает информацию о странах по их идентификаторам

    database.getCitiesById — Возвращает информацию о городах по их идентификаторам.

    Это основные, интересные нам методы, к тому же не требующие авторизации и использования токенов. Больше методов можно посмотреть в разделе документации.

    Пример url для обращения к методу получения списка стран представлен ниже (аналогично происходит обращение по протоколу https):
    http://api.vk.com/method/database.getCountries?v=5.5&need_all=1&count=10

    Параметры:
    v — указывает на версию API. В разных версиях структура JSON будет разной. Например, начиная с версии 5.0 добавлено значение count, которое содержит общее количество элементов в выборке и при совместном использовании с параметром offset поможет получить все значения. По умолчанию данные возвращаются в старой версии (видимо для совместимости со старыми приложениями).
    count — максимальное количество значений, возвращаемых методом. Максимальное значение параметра, которое можно задать, составляет 1000 элементов. Минимальное и значение по умолчанию для каждого метода может отличаться и следует сверяться с документацией.
    need_all — необязательный параметр, по умолчанию равен «0», указывает на то, что не следует производить выборку небольших регионов/стран/населенных пунктов
    Остальные параметры для каждой функции расписывать нет смысла, так они есть в официальной документации, перейдем же к неофициальным возможностям:

    Получаем список стран для различных языков

    Стоит обратить внимание, что метод пытается вернуть данные на языке, указанном в cookie параметре remixlang. Поэтому подставив числовое значение необходимого языка, получим данные на необходимом языке, если присутствует перевод. Страны переведены все, вроде бы на все языки, доступные в социальной сети. Для регионов и городов: если перевод отсутствует (мелкие населенные пункты, регионы небольших стран), то получим значение на популярном в данном регионе языке например в африканских странах, на английском, для стран СНГ — русском.

    Вот краткий список идентификаторов языков:

    Язык Значение remixlang
    Русский 0
    Украинский 1
    Английский 3
    Испанский 4
    Португальский 12
    Немецкий 6
    Французский 16
    Итальянский 7

    Получаем список регионов для различных языков

    Пример url для обращения к методу получения списка регионов для страны заданной, параметром country_id (обязательный параметр):
    http://api.vk.com/method/database.getRegions?v=5.5&need_all=1&offset=0&count=1000&country_id=

    Перечень параметров, для метода и описание можно посмотреть в документации. Однако стоит заметить, что возвращенный JSON может быть пустым, т. е. не для всех стран могут быть заданы регионы, в таком случае, при получении списка городов параметр region_id можно опустить.

    Получаем список населенных пунктов

    Пример url для обращения к методу получения списка городов для страны заданной, параметром country_id (обязательный параметр) и региона region_id (необязательный параметр):
    http://api.vk.com/method/database.getCities?v=5.5&country_id=1&region_id=1045244&offset=0&need_all=1&count=1000

    Возвращаемые данные для каждого населенного пункта могут также содержать следующие параметры:
    area — название района (провинции и т. д.)
    important равное «1» — обозначение крупных городов, появляется только при использовании параметра need_all

    Внимание! Некоторые регионы могут не содержать населенных пунктов (или сами являться населенными пунктами, как я понял).

    Коллизии

    Некоторые полученные значения могут содержать спецсимволы, теги (например и
    ).

    Updated

    Не обязательно использовать хак cookie, для получения результата. Как подсказал пользователь uh_zuh, документирован параметр lang ( например lang=ru).

    Updated 2

    Практика показала, что параметр lang не функционирует для многих языков.

    Updated 3

    Как и обещал, полный дамп:
    Актуальные версии на GitHub

    SQL дамп в формате PostgreSql
    Yandex Disk
    Google Drive
    SQL дамп в формате MySql
    Yandex Disk
    Google Drive
    Дамп в формате CSV
    Разделитель — точка с запятой (;), с заголовком столбца, данные в двойных кавычках(«)
    Yandex Disk
    Google Drive
    Разделитель — запятая (,), с заголовком столбца, данные в двойных кавычках(«)
    Yandex Disk
    Google Drive

    Названия переведены на: Русский, Украiнский, Белорусский, Английский, Испанский, Португальский, Немецкий, Французский, Итальянский, Польский, Японский, Литовский, Латышский, Чешский
    234 страны
    3 721 регион
    2 246 813 населенных пункта

    Источник

    База стран и городов

    Самая полная собираемая и обновляемая база данных стран и городов с административным делением на районы, области, регионы с географическими координатами. База доступна для скачивания и посредством API запросов. База стран и городов дополнительно содержит информацию о временной зоне в данном городе, о телефонном номере. Для большинства стран доступна информация об автомобильном номере, соответствующем данному региону. В базе поле capital содержит информацию о городе, который является соответственно или столица страны или областной или районный центр. В настоящий момент база содержит:

    • Стран: 254
        Список стран, содержащих города
      • Соединенные Штаты [201 412]
      • Россия [147 805]
      • Китай [62 636]
      • Индонезия [54 412]
      • Германия [49 164]
      • Франция [44 254]
      • Италия [33 482]
      • Мексика [33 362]
      • Филиппины [27 951]
      • Испания [24 791]
      • Нигер [24 041]
      • Украина [22 308]
      • Перу [20 032]
      • Пакистан [19 046]
      • Таиланд [18 715]
      • Соединенное Королевство [18 177]
      • Мьянма [17 309]
      • Бразилия [17 073]
      • Сьерра-Леоне [14 650]
      • Беларусь [14 211]
      • Индия [13 435]
      • Мадагаскар [12 440]
      • и другие.
    • Областей(регионов,штатов): 8 427
    • Районов(внутри областей): 56 547
    • Городов(населенных пунктов): 1 359 750
    • Районов в крупных городах: 1 125
    • Диапазонов IP адресов: 18 228
    • IP-адресов: 2 583 419 526
      Скрипты, входящие в комплект автоматически обновляют диапазоны IP адресов.

    Заполнение координат городов:

    • По большим городам из 16613 нет координат у 3 (0% нет)
    • По крупнейшим из 6597 нет координат у 0 (0% нет)

    Заполнение телефонных кодов городов:

    • По большим городам из 16613 нет кодов у 9919 (59% нет)
    • По крупнейшим из 6597 нет кодов у 2426 (36% нет)

    Заполнение почтовых индексов городов:

    • По большим городам из 16613 нет индексов у 6800 (40% нет)
    • По крупнейшим из 6597 нет индексов у 1291 (19% нет)

    Структура таблиц базы данных:

    Страны — country

    Поле Тип Null По умолчанию Комментарии
    name varchar(64) Нет Название страны
    fullname varchar(64) Нет Полное название страны
    english varchar(64) Нет Англоязычное название
    id char(2) Нет Двухсимвольный код страны;
    country_code3 char(3) Нет Трехсимвольный код страны
    iso char(3) Нет Код по ISO
    telcod char(4) Нет Телефонный код страны
    location char(10) Да NULL Часть света
    capital int(10) Нет Код города — столицы страны, ссылка на таблицу city

    Области — area

    Поле Тип Null По умолчанию Комментарии
    id int(10) Нет
    name varchar(64) Нет Название
    okrug varchar(64) Нет Название округа в который входит данный регион
    autocod varchar(21) Нет Автомобильный код
    capital int(10) Нет Областной центр, ссылка на таблицу city
    english varchar(64) Нет
    iso varchar(3) Нет
    country char(2) Нет

    Города — city

    Поле Тип Null По умолчанию Комментарии
    id int(10) Нет
    name varchar(64) Нет
    area int(10) Нет
    telcod varchar(24) Нет Телефонный код города
    latitude float(10,6) Да NULL широта
    longitude float(10,6) Да NULL долгота
    time_zone float(6,2) Да NULL Временная зона, отклонение времени от GMT(UTC)
    english varchar(64) Нет Английское название или транскрипция
    rajon int(10) Нет 0
    country char(2) Нет Двухсимвольный код страны
    sound char(4) Нет A000 функция soundex от транслита name для быстрого поиска по созвучию
    level tinyint(4) Нет 0 1-Областной центр или город с населением более 1 млн.человек,
    2-Районный центр или город с населением более 100тыс.человек,
    3-Город с населением более 15тыс.человек,
    4-Деревня/станица/хутор с населением менее 15тыс.человек
    ISO varchar(3) Нет
    vid tinyint(3) Нет 0 1-город, 2-поселок, 3-село, 4-деревня, 5-станица, 6-хутор
    post varchar(256) Нет 0 Почтовый код (Индекс)

    Районы области — rajon

    Поле Тип Null По умолчанию Комментарии
    id int(10) Нет
    name varchar(64) Нет
    area int(10) Нет
    country char(2) Нет
    capital int(10) Нет Код районного центра
    english varchar(64) Нет

    Районы города — rajon_city

    Поле Тип Null По умолчанию Комментарии
    id int(10) Нет
    name varchar(128) Нет Название района в городе
    city int(10) Нет 0 Код города
    english varchar(64) Нет
    parent int(10) Нет 0 Ссылка на родительский район города

    Список POLYGON — координаты окружающих район в городе, город, область, регион

    Данный объект пока в режиме тестирования

    Соответствие IP и страны/города — geo__base

    Поле Тип Null По умолчанию Комментарии
    long_ip1 bigint(20) Нет Начало диапазона
    long_ip2` bigint(20) Нет Конец диапазона
    country char(2) Нет Код страны
    city varchar(64) Нет 0 Код города
    upd datetime Нет актуальность
    oper int(10) unsigned Нет 0 Код оператора по таблице oper

    Диапазоны IP адресов и их whois — geo__ip

    Поле Тип Null По умолчанию Комментарии
    long_ip1 bigint(20) Нет Начало диапазона ip адресов
    long_ip2 bigint(20) Нет Конец диапазона ip адресов
    whois text Нет данные Whois
    upd datetime Нет актуальность

    Телефонные операторы, в т.ч. сотовые — oper

    Поле Тип Null По умолчанию Комментарии
    id int(10) unsigned Нет
    name varchar(512 Нет
    mobile tinyint(3) unsigned Нет 0 1 — мобильный оператора
    mvno int(10) unsigned Нет 0 1- Виртуальный оператор
    country char(2) Нет
    mnc int(3) unsigned Нет 0
    brand varchar(64) Нет Бренд оператора
    url varchar(128) Нет сайт оператора
    deleted timestamp Да дата удаления

    Данные об MNP переносах — phone

    Поле Тип Null По умолчанию Комментарии
    phone varchar(15) Нет Номер телефона
    oper int(10) unsigned Да дата удаления
    upd date Да дата добавления
    country char(2) Нет Страна
    mnc int(3) Нет Код MNC оператора
    region int(10) unsigned Да NULL Регион, если не указано, брать по def коду
    oper_from int(11) Да NULL откуда перешел, если не указано, брать по def коду

    Телефонные номера, коды и регион привязки — telcod

    Код региона’,

    Поле Тип Null По умолчанию Комментарии
    okrug int(10) Нет Регион, округ по таблице area
    city int(10) unsigned Нет Код города
    oper int(10) unsigned Нет Код оператора
    deffrom varchar(15) Нет Начало диапазона
    defto varchar(15) Нет Конец диапазона
    country char(2) Нет Страна

    Синонимы, альтернативные названия и названия на иностранных языках — sinonim

    Поле Тип Null По умолчанию Комментарии
    id int(11) Нет
    name varchar(255) Нет Текущее актуальное название
    sinonim varchar(255) Нет Альтернативное название или перевод
    tbl varchar(64) Нет Таблица(city, area, . ) или пусто для всех
    lang int(11) Нет 0 Цифровой код языка по таблице lang (https://ru.wikipedia.org/wiki/Коды_языков)
    tbl_id int(11) Нет 0 id в таблице tbl при переименовании

    Имена полей когда соответствуют имени таблицы — это id-код по этой таблице

    Также база данных, по вашему желанию, может содержать дополнительные таблицы: Выделенные диапазоны IP адресов по городам, телефонные номерные емкости, закрепленные за странами и городами, и другие. Тестовая база и структура таблиц в формате SQL здесь.

    Чтобы не возникло желания спарсить базу стран и городов, заранее информирую, что при превышении количества запросов с одного IP, Ваш IP-адрес блокируется на сутки. Сайт через большинство бесплатных прокси серверов недоступен.

    Источник

    Оцените статью