Острова

По всем правилам 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, это все Курильские острова.

Я о внутреннем водоёме с coastline.

Кстати, что за зверь /dirty ? пока ничего вразумительного об этом не нашел. В смысле, как им пользоваться.

Первые результаты. Мапник - без видимых изменений, у осмарендеря снесло крышу . :frowning:
http://www.openstreetmap.org/?lat=67.077&lon=33.497&zoom=11&layers=O

А, я невнимательно прочитал. Так это ж очевидно - coastline имеет смысл исключительно как линия, мультиполигон на нем смысла не имеет, а острова внутри работают по таким же правилам как острова в океане, т.е. либо land и рендерится не на всех зумах, либо coastline с правильным направлением. Но если на мультиполигон, состоящий из coastline’ов, наложен natural=water, то логично что остров должен быть кроме coastline еще и inner’ом в этом мультиполигоне, иначе закроется той водой которая natural=water.

К URL’у png картинки тайла в мапнике можно приписать /dirty, тогда он принудительно перерендерится.

А УРЛ картинки легко посмотреть, например, Firebug-ом (это если Firefox).

Если это Firefox, можно просто кликнуть правой кнопкой по тайлу и нажать “Открыть изображение”. Сразу и урл будет в адресной строке.

Как-то давно пробовал – не понравилось что изображение открывается вместо карты. Жал "Скопировать ссылку на изображение, контрол-Т, Шифт-Инсерт…

Сейчас попробовал жать “Открыть изображение” с контролом, открывает в новой вкладке, самое то, что надо! С шифтом открывает в новом окне.

Зажми ctrl.

UPD. Лол. :3

Спасибо за пояснения! У меня именно Firefox. Работает.
Как дать пинка осмарендеру тоже нашел, на http://tah.openstreetmap.org/Browse/ ,
но только на 12-м зуме. 11 и ниже перерисовываться упорно не хотят.