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

Поддержки границ и advanced multipolygon-нов хотелось бы и для таких вещей:
http://www.openstreetmap.org/browse/relation/165029
mapnik то нормально все понимает.

а почему бы этот же лес не сделать нормальным мультиполигоном?

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

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

zgremlin,
причём тут C-образные озёра??
Конвертер уже больше года понимает нормальные мультиполигоны.
Но только полноценные замкнутые ПОЛИГОНЫ, а не собранные из отрезков.

UPD.
Сравнение с костлайнами немного не в кассу.
Моря действительно полигоном не сделать - никакой памяти не хватит.
Кроме того, по костлайну хотя бы понятно, где тут вода, а где земля. А по обкусанному мультиполигону - нет

Отчего же? Можно порезать сеточкой, как это делает Kotelnikov на краснодарских лесах.
А допилить osmget.pl, чтобы он догружал неполные релейшны проблемы никакой нет.

подскажите, не теряется ли после конвертации osm → mp информация по barrier=gate, access=private?
в mp файле по id ноды 25439 нашел только такие ограничения (судя по всему на повороты):

[Restrict]
Nod=25439
TraffPoints=12352,25439,12352
TraffRoads=14175,14175
[END-Restrict]

[Restrict]
Nod=25439
TraffPoints=11174,25439,11174
TraffRoads=12863,12863
[END-Restrict]

на каком этапе инфа по закрытым воротам потерялась? при конвертации osm->mp или уже при mp->nm2 в mapedit?

Сеточка - это зло однозначно, потому что плодит сущности без лишней на то надобности.
Имхо, один объект в жизни должен отображаться (по возможности) одним объектом в базе.
Во всяком случае, надо к этому стремиться :slight_smile:

Что касается догрузки релейшенов, то это проблема вообще плохо решаемая. Раз уж релейшены сами могут состоять в релейшенах, то целостностью по ним может обладать только ПОЛНАЯ база.

В общем, моё мнение такое: полигоны из отдельных сегментов есть смысл собирать только для реально крупных объектов. Разделение, имхо, проходит где-то между городами и регионами: города надо описывать обычными полигонами, регионы - собирать из границ.

MacTen, сами по себе барьеры пока не обрабатываются.
Надо указывать access=private у самой дороги.

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

Глобально - да, но как osm2mp на полной базе запускать пока не понятно. А загрузка даже на один уровень вниз решит ту проблему, о которой мы говорим сейчас.

liosha а есть в планах добавить обработку барьеров?
ведь это неправильно каждые закрытые ворота делать путем разбивания дороги на кусочки и присваивания одному куску access=private

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

Кстати, у мультиполигонов, в отличие от boundary, роли должны быть прописаны, а тут их нет: http://www.openstreetmap.org/browse/relation/165029

UPD.
Барьеры в планах есть, так же как и светофоры и лежекопы (понижают скоростной индекс дороги).
A access=private надо ставить не у кусочка, а у ВСЕЙ дороги, куда приватный доступ.

Угу и проводить пять линий через сотню точек? Не говоря уж о захламлении базы, назови инструмент, который позволит это сделать, если не заморачиваться со скриптами или ручным редактированием xml? Вот вкажем в JOSM?
Хорошо хоть в JOSM есть способ выбрать линию из нескольких, хоть и не самый удобный…

А почему тогда большая часть морей по побережью не создается?

Небольшой offtopic: Как с помощью костлайна:

  1. указать название водоема (а то подпись “like” на море или водохранилище мало того, что неинформативна, но еще и недостоверна);
  2. разделить несколько водоемов (например Черное и Азовское моря)?

Когда вика работала, в ней было написано:“If no role is given outer is assumed”. Какая тут может быть неоднозначность, для которой надо заполнять все роли?

где не создаются?

Никак, насколько я понимаю

да, действительно, написано… как-то я это дело упустил…

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

Создал новую тему

речь шла вот про что.
есть дачный массив. у него центральные ворота открыты всегда и для всех.
а по периметру есть еще несколько ворот и подъезды к ним как с самих дач, так и снаружи. но эти заборы всегда закрыты на ключ. т.е. проезда там нет.
ставить access=private на всю дорогу на даче - ведь неправильно так.
я ставлю barrier=gate, access=private - это на будущее, когда обработка барьеров будет работать.
а также, чтобы уже сейчас можно было пользоваться выделяю маленький кусочек дороги перед забором и ему ставлю access=private, чтобы не было роутинга через этот кусочек. цель достигнута. ведь карту составляем для того чтобы ей пользоваться.
как только будет корректная обработка барьеров (открытых, закрытых, временных и т.п.) - эти кусочки дорог с access=private удаляются и все становится на свои места (т.к. barrier=gate, access=private уже прописано где надо).

Так, обработку барьеров вроде бы сделал. :sunglasses:
Завтра посмотрим, что получится…

liosha
скачал PolygonTree.pm с svn
дает ошибку

syntax error at /usr/local/share/perl/5.8.8/PolygonTree.pm line 26, near "] ~"
Compilation failed in require at osm2mp.pl line 32.
BEGIN failed--compilation aborted at osm2mp.pl line 32.

о, так я не один такой. MacTen см. выше. Нужен перл 5.10 или переписать, чтобы не было smart match.