Конвертер OSM -> MP

Проверил, работает без проблем на современных перлах

ХАУ-ТУ


#Настройка osm2mp на Ubuntu server 16.04 с нуля

#большая часть перловых библиотек есть в репозитариях
sudo apt-get install build-essentials unzip libconfig-std-perl libyaml-perl libencode-locale-perl liblist-moreutils-perl libmatch-simple-perl libmath-polygon-perl liblocal-lib-perl libxml-parser-perl libtext-unidecode-perl libjson-perl libtemplate-perl

#запускаем и настраиваем cpan (без рута, библиотеки установятся в домашнем каталоге) 
cpan
...
Would you like to configure as much as possible automatically? [yes] 
...
What approach do you want?  (Choose 'local::lib', 'sudo' or 'manual')
 [local::lib]
...
Would you like me to append that to /home/user/.bashrc now? [yes]
...
>exit

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

#ставим недостающие библиотеки
cpan -i Math::Polygon::Tree
cpan -i Tree::R
cpan -i Geo::Openstreetmap::Parser

#загружаем и распаковываем osm2mp
wget https://github.com/liosha/osm2mp/archive/master.zip
unzip master.zip

#тестируем
cd osm2mp-master
wget http://data.gis-lab.info/osm_dump/dump/latest/RU-IN.osm.bz2
unzip RU-IN.osm.bz2
./osm2mp.pl -o ./result.mp ./RU-IN.osm

К сожалению, на винду не пробовал все это ставить, но раз уж вы поставили перловый вариант и разобрались с cpan, до победы должно быть не далеко
А что за ошибка-то, кстати?

Помнится, давно это было - в том файле конфигурации на который ругается Perl удалил последнюю пустую строчку. И заработало.
Что до последней версии, то то может поэкспериментируем:

  • Вот архив с Perl64
  • Вот файл с описанием путей
    Папку Perl64 изъять из архива и поместить в корень диска C:
    Открыть свойства компьютера (Система), зайти в дополнительные параметры системы, раздел дополнительно “переменные среды”, в разделе системные переменные - дополняем Path теми путями что указаны в файле описания путей.
    Может быть надо будет перегрузить компьютер.
    Перл установлен методом простого копирования и должен работать.

P.S. только если есть понимание того что делаете. Все делаете на свой страх и риск. Которого практически нет.

Подходит время, заканчивается активность по Ubuntu 12.04. Руки противятся переустановке актуальной версии. Она потянет за собой другой Perl. Припоминаю, что ряд нужных модулей не смог установить. Они конечно устанавливались, но были более свежие и Perl отказывался работать. Пришлось ставить более древнюю систему ради старого Perl со старыми модулями. Какие то модули пришлось ставить вручную. Словом как то помучился, воспоминания не радужные. Хоть и повторил процедуру пару раз. Тут конечно сыграло роль ограниченные знания Linux и Perl.
Уже обдумываю как буду это делать. Жаль что на Ubuntu нельзя просто перенести Perl, как в случае с Windows системой.

Спасибо, попробую как время будет.

Проверил у себя архив вместо своего перла версии 5.16.3, у тебя версия 5.14.3, у меня такого дистрибутива нет.
Пути все прописаны в переменных среды. Но у тебя в архиве не хватает как минимум:
Can’t locate match/smart.pm
Can’t locate match/simple.pm
Can’t locate Config/YAML.pm
поле того как выполнил из командной строки ppm и установил эти пакеты osm2mp.pl запустился.

PS: Пробовал собрать рабочий комплект с последним дистрибутивом с сайта ActivePerl-5.24.1.2402-MSWin32-x64-401627.exe, но там половины нужных пакетов нет.

А какой именно версии? У меня последний так и не хочет работать, все какие-то отсутствующие модули хочет.

Последний доступный. match-smart, match-simple, Config-YAML через ppm устанавливались?

PS: Если не запускается то обычно пишет какого модуля не хватает.

Последний доступный ругается на osm.pm, хотя его нашел и положил аж в две папки lib.

У меня OSM.pm лежит рядом с конвертером.

я наверное совсем лузер.
Скачал архив, распаковал, пути прописал, перегрузился. Скачал последний osm2mp.pl
Запускаю

perl -S osm2mp.pl  --config=cfg-cityguide\cityguide.yml  --mapid="RU-KR (OSM)" --mapname="RU-KR (OSM)" --navitel --nointerchange3d  --nomarine --nodestsigns --shorelines --hugesea=1000000 --background  --bpoly=D:\OSM2MP\poly\RU-KR.poly --transport car d:\osm2mp\osm\RU-KR.osm >d:\osm2mp\mp\RU-KR.mp

Сначала ругался на отсутствие osm.pm - нашел, с помощью Бориса положил в нужное место. Потом ругался на отсутствие osmDB.pm - нашел, положил. Теперь ругается на bzip2.pm.
Хрень полная.

Нашел у Zkir’a какую-то предыдущею версию, 0.9b, она запускается, начинает что-то делать, потом падает:


  ---|   OSM -> MP converter  0.90b   (c) 2008-2010  liosha, xliosha@gmail.com

Loading configuration...  Ok

Processing file d:\osm2mp\osm\RU-KR.osm

Initialising bounds...    207 segments
Loading nodes...          7683950 loaded
Loading relations...      49725 multipolygons
                          186 turn restrictions
                          5 transport routes
                          321 numbered roads
                          5 streets
Loading necessary ways... Can't use string ("63.9545479") as an ARRAY ref while "strict refs" in use at C:/Perl64/site/lib/Math/Polygon/Tree.pm line 366, <IN> line 19325324.

Старая и новая версии не совместимы по конфигам.

Супер. Я, собственно, пытаюсь запустить то, что нашел у ZKir’a - а там вроде как версия конвертера с конфигами совместима.

Хорошо, тогда так: кто может помочь и выложить рабочий вариант (перл вместе с конвертером) для windows 64 битной?
Конфиги я потом буду править постепенно.

Заранее спасибо.

Странно?! У меня Работает. На досуге попробую разобраться.

Насколько я помню Zkir старой версией пользовался, на новую не стал переходить.

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

PS: Кстати getbound последний тоже отличается требованиями к пакетам, а из новинок тока немецкий прокси вижу.

У меня дополнительно к конфигам в osm2mp лежат - https://yadi.sk/d/l-6wNzxF3E5i2C
Давно не сличал. Хотя стоит TortoiseSVN и показывает свежак?!

Раньше репозиторий был на Google, а с некоторых пор переехал на github.

Это давняя проблема. В смысле, современный Math::Polygon и/или Math::Polygon::Tree глючные, нужны давние - 1.01 и 0.041 соответственно. Ранее пробегала ссылка на весь нужный Math.

К вопросу. Ну скрипты, конфиги понятное дело, формируют собственно идеологию конвертации. Что, в каком виде, с какими характеристиками…
А вод версия Perl, доп библиотеки (или как их там назвать) наверное главное что бы работало? Если уж работает, то работает? Или Perl, getbound, доп. библиотеки могут оказывать влияние на выходной материал?
Т.е. могут ли быть различия в итоговых *.mp форматах при конвертации разными версиями Perl, библиотек…?