Препроцессор osm-файлов

Выделено из топика Конвертер OSM → MP

Так это не фича - это бага!
*.MP в качестве промежуточного формата имеет смысл ТОЛЬКО для уменьшения объема данных. Потому как, во-первых, сам *.MP в качестве окончательного формата использован быть не может, а во-вторых - сам формат разработан конкретным человеком и, соответственно, не может быть адаптирован под собственные нужды без его одобрения.

Я понимаю, что можно использовать ТОЛЬКО OSM либо ТОЛЬКО MP, в зависимости от того, что нам удобнее, но какой смысл делать нечто, что обладает недостатками обоих этих форматов, не имея при этом никаких собственных преимуществ?

Zkir, мне тоже кажется, что правильнее было бы препроцессировать osm, тем более что готового софта и библиотек для этого полно.
Например, для белорусов ихняя адресация ресолвится в человеческий вид именно препроцессором

смысл задачи, для которой предлагается такое решение.

Леш, как можно ПРЕпроцессором сохранить в мп информаци. которую твой конвертер выкинет??? Мне, например, нужно оставить на домах кладр-код, как я могу это сделать ПРЕпроцессором???

Повторяю - если вам не надо и вы не можете понять зачем - не юзайте и не мучайте голову попытками понять. Если двум людям, юзающим мп для конвертации в карты под разные программы эта ФИЧА нужна, то не надо называть ее багой, ок?

Бывают способы решения, сами по себе являющиеся негодными. Вне зависимости от задачи.
Путь тупиковый.
Тут только два варианта:

  1. Я (или кто другой) сумею убедить Вас в бесперспективности выбранного способа.
  2. Вы пытаетесь его реализовать и убеждаетесь в этом самостоятельно. Но несколько позже, и потратив значительное количество сил и времени.

Я говорил про вопрос Zkir-а - “отсеять к едрене фене частные парковки”.

А кладр-код на домах - это зло.

Леш, значит я в самом деле плохо объясняю. :frowning:

Задача - организовать присвоение mp-типа в зависимости от нескольких тегов.

Например, amenity=parking преобразовать в полигон(0x05) и точку (0x2f0b) , а amenity=parking+access=private, только в полигон, причем другого типа (0x06)

Как ее решить препроцессором?

Zkir, например, тупо добавить препроцессором нужным объектам тег mp_type=*.
В зависимости от всех необходимых условий.

Или преобразовать все amenity=parking+access=private в amenity=private_parking

Это был просто пример.

Да без проблем.
Я из чисто гуманистических побуждений пытаюсь предостеречь этих двух людей от ошибки.
Ну и заодно десятки и сотни людей, регулярно качающих *.MP для собственных нужд, от неразумной траты трафика.
Не следует плодить лишних сущностей: есть OSM и есть MP. Они разные. И не нужно пытаться создать новую сущность, сочетающую в себе свойства их обеих: мы получим не сумму достоинств, а сумму недостатков.

Каким нужным-то? эти объекты еще только предстоит сформировать, причем для одного исходного их может получиться несколько.

Это можно, но “альтернативные” теги в конфигах osm2mp имхо как раз и есть тупиковый путь - путь к полному бардаку.

Блииииииииннннн… Кто чего качает? Какой трафик??? Я конверчу из осм в мп У СЕБЯ НА КОМПЕ. Какой нафиг трафик???

Тогда прошу прощения. Недопонял. Я считал, что так будет конвертиться MP, выкладываемый на сайте для всеобщего скачивания, а не для чьего-то внутреннего индивидуального использования.

Так, прощения попросил. Но по прежнему продолжаю рекомендовать - если не хватает данных в MP, переходить на OSM, а не изобретать костыли. Просто чисто по человечески: мне жалко чужого времени, потраченного зря. Особенно времени людей, которые делают что-то полезное для других.

andriano, если вы так хотите пересчитывать чужое время, подумайте, сколько займет создание конвертеров вида osm2navitel, osm2rus, osm2{anotherpogram}, и стоит ли им заниматься при существовании osm2mp и mp2{нужный_формат}.
Хотите сэкономить чужое время - пишите полезные патчи и присылайте их авторам :slight_smile:

+100500!!!

Если существующие osm2mp и mp2{нужный_формат} вполне удовлетворяют, то - нет.
Это же очевидно! Зачем приписывать оппоненту заведомо абсурдную точку зрения?

Патч - это что? Я этот термин воспринимаю как “заплатка” - обход обнаруженной ошибки вместо ее исправления.

andriano, в самом деле, если вы хотите нам помочь, а не учить нас жить, :wink: запилите препроцессор, который будет заменять в osm файле amenity=parking+pivate=yes на amenity=private_parking. Причем чтобы в конфиге можно было задать что на что заменять и остаются ли исходные теги или удаляются, и какие именно (например так:
amenity=parking+private=yes → amenity=private_parking+private=yes)

Я такой препроцессор вставлю в процесс для Гис Руссы (и Ситигида, когда он созреет).

Как этот препроцессор предполагается использовать и для чего?
Честно говоря, умножение сущностей (добавление новых тегов, которые не увеличивают количество информации в файле, но увеличивают его объем) считаю делом вредным.
Правда, если результат обработку не будет выкладываться в открытый доступ, а лишь использоваться в качестве этапа конвертации - другое дело.
Какие предложения по набору поддерживаемых функций и формату конфига?

andriano, mp - в открытом доступе - зло, потому что под каждую программу все равно нужен свой конфиг.

Использовать предполагается в процессе конвертации osm в rus и dcm для имитации функции, отсутсвующей в osm2mp - обработки нескольких тегов за раз, путем замены одних тегов на другие. Это всех проблем не решит, но пресловутую проблему с частными парковками снимет.

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