четверг, 8 декабря 2016 г.

База данных стран, регионов и городов / Хабрахабр

Пользователь
4,8
рейтинг
6 декабря в 18:35

Разработка → База данных стран, регионов и городов recovery mode

База данных стран, регионов и городов под лицензией MIT. База данных представлена в виде sql скрипта для PostgreSQL. При запуске скрипт создает необходимые таблицы и заполняет их данными. База данных содержит:
Страны 218
Регионы 1611
Города 17287
Страна Количество регионов Количество городов
Абхазия 1 10
Австралия 9 208
Австрия 9 186
Азербайджан 3 76
Албания 12 41
Алжир 1 10
Ангола 1 7
Ангуилья 1 2
Андорра 8 19
Антигуа и Барбуда 1 8
Антильские о-ва 1 1
Аргентина 24 184
Армения 12 247
Арулько 1 1
Афганистан 1 6
Багамские о-ва 1 1
Бангладеш 1 2
Барбадос 1 1
Бахрейн 1 2
Беларусь 6 153
Белиз 1 1
Бельгия 11 203
Бенин 1 1
Бермуды 1 1
Болгария 29 371
Боливия 8 34
Босния/Герцеговина 3 26
Ботсвана 1 3
Бразилия 21 99
Британские Виргинские о-ва 1 1
Бруней 1 1
Буркина Фасо 1 2
Бурунди 1 1
Бутан 1 1
Валлис и Футуна о-ва 1 1
Вануату 1 2
Великобритания 17 468
Венгрия 23 83
Венесуэла 23 72
Восточный Тимор 1 1
Вьетнам 6 11
Габон 1 2
Гаити 6 6
Гайана 1 1
Гамбия 1 1
Гана 1 1
Гваделупа 2 2
Гватемала 11 20
Гвинея 1 2
Гвинея-Бисау 1 1
Германия 16 2080
Гернси о-в 1 1
Гибралтар 1 6
Гондурас 1 1
Гонконг 1 1
Гренада 1 1
Гренландия 1 1
Греция 51 333
Грузия 2 66
Дания 16 318
Джерси о-в 1 1
Джибути 1 1
Доминиканская республика 1 1
Египет 8 10
Замбия 1 3
Западная Сахара 1 2
Зимбабве 1 2
Израиль 8 71
Индия 22 63
Индонезия 1 1
Иордания 1 1
Ирак 3 3
Иран 12 16
Ирландия 26 131
Исландия 11 17
Испания 52 590
Италия 100 814
Йемен 1 2
Кабо-Верде 1 1
Казахстан 19 251
Камбоджа 1 1
Камерун 4 4
Канада 13 248
Катар 1 1
Кения 5 12
Кипр 2 6
Кирибати 1 9
Китай 30 255
Колумбия 19 54
Коморские о-ва 1 1
Конго (Brazzaville) 1 3
Конго (Kinshasa) 1 1
Коста-Рика 7 32
Кот-д''Ивуар 1 2
Куба 15 69
Кувейт 2 2
Кука о-ва 1 1
Кыргызстан 5 73
Лаос 1 1
Латвия 1 57
Лесото 1 1
Либерия 1 1
Ливан 1 2
Ливия 2 2
Литва 1 81
Лихтенштейн 6 6
Люксембург 4 38
Маврикий 1 1
Мавритания 1 1
Мадагаскар 1 6
Македония 24 28
Малави 1 1
Малайзия 1 1
Мали 1 3
Мальдивские о-ва 1 1
Мальта 1 40
Марокко 2 2
Мартиника о-в 1 1
Мексика 32 170
Мозамбик 1 4
Молдова 1 61
Монако 1 7
Монголия 1 3
Мьянма (Бирма) 1 2
Мэн о-в 1 6
Намибия 1 3
Науру 1 3
Непал 1 1
Нигер 1 5
Нигерия 1 2
Нидерланды (Голландия) 12 280
Никарагуа 4 7
Новая Зеландия 14 21
Новая Каледония о-в 1 1
Норвегия 20 248
Норфолк о-в 1 1
О.А.Э. 2 2
Оман 1 3
Пакистан 1 3
Панама 5 13
Папуа Новая Гвинея 1 2
Парагвай 5 9
Перу 23 62
Питкэрн о-в 1 1
Польша 60 325
Португалия 21 277
Пуэрто Рико 1 15
Реюньон 1 1
Россия 78 2533
Руанда 1 1
Румыния 42 264
Сальвадор 6 6
Самоа 1 2
Сан-Марино 3 4
Сан-Томе и Принсипи 1 1
Саудовская Аравия 1 6
Свазиленд 1 1
Святая Люсия 1 1
Святой Елены о-в 1 1
Северная Корея 1 1
Сейшеллы 1 1
Сен-Пьер и Микелон 1 1
Сенегал 1 1
Сент-Винсент и Гренадины 1 1
Сент Китс и Невис 1 1
Сербия 3 20
Сингапур 1 1
Сирия 1 1
Словакия 7 16
Словения 3 12
Соломоновы о-ва 1 1
Сомали 1 1
Судан 1 8
Суринам 1 1
США 53 1591
Сьерра-Леоне 1 1
Таджикистан 5 58
Таиланд 3 3
Тайвань 1 1
Танзания 1 4
Того 1 1
Токелау о-ва 1 1
Тонга 1 1
Тринидад и Тобаго 1 1
Тувалу 1 1
Тунис 1 1
Туркменистан 5 40
Туркс и Кейкос 1 2
Турция 36 37
Уганда 2 2
Узбекистан 13 108
Украина 26 765
Уругвай 11 20
Фарерские о-ва 1 1
Фиджи 1 2
Филиппины 1 7
Финляндия 7 301
Франция 93 546
Французская Гвинея 1 3
Французская Полинезия 1 1
Хорватия 12 32
Чад 1 3
Черногория 1 7
Чехия 15 116
Чили 13 63
Швейцария 26 222
Швеция 22 285
Шри-Ланка 1 1
Эквадор 13 28
Экваториальная Гвинея 1 1
Эритрея 1 1
Эстония 1 39
Эфиопия 1 3
ЮАР 1 1
Южная Корея 17 31
Южная Осетия 1 2
Ямайка 1 1
Япония 38 122
@VLegostaev
карма
1,0
рейтинг 4,8
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (36)

  • 0
    Геопозиции?
    • 0
      Отсутствуют, судя по SQL-файлу на гитхабе
      id, region_id, name, crt_date
  • +1
    и чем это лучше geonames?
    • 0
      Я чет в geonames нашел только названия стран, на английском. :)

      Так чем geonames лучше? :)
      • 0
        Очень плохо искали!
        Вот Вам пакет для РНР: http://pear.php.net/manual/en/package.webservices.services-geonames.examples.php
        Там Вы найдете примеры и с языком, и с городами.
        Вот пример инфы по городу: http://api.geonames.org/search?q=london&maxRows=10&username=demo
        Вот то же самое, но на русском: http://api.geonames.org/search?q=london&maxRows=10&username=demo&lang=ru
        Так чем geonames хуже? :)
        • 0
          Это мне по памяти вытягивать все города из него? :)
          • 0
            Нет, я привел пример города потому что Вы сказали, что их там нет.
            А функционала там гораздо больше, почитайте. Ничего помнить не придется ;)
            • 0
              Таки, да, есть города.
              Но оно все какое-то не юзер-френдли, согласитесь :)
              Ну и нету регионов. :)
              • 0
                Я конечно не профессиональный географ, но мне кажется, что это области (регионы), поправьте, если я не прав:
                http://api.geonames.org/children?geonameId=2017370&username=demo&lang=ru

                А насчет «юзер-френдли», то мне кажется, что Вам скорее не понятно, чем не удобно и Вы, как я заметил, не стараетесь найти решение.
        • 0
          Сравнение лучше хуже в этом случае не совсем подходит.

          Предлагаю взглянуть на проблему под другим углом. Есть люди которые владеют geonames. Например завтра они захотят ввести плату за сервис в том или ином объеме. Или просто начнут отключать тех или иных пользователей аргументирую это теми или иным правилами.

          Т.е риск существует. Вроде мы как бы все пользуемся и нам кажется, что это все постоянно, но в любой момент по независимым от нас (разработчиков) причинам все может измениться.

          Я полагаю, что для того, чтобы различные ИТ продукты могли развиваться нормально и независимо — должен существовать выбор.

          Например все справочники должны быть доступны в открытом доступе каждому разработчику.
          В этом случае каждый сможет выбрать что ему удобнее. Например, если хочется подключил через geonames, возникли трудности, скачал справочник и развернул его у себя.
          • 0
            Вообще-то, там можно скачать ВСЮ базу в zip, абсолютно открыто и никто ее уже не заберет, и будет она Ваша навеки, больше, чем эта в сотни раз. И ее можно развивать. Не понимаю смысла изобретать велосипед.
            • 0
              Возможно в будущем появится человек который возьмет и добавит в geonames связку городов и областей.

              Возможно в будущем появятся люди которые сделают базу данных которая будет отражать административно территориальное деление каждой страны в соответствии с ее законами.

              Будет очень здорово если эта база будет доступна каждому разработчику без любых ограничений.

              Я полагаю, что лучше всего для этого подходит лицензия MIT.
              • 0
                Первое: Не надо добавлять, связку города-области потому, что они там уже есть. Почитайте мой коммент выше, там даже ссылка есть.
                Второе: У них и так открытая лицензия. http://www.geonames.org/about.html
                Вы наверное не поняли принцип: база бесплатная, Вы можете скачать ее всю! Логин и ограничение на вебсервис у них есть просто потому, что им нужно содержать как-то сервера и регламентировать нагрузку на них! Не нравится — скачайте локально и юзайте как хотите. Более того, там есть комьюнити, где Вы можете внести свою лепту в проект и сделать его лучше.
                Странно, что Вы выдумываете нелепые надуманные оправдания своему «велосипеду», и не желаете разобраться в вопросе.
                • 0
                  База распространяется под лицензией Creative Commons Attribution 3.0 License. (https://creativecommons.org/licenses/by/3.0/)

                  В этой лицензии есть раздел Under the following terms.

                  В котором есть требования указывать автора. (см appropriate credit). В противном случае Вы не имеете права ее использовать. Если в комьюнити люди участвуют в создании базы данных, то они так же являются соавторами. Соответственно вы должны их всех указать.

                  У Вас есть этот список авторов?
                  Возможно он где-то есть на сайте?

                  А вот без этого списка лицензия Ваша не имеет силы. Т.е если Вы просто скачаете и установите, то формально Вы нарушаете. А в некоторых странах за это ответственность очень серьезная.

                  Более того когда вы будет обрабатывать файлы, то Вы будете видоизменять информацию. Например если Вы хотите преобразовать ее в SQL формат. Чисто формально Вы должны указать все сделанные преобразования, иначе лицензия не действительна. (см indicate if changes were made)

                  Такой тип лицензирования создает массу проблем. Поэтому я полагаю что для таких объектов как справочники лучше всего подходит лицензия MIT.

                  Возможно через api их сайта предоставляется больше информации чем содержится в файле RU.zip. К сожалению Ваш запрос вернул следующий ответ:

                  the daily limit of 30000 credits for demo has been exceeded. Please use an application specific account. Do not use the demo account for your application.

                  В файле RU.zip, RU.txt возможно для каких-то объектов и задана связь, но к сожалению мне таких не попалось.
                  • 0
                    Вы сильно заблуждаетесь.
              • 0
                Наивно полагать, что Ваш статичный файлик на хабре через полгода-год будет хоть сколько-то актуальным. Думаете, его содержимое надежнее, чем сервис, который поддерживает огромное комьюнити и которое можно синхронизировать и хранить локально?
                • 0
                  Файл находится на github. Git предоставляет достаточно широкий функционал.

                  Административно территориальное деление стран меняется не так часто.
  • +1
    Зачем это? Для формы регистрации в собственной принципиально новой социальной сети? Геонэймс ведь есть…
    • 0
      судя по соседним значениям — ради вот этого:

      insert into region(id, country_id, name) values (87, 1, 'Кировоградская обл.');
      insert into region(id, country_id, name) values (88, 0, 'Крым АР.');
      insert into region(id, country_id, name) values (89, 1, 'Луганская обл.');
  • –1
    В Украине 26 областей? В Черногории тоже далеко не 1 община. Многовато ошибок :(
    • 0
      еще и половины областей нет:)
  • 0
    Ого, обычно только при маппинге перечислений видишь нуль в Id
    insert into country(id, name) values (0, 'Россия');  

    Спасибо
  • 0
    insert into country(id, name) values (1, 'Украина');
    insert into region(id, country_id, name) values (88, 1, 'Крымская обл.');

    эээ, ну оно, конечно, верно что Крым в составе Украины, но это не "Крымская область" ну никак.
  • –2
    О Крым, как и должно быть, в Украине, а не на Росии!
    • –1
      Должно быть для кого?
  • 0
    Из Вашей статьи узнал, что появилась страна Арулько. :)

    Ну и данная база практически не интегрируема с другими базами. :)

    П.С.
    Как планируются обновления? :)
    • 0
      Веки живи, век учись.
  • 0
    Арулько? Из Jagged Alliance 2? Серьёзно? Может быть, всё таки Аруба?
    • 0
      И уже если внесли Арулько, могли бы хоть столицу правильно указать — Медуна. :)
    • 0
      справедливости ради на сайте мчс
  • –2

    Очередной хабрасуицид?

    • +3
      Не так все грустно. Посмотрим на ситуацию с другой стороны.

      Я написал автомат, который собрал все эти данные. Судя по всему он так же нашел такие страны как Арулько. Но тем не менее, он собрал данные о большом количестве стран, областей и городов.

      Возможно в будущем появится человек, который решит уточнить этот список и как результат этого появиться более точная база данных. Лицензия MIT вполне позволяет это сделать.

      И таким образом появится бесплатный offline справочник, который будет доступен каждому разработчику.
      • 0
        Я написал автомат, который собрал все эти данные.

        А вот можно, пожалуйста, подробнее об автомате? Откуда собирали данные, принцип сбора? Например, почему именно такая ошибка и следовательно какие ошибки ещё ожидать?
        И таким образом появится бесплатный offline справочник, который будет доступен каждому разработчику.

        Справочник написать можно, только, что за задачи он должен выполнять? То есть вообще не понимаю, что должно быть в ТЗ данного справочника.
      • 0
        Я написал автомат, который собрал все эти данные.
        Действительно, соглашусь с azsx, описание «автомата», который эти данные собирает, было бы гораздо более интересной и содержательной темой. А так вы вывалили сырые данные, непонятно по какому алгоритму собранные. Как следствие — доверять этим данным нельзя по определению.
      • 0
        Может дополнить справочник полями
        — альтернативное название, например Башкортостан
        — английское название
        — родное название
        И файлик распотрошить на страны?
  • 0
    Как насчёт поддержки актуальности?

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.



Original Page: https://habrahabr.ru/post/316976/



Sent from my iPad

Комментариев нет:

Отправить комментарий