Конвертация OSM в Navitel

Вот последнее описание http://forum.openstreetmap.org/viewtopic.php?pid=402569#p402569

Впрочем я уже понял что без liosha эту проблему не решить.

Там граница в виде мультиполигона с отдельными outer, а точка центра стоит только в одном из них. В этом ли дело я не знаю. Так то улицы без домов ищутся нормально.
Поправил мультиполигон, стало искаться:
http://sendfile.su/946857

а можете в нм2 переделать?

Если эта бага и правда не только мне мешает, вот решение:
Актуально для osm2mp rev.777
Строка 1618:
было

 if ( $info->{name} ) {

стало

  if ( $flags->{addressing} && $info->{name} ) {

Строка 1637:
было

 # load road

стало

 # load road
if( !$flags->{routing}){#by hkm
  output_road( \%params);
  return;
}#by hkm

Строка 2083:
было

 return action_write_line(@_)  if !$flags->{routing};

стало

 return action_write_line(@_)  if !($flags->{routing} || $flags->{addressing});

Оформил-бы как патч, но не осилил где это в TortoriseSVN, а отдельную утилку искать лень.

Какая конкретно бага имеется ввиду и что конкретно дают эти изменения. У меня просто нет времени заниматься экспериментами.
PS: Может проще было бы выложить готовый файл? Сравнить я могу и в Beyond Compare.

http://navitel.osm.rambler.ru/countries/Russia-osm-nm2/Russia-YAN-osm-nm2.zip

hkm
Спасибо, работает как надо.

Kostik
Баг с поиском улиц проявляется при разнесении роутинга и видимой части карты в разные файлы, из которых потом компилируются nm2.
Адресация улиц отсутствует в нормальных, видимых файлах (которые с адреской и без роутинга) и наоборот - наличествует в роутинговых файлах где её быть не должно, причем в ущербном виде, без указания города, региона и страны. Всё это видно если открыть mp-файлы любого региона с рамблера.

Если файл один (полный и с адреской, и с роутингом) то баг не проявляется

Я поначалу тоже был введён в заблуждение т.к. всегда компилировал единый файл. Как только вынес роутинг в отдельный файл - баг проявился. Т.е. действительно проблема оказалась в osm2mp, а не настройках конвертации.

Тогда осталось донести эту информацию до liosha.

PS: И ещё бы этот патч к новой версии прикрутить.
И выложите кто нибудь готовый пропатченый файл, а то у меня с этими изменениями постоянно сыпется ошибка:


Use of uninitialized value in join or string at osm2mp.pl line 1615.

Пожалуйста, chnav.

Kostik, файл полностью http://yadi.sk/d/jgdA7kH1JmPBu

Спасибо, попробовал похоже ошибка так и должна вылазить, конвертируется нормально, хотя скорость конвертирования по субъективным ощущениям стала медленей.

dimuzz
Заметил что никак не конвертируются place=allotments, предлагаю их конвертировать как подписи на карте, я так понимаю что это в nodes-common.yml по аналогии с place=locality


- condition:
    - place = allotments
    - only_node
  action:
    - action: write_poi
      type: 0x2800
      level_h: 1

Только насчёт type: 0x2800 не уверен.

А как бы это решение прикрутить в osm2mp64.exe ?

а что, только liosha может провести данную операцию?

Нужно просить akks сделать такую сборку.
semyon
Он автор данного скрипта, да и данная реализация патча от hkm хоть и работает но уже вижу что скорость заметно упала (надо будет провести сравнительные испытания с засеканием времени, чтобы быть объективным).

Ничего она не упала, у меня в логи пишется время старта-конца, наоборот получилось “ускорение” 1% - погрешность измерения. Тестировалось на одном и том же OSM-файле.
Я не знаток пёрла но даже по патчу видно ничего ресурсоемкого (циклов, работы со списками и пр.) не добавилось.

Ну значит показалось.

то есть, осталось только написать liosha чтоб заглянул в эту тему и внес изменения в скрипт? правильно я понимаю? могу я написать, но только поздно вечером.

Скорость изменилась скорее всего из-за адресации:

  • в роутинге без адресов слегка должна вырасти
  • в адреске без роутинга должна упасть, т.к. раньше не производился поиск адресов по полигонам городов-регионов и не производилась обработка по классам дорог, аттрибуту routeParams, oneWay и т.д.

По изменению исходного скрипта помочь может только liosha, т.к. только он сейчас имеет права на “запись” в svn-репозиторий.

Сегодня скачал с рамблера новые конвертированные карты Украины… Скажите, это только у меня раньше не отображались синие стрелочки на дорогах с односторонним движением? Теперь отображаются, спасибо, что добавили.
P. S. У меня Навител 8.0

Похоже, побочный эффект моего патча - у дорог в нероутинговых картах начал обрабатываться тег oneway :slight_smile:

Скорее 0x6416 “Частная застройка”. Добавлю (возможно, даже с включением в поиск по НП).