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

Marych73, желательно, чтобы name и name:en одновременно в label прописывались или добавить переменную Label1=name:en
В общем-то, интересен любой способ, чтобы сохранить в MP инфо на нескольких языках.

Нет никакой разницы какие тянуть данные для Label - https://forum.openstreetmap.org/viewtopic.php?pid=595927#p595927 - я так думаю.

Благодарю за ответ, но я уже читал это и по совету igitov создал переменную в settings-navitel.yml:
################################

Name selection priority

################################

— taglist

label: [ name, loc_name, brand, operator ]
label1: [ ‘name:en’ ]

Теперь работавший ранее батник, выдаёт ошибку:
YAML Error: Invalid element in map
Code: YAML_LOAD_ERR_BAD_MAP_ELEMENT
LINE: 10
Document: 2
at YAML/Loader.pm line 352.

Если убрать строку “label1: [ ‘name:en’ ]”, то всё работает ОК

Попробуйте варианты, сажем:
oldname: [ ‘name:en’ ]
enname: [ ‘name:en’ ]
Вам же не важно как тег будет обзываться.

P.S. А это единственное что вы внесли в конфиги. Или ещё что то, в другие конфигурационные файлы вносили?

label1:        [ 'name:en' ]

Вообще в этой записи нет ошибки. Странно, что конвертер вылетает.

Да, переменную вы ввели, а где пример её использования? Может проблема не в settings-navitel.yml, а в настройках конкретных mp-типов.

Версия 0.90b иногда дает отрицательные значения в RouteParam при modify_road
Кусок кода:
# routeparams
if ( exists $action->{routeparams} ) {
my @rp = split q{,}, $road{ $objinfo{id} }->{rp};
my @mrp = split q{,}, $action->{routeparams};
for my $p ( @rp ) {
my $mp = shift @mrp;
$p = $mp if $mp =~ /^\d$/;
$p = 1-$p if $mp eq q{~};
$p = $p+$1 if $p < 4 && $mp =~ /^+(\d)$/;
$p = $p-$1 if $p > 0 && $mp =~ /^-(\d)$/;
}
$road{ $objinfo{id} }->{rp} = join q{,}, @rp;
}

Поскольку в perl я не сильно разбираюсь, то правильно ли будет добавить $p = 0 if $p < 0 после всех if ?

Доброго дня!
Подскажите пожалуйста, скомпилированной версии можно в качестве конфига давать .yml?
типа "osm2mp64.exe --config=cfg-my\my.yml
Или я многого хочу?
А то екзешник делает .mp, но не так как надо с дефолтным конфигом, а перловая версия - падает либо ругается на нехватку кучи модулей, которые где взять - хз.

Должен подхватывать те же ключи, что и перловый вариант

А установка модулей через cpan (вот как тут http://wiki.openstreetmap.org/wiki/Osm2mp#Windows)) не работает?

Это устарело. Perl шагнул вперед, надо выбирать старенький. Уже и не помню какой - 14-й что ли.

В том то и дело, что перловый вариант конфиги берет, но падает дальше, а екзешник - тоже вроде берет, но ругается на ошибку в конфиге. Вот я и поинтересовался.
Пробовал и актив перл последний, там через ppm модули ставятся, и “землянику”, модули ставил через cpan, один хрен - скрипт падает.

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

ХАУ-ТУ


#Настройка 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 лежит рядом с конвертером.