perl + .osm

Да что ж такое то! Теперь йосм не хочет файл открывать!

Ага, надо вместо обязательно

Ну и вот результат трудов: http://www.openstreetmap.org/browse/changeset/6150621

До сих пор не пойму, что меня торкнуло этим заняться! :slight_smile:

Там много и не по-русски.

Можно как-то по-простому, как сделать чтобы и обычные принты работали, и модуль всё понимал?

Дык я ж говорил как: все промежуточные файлы писать и читать с фильтром :utf8, а результат to_xml писать БЕЗ фильтра.

У меня уже мозг засыпает, пойду и я посплю…

Хотелось бы верить, что все эти проблемы действительно объективные, и иначе как танцем с бубном над работающим в остальных 99 % случаев перлом нормально с этим модулем работать невозможно.

Объективные, объективные :smiley:

Кодировки - это примерно такая же вещь, как указатели в C/C++. Некоторые люди понимают концепцию сразу и без проблем, а до других доходит с большим трудом. Уж насколько в Java простая схема, и то постоянно вызывает проблемы у начинающих… :slight_smile:

Я посмотрел changeset и хочу заметить (совершенно в отрыве от темы), что набор значений тэга принято разделять точками с запятой, а не запятыми :slight_smile:

Не будь эти проблемы объективными, мы бы вообще не знали никаких проблем с кодировками :wink:

Кстати, никто не сравнивал вариант работы с xml через модули Perl с вариантом вызова из perl xmlstarlet ? Что быстрее?

Если ты про source, то к этот конкретный ченжсет его не трогал.

Скажите тогда как мне после чтения из файла через фильтр потом печатать можно было по-русски?

open MYINPUTFILE, ‘<:utf8’, “ru_cs_towns.txt”;
while() {
chomp;
($ru, $cs) = split /:/;
$hash{$cs} = $ru;
print “$cs → $hash{$cs}\n”;
}

Ну в четвёртом же посте написано :slight_smile:

Ещё пачку залил: http://www.openstreetmap.org/browse/changeset/6153635

Так ведь блин одновременно не работает всё равно!

Šumperk → Шумперк
Jaroměř → Яромерж








Чтобы одновременно работало - 23-й пост
http://forum.openstreetmap.org/viewtopic.php?pid=112812#p112812

Можно просто отключить фильтр перед выводом xml-а:
binmode STDOUT;

О, ну вот, это самые крепкие костыли оказались! Заработало :slight_smile:

Предлагаю тебе скопипейстить работающий скрипт на какую-нибудь свою подстраничку на Вики.

Скопипастил:

http://wiki.openstreetmap.org/wiki/User:Ilis/Scripts

Кстати, существует библиотека для правильного расчета расстояний по координатам: GIS::Distance.

Привет, я тут завёл небольшой проектик по приведению территории Украины в порядок. Все исходники лежат здесь: http://github.com/sev-/osm

Там обработка дампов Википедии и работа с OSM XML. Пока оно в зачаточном состоянии, но всё же может кому пригодится.

Eugene