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

Удали в нём вторую пустую строку.

Потому что там лишняя пустая строка 2.

С SFO.poly помогло, а вот с KDA.poly нет. Тажа ошибка. И как всё таки получить poly файл без инеров?

Удалил не все пустые строки перед кольцами.

Удалить из файла блоки


!№
...
END

Тоже догадался так сделать, но это же вручную всё. А хотелось чтобы getbound в автоматическом режиме.

беглый осмотр исходников показал, что noinner работает только в связке с onering

А с пустой строкой в чём дело? Плагин JOSM эти файлы не открывает без ручной правки.

Там должно быть имя контура

getbound всегда формировал poly с пустыми строками (насколько я помню), просто раньше плагин несколько проще к этому относился

Проверил, так и есть.

обновил getbound в своем репозитории: добавил формат poly-strict, отличается от poly отсутствием пустых строк и заменой ‘-’ на ‘!’ для внутренних контуров

getbound.pl -om poly-strict ...

Спасибо!
Пересобрал exe`шную версию. Вроде работает. Проверял так:
getbound.exe 108082 -onering -noinner -api op_kumi --offset 0.1 -om poly-strict -o RU-KDA.poly

Всем хорошего завершения выходного дня. Может кто подскажет в чём засада.
Запускаю –lt-yatr-key. И парадокс. На Linux перевод идет. А вот на Windows 10 yatr_ka_ru не переводится.
Добавляю приоритеты --lt-priority yatr_ka_ru… Под Linux без проблем. Под Windows выдаёт ошибку:

Loading configuration...
No transformer id=yatr_ka_ru found at C:/Perl64/lib/Getopt/Long.pm line 605.
  • конфиги в Linux и Windows одинаковые
  • на –lt-priority yatr_en_ru или –lt-priority yatr_de_ru ошибку не выдаёт и похоже переводит

Может кто сталкивался? Спасибо.

А какую версию osm2mp вы используете? Если Лёшину, оригинальную ( https://github.com/liosha/osm2mp/ ), то там используется устаревший метод определения языков в ЯПереводчике. Мне это пришлось в свое время допиливать ( https://github.com/cheshire-mouse/osm2mp ), функция _get_langs в YaTranslate.pm

Если коротко, то яндекс возвращает два массива: dirs - направления перевода и langs - языки . Dirs помечен как depricated, надо использовать langs, яндекс умеет переводить между любыми двумя языками из этого массива.

Спасибо! Действительно на Linux сборка ваша. На Windows после переустановки Perl шел прямым путем по линейке liosha/osm2mp…
Теперь проблемы перевода нет. В очередной раз помогли по полной.

Ещё спрошу для общего развития. В теле getbound.pl значится Log::Any::Adapter 0.11 (‘Stderr’) = у меня ничего не установлено. Или значится Math::Polygon::Tree 0.061 qw/ :all / = в PPM был доступен и я установил версию 0.08.
Всё работает. Файлы территории создаются. Следует ли ожидать подводные камни в этом случае?
Или, каковы преимущества getbound.pl в этой сборке https://github.com/cheshire-mouse/osm-getbound ?
Спасибо!

Библиотеки устанавливаю периодически заново, при обновлении perl. Беру те, что есть на текущий момент в репозитариях. Каких-то проблем не заметил, но и глубоких исследований на тему “что могло поменяться” я не проводил.
В getbound я добавлял опцию clip, она объединяет контур, состоящий из нескольких (операция UNION над полигонами). Это удобно, если для области, которая вам нужна, нет единого отношения. В остальном - фиксы по-мелочам и алиасы.

Помню как на заре была проблема с версиями отдельных модулей. В этот раз на удивление прошло как по маслу.
К вопросу. В этот раз поставил ActivePerl-5.20.3.2004-MSWin32-x64-300558. Порадовал. Все необходимые по умолчанию модули доступны в PPM. Но вот Math::Clipper отсутствует.

Прошу разъяснений и помощи!
Не могу создать poly-файл грницы со смещением (offset).
Раньше создавались без проблем, а сейчас ни в какую.
Может есть у кого готовое решение или это непорядок в моей системе или проект OSM уже не позволяет это сделать?

PS: Надоело создавать файлы вручную… :frowning:

А в чем заключается “сейчас ни в какую”?