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

имхо, она нужнее в строке копирайта. Чтобы потом в навигаторе в “Информация о карте” её было видно.

а что ей для этого нужно?

Описание адресной модели вынесено в отдельный конфиг: http://code.google.com/p/osm2mp/source/browse/trunk/cfg/addressing.yml

В текущем варианте оно ориентировано на РФию. По сути всё осталось то же самое, что раньше было захардкожено, только для примера добавлена адресация по полигонам районов. Зато теперь можно описывать альтернативы для несовместимых стран :smiley:

Пока это только половина конфига, которая описывает “входной” адрес, с любым количеством уровней. Потом этот адрес сворачивается в mp-совместимый (страна-регион-город-улица), и правила такой свёртки тоже будут вынесены в конфиг, но пока это не готово.

О, вот это очень нужно!
А то лепить addr:district на все 100500 деревенек - это аццкий ужас

Логично, добавил в копирайт

contacts: yes

liosha Пробовал конвертировать Южный и Северо-Запдный федеральный округ, южный на 8Гб оперативки в Win7 64bit конвертируется за пару часов, а вот северо-западный и за двое суток не отконвертировался. Я так понимаю всё упирается в нехватку памяти и частые обращения к pagefile.sys. Возможно как то уменьшить требования к памяти?

Я собирался попробовать перенести внутреннее осмохранилище в sqlite вместо памяти. И частично к этому всё подготовил, но до конца пока руки не дошли.

liosha А когда можно ожидать подвижки в данном направление? Просто на моей системе 8Гб это максимально возможный объём. Думал по поводу SSD винчестера, но не думаю что это очень сильно поможет.

Не могу чего-то обещать.

Нужно реализовать подобный интерфейс на базе sqlite:
http://code.google.com/p/osm2mp/source/browse/trunk/lib/OSM.pm#238
Может найдутся желающие :smiley:

Теперь она окончательно заработала :smiley:
Чтобы попробовать, нужно --load-settings cfg/addressing-ru.yml

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

Сейчас не конвертируются неполные мультиполигоны - считаются невалидными. Но с обрезкой это не должно быть связано.

Если обрезать осмозисом, то мультиполигоны поломаются и станут невалидными. Так что это может быть связано с обрезкой ДО осм2мп.

Если обрезать с ключем completeRelations, то получается все нормально. К сожалению, на гислабе режут без него.

Ну да, он неполный и есть. У меня тестовый кусок был загружен JOSM’ом. В bbox попал кусочек outer’а довольно большого лесного массива, а все inner’ы были за границами bbox.
А возможно сделать реакцию на валидность мультиполигонов настраиваемой?

А сам outer при этом полный?

Линия да. Да и inner’ы, попадающие в границы выгрузки, должны быть полными. Проверю вечером.

Делать отдельную настройку не хочется.
Сейчас всё неполное просто отбрасывается. Можно отбрасывать не всё, - но тогда по каким правилам?

Ну, логично вроде бы все обрезанные полигоны дорисовывать по линии обрезки, а мультиполигоны обрабатывать так:

  • обрезанные полигоны inner и outer дорисовать по линии обрезки
  • полигоны inner, не попавшие в границы вырезанного куска карты, игнорировать.

Вправо или влево?

Кстати, есть такая штука за авторством gryphon - думаю, она будет полезнее, чем возиться с конвертером.