Comments 57
Буду очень благодарен, если кто-нибудь подскажет, где можно взять подобную базу данных. Нужен список городов Земли (штук 10000-50000) с координатами, высотой и часовым поясом.
напишите парсер с настройками. т.е. чтобы можно было бы указать диапазон.
я помогу выкачать.
Что то не увидел
в 5 раз :)
я помогу выкачать.
— часовой пояс
— используется ли летнее/декретное время
Что то не увидел
— ориентировочное количество жителей (обычно, сильно заниженное)
в 5 раз :)
и правда, просто парсер самому писать не когда, а так присоединюсь к парсингу, я думаю если наберется человек 20 то проблема уже станет разрешимой.
хм... попробую написать парсер... недавно нечто подобное писалось... но тут конечно посложнее будет)
Сейчас пробую на свой сервер залить используя wget. Пока всё идет хорошо.
Если на сайте нет защиты от скачивания всего-всего, то к утру будет все населенные пункты России.
У меня же на сервере можно будет запустить парсер. Лишь бы скачалось...
Если на сайте нет защиты от скачивания всего-всего, то к утру будет все населенные пункты России.
У меня же на сервере можно будет запустить парсер. Лишь бы скачалось...
думаю скачается, кудаж оно денется )
Процесс пошел. 500 страниц закачались за 20 минут.
Надеюсь, сайт примет меня за ГуглБота :-)
Утром напишу о результатах.
Надеюсь, сайт примет меня за ГуглБота :-)
Утром напишу о результатах.
Тоже сразу захотелось скачать - подумал, что главное - "не спугнуть" :) Как докачаете страницы - выложите где-нибудь исходники? А потом уж совместными усилиями распарсим.
Больше половины населенных пунктов России закачалось. К вечеру будут готовы остальные. Дальше я захвачу весь мир :-)
По данных Гугла всего на сайте около 1.2 млн страниц.
По данных Гугла всего на сайте около 1.2 млн страниц.
Часовой пояс есть на странице населенного пункта (а не в общей таблице):
Time zone (est) UTC+3(+4DT)
С количеством жителей что-то непонятное... В разных странах ошибки разные.
Time zone (est) UTC+3(+4DT)
С количеством жителей что-то непонятное... В разных странах ошибки разные.
Когда-то я качал данные для Америки и Европы (или только Германии, не помню). С каких-то других сайтов, но слово Gazetteer узнаю. Размеры огромные (ок. гигабайта), формат, мягко говоря, странный. Так ничего с этим и не сделал. Я к тому, что эти базы данных почти наверняка можно найти.
Давно ищу... Мне даже такие подробные не нужны. Самая большая проблема с часовым поясом. На данный момент у меня есть база координат 1300 городов по России (многие с численностью населения из недавней переписи, русские названия) и 4500 городов остального мира. Это всё собиралось из разных источников (парсилось). Готовую базу данных нигде не встречал.
нашел в перу замечательный город:
http://www.fallingrain.com/world/PE/8/Nahui.html
http://www.fallingrain.com/world/PE/8/Nahui.html
Странные карты на этом сайте координат. Впечатление, что они создавались на основе карты начала прошлого века. Просто деревни и города до 50х годов там отмечены хоть как-то, а после не отмечены даже водохранилища. Сужу на основе своего города, которому уже 50 лет.
Для моего родного города есть неточность. Точнее, там есть ещё один город с такими же данными, но название у него не Ижевск, а Ишевск.
Есть такое. Для моего города там штук 10 вариантов названия, но все они объединены по координате и файл описания один, как и для Ижевска (Izhevsk.html).
Берется база GeoIP от MaxMind
по ней можно узнать имя города\регион и координаты.
А далее есть википедия.
Я в данный момент обьдиняю эти две базы, плюс КЛАДР и гугл.
Получается гдето 4.2 крупных обьектов на територии россии( в зоне дейсвия КЛАДР) и 4059 вики статей..
Для большинсва обьектов есть история, часовой пояс, население, в том числе и по национальностям.. блин да что же я расказываю - это же ВИКИ!
Сейчас все еше идет сведение таблиц, через недельку будет финал.
Будет актуально - выложу
по ней можно узнать имя города\регион и координаты.
А далее есть википедия.
Я в данный момент обьдиняю эти две базы, плюс КЛАДР и гугл.
Получается гдето 4.2 крупных обьектов на територии россии( в зоне дейсвия КЛАДР) и 4059 вики статей..
Для большинсва обьектов есть история, часовой пояс, население, в том числе и по национальностям.. блин да что же я расказываю - это же ВИКИ!
Сейчас все еше идет сведение таблиц, через недельку будет финал.
Будет актуально - выложу
Еще есть алфавитный указатель наименований географических объектов и таблица численность и размещение населения на сайте переписи 2002 года. Таблица есть в виде excel-документа.
MaxMind для России я бы не стал использовать... Неизвестно, откуда они это всё насобирали. По их данным город Нижний Новгород называется Novgorod и находится где-то рядом с Владивостоком.
Ваш БД очень интересна. Какая информация туда в итоге буедт входить? Будут ли названия на русском/английском?
MaxMind для России я бы не стал использовать... Неизвестно, откуда они это всё насобирали. По их данным город Нижний Новгород называется Novgorod и находится где-то рядом с Владивостоком.
Ваш БД очень интересна. Какая информация туда в итоге буедт входить? Будут ли названия на русском/английском?
Базу я собирал для проекта типа МирТесен.
Все на русском языке.
Названия МаксМинда уточнялись через КЛАДР, координаты через гугль-геокодинг.
(если точнее - плясало все от КЛАДРа)
Проблема в том что великого города Рыбинкс( там проживает отписавшийся тут Vass) в гугле НЕТ.
В Максе есть его координаты. В кладре - название.
Как информация будет входить...ммм
Иеархия адресов до улиц, вики инфо, координаты. Названия на русском, но только Россия
Все на русском языке.
Названия МаксМинда уточнялись через КЛАДР, координаты через гугль-геокодинг.
(если точнее - плясало все от КЛАДРа)
Проблема в том что великого города Рыбинкс( там проживает отписавшийся тут Vass) в гугле НЕТ.
В Максе есть его координаты. В кладре - название.
Как информация будет входить...ммм
Иеархия адресов до улиц, вики инфо, координаты. Названия на русском, но только Россия
да, было бы отлично!
а откуда, если не секрет, вы брали данные по прогнозам?
А кто-нибудь собирается скачивать оттуда весь мир? ;) А то я подумываю этим заняться.
Через пару часов у меня закончится загрузка российских населенных пунктов. Смогу выложить архив. Поставлю на загрузку всё остальное.
Просьба ко всем заинтересованным лицам:
Пока ничего не мешает мне продолжать качать страницы сайта. Озадачтесь, пожалуйста, парсером. Структуру парсить не нужно, т.к. она получается довольно логичная:
/world/{код_страны}/{номер_региона}/{название_населенного_пункта}.html
Просьба ко всем заинтересованным лицам:
Пока ничего не мешает мне продолжать качать страницы сайта. Озадачтесь, пожалуйста, парсером. Структуру парсить не нужно, т.к. она получается довольно логичная:
/world/{код_страны}/{номер_региона}/{название_населенного_пункта}.html
Сейчас занят проектами, в конце этой недели, начале следующей могу написать парсер, если до этого времени он еще будет нужен обращайтесь.
Отлично, давайте организуемся. Предлагаю такой принцип: выкачиваем страницы как есть (без картинок) и сохраняем их в сыром виде. Потом сливаем и распарсиваем.
Я сделал список стран, которые надо выкачать, прямо в виде команд wget. Размещен тут: http://www.plaxo.ru/fallingrain (plaxo тут не при чем - просто первое что подвернулось). Давайте там организовываться.
С такой формой выкачивания все согласны?
Я сделал список стран, которые надо выкачать, прямо в виде команд wget. Размещен тут: http://www.plaxo.ru/fallingrain (plaxo тут не при чем - просто первое что подвернулось). Давайте там организовываться.
С такой формой выкачивания все согласны?
Как вам данные http://www.geonames.org?
Я докачаю RS и буду разбираться с geonames. А дальше посмотрим.
Я докачаю RS и буду разбираться с geonames. А дальше посмотрим.
Хабрахабр великий ресурс! Больше года я искал эту информацию. И вот! :)
так насколько эта база лучше хуже чем та, которую надо скачивать и парсить?
у меня древнерусская привычка иметь самое большое и лучшее :)
у меня древнерусская привычка иметь самое большое и лучшее :)
Люди!
есть уже готовая база, с координатами и почти актуальным населением даже
http://www.world-gazetteer.com/wg.php?x=…
Примечание по координатам: напирмер в гугл-мапс цифры вида 5079 надо преобразовывать в 50.79, то есть последние две всегда после запятой
есть уже готовая база, с координатами и почти актуальным населением даже
http://www.world-gazetteer.com/wg.php?x=…
Примечание по координатам: напирмер в гугл-мапс цифры вида 5079 надо преобразовывать в 50.79, то есть последние две всегда после запятой
ох! Как раз искал именно это! А какая в итоге самая полная база с русскоязычными названиями?
Если нужна совсем полная и хорошая база с русскоязычными названиями, то придется объединять несколько баз. В базе geonames названия на нескольких языках указаны для небольшого количества объектов. Но никто не мешает приделать к ней русские/олбанские/кетайские названия по координатам...
а откуда взять эти названия? :-/
Имеется в наличии вот эта база:
http://www.geodatasource.com/cities-gold.html
Именно ГОЛД ЭДИШН
GeoDataSource™ Cities Database Gold Edition
Рар-Архив 57 метров (экстракт 400 метров)
http://www.geodatasource.com/cities-gold.html
Именно ГОЛД ЭДИШН
GeoDataSource™ Cities Database Gold Edition
Рар-Архив 57 метров (экстракт 400 метров)
можешь куда-нибудь закачать? интересно на нее взглянуть ;)
На сайте дают скачать небольшой образец.
Залил сюда: http://ifolder.ru/5294563
GeoDataSource™ Cities Database Gold Edition (та которая стоит на сайте $1000+)
Сразу предупреждаю: база краденная и соответственно пиратская ну и т.д. и т.п.
GeoDataSource™ Cities Database Gold Edition (та которая стоит на сайте $1000+)
Сразу предупреждаю: база краденная и соответственно пиратская ну и т.д. и т.п.
Хорошая штука, но база от geonames.org лучше в некоторых мелочах. Например, у geonames есть информация о переходе на летнее время. И русскоязычных названий гораздо больше. Есть корректная информация о численности населения. Суммарный объем данных 750 Мб.
Большое спасибо! Давно искала что-нибудь такое.
кстати просто большой список (без координат) есть тут http://speakrus.ru/dict/kladrw.zip
Да, списки хорошие, но, к сожалению? в них используется какая-то мутная нестандартная транслитерация и неизвестно вообще есть ли в ней твёрдое правило. Так что под сомнением то, можно ли это использовать в публичном проекте.
Я-то было уже транслитератор сделал, который по госту работает, а тут такая лажа. Кто-нибудь продвинулся в этом вопросе?
$from = array('/shh/', '/Shh/', '/jo/', '/zh/', '/jj/', '/kh/', '/ch/', '/sh/', '/eh/', '/yu/', '/ya/', '/Jo/', '/Zh/', '/Jj/', '/Kh/', '/Ch/', '/Sh/', '/Eh/', '/Yu/', '/Ya/', '/a/', '/b/', '/v/', '/g/', '/d/', '/e/', '/z/', '/i/', '/k/', '/l/', '/m/', '/n/', '/o/', '/p/', '/r/', '/s/', '/t/', '/u/', '/f/', '/c/', '/"/', '/y/', "/'/", '/A/', '/B/', '/V/', '/G/', '/D/', '/E/', '/Z/', '/I/', '/K/', '/L/', '/M/', '/N/', '/O/', '/P/', '/R/', '/S/', '/T/', '/U/', '/F/', '/C/', '/Y/');
$to = array('щ', 'Щ', 'ё', 'ж', 'й', 'х', 'ч', 'ш', 'э', 'ю', 'я', 'Ё', 'Ж', 'Й', 'Х', 'Ч', 'Ш', 'Э', 'Ю', 'Я', 'а', 'б', 'в', 'г', 'д', 'е', 'з', 'и', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'ц', 'ъ', 'ы', 'ь', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'З', 'И', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Ц', 'Ы');
$text = 'Varim shhi';
ksort($from);
ksort($to);
$text = preg_replace($from, $to, $text);
echo $text;
Я-то было уже транслитератор сделал, который по госту работает, а тут такая лажа. Кто-нибудь продвинулся в этом вопросе?
$from = array('/shh/', '/Shh/', '/jo/', '/zh/', '/jj/', '/kh/', '/ch/', '/sh/', '/eh/', '/yu/', '/ya/', '/Jo/', '/Zh/', '/Jj/', '/Kh/', '/Ch/', '/Sh/', '/Eh/', '/Yu/', '/Ya/', '/a/', '/b/', '/v/', '/g/', '/d/', '/e/', '/z/', '/i/', '/k/', '/l/', '/m/', '/n/', '/o/', '/p/', '/r/', '/s/', '/t/', '/u/', '/f/', '/c/', '/"/', '/y/', "/'/", '/A/', '/B/', '/V/', '/G/', '/D/', '/E/', '/Z/', '/I/', '/K/', '/L/', '/M/', '/N/', '/O/', '/P/', '/R/', '/S/', '/T/', '/U/', '/F/', '/C/', '/Y/');
$to = array('щ', 'Щ', 'ё', 'ж', 'й', 'х', 'ч', 'ш', 'э', 'ю', 'я', 'Ё', 'Ж', 'Й', 'Х', 'Ч', 'Ш', 'Э', 'Ю', 'Я', 'а', 'б', 'в', 'г', 'д', 'е', 'з', 'и', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'ц', 'ъ', 'ы', 'ь', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'З', 'И', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Ц', 'Ы');
$text = 'Varim shhi';
ksort($from);
ksort($to);
$text = preg_replace($from, $to, $text);
echo $text;
Вот так выходит:
$lenName = strlen($arrRows[1]);
$trans0 = array (
"-Moscow" => "-Московский",
"Moscow" => "Москва",
"Queen Victoria Sea" => "Море Королевы Виктории",
"Africa" => "Африка",
"Vulcan" => "Вулкан",
"Blecna" => "Блесна",
"Волга-" => "Волго-",
"-Baltic" => "-Балтийский",
"Pokhicstnevskiy Rayon" => "Похвистневский район",
"Il’icehvka" => "Ильечевка",
"Fuyuansanjiao Zhou" => "Большой Уссурийский"
);
$trans1 = array (
"Shch" => "Щ",
"shch" => "щ",
"Yaye" => "Яе",
"yaye" => "яе",
"Yuye" => "Юе",
"yuye" => "юе",
"Yoye" => "Йое",
"yoye" => "йое",
"nnyy" => "нный",
"skyy" => "ский",
"chnyy" => "чный",
"lyy" => "лый",
"vyy" => "вый" );
$trans2 = array (
"que" => "к",
"Eye" => "Ее",
"eye" => "ее",
"Iye" => "Ие",
"iye" => "ие",
"iya" => "ия",
"Oye" => "Ое",
"oye" => "ое",
"Uye" => "Уе",
"uye" => "уе",
"Aye" => "Ае",
"aye" => "ае",
"yye" => "ые",
"yya" => "ия",
'"ye' => 'ъе',
"”ye" => "ъе",
'"ya' => 'ъя',
"”ya" => "ъя",
"''ye" => 'ъе',
"''ye" => "ъе",
"''ya" => 'ъя',
"''ya" => "ъя",
'’ye' => 'ье',
"'ye" => "ье",
'’ya' => 'ья',
"'ya" => "ья" );
$trans3 = array (
"ck" => "х",
"ca" => "ца",
"Cz" => "Ч",
"Ch" => "Ч",
"ch" => "ч",
"jh" => "ж",
"ji" => "жи",
"Kh" => "Х",
"kh" => "х",
"Oy" => "Ой",
"oy" => "ой",
"Qu" => "Ку",
"Ts" => "Ц",
"ts" => "ц",
"Sh" => "Ш",
"sh" => "ш",
"Zh" => "Ж",
"zh" => "ж",
"Yu" => "Ю",
"yu" => "ю",
"Ya" => "Я",
"ya" => "я",
"Yo" => "Йо",
"Jo" => "Йо",
"yo" => "йо",
"Ye" => "Е",
"yy" => "ий",
"iy" => "ий",
"Je" => "Е",
"je" => "е",
"Ja" => "Я",
"ja" => "я",
"ia" => "ия",
"''" => "ъ",
);
$trans4 = array (
"a" => "а",
"b" => "б",
//"c" => "ч",
"d" => "д",
"e" => "е",
"f" => "ф",
"g" => "г",
"h" => "х",
"i" => "и",
"j" => "й",
"k" => "к",
"l" => "л",
"m" => "м",
"n" => "н",
"o" => "о",
"p" => "п",
"r" => "р",
"s" => "с",
"t" => "т",
"u" => "у",
"v" => "в",
"w" => "в",
"x" => "кс",
"y" => "ы",
"z" => "з",
"A" => "А",
"B" => "Б",
"D" => "Д",
"E" => "Е",
"F" => "Ф",
"G" => "Г",
"H" => "Х",
"I" => "И",
"K" => "К",
"L" => "Л",
"M" => "М",
"N" => "Н",
"O" => "О",
"P" => "П",
"R" => "Р",
"S" => "С",
"T" => "Т",
"U" => "У",
"V" => "В",
"W" => "В",
"Y" => "Ы",
"Z" => "З",
'"' => 'ъ',
"”" => "ъ",
"’" => "ь",
"'" => "ь" );
$trans5 = array (
"рний" => "рный",
"яний" => "яный",
"сний" => "сный",
"одний" => "одный",
"ведний" => "ведный",
"ений" => "еный",
"ёний" => "ёный",
"емний" => "емный",
"ёмний" => "ёмный",
"брий" => "брый",
"Старий" => "Старый",
"старий" => "старый",
"стий" => "стый",
"ежний" => "ежный",
"ёжний" => "ёжный",
"ольний" => "ольный",
"ельний" => "ельный" );
for($i=0; $i<$lenName; $i++) {
$arrRows[1] = strtr($arrRows[1], $trans0); }
for($i=0; $i<$lenName; $i++) {
$arrRows[1] = strtr($arrRows[1], $trans1); }
for($i=0; $i<$lenName; $i++) {
$arrRows[1] = strtr($arrRows[1], $trans2); }
for($i=0; $i<$lenName; $i++) {
$arrRows[1] = strtr($arrRows[1], $trans3); }
for($i=0; $i<$lenName; $i++) {
$arrRows[1] = strtr($arrRows[1], $trans4); }
for($i=0; $i<$lenName; $i++) {
$arrRows[1] = strtr($arrRows[1], $trans5); }
$ruName = $arrRows[1];
$lenName = strlen($arrRows[1]);
$trans0 = array (
"-Moscow" => "-Московский",
"Moscow" => "Москва",
"Queen Victoria Sea" => "Море Королевы Виктории",
"Africa" => "Африка",
"Vulcan" => "Вулкан",
"Blecna" => "Блесна",
"Волга-" => "Волго-",
"-Baltic" => "-Балтийский",
"Pokhicstnevskiy Rayon" => "Похвистневский район",
"Il’icehvka" => "Ильечевка",
"Fuyuansanjiao Zhou" => "Большой Уссурийский"
);
$trans1 = array (
"Shch" => "Щ",
"shch" => "щ",
"Yaye" => "Яе",
"yaye" => "яе",
"Yuye" => "Юе",
"yuye" => "юе",
"Yoye" => "Йое",
"yoye" => "йое",
"nnyy" => "нный",
"skyy" => "ский",
"chnyy" => "чный",
"lyy" => "лый",
"vyy" => "вый" );
$trans2 = array (
"que" => "к",
"Eye" => "Ее",
"eye" => "ее",
"Iye" => "Ие",
"iye" => "ие",
"iya" => "ия",
"Oye" => "Ое",
"oye" => "ое",
"Uye" => "Уе",
"uye" => "уе",
"Aye" => "Ае",
"aye" => "ае",
"yye" => "ые",
"yya" => "ия",
'"ye' => 'ъе',
"”ye" => "ъе",
'"ya' => 'ъя',
"”ya" => "ъя",
"''ye" => 'ъе',
"''ye" => "ъе",
"''ya" => 'ъя',
"''ya" => "ъя",
'’ye' => 'ье',
"'ye" => "ье",
'’ya' => 'ья',
"'ya" => "ья" );
$trans3 = array (
"ck" => "х",
"ca" => "ца",
"Cz" => "Ч",
"Ch" => "Ч",
"ch" => "ч",
"jh" => "ж",
"ji" => "жи",
"Kh" => "Х",
"kh" => "х",
"Oy" => "Ой",
"oy" => "ой",
"Qu" => "Ку",
"Ts" => "Ц",
"ts" => "ц",
"Sh" => "Ш",
"sh" => "ш",
"Zh" => "Ж",
"zh" => "ж",
"Yu" => "Ю",
"yu" => "ю",
"Ya" => "Я",
"ya" => "я",
"Yo" => "Йо",
"Jo" => "Йо",
"yo" => "йо",
"Ye" => "Е",
"yy" => "ий",
"iy" => "ий",
"Je" => "Е",
"je" => "е",
"Ja" => "Я",
"ja" => "я",
"ia" => "ия",
"''" => "ъ",
);
$trans4 = array (
"a" => "а",
"b" => "б",
//"c" => "ч",
"d" => "д",
"e" => "е",
"f" => "ф",
"g" => "г",
"h" => "х",
"i" => "и",
"j" => "й",
"k" => "к",
"l" => "л",
"m" => "м",
"n" => "н",
"o" => "о",
"p" => "п",
"r" => "р",
"s" => "с",
"t" => "т",
"u" => "у",
"v" => "в",
"w" => "в",
"x" => "кс",
"y" => "ы",
"z" => "з",
"A" => "А",
"B" => "Б",
"D" => "Д",
"E" => "Е",
"F" => "Ф",
"G" => "Г",
"H" => "Х",
"I" => "И",
"K" => "К",
"L" => "Л",
"M" => "М",
"N" => "Н",
"O" => "О",
"P" => "П",
"R" => "Р",
"S" => "С",
"T" => "Т",
"U" => "У",
"V" => "В",
"W" => "В",
"Y" => "Ы",
"Z" => "З",
'"' => 'ъ',
"”" => "ъ",
"’" => "ь",
"'" => "ь" );
$trans5 = array (
"рний" => "рный",
"яний" => "яный",
"сний" => "сный",
"одний" => "одный",
"ведний" => "ведный",
"ений" => "еный",
"ёний" => "ёный",
"емний" => "емный",
"ёмний" => "ёмный",
"брий" => "брый",
"Старий" => "Старый",
"старий" => "старый",
"стий" => "стый",
"ежний" => "ежный",
"ёжний" => "ёжный",
"ольний" => "ольный",
"ельний" => "ельный" );
for($i=0; $i<$lenName; $i++) {
$arrRows[1] = strtr($arrRows[1], $trans0); }
for($i=0; $i<$lenName; $i++) {
$arrRows[1] = strtr($arrRows[1], $trans1); }
for($i=0; $i<$lenName; $i++) {
$arrRows[1] = strtr($arrRows[1], $trans2); }
for($i=0; $i<$lenName; $i++) {
$arrRows[1] = strtr($arrRows[1], $trans3); }
for($i=0; $i<$lenName; $i++) {
$arrRows[1] = strtr($arrRows[1], $trans4); }
for($i=0; $i<$lenName; $i++) {
$arrRows[1] = strtr($arrRows[1], $trans5); }
$ruName = $arrRows[1];
Sign up to leave a comment.
Географические координаты всех городов на Земле