osmareatag - плагин для osmosis для добавления тегов на базе геометрии

У дороги, но не у линии.

Да, у дорог есть отличия и в названиях, и в освещениях, но у линий это всё очень часто не отмечено, так что линий, пересекающих населенные пукты, тьма.

Ну это просто нехватка информации, рано или поздно её придётся добавить. Хороший повод добавить эти случаи в твой валидатор.
Данный плагин новую информацию не привносит, только переводит из одной формы в другую.

срабатывает не везде, пример населенный пункт Скоропусковский, Московская область, Сергиево-Посадский район. В нас.пункте нет наименований улиц и там плагин не работает.

А что именно не работает? Проставление адресов у POI? Или что-то другое?

Проставление адресов у POI. В этом населенном пункте нет названий улиц и вместо адреса вписывается ${addr:street} как текст адреса, ну и соответственно mkgmap не меняет название улицы и на карте у точки остается в адресе ${addr:street} как имя улицы.

Еще просьба, если можно, сделать проставление адресных атрибутов addr:country и addr:city на здания в населенных пунктах.
Объясняю, Mkgmap проставляет эти атрибуты, но он берет их из admin_level, а у некоторых (я подсчет не вел, но это есть и много) маперы уже прописали эти теги и указали в них имя населенного пункта из place (а оно отличается от имени указанном в admin_level) и соответственно не попадают в индексацию (нет адресного поиска по этим адресам). Если привести все данные к одному виду, то задав всем place (населенным пунктам) admin_level=11 или admin_level=7 все адреса индексировались бы.
А то сейчас place= Вологда, admin_level= городской округ Вологда (это еще хорошо, можно отрезать надпись городской округ),
а как быть place=Петрозаводск, admin_level= Петрозаводский городской округ (здесь отрезание городского округа не поможет, так как нет совпадения Петрозаводск и Петрозаводский).
И еще чтобы можно было указать для какой addr:country это срабатывало не трогая другие addr:country
В теме https://forum.openstreetmap.org/viewtopic.php?id=9249&p=15 сообщение 370 я описываю как борюсь с адресацией, но у меня плохо получается (локально с Россией вроде все хорошо, а вот если делать карту для бывшего СССР не выходит), весь цикл создания карты для Garmin описан мной в приведенной теме с 14й страницы.
Если можете, помогите пожалуйста с адрессацией для Garmin пользователей.

Логика с отрезанием из admin_level у вас какая-то странная.

Почему, странная? Mkgmap присваивает admin_level8 (или 6 или 4) статус city, и получается населенный пункт с именем “городской округ Вологда”, если в стиле Mkgmap я отрезаю в имени "городской округ " остается только “Вологда” и это имя соответствует имени place “Вологда”.
И теперь все здания с указанным addr:city=Вологда и без указанного addr:city на территории данного admin_level индексируются и в поиске на приборе введя название города Вологда я нахожу эти адреса. Если не отрезать, то здания с указанным addr:city=Вологда в адресный поиск не попадают. Я понимаю, что это не правильно и ищу выход. На пример присваивая всем city и town - admin_level=7 (это на локальных данных в компьютере, а не во всей базе ОСМ) willage и hmlet - admin_level=10, isolated_dwelling и allotments - admin_level=11 и тогда Mkgmap их индексирует и тогда если в этих населенных пунктах есть здания с указанными номерами домов и улицами, то они попадают в адресный поиск на приборе.
Что я делаю не так? И как сделать адресный поиск с помощью программы Mkgmap для приборов Garmin?
Пожалуйста, подскажите, помогите, если можете.
И еще почему приходится отрезать или замещать на сокращенное название - в приборе не умещается.

addr:city должно наследоваться от полигона place, а не административной границы.

Подскажите пожалуйста, как это сделать в программе Mkgmap, она скачивается вместе со стилем default http://www.mkgmap.org.uk/download/mkgmap.html . Какие изменения надо сделать в стиле, чтобы addr:city наследовался от полигона place, а не административной границы.

Не в курсе.

Подскажите пожалуйста делаю все так же как и в примере tag-poi-addr.xml, после конвертиру osm.pbf в osm, и после смотрю редактором и вижу подобное









почему то переменная addr:street не раскрылась

Выше Eugeny_B про это же писал.
Без изменения кода плагина можно индекс для зданий по другому формировать, сделать два индекса (с addr:street и без) и обрабатывать их по отдельности.
Либо можно подправить код плагина и при отсутствии данных просто не добавлять тег с переменной. Как лучше сделать?

Вы меня простите малограмотного, но я бы хотел плагин чтобы он проставил имя улицам и домам (на примере Скоропусковского улицам name=Скоропусковский, зданиям addr:street=Скоропусковский), а уже потом обработать POI с вариантом при отсутствии данных просто не добавлять тег с переменной. Еще раз извините но очень хочется, чтобы мой и не только прибор Гармин мог искать адреса и прокладывать к ним маршрут. В условиях когда фирма Garmin бросила пользователей своих старых (и не очень) приборов распространение карт ОСМ и повышение рейтинга и т.д. и т.п. ОСМ среди них очень актуально. Это помогло бы привлечь их к проекту ОСМ (не всех, но часть).
С уважением к Sergey Astakhov, прошу не отказать в просьбе.

Р.С. Кстати это потребуется в деревнях (населенных пунктах) где нет улиц а есть только номера домов (конкретно наша деревня, номера домов есть а улиц нет, одна дорога вдоль озера и вдоль домов).

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

Удалить предварительно со всех данный тег.

Такими темпами препроцессинг будет занимать больше времени чем конвертация карт…

Добавил инструкцию set-tag. Работает аналогично add-tag, только перезаписывает значение тега при наличии.
Скомпилированная версия плагина: https://cloud.mail.ru/public/4T53/5aWWr5oHg

Спасибо!

Адаптация плагина под последние версии osmosis: https://cloud.mail.ru/public/4988/piitvLRbU