Байкал

А я то думал, мультиполигон задаёт область с дырками… natural=water обозначает область_воды. Для озера область_воды - это то, что между берегами, минус острова. Лучше, чем мультиполигоном задать трудно, имхо. Обозначение озёр с островами при помощи одного way - это если не костыль, то пережиток прошлого.

wawaka, объясняю проблему.

Ты не сможешь нарисовать внешний контур озера нарисовать одним веем - не хватит разрешённого количества точек.
Байкал большой, а точек в вее всего лишь .
Чтобы это ограничение обойти, придумали костыль advanced multipolygon, где один контур можно собрать из нескольких веев.
Только вот механизмов поддержки целостности этих мультиполигонов никто не придумал.
Поэтому при операциях вырезки области (например, Иркутской) часть этих веев может в неё попадёт, а другая часть - нет.
А полный полигон озера можно создать только при наличии всех веев.

Как бы не так. Это подмена понятий. Очевидно, что придумали AMP, не чтобы обойти ограничение, которое без проблем можно было бы поднять до любого разумного числа, а для того чтобы побороть убогость обычного MP. Обход же максимального кол-ва нод, это скорее побочный эффект.
Про поддержку целостности опять же неправда. Механизмы есть и разные. Да они не всегда удобные, но они есть.
И конечно же проблема целостности, имеет отношение не только к MP, но и ко всем другим типам релейшнов.

В общем, ждем нативных мультиполигонов в API 0.7…

Тогда бы его не было:)

Вплане если без проблем увеличвается до любго разумного :slight_smile:

Материк из coastline одним way весил бы мегабайт дцать.

BTW coastline в данном случае тоже костыль, призванный обойти ограничение на длину way. (однако, неизбежный, как видно из примера, описанного мною выше).

То что Байкал в мапинике или просто openstreetmap выглядит плохо это отрисовка сервера плохая она замечает только точки которые появились или сдвинулись, если изменены параметры линии они не воспринимаются. Что касается береговой линии из обрезков мультиполигона то это бред, пока не скачаешь всю береговую линию. Вот и разбил его на части, отдельно части легче редактировать и дополнять. Кстати острова не все прорисовываются в мультиполигоне. Лучше подскажите как гаражи обозвать.

semaa, в JOSM можно выбрать релейшн мультиполигона в списке правой кнопкой и нажать “скачать все элементы релейшна”. И острова там все прорисовываются нормально, если правильно обозначены. Да и править береговую линию удобнее, если она кусками задана, не нужно выкачивать её всю, достаточно локального куска.

to all: нужно уже однозначно решить, как Байкал рисовать, чтоб не дёргать его туда сюда. Может, голосование?

Одним AMP. Те, кто рисует несколькими, пусть докажут, что байкал - это несколько озер.

Это не только Байкала касается, но и массы других крупных озёр. Вариант в несколько примыкающих полигонов ИМХО - самый кривой и череватый множеством ошибок, например когда остров ошибочно включается не в свой мультиполигон. У поиска тоже должна крыша ехать от обилия одноимённых полигончиков.

Рисую coastline объединяя всё в один мультиполигон. Чего и всем желаю.

Да уж. У нас еще все более-менее прилично - либо одно, либо другое. А вот озеро Мичиган, например, в основном собрано (кривовато) из PGS-based coastline’ов, но при этом южную (и только южную) его половину некто не поленился рядом отрисовать water’ом. Все собираюсь разузнать у этого товарища о причинах столь странного поступка :slight_smile:

И Братское водохранилище зачем-то продублировано coastline’ом под мультиполигоном…

В Байкале “потонул” остров Ольхон.
мультиполигон http://www.openstreetmap.org/browse/relation/2383818 - собственно остров, состоит из coastline (направления верные, количество точек не превышено), замкнут. Вроде все в порядке
с озером Байкал тоже вроде все в порядке http://www.openstreetmap.org/browse/relation/555716
есть еще один мультиполигон Прибайкальский национальный парк http://www.openstreetmap.org/browse/relation/514767 (в него входят веи в том числе и с coastline РАЗНОГО направления, может Мапник тупит, когда отрисовывает именно этот мультиполигон?)
А так все мультиполигоны нормальные, целые, а остров под водой, на всяких разных картах:
mapnik
туристические сборки для garmin от ValentinAK (http://forum.openstreetmap.org/viewtopic.php?id=13875) и от Max Vasilev (http://forum.openstreetmap.org/viewtopic.php?id=15613)

нормально отображается в сборках для Navitel, еще вот тут http://чепецк.net/ (за него вроде как Max Vasilev отвечает)
Других не проверял.

Чего посоветуете?

Уже писал много раз и ещё раз повторю, ошибка распространнённая и увы частая.

Если вы вешаете на остров тег coastline, то обязательно вешайте и на сам водоём тоже coastline по тем же самым правилам, т.е. вода и там и там по одну руку движения вдоль линии. Если вы вешаете только на остров coasline, а на окружающем его водоёме нет coastline противоположного направления, то в сборках на основе mkgmap остров обязательно затопит половину карты, потому как mkgmap на основании тегов coasline генерирует море сам, и если у него в пределах ближайших 100-200 км нет другого костлайна, то он всё пространство вокруг считает морем.

Или вешайте coastline обязательно и на внешний контур водоёма и на острова или не вешайте этот тег на острова вообще.

ну да, на острове (на релэйшене) висел coastline, но я его снял http://www.openstreetmap.org/browse/changeset/14539598, теперь coastline остался только на линиях (на всех линиях, формирующих Байкал, и внешних и внутренних).
сейчас то все верно? , остается только ждать новых сборок? и Мапник перерисует в ближайшем будущем?

upd: блин, похоже не на всех, щас все перепроверю
upd: сейчас на всех coastline прописан, и на берегу материка, и на берегах островов, в т.ч. Ольхон (будем ждать обновления карт)

Вот так работает алгоритм генерирования моря в mkgmap и сходным образом работает и мапник.




Эм… а зачем на озере coastline? Озеро же. Так и маппить его надо поправилам озер.

На крупные водохранилища полезно вешать natural=coastline для того, что тот же мапник например рисует его (coastline) не из данных OSM, а из заранее собранных шейпов для всей планеты сразу (порядка 300 МБ получается данные в шейпах), игнорируя coastline в базе PostGIS. Поэтому когда в результате различных обрезок очень часто различные крупные водоёмы оказываются скачанными не полностью, если пересекают какие либо границы, так например Чудское озеро всегда сломано во всех выгрузках России и единственный способ заставить разные рендеры и конверторы его рисовать - это правильно обозначить его костлайном, что бы оно рисовалось из шейпов.

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

Max Vasilev, ну я усвоил уже эту теорию по coastline (суша слева, вода справа, линия не более 500 точек, контур замкнут), если рассматривать береговую линию Байкал-материк и Байкал-Ольхон, то все линии были правильного направления, на всех был coastline вроде рядом нет других линий с costline с неверным направлением. Было на мой взгляд лишний тег coastlin на мултиполигоне (Ольхон 2383818), я его убрал с релэйшена. Я поступил верно?
Кто-нибудь может сказать, сейчас все верно, стоит ждать, что остров всплывет на Мапнике, или надо еще ошибки искать?

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

Я сейчас не могу проверить Байкал, я сейчас не смогу его выкачать целиком.

на сегодняшней сборке Velo100 вообще все острова в Байкале потонули, ну чего то меня прям ооочень интересует, что не так в данных?