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

На будущее:
Чтобы понять кто и куда долбится, есть замечательная утилитка strace, под ней запускаем что-либо и потом через grep разгребаем логи. За $ sudo bash надо отрывать руки. Массивчик @INC обычно распечатывается следом и там видно, где оно пытается искать, если этого списка нет - значит что-то не так, выглядит это примерно так: (@INC contains: /etc/perl /usr/local/lib/i386-linux-gnu/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/i386-linux-gnu/perl5/5.20 /usr/share/perl5 /usr/lib/i386-linux-gnu/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl .)

Поправил немного инструкцию
Удалил то что не выполнял
sudo bash не выполнял точно :slight_smile:

И все таки не устроило что пришлость дебиан взводить.
Попробывал еще раз минт помучить.

Снес файл настроек .cpan
перелогинился и запросе cpan типа установки выбрал sudo.
И выполнил install модулей по списку в инструкции.
Большинство конечно сказало что они установлены, но пара установилось заново.
И о чудо пошло без ошибок.
Поли файл получаю

Ок двигаем дальше.
Не могу скачать Пару границ. :frowning:
Как быть если граница мультиполигон из разных линий с разными id?
Конкретно это Астана и Алматы с границами из кусков.

Использовать id отношения.

Если не качается. то возможно надо исправить в OSM. И почитайте что такое мультиполигон.

Конкретно это номера релейшенов что пытаетесь скачать.

Ну вот они, эти отношения.
Атма-Ата: http://api.openstreetmap.org/api/0.6/relation/2465058/full
Астана: http://api.openstreetmap.org/api/0.6/relation/3087155/full

Спасибо. Чего то вылетело из памяти что у релейшенов тоже есть id
Теперь качается

Как как я пытаю гармин то попробовал сразу же протестировать эту возможность. Перегон в шейпы для гармин мап креатора.
Шейпы получились. Но здесь засада.
Креататор не хочет их понимать

Вывод креатора

Building Product <test OSM>...

Building ast...
Importing addr_pseudoroads.shp...
Imported 0 areas, 0 lines, and 0 points.
Importing areas.shp...
Imported 0 areas, 0 lines, and 0 points.
Importing lines.shp...
Imported 0 areas, 0 lines, and 0 points.
Importing points.shp...
Imported 0 areas, 0 lines, and 0 points.
Importing roads.shp...
Imported 0 areas, 0 lines, and 0 points.
ERROR: Error creating map image.
The map is empty!  Was any input data provided?
C:\projects\map-create\MPC_MapCreator.cxx - 810

Или нужно что то еще настраивать при выводе шейпов?
Конфиг osm2mp для шейпов по дефолту.
Сам osm2mp последний только сегодня с свн слил

UPD. Попробовал залить эти шейпы в QGIS, Он их тоже не распознал :frowning: . Не выдал никаких результатов для отображения

А что сам конвертер пишет при конвертации? Может он просто вылетел с ошибкой и не закончил…

Я написал тут скриптик для пакетной обработки.
Пришлось добавить паузу чтоб увидеть вывод процесса…
В общем вот

  ---|   OSM -> MP converter  1.03   (c) 2008-2013 liosha, xliosha@gmail.com

Loading configuration...

Loading OSM data from file astana.osm...

Initialising bounds from file astana.poly...
  590 segments

Loading search areas...
  2 cities
  0 districts
  0 restricted areas
  3 settlement areas

Processing relations...
  283 turn restrictions
  0 destination signs
  0 houses with associated street
  69 road ways with ref
  0 transport stops

Processing nodes...
  15 POI written
  2128 POI loaded for addressing
  0 building entrances loaded
  33 main entrances loaded

Processing ways...
  1910 POI written
  386 lines written
  27670 polygons written
  7276 roads loaded
  0 coastlines loaded

Writing rest POIs...
  886 POI written

Processing coastlines...
  0 areas
Merging roads...          864 merged
Detecting road nodes...   12419 found
Splitting roads...        89 self-intersections, 10347 long roads, 37 barriers
Removing U-turns...       1030 restrictions added
Writing roads...          Sort subroutine didn't return single value at /home/dansit/osmdata/osm2mp/lib/WriterMPC.pm line 330.
Press [Enter] key

Сама команда которая выполняется
perl osm2mp/osm2mp.pl --config=osm2mp/cfg/garmin-mpc.cfg --bpoly=astana.poly --default-country=KZ astana.osm --textfilter=PrepareCP1251

А ещё сам astana.osm скинь плиз

Вот ссылка на файл
https://yadi.sk/d/_D50VMOB3MfwhB

Полиш с него выходит нормально

На всякий случай

perl -v

This is perl 5, version 22, subversion 1 (v5.22.1) built for x86_64-linux-gnu-thread-multi
(with 58 registered patches, see perl -V for more detail)

Copyright 1987-2015, Larry Wall

Поправил

Итак шейпы получил. Прогнал через МПС.
Он выдал только одну ошибочку.

Error: Clipping polygon is self intersecting

Clip Poly Src File: C:\Garmin\tst\in\astana\areas.shp, RecNum: 27671

Думаю к osm2mp это не имеет прямого отношения. Хотя конечно любопытно какой такой полигон на карте самопересекается(Полигон покрытия?).
Установил полученное на комп.

Вот как выглядит в мапсорсе

Довольно печально. Кодировка русских надписей не читаема.Ох уж эта виндовая кодировка 1251.
Маршруты ложатся по прямой.
Нет полигона покрытия карты. Выделяется большим квадратом.

:frowning: :frowning:
Проект для МПС настроен также как и для шейпов получаемых через утиль mp2shp

А вообще. Раз тут про МПС зашел разговор то я продолжу в теме связанной с ним здесьhttps://forum.openstreetmap.org/viewtopic.php?id=19144

А в WriterMPC.pm добавил недостающие коды, которые использовал в mp2shp?

Хм. О каких кодах в WriterMPC.pm идет речь?
Можно пояснить.
Для mp2shp редактировал 2 файла - _config и _types.
Для osm2mp я полагал нужно настраивать garmin-mpc.cfg и settings-mpc.yml. Они пока по умолчанию.
Но я думал что по умолчанию роутинг то должен быть все равно. Пусть не правильный, с ошибками но должен быть.

Роутинг работал еще 4 года назад, небыло только запретов и адресов. Посмотри в самом конце WriterMPC.pm, там прописаны коды, которые обрабатываются. Для mp2shp они были в файле _types. Тут Леша прописал только основные коды.

У меня маршрут прокладывает нормально.

Карту Беларуси от 06.09.2017 можно глянуть тут http://borism346.narod.ru/maps/garmin-maps-by.html :).

Можно на гитхаб для getbound пару алиасов добавить для Казахстана?
KZ-AST: 3087156
KZ-ALA: 2465058

Астану с Алмаатой

Можно, только давай тогда уж список всех областей KZ