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

liosha
Подскажи, пожалуйста, interchange_3d сейчас работает или нет ? Менял в конфиге на единицу - ничего не изменилось, 3D в GME отсутствует.

И ещё просьба - можно ли при объединении дорог merge_roads также объединять WayID всех дорог в одну строку через запятую. Пример из полиша

; WayID = 190078819:0

хотя там три дороги и два моста объединяются в одну полилинию.

liosha А как включить вывод отладочной информации? А то никак не получается сконвертировать карту Китая, просто вываливается на стадии загрузки границы и молчок.

Kostik
Граница Китая незамкнута, и в принципе не будет замкнута пока никто с ними не свяжется и не удалит спорные территории (“исключительную экономическую зону”), нарисованные “пунктиром”.
Там надо удалить из рилейшена указанные “пунктиры”, а на выкинутые линии навесить какой-нибудь boundary=administrative, чтобы они радовались при взгляде на мапник. Вообще проблема эта тонкая и, возможно, её следует решить через DWG. Бодаться с китайскими маперами из-за этого неохота.

Сейчас никак

Нет, не работает

Сейчас нельзя. Поменять на первый взгляд несложно, но может посыпаться что-то зависимое, так что лучше не трогать :slight_smile:

Ага, забыл. Добавил.

Хорошая мысль, спасибо. Учту.

Граница скачивается нормально (получается одна замкнутая линия), я проверял этот момент в JOSM. Сам файл Китая вырезал из целиковой азии по poly с офсетом. Много уже чего попробовал. Не помогло.

Сделал. Только задавать нужно массивом:


ru-mo: [ 102269, 51490 ]

спасибо, буду пробовать

еще про getbound.pl: папочку lib было бы логичнее искать в папке с бинарником, а не в текущей

liosha Столкнулся с проблемой собрать карту Эстонии, собирается но вылетает на стадии Processing coastlines…
Файл получается, но без дорожного графа. Грешил на навителовский конфиг, но та жа ерунда и с cfg/default.cfg. Проверил береговую линию на предмет ошибок, не нашёл. Эстония и раньше собиралась без моря, а теперь и вовсе перестала.

Кто разбирается в YAML, подскажите чего оно ругается. Меняю в файле ways-roads-navitel.yml

motorway_link: &fast_link
    selector: if
    condition: incline = up|down|1|-1|yes
    then: 0x09
    else: 0x0b
trunk_link: *fast_link

получаю ошибку

Loading configuration...
YAML Error: Invalid anchor
   Code: YAML_PARSE_ERR_BAD_ANCHOR
   Line: 93
   Document: 4
 at C:/Perl/site/lib/YAML/Loader.pm line 233.

93-я строка как раз приходится на вышеуказанный код “…&fast_link”.

https://rt.cpan.org/Public/Bug/Display.html?id=68352

Sergey Astakhov
Спасибо, сработало.

chnav, видимо, символ _ в якорях не допускается.

Kostik, с каким сообщением вылетает?

liosha Без сообщений, просто вылет как и в случае с китаем. Эстония с гислаба, граница скачана getbound`ом, пробовал вырезать из европы, результат тот же.
PS: На тех же конфигах Латвия и Литва собираются без проблем, а с Эстонией засада.

Скачал 770 версию:

svn checkout --revision 770 http://osm2mp.googlecode.com/svn/trunk/ osm2mp

и Эстония собралась. :expressionless:
PS: Попробую последующие ревизии по порядку чтобы понять где возникла ошибка.

Вылетело на версии 772, дальше проверять не стал. Т.е. имхо ошибка появилась после 772 версии.

liosha
Спасибо за шикарную опцию. Сделал себе алиас для Северного Казахстана

# KZ-NORTH: [ KZ-AKM, KZ-KUS, KZ-PAV, KZ-SEV, KZ-ASTANA ]
KZ-NORTH: [ 215743, 1288730, 215772, 215760, 3087155 ]

getbound revision 36 вылез странный баг геометрий в точке соединения трех областей.

Ссылка на место http://www.openstreetmap.org/#map=9/52.3219/65.8095

liosha
Подскажи, пожалуйста, как в конфиге можно сделать грузовые ограничения по типу старого конвертера:

# Maxweight, Maxheight
- condition:
    - maxheight = [123]|[012]\.\d*|3\.[0-5]\d*
  action:
    - action: modify_road
      routeparams: '.,.,.,.,.,.,.,.,.,.,.,1'

- condition:
    - maxweight = [1-7]|[0-6]\.\d*|7\.[0-5]\d*
  action:
    - action: modify_road
      routeparams: '.,.,.,.,.,.,.,.,.,.,.,1'

Это была очень полезная фича, я всячески рекламировал ОСМ среди дальнобойщиков :slight_smile:

(added)
Может всякие access-флаги (bus, hgv и пр.) тоже вынести в отдельные переменные, т.е. routeparams как одна строка воспринимается как default-значение, а явно прописанные переменные будут иметь приоритет ? Вроде


      type:
        tertiary:
          selector: if
          condition: inside_city
          then: '3,1,0,0,0,0,0,0,0,0,0,0'
          else: '4,1,0,0,0,0,0,0,0,0,0,0'
      access_hgv:
        condition:
          or:
            - ~hgv = no|0
            - maxheight = [123]|[012]\.\d*|3\.[0-5]\d*
            - maxweight = [1-7]|[0-6]\.\d*|7\.[0-5]\d*
        then: 1
        else: 0

liosha
Ещё просьба в список todo:
action: write_poi при обработке полилиний ставить точку не в центр “полигона”, а на середину полилинии.
Т.е. взять половину длины и отложить её вдоль.

Или сделать доп.опцию action: write_poi_middle, а в конфигах использовать кому как нравится. Может так даже лучше т.к. не все замкнутые линии используются как полигоны (roundabout и пр.).

akks В exe`шной версии osm2mp в комплекте идёт osmconvert.exe, а 64битной версии его не попадалось? Я так понял что 32битная не позволяет работать с файлами больше 2Гб.