layer по умолчанию для bridge и tunnel

тяжко без умения выражаться на английском :frowning:
нужно наверно всё же вести обсуждение тут и переносить важные моменты туда


пример с обсуждения в вики:
http://upload.wikimedia.org/wikipedia/commons/4/40/Bad_III.JPG

если редактор явно проставил level, то предполагается что он знает что делает
так что пусть чинит

Это нежелательно! Я понимаю что на русском проще. Сам не “айс” знаю английский. Вон, Zverik и _sev поправляли мой текст пропозала. Но смысл думаю понять можно, даже если тупо перевести Гугл-переводчиком.
Обсуждая здесь мы будем работать параллельно над одним и тем же, а надо совместно.

добавь пожалуйста в первое сообщение ссылки

Скопирую сюда
How to go from scheme used now to new scheme? How to understand if now no layer - is author means that layer=0 or miss them?

Как перейти от существующей схемы к новой? Если у объекта нет левела - то это автор его забыл или он нулевой?

I think, it’s better to warn mapper if no layer tag on bridge/tunel, in validators

Я думаю лучше, если валидаторы будут предупреждать мапера если не проставлен тег layer для моста/тунеля.

для обеих схем предполагается:

  1. если layer не указан, значит он принимает стандартное значение
  2. если стандартных значений не достаточно для описания совокупности объектов, значит тег layer надо указывать явно

если автор не указал тега, то:

  1. либо его устраивают стандартные значения
  2. либо он не акцентировал на этом внимания
  3. либо он просто не знает о существовании этого тега

переход от старой схемы к новой просто избавит редактора от необходимости проставлять тег в очевидных случаях
для неочевидных случаев всё останется по-прежнему

сейчас так и происходит
полагаю что эти предупреждения не нужны
так как желая их исправить, редактор вносит избыточность в базу
устранить которую и призван пропозал

P.S. сам перевести на английский этот ответ не возьмусь. если кто-то переведёт без искажения смысла и опубликует - буду благодарен

система уровней хоть и относительна, но привязана своим нулём чётко к земле
если мост лежит на земле, значит архитектор дурак - в том месте достаточно простой дороги
если же между мостом и землёй еще что-то есть - значит мост всё же располагается на 1+ уровне

(могут, конечно, быть ситуации когда между мостом и землёй лишь сотни метров воздуха, но это всё же скорее исключение)

То, что в рендерерах уже есть такая логика, скорее всего не верно. Рендерер просто сначала рисует всё, что идет с layer=-5, потом всё с -4 и т.д., а в пределах одного слоя сначала рисует все тунели, потом все обычные дороги, потом все мосты. Т.е. мост без явного layer отрисовывается сверху дороги, у которой так же не указан layer, во время отрисовки 0-го слоя тем же образом как, например, building=yes оказваются сверху landuse=residental, хотя ни на домике, ни на полигоне квартала layer не указан.

По поводу мостов вроде http://upload.wikimedia.org/wikipedia/commons/4/40/Bad_III.JPG - layer служит для разграничения объектов, находящихся друг над другом, а не рядом. Важно, чтобы слой моста был выше слоя реки, а то совпадает ли слой реки со слоем дороги и других объектов на земле рядом не важно, т.к. они именно рядом, а не сверху-снизу относительно реки. И если придерживаться рекомендации из wiki “When tagging things, try to avoid the layer tag most of the time”, то получается достаточно указать layer=1 для моста, а реку и дорогу оставить без явного layer. Пытаться указать, что река имеет обрывистые берега выставляя ей layer=-1 мне кажется не верным, т.к. в описании тэга ничего про такое поведение нет.

grisha, поправка.
Ты расписал то, как “должен” это делать нормальный рендерер. У меня получилось такой сделать, в частности, для Беларуси на kosmosnimki.ru.
Mapnik на osm.org интерпретирует всё совсем иначе. Он сначала рендерит все простые дороги (сортируя по layer), после чего рендерит все обводки мостов, после чего рендерит ещё раз только мосты, опять-таки сортируя по layer. На osm.org не получится подсунуть мост под тоннель, никак.

Кроме того, мне так и непонятно, какая проблема решается данным пропозалом. :slight_smile:

Кажется, он просто предлагает прикладному софту считать, что bridge без layer всегда имеет layer=1, а туннель -1.
По сути, это не пропозал, а просто рекомендация.

Данный пропозал позволит не ставить теги, значение которых очевидно.

Ilis, приведите пример софта, котрый вы таким образом хотите “починить”. На данный момент и так можно не ставить этот тег. :wink:

Если бы я писал софт, я бы трактовал отсутствие лейерс на тоннелях и мостах как в пропозале. И тег я ставлю, но меня это достало. Пропозал должен починить не софт, а редакторов :slight_smile:

Это не починка редакторов, потому что необходимые тэги они от этого ставить не начнут, скорее наоборот. Это просто “легализация” ошибки.

я приведу - рендереры и валидаторы
сейчас приходится авторам софта самим додумывать как же так расположить мосты чтобы ничего не повылазило
пропозал же призван в том числе стандартизировать их поведение

какой шанс что увидев на всех мостах в городе layer 1, редактор с первого раза правильно проставит теги в сложной развязке?

полагаю что ошибок как раз станет меньше
так как лучше внимательно заполнить 1 тег, чем невнимательно два

да и можно будет наконец почистить этот layer
но это не скоро…

Это не необходимый тег. Так же как oneway=yes, например.

И непроставление тега в данном случае не ошибка.

Можно было бы, например, вообще описать тег layer как необходимый только в случаях когда пересекаются два однородных объекта. Но поскольку это труднее для понимания, то лучше уж назначить ему дефолтные значения.

Высокий.

Не станет.

И сразу бан за вандализм.

Как oneway необходим на односторонних дорогах, layer необходим на пересекающихся веях.

А вот и неправда!

На односторонних моторвеях этот тег необязательный, потому что это очевидно следует из определения большинства моторвеев.

Так же из определения моста следует что он имеет лейер выше, чем пересекаемый им объект.

“Очевидно из определения” и одновременно “большинства”. Феерично.
Значит один такой косяк уже есть.

Во-первых, не следует, во-вторых, “лейер выше” никак не означает “1”.

А что сейчас мешает его не проставлять? Что и где ломается?