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

Задача - вытащить “old_name = *”. Возможно ли это?
Скажем - Украина. Украина претерпевает масштабное переименование улиц (городов). Люди не поспевают перестроиться. Путаются в названиях. Возможно будет востребовано на выходе конвертации получить:
CityName=name (old_name)
CountryName=name (old_name)
RegionName=name (old_name)
StreetDesc=name (old_name)

Возможно обсуждалось. Возможно идея бредовая. Возможно решение уже есть?

Так ведь вытащатся сразу все имеющиеся old_name. Каша ж будет из дореволюционных, довоенных, послевоенных и позднесоветских названий.

Лучше придумать, как хранить в осме старые названия разной давности (единственного тега old_name недостаточно) и в дальнейшем вытаскивать только те, что надо.

Не так всё плохо. Старых имен было совсем мало до переименования, можно пренебречь.
С Украиной есть уже и версии карт.
В украинском разделе пошукайте/поспрошайте.
http://forum.openstreetmap.org/viewtopic.php?pid=564916#p564916
http://forum.openstreetmap.org/viewtopic.php?pid=574717#p574717

Тут можно посмотреть чего со старыми названиями в скобках (бывш. )
http://wowik.000space.com/places/ua/$703.htm

Тогда так.
Вытащить “name (old_name)” в надпись объекта просто. Нужно отредактировать соответствующие конфиги. Но с адреской всё сложнее.
Это сам liosha может ответить или кто в перловских скриптах и модулях понимает.

Вот, это то мне и надь. Что и где исправить. В этом и вопрос собственно.

В файле “settings-mp*.yml” в разделе “Name selection priority” добавить новую переменную:


oldname:         [ old_name ]

Затем, в конфигах из папки “polish-mp” добавить для нужных типов объектов правило:


      name:
        - %label (%oldname)
        - %label

Тогда, если есть old_name, оно будет дописываться в скобках. Можно добавлять это правило не для каждого отдельного типа, а сделать пресет для группы типов.

И ещё раз повторюсь, таким образом мы изменим только поле Label, все адресные поля - CityName, StreetDesc и прочие останутся неизменными.

Задача по адресации (улица, населенный пункт).

В апреле я поднимал вопрос (в теме “Карты OSM для Garmin (osm2mp+cgpsmapper)”) про дублирование дорог. Когда например дорога представляется в виде улицы с проложенной прямо по ней грунтовкой.
Мне было отвечено, что “так и задумано, это не глюк”. Зачем так задумано я так и не понял. В случае коротких улочек это не мешает. Однако в случае длинных дорог возникает проблема: эти дороги при перестроении графа соединяются друг-с-другом в каждом узле, таким образом каждый узел становится узлом дорожного графа. И их количество запросто набегает за допустимые 60 штук, cgpsmapper затыкается. Устранить образующееся огромное количество ошибок вручную - практически нереально.

Все же задаю вопрос: для чего так сделано?
И можно ли как-то обозначенную проблему решить?
Иначе теряется смысл самого mp-файла (его нельзя скормить cgpsmapper 'у).

Дороги могут отображаться в mp как прозрачная дорога + разукрашенная линия (не дорога), и для грунтовок это неплохой вариант.

Так быть не должно. Пример в студию.

А как я могу пример в студию?
Проблема возникает при обработке mp с помощию MapEdit - после перестроения графа. Вот на приведенном скриншоте проблемная дорога: все узлы на ней являются узлами графа, а их зеленый цвет говорит о том, что из каждой точки исходит 4 луча (то есть, через нее проходят 2 дороги - одна под другой)

В ОСМ эта дорога - http://www.openstreetmap.org/way/372925088#map=11/51.8739/133.4976
Можно, конечно, одну из дорог удалить вручную. Но узлы графа на оставшейся останутся, и проблема не решится. А если перестроить весь граф с нуля - потеряются все(!) запреты поворотов, и их вручную восстановить будет нереально.

Гы. Ну если делать что-то странное, обычно получаешь странные результаты :smiley:

Зачем перестраивать граф в мапедите? Процессом это не предусмотрено.
Это он дорогу дублирует, а не конвертер.

Не ПЕРЕстраивать, а ДОстраивать. После вмешательства в дорожную сеть. (а собственно для вмешательства мапэдит и нужен - для чего ещё?!). То есть, я что-то делаю совсем в другом месте. А потом применяю “создать граф” - и возникают все эти лишние точки.

В дорожную сеть надо вмешиваться в осм, а не в мапедите.
И тем более не надо жать “создать граф” на уже созданном графе

Дублируется еще до мапедита. В mp-файле уже идет дорога WayID=179547768:0 поверх WayID=372925088, это еще до какого бы то ни было вмешательства в mp. Только узлы графа не построены на них.

Ну да, я сразу так и написал: http://forum.openstreetmap.org/viewtopic.php?pid=597428#p597428
И не надо на ней строить узлы

В ОСМ далеко не всё позволено. Приходится доделывать для собственного употребления в мапеэите, в том числе по запрещенным в ОСМ источникам. А зачем тогда вообще нужен mp - достаточно было бы готового img.

В приведенном примере обе линии - дороги (разного типа), от чего и проблема. Если бы одна из линий была “не-дорога” - она и не мешала бы построению графа.

Про конкретные типы лучше вносить предложение в соседнюю тему про cgpsmapper.
Я не знаю, почему там сделано так.

Можно сразу с пулл-реквестом в https://github.com/liosha/osm2mp-garmin-open

Ну cgsmapper-то вроде как ни при чём.
Вот необходимость этого я так понять и не могу:

Зачем требуется этот “неплохой вариант”.
Есть ли какая-нибудь возможность избавиться от дублирующих дорог, может присвоением им какого-либо особого типа, или может комментария в mp?

Конфиги с дублированием линий относятся к cgsmapper-у

Потому что гармин знает только один тип дорог со свойством “грунтовая дорога”: 0x0a.
Чтобы визуально их сделать больше, нужна вторая линия.