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

liosha

А можешь исправить чтобы можно было в параллели несколько процессов с Я.Переводом собирать? SQL же это позволяет?


Processing nodes...
DBD::SQLite::db do failed: database is locked at C:/navitel/lib/SQLite_File.pm line 319.
DBD::SQLite::db do failed: database is locked at C:/navitel/lib/SQLite_File.pm line 319.
DBD::SQLite::db do failed: database is locked at C:/navitel/lib/SQLite_File.pm line 319.


yatr: failed request zh-en for 4хП╖хо┐шИНце╝ at C:/navitel/lib/LangTransform/YaTranslate.pm line 109.
Wide character in warn at C:/navitel/lib/LangTransform/YaTranslate.pm line 109.
yatr: failed request zh-en for 4хП╖хо┐шИНце╝ at C:/navitel/lib/LangTransform/YaTranslate.pm line 109.
yatr: failed request zh-en for Border Mongolia - China at C:/navitel/lib/LangTransform/YaTranslate.pm line 109.
yatr: failed request zh-en for Wukui Expressway at C:/navitel/lib/LangTransform/YaTranslate.pm line 109.
Wide character in warn at C:/navitel/lib/LangTransform/YaTranslate.pm line 109.
yatr: failed request zh-en for чЯ│ц▓│хнРхНлчФЯхнжцаб at C:/navitel/lib/LangTransform/YaTranslate.pm line 109.
Wide character in warn at C:/navitel/lib/LangTransform/YaTranslate.pm line 109.
yatr: failed request zh-en for чЯ│ц▓│хнРхНлчФЯхнжцаб at C:/navitel/lib/LangTransform/YaTranslate.pm line 109.
Wide character in warn at C:/navitel/lib/LangTransform/YaTranslate.pm line 109.

Теоретически да, но тогда сильно просядет скорость, потому что отключится всё кеширование.
Проще для каждого потока использовать отдельный кеш, см --lt-yatr-cache-dir

И чего ему надобно?
Сделал файл AZ.yml

#### test

--- Azerbaijan
---

Ə: A
ə: a

запускаю с ключами --translit --ttable=AZ.yml
он ругаецца:

Loading configuration...
YAML Error: Expected separator '---'
   Code: YAML_PARSE_ERR_NO_SEPARATOR
   Line: 1
   Document: 2
 at YAML/Loader.pm line 81.

— должен быть до комментария

Леша, я пробовал вообще без комментария, т.е. первой строкой было — Azerbaijan, второй опять —.
Все равно такая же ругань на разделитель.
Вариант с таблицей GME также не работает, правда ругани нет, но и результата тоже. И там более непонятно как файл .dat оформлять…

А там случаем bom в файл не пролез? В yaml его быть не должно.

Для GME можно ориентироваться на файл с польским языком

Лёша, действительно был BOM в yaml. Я его убрал, osm2mp ругаться перестал на AZ.yml, но и результата тоже нет. По прежнему, буква Ə транслитеруется в @…
С файлом для GME такая же история - не ругается, но и не использует…
Что еще можно предпринять?

Тоже заметил такое. Несколько лет назад, когда данная фича только была реализована, она работала, а как то не так давно пробовал использовать и не получилось.

А можно какой-то небольшой пример для воспроизведения?

UPD. Поправил парсер gme-таблиц, должно работать.

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

А с yaml’ом что? Тоже не парсится?

Что то я не совсем уверен что собрал как в прошлый раз, забыл как это делал в марте. Но вроде работает, языковые функции пока не проверял. 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 оставлял улицу пустой?
Заранее спасибо.

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

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