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

Что то я не совсем уверен что собрал как в прошлый раз, забыл как это делал в марте. Но вроде работает, языковые функции пока не проверял. https://yadi.sk/d/6-tzDrr43PuMpD или https://yadi.sk/d/X4XNAgdi3PuMoe

Похоже что всё таки как то не так, размер exe`шника меньше на несколько мегабайт и при запуске с Я.Переводом ругается:


Subroutine init redefined at LangTransform/Equal.pm line 15.
Subroutine init redefined at LangTransform/GmeTable.pm line 20.
Subroutine _make_gme_transformer redefined at LangTransform/GmeTable.pm line 53.
Subroutine _get_iso_tr redefined at LangTransform/Subst.pm line 291.
Subroutine init redefined at LangTransform/Subst.pm line 325.
Subroutine get_transformers redefined at LangTransform/Subst.pm line 337.
Subroutine init redefined at LangTransform/YaTranslate.pm line 28.
Subroutine _set_api_key redefined at LangTransform/YaTranslate.pm line 46.
Subroutine _api_request redefined at LangTransform/YaTranslate.pm line 58.
Subroutine _get_langs redefined at LangTransform/YaTranslate.pm line 73.
Subroutine _make_transformer redefined at LangTransform/YaTranslate.pm line 82.
Subroutine get_transformers redefined at LangTransform/YaTranslate.pm line 110.
Subroutine new redefined at LangTransform/YaTranslate.pm line 140.
Subroutine _get_cache redefined at LangTransform/YaTranslate.pm line 147.
Subroutine set redefined at LangTransform/YaTranslate.pm line 168.
Subroutine get redefined at LangTransform/YaTranslate.pm line 177.

Собирал командой pp osm2mp.pl @pp-opts


И выдаёт такую ошибку:


Use of uninitialized value within %table in substitution iterator at C:/osm2mp/lib/LangTransform/GmeTable.pm line 82.

UPD: Сменил версию Perl на 5.16, ошибка с картинки ушла, но эта осталась:


Use of uninitialized value within %table in substitution iterator at C:/osm2mp/lib/LangTransform/GmeTable.pm line 82.

Простите великодушно дурака старого… что ввел в заблуждение.
Обратил внимание, что у Kostik в строке запуска нет ключа --translit…
Попробовал у себя убрать этот ключ, оставил только --ttable - те буквы, что есть в .yml транслитеровались.
Так что работает транслитерация по таблице, нужно только из вики убрать что она дополнительная.

И вообще, если бы в вики была актуальная информация, описание ключей, примеры запуска - вопросов было бы гораздо меньше.

Кто знает как ключи PAR:Packerа посмотреть? по команде pp --help выдаёт версию тока. У меня почему то не внедряются библиотеки языковых функций при сборке EXEшника.

Ребят, всем привет.
Уже очень давно пользуюсь Лешиным детищем в нашей службе.
Сейчас возникла необходимость вырезать почти все и оставить только здания (их адрес, название) и дороги. Т.е. вырезать леса, реки тротуары и оставить только то, что используется в работе. Понадобилось затем, чтобы объединить несколько городов в одну карту. Но если все эти объекты будут, карта будет весить слишком много.
На вики-странице о конвертере вроде ничего подходящего не нашел.
Вырезать это все из файла вручную и при каждом обновлении карты - извращение еще то. Вырезать в JOSM слой… тоже думаю не поможет.
Так вот, может кто-то уже делал подобное. Поделитесь опытом, буду очень благодарен за помощь.

Оставить в конфигах конвертации только то, что нужно.

Спасибо. Конфиги поменял, которые в cfg-garmin/polish-mp. Просто закомментил то, что не нужно и вроде нормально.

Приветствую!
Подскажите пожалуйста, такая вот проблема выявилась…
osm2mp на домики с номером но без улицы навешивает StreetDesc из названия города, в результате:

  1. Валидатор это пропускает (улица в адресе ведь есть)
  2. В Ситигиде этот дом имеет адрес по городу, что неправильно.

Что убрать в addressing.yml чтобы osm2mp оставлял улицу пустой?
Заранее спасибо.

Это задуманное поведение.
Можно в основных конфигах отключить адресацию для таких домиков

Ну это смотря в каком городе.

А можно попросить чуть подробнее указать, где и что подправить, чтобы адресацию отключить?
Спасибо.

Записать два отдельных условия: для домиков с адресами и без

Конгениально! Я в восхищении, краткость - сестра таланта.
Лёша, если бы в природе существовал актуальный мануал, расписывающий правила и условия, вопросов бы не возникало.
Я правильно понял, что копать нужно в ways-area-common.yml?

- condition:
    - building = *
  action:
    - action: write_polygon
      type: 0x13
      presets: [ building ]
      level_h: 1
    - action: address_poi

и как тут разделить домики с addr:street и без нее?
Спасибо.

Да, вот эту запись разделить на две: одну с addr:street=, другую addr:street!=

Спасибо, попробую.

Вот сделал так:

- condition:
    - building = *
    - addr:street != *
  action:
    - action: write_polygon
      type: 0x13
      presets: [ building ]
      level_h: 1
#    - action: address_poi

- condition:
    - building = *
    - addr:street = *
  action:
    - action: write_polygon
      type: 0x13
      presets: [ building ]
      level_h: 1
    - action: address_poi

один хрен, если в осм у домика нет addr:street, то osm2mp в StreetDesc лепит название города.
Кто может помочь?

presets: [ building ] тоже надо отключить

UPD
Сорри, наврал.
Действительно, при наличии addr:housenumber адрес всегда вычисляется.
Тогда да, конфигами такое не получится

Хм… Если это тот preset для зданий, что в setting-mp.yml, то там только Label, и Floors… не считая ситигидовых фиговин.
Ладно, попробую без presets.

И что тогда делать?

И еще один вопрос:
Если у домика есть набор из addr:housenumber, addr:street и addr:suburb, то в .mp у этого домика StreetDesc получается как “addr:street (addr:suburb)”. В результате валидатор заносит этот домик в ошибки “улица не найдена”.
Это можно вылечить?