Острова

Я тут затеял собрать острова с водоемами в которых они находятся в мультиполигоны. Из-за того, что нагорожено сейчас, происходит такое: http://osm.org/go/2x2g_3– (попробуйте приблизиться на один уровень).

  1. Вопросы: natural=land вообще стоит оставлять? Я думаю, нет смысла сушу дополнительно обозначать как сушу. Для обозначения отдельных островов есть place=island.
  2. Далее, есть 115 штук natural=island. Такого в вики вообще нет - стоит, я думаю, убрать (включив в мультиполигон) либо заменить на land (в зависимости от того какие мысли будут по п.1)
  3. Острова в океане - все-таки natural=land, coastline или оба?
  4. Это не на прямо сейчас, но related - кто-то высказывал мнение, что coastline внутри континента должна быть только на паре морей. Стоит подумывать о конвертации мелочи в natural=water?

Шут бы с ней с мелочью, сначала стоит понять, что делать с Ладогой/Онегой/Байкалом.

Всё отлично. :slight_smile:

А лучше place=islet, если нет необходимости видеть кучу мелких островов и их названий на мелких масштабах. land не обозначаю.

coastline и place=island/islet достаточно.

Тогда отдалиться - там два минуса в ссылку не включились.

Касательно place=is{land,let} - не вижу смысла отмечать его если неизвестно название острова. Кроме того, не все то остров, что вырезано из воды.

Вижу. Может просто не отрендерилось? У меня в мапнике здоровенный кусок Кандалакшской губы пропал. В осме всё тип топ давно уже, а мапник резину тянет вторую неделю.
Вообще я такие острова включаю в мультиполигон riverbank. Я смотрю, у Вас там острова сами по себе, и ничего, отображаются.

А вот в осмарендере действительно интересно - вместо островов едва заметные абрисы на всех масштабах.
У меня есть два крупных озера из нескольких coastline. На одном в осмарендере острова видно, а на другом нет. Все мозги сломал. Разницы не вижу, хоть тресни.

http://www.openstreetmap.org/?lat=67.5794&lon=33.1042&zoom=13&layers=O
http://www.openstreetmap.org/?lat=67.04754&lon=33.60601&zoom=15&layers=O

Нет, такое везде - просто не рендерятся natural=land на высоких зумах. В osmarender, похоже, вообще ни на каких.

Там вообще непонятно что. В первом случае на берегах coastline, но они собраны в multipolygon natural=water, во втором на границе “coastline; coastline; water; coastline”, плюс она outer мультиполигона с natural=water. Думаю, стоит тэги с берегов вообще убрать и сделать обычные мультиполигоны natural=water, с тэгами только на самом отношении. Во втором случае границу наверное побить стоит, 1700 точек имхо много.

А какие аргументы за/против?

Если заговорили о островах, то как правильно оформлять их “гражданство”, к примеру Южно-Курильские острова, тег addr:coutry=RU, вроде заработал, а то, что это “Сахалинская область” в поиске не отображается, наверно неправильно сделал, но вопрос в том, надо ли это делать вообще, и для пограничья в частности?

По всем правилам coastline к ним применять нельзя. Но в ОСМ нет других средств, позволяющих обозначать водоемы таких масштабов.

Боюсь, что всё намного хуже. Вчера сделал именованный остров в составе мультиполигона riverbank.
Итог: на зуме 14 и более остров отображается, но название написано по краю.
На зуме 12 острова нет - одна вода, зато название там, где должен быть остров.
Осмарендер, как водится показал только тонкий абрис. Остров и riverbank рендерились одновременно, посему надеятся на изменения в будущем бесполезно.
Дурдом. Может убрать place=island? Островок рядом, что без тего вообще, отображается нормально.
http://www.openstreetmap.org/?lat=67.4886&lon=34.1952&zoom=14&layers=M

У меня была та же проблема, название острова нарисовалось по границе. Я просто вставил тег area=yes. Это информационный мусор, но по сути остров и есть area, и рисуется правильно.

http://www.openstreetmap.org/browse/way/23523897

Уря!!! Заработало!
Посмотрю, как отображается в осмарендере и буду лепить это везде.

Это уже рисование под рендер. Не стоит этого делать.

Понятное дело, но хочется для начала как минимум разобраться что не так работает в рендерах.

Например,
http://osm.org/go/2Fk7zJk - landuse=reservoir+waterwayriverbank, mapnik острова не рисует, что land, что мультиполигон. osmarender рисует.
http://osm.org/go/1i7gOT_ - coastline в океане. Рендерятся на любом зуме, что с place=island, что без
http://osm.org/go/_I4Yvvz- - все Курильские острова - просто coastline, и рендерятся на любых зумах. Остров Броутона был natural=land, и рендерился только на высоких зумах (osmarender’ом на совсем высоких), переделал его в coastline и похоже что мапником он теперь вообще не рендерится.

Попытки повесить название на остов у меня ни к чему не привели, но один я видел http://osm.org/go/0t20ZFDC0– правда он islet.
Я ничего не понимаю.

э … вроде, у мапника “повышенные требования” к направлению линии, которой отрисован полигон воды. Что-то там типа “берег - слева, земля - справа”. И неадекват рендеринга начинается, когда полигон вылазит за границы одного тайла. Не?

Да, только по-моему, наоборот (вода-справа). Это требование соблюдается. А что значит “за границы тайла”?

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

  1. Coastline мапником рендерится не из базы, а из шейп-файла, выгружаемого раз в несколько недель. Рисовать объект костлайном - обречь его на невозможность быстро пофиксить во многих “неофициальных” вариантах мапника (админов всегда придётся пинать отдельно обновлять немелкие шейпы континентов, и перерендеривать всё руками через /dirty). Любая ошибка в костлайнах (направление / замкнутость) создают огромные артефакты, потому часто новый шейп уходит не в рендеринг, а в свалку, и новых костлайнов можно не увидеть не месяц, а два и больше.
  2. Никаких ограничений на размер riverbank/water нету. Если размер полигона будет больше 2000 нодов, его можно просто собрать в много-outer’овый мультиполигон.
    Следует иметь в виду, что зумы выше 11-го никогда не перерендериваются основным мапником автоматически, и им в таком случае надо дёрнуть /dirty.
    Кроме того, следует помнить, что при огромном размере полигона osm2pgsql помечает измененными только тайлы его периметра, в результате чего могут наблюдаться артефакты типа “полигон внутри не заполнен”. Опять-таки, это достаточно просто исправляется вызовом /dirty для проблемных тайлов.

Котяра, большое спасибо за ценные сведения.

Что ж, проведу эксперимент. Из одного нормального водоёма сделаю много-outer’овый мультиполигон и посмотрю что получится.
В качестве подопытного кролика использую оз. Колвица. на юге Мурманской области. Всё равно береговую линию пора уточнять, а 2000 нодов там дело не обойдётся.

Кстати, острова на много-outer’овый мультиполигоне с coastline без тега natural=land не рендерятся вообще. Только сейчас заметил.

На coastline мультиполигон не нужен. И оно рендерится без land, это все Курильские острова.