Zkir, например, тупо добавить препроцессором нужным объектам тег mp_type=*.
В зависимости от всех необходимых условий.
Или преобразовать все amenity=parking+access=private в amenity=private_parking
Zkir, например, тупо добавить препроцессором нужным объектам тег mp_type=*.
В зависимости от всех необходимых условий.
Или преобразовать все amenity=parking+access=private в amenity=private_parking
Это был просто пример.
Да без проблем.
Я из чисто гуманистических побуждений пытаюсь предостеречь этих двух людей от ошибки.
Ну и заодно десятки и сотни людей, регулярно качающих *.MP для собственных нужд, от неразумной траты трафика.
Не следует плодить лишних сущностей: есть OSM и есть MP. Они разные. И не нужно пытаться создать новую сущность, сочетающую в себе свойства их обеих: мы получим не сумму достоинств, а сумму недостатков.
Каким нужным-то? эти объекты еще только предстоит сформировать, причем для одного исходного их может получиться несколько.
Это можно, но “альтернативные” теги в конфигах osm2mp имхо как раз и есть тупиковый путь - путь к полному бардаку.
Блииииииииннннн… Кто чего качает? Какой трафик??? Я конверчу из осм в мп У СЕБЯ НА КОМПЕ. Какой нафиг трафик???
Тогда прошу прощения. Недопонял. Я считал, что так будет конвертиться MP, выкладываемый на сайте для всеобщего скачивания, а не для чьего-то внутреннего индивидуального использования.
Так, прощения попросил. Но по прежнему продолжаю рекомендовать - если не хватает данных в MP, переходить на OSM, а не изобретать костыли. Просто чисто по человечески: мне жалко чужого времени, потраченного зря. Особенно времени людей, которые делают что-то полезное для других.
andriano, если вы так хотите пересчитывать чужое время, подумайте, сколько займет создание конвертеров вида osm2navitel, osm2rus, osm2{anotherpogram}, и стоит ли им заниматься при существовании osm2mp и mp2{нужный_формат}.
Хотите сэкономить чужое время - пишите полезные патчи и присылайте их авторам
+100500!!!
Если существующие osm2mp и mp2{нужный_формат} вполне удовлетворяют, то - нет.
Это же очевидно! Зачем приписывать оппоненту заведомо абсурдную точку зрения?
Патч - это что? Я этот термин воспринимаю как “заплатка” - обход обнаруженной ошибки вместо ее исправления.
andriano, в самом деле, если вы хотите нам помочь, а не учить нас жить, запилите препроцессор, который будет заменять в osm файле amenity=parking+pivate=yes на amenity=private_parking. Причем чтобы в конфиге можно было задать что на что заменять и остаются ли исходные теги или удаляются, и какие именно (например так:
amenity=parking+private=yes → amenity=private_parking+private=yes)
Я такой препроцессор вставлю в процесс для Гис Руссы (и Ситигида, когда он созреет).
Как этот препроцессор предполагается использовать и для чего?
Честно говоря, умножение сущностей (добавление новых тегов, которые не увеличивают количество информации в файле, но увеличивают его объем) считаю делом вредным.
Правда, если результат обработку не будет выкладываться в открытый доступ, а лишь использоваться в качестве этапа конвертации - другое дело.
Какие предложения по набору поддерживаемых функций и формату конфига?
andriano, mp - в открытом доступе - зло, потому что под каждую программу все равно нужен свой конфиг.
Использовать предполагается в процессе конвертации osm в rus и dcm для имитации функции, отсутсвующей в osm2mp - обработки нескольких тегов за раз, путем замены одних тегов на другие. Это всех проблем не решит, но пресловутую проблему с частными парковками снимет.
формат конфига такой:
на каждой строке:
список тегов осм-объекте в исходном файле (через плюсик или запятую) -->список тегов-на том же объекте в конечном файле
заменяются только теги которые указаны в левой части правила. если у объекта есть другие теги, они переносятся в конечный файл без изменений.
Ничего подобного.
С одной стороны:
МР - контейнер для некоторой ОБЪЕКТИВНОЙ информации, которую “каждая программа” может либо использовать, либо - нет. Например, PPSMapEdit не требует для себя какого-либо “своего конфига”.
С другой стороны:
МР - формат промежуточный, т.е. непригодный для непосредственного использования, поэтому особенности конкретных программ (работающих с уникальными форматами данных) должны нивелироваться конвертерами данных для них из МР.
Т.е. нужен инструмент способный анализировать содержимое объекта типа node, way или relation целиком и вносить в него соответствующие коррективы. Без анализа структуры дочерних элементов. (т.е. в relation не анализируются теги дочерних way или node)
Я правильно понимаю?
Формат конфига мне не нравится.
PS. Это то, что сходу пришло в голову. Возможно, я где-то ошибся или предложил что-то неразумное.
Не хватает if’ов (команды cmp) и меток, по которым можно ветвиться в пределах фрагмента
Во ВСЕ команды выполнения входят условия, т.е конструкцию вида
if condition_0 then begin
delete;
add;
delete;
end else begin
delete;
add;
end;
записываем так:
получается даже короче.
для примера формат осм фильтра (http://code.google.com/p/pyosm/source/browse/tools/osm-filter.README) - http://code.google.com/p/pyosm/source/browse/tools/osm-filter.xml
давно хотел в него replace добавить, но времени как небыло так и нет
Может я чего не понимаю, но нафига изобретать новый язык?
Одно дело - простенький конфиг, и совсем другое - полноценный язык.
Преимущество простого конфига - он понятен и непрограммистам. Когда появляются всякие регистры и if-ы, то это уже только для программистов. Но тогда проще уж писать на Java (если это плугин для osmosis) или на одном из готовых скриптовых языков которые элементарно туда интегрируются…
Не знай… Андриано вот просит)) по мне, поглядев на его проэкт, и правда вопросилось внутри – не проще ли это на Си (к примеру) написать?..
Вопрос не праздный, на самом деле – где делать “талию” – как провести границу между конфигом и исполнительной частью программы)) Андриано вот берётся широко запахать.
Вот именно.
В данном случаее предлагаемый “язык” явно не является полным, т.к. не содержит ни переходов (никаких - ни условных, ни безусловных), ни циклов. Т.к. предназначен для решения очень узкого круга задач. Но внутри этого класса задач он IMHO не должен иметь ограничений, поэтому считаю, что алгебра логики должна быть реализована в полном объеме. И только. Никаких других операций кроме логических не предусмотрено.
…ждём ебилдов.