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

Попробуйте Python 2.7. Я допустил такую же ошибку в своё время. Спасибо подсказали, что скрипт был сделан под Python 2.

Спасибо. Не думал что это так критично.

третий питон по синтаксису сильно изменен относительно второго, есть даже конверторы из 2го в 3ий :slight_smile:

Да, я почитал там у них. С 2.7 все заработало.

KonTur
White_54

Ребята, не смейтесь, на свой сервак поставил… Windows 10. У него есть WSL, читай Ubuntu 12.04 из коробки. Все инструкции из нашей вики, касающиеся Ubuntu, работают 1:1, нулевой оверлоад по сравнению с портированными программами и тем более виртуальными машинами. Цена вопроса 1 Гб на диске.

Чтобы поставить Windows10 - надо ее купить. Мне своих денег жалко (компьютер конторский).
Как будет возможность - попробую.

поставь virtualbox, прекрасный виртуальник, даже без сильных потерь в мощности.

Зачем? Пока под виндой все потихоньку налаживается.
Да и не хочется в юниксы влезать…

Старый (древний) ПК с 2 ядрами и 2ГБ оперативки на Ubuntu (32), опережает в обработке (osm в mp) ноутбук с 4 ГБ оперативки и 4 ядрами на Windows 10/7 (64). Всё порываюсь поставить на ноутбук Ubuntu второй системой. Они не плохо уживается друг с другом. Никаких виртуальных машин, никаких вживлений одного в другое.

Я уже писал - это офисный комп, который также используют для офисных дел. Он просто сейчас чаще свободен (и я его под эксперименты задействую).

Подскажите пожалуйста, как можно в случае junction=roundabout добавить нестандартный атрибут к этой дороге в .mp ?
Пытался сам разобраться, но так как не программист ни разу - нифига не вышло.
Заранее спасибо.

Уточните вопрос. Что значит нестандартный атрибут? Какой атрибут? Какова цель добавления?
Вы хотите каждый раз править *.MP файл? Или все же хотите добавить атрибут в базу?
А может вы хотите добавить атрибут в конвертер?

Спасибо, что откликнулись.
Попробую объяснить. Сейчас при конвертации осм в .мр круговое движение проставляется как

      type:
#        selector: if
#        condition: junction = roundabout
#        then: 0x0c

После конвертации в формат ситигида, круговое движение получается отличным от дороги, на котором оно встречается

Из чисто эстетических побуждений, я хочу чтобы круговое было таким же цветом что и примыкающая дорога. При этом, чтобы навигатор озвучивал “круговое движение”, у конвертора в ситигидовский формат есть т.н. маркер CGRoadMarker=1, про который написано: “Не используем тип дороги круговое движение, а ставим маркер”. Вот я и хочу, чтобы при конвертации из осм в .мр, junction=roundabout не превращался в тип 0х0с, а этой полилинии добавлялся атрибут CGRoadMarker=1.
Вот. Однако, как это реализовать с помощью конфигов конвертера osm2mp я так и не нашел.
Буду признателен за помощь.

В моей программе цвет линий определяет “Скин”. Любому типу - любой внешний вид.
У нас программный конвертер берет стандартный набор данных из *.mp - и сам трансформирует в формат приложения.
Если ваш программный конвертер требует что то там установить дополнительно, должно быть описание что сделать.

Формально, как было сказано, формат *.mp - есть обычный текстовый файл. Следовательно любой текст в файле можно заменить (дополнить).
Из ваших объяснений: я бы строки “Type=0x0c” заменил маркером “CGRoadMarker=1” или добавил строку с маркером CGRoadMarker=1 …
Это можно делать руками, открывая последовательно каждый файл. А можно воспользоваться командной строкой и заменить сразу все однотипные строки, нужным текстом. Получается своего рода пост процесс.
Но сие лишь предположение.

Что до формирования маркера взамен типа в ходе конвертации OSM в MP?! Надо подумать. Но ведь кто то уже это делает. И наверное есть профильная тема.

В .мр уже утерян класс дороги “круговое движение”, он там везде 0х0с. А круги встречаются и на primary, и на secondary, и на других тоже. Втыкание маркера нужно делать на этапе конвертирования.
Хотя, я тут подумал - прямо в .osm наверное можно тоже. Буду дальше думать…

А что Type=0x0c отвечает не только за круги?

Я понял проблема именно в конфигах для Ситигида, у которого полиш немного опциональный. Т.е. ему нужно для круга оставить тип дороги по-умолчанию (т.е. не менять на 0x0c), а воткнуть дополнительное поле CGRoadMarker=1

По-моему произвольные дополнительные поля добавляются конфигами, но я уже года 2 как не конвертировал (а под ситигид и того больше), всё забыл.

Совершенно верно.

Если верить докам, то 0х0с в полише - это “круговое движение”. Но круги бывают на разных HW - и хочется чтобы они были одного цвета с дорогой. Чистая эстетика, и ничего более.

А такое вдруг не сработает?


      CGRoadMarker:
#        selector: if
#        condition: junction = roundabout
#        then: 1

Это в какой файл конфига нужно вставлять?
Я пробовал подобную конструкцию вставлять в ways-roads-common.yml, но он все три строки вписал в .мр как есть :slight_smile:
Селектор не сработал.