construction=yes vs highway=construction, construction=secondary

Читая документацию обратил внимание на такой совет:

“Вместо него можно ставить тег construction=yes. Последний вариант является более универсальным и применим к любой стройке.”
http://wiki.openstreetmap.org/wiki/RU:Key:construction

Вообще, добавка construction=yes к любому тегу кажется более конструктивным подходом чем громождение конструкций типа highway=construction, construction=secondary, construction=footway. Более того, народ активно ставит такие комбинации как construction=building, construction=hotel, construction=school.

Вопрос - чем плох construction=yes если он используется относительно нечасто на фоне других комбинаций?

construction=yes плох ровно тем же, чем плохи все “инвертирующие” теги: он портит уточняющую модель данных.

дополнительные теги, которые изменяют основные свойства объекта, задаваемые «главным» тегом, лучше не использовать.
так, highway=secondary, construction=yes кардинальным образом отличается от highway=secondary (обозначая отсутствие дороги), поэтому лучше явно указать, что это дорога иного класса, highway=construction.

пример обратного — недавнее преобразование highway=ford в highway=* ford=yes: то, что по дороге течёт вода, незначительно меняет её навигационные свойства.

Но давайте глянем на другие *=yes теги: access=yes, bridge=yes, tunnel=yes, area=yes, trolley_wire=yes, oneway=yes и т.п. Смысл определённо меняется при накладывании таких тегов.

И ещё вопрос - как тогда отображать строящиеся здания, школы, объекты man_made и т.п.

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

Добавление construction=yes к дороге - это, другими словами, highway=no (чувствуете абсурд), т.е. если access, bridge и прочее лишь влияют на “проходиость” дороги, то этот тег как раз показывает её “непроходимость”, потому что даже в случае access=no понятно, что доступ закрыт каким-либо препятствием (административным или физическим), но если ты попал по другую сторону highway’я у тебя есть возможность двигаться. В случае же с construction’ом такой возможности нет.
Поэтому правильнее использовать highway=construction, construction=secondary, т.е. изначально ясно, что дорога физически не даёт ездить по ней. И что это вообще даже и не дорога, а строящийся объект.

Абсурдности не вижу, т.к. это проблема конвертера, как и во что перегнать данные. Добавление одной строки кода не должно создавать проблем конвертеру. Тут скорее вопрос привычки.

Далее, некоторые умеют ездить по строящимся дорогам. В Питере такой пример - Обводный канал. Стройка это часто аналог access=permissive или access=private. Дорога строится, но некоторым ездить можно, не говоря о строительной технике.

В случае с дорогами construction=* хорошо разработан и плодить новую сущность возможно и не стоит, тем более что это всё завязано на навигатор. Но вот что насчёт другие объектов - зданий, башен, электростанций и т.п?

Т.е. если джумшут на катке решит проехаться в рабочий полдень на катке, установив в “салон” автонавигатор с картой ОСМ, он очень расстроится, что навик поведет его в объезд?

^^ Типа того :slight_smile: А вдруг навигатор будут использовать спецслужбы? :wink:

Ага, ракеты стратегического назначение по карте ОСМ наводить…

fserges, это проблема не конвертера, а предлагаемого тега. Он не подходит для проекта такого типа, у которых отсутсвуют установленные свыше классификаторы.

И ни для каких других объектов такие “инвертирующие” теги тоже не годятся. Когда хочу найти здание, я ищу building=, и именно это building= должно определять наличие здания в данном месте в данный момент времени, а не куча кем-то зачем-то придуманных exploded_in_1953=yes, stealed_by_aliens=yes или virtual_for_3D=yes.

Вы отдаете себе отчет, во что превратится продвигаемая вами модель данных и цена её поддержки, когда накопится этак 100500 исключений из правил?

Да и хороша “проблема конвертера”, которая рушит всю семантику данных.

Хорошо, давайте глянем на проблему шире. Вот у нас некий объект. Скажем железная дорога или здание шахты. Это вполне объект для карты, его использование понятно. А теперь представьте, что дорогу или шахту забросили? Тогда пишем railway=abandoned? А если заброшены трамвайные пути? Добавление abandoned=yes обозначает объект реальности который не используется сейчас по назначению.

http://wiki.openstreetmap.org/wiki/Proposed_features/Abandoned

Далее, шахта или дорога строится. Это ещё не действующий объект но он вполне может быть обозначен, т.к. объект может строиться годы. railway=construction? mineshaft=construction?

Ладно, а есть ещё и планы по строительству дорог или шахт. Грубо говоря, финансирование выделено, но основные работы ещё не начались. ralway=proposed? mineshaft=proposed?

http://wiki.openstreetmap.org/wiki/Key:proposed

Я бы сказал что вопрос - как лучше отмечать по крайней мере дискуссионный.

Для этого сначала надо определиться, что именно мы понимаем под шахтой или дорогой.
А потом надо ответить себе на вопрос: это сейчас тут есть? Если ответ положительный - ставим тег, соответствующий шахте или дороге, если отрицательный - тег ставить нельзя.

railway=abandoned обозначает отсутствие железной дороги. Не используется — это railway=disused. Про этот вопрос есть целая статья в вики.

Ну это понятно откуда :slight_smile: highway=path может присниться только в страшном сне:) Но так в своё время назвали и менять уже поздно. Это вопрос совместимости а не логики

ОК! Возьмём конкретный пример. Я живу в районе с видом на стройку. Где часть ландшафта преображается. Сейчас я вижу заброшенную железку (она потом будет демонтирована и на её месте будет улица), заброшенные здания (будут разрушены и на их месте построены новые). По стройке идёт куча временных дорог, много фундаментов.

Как это обозначать если:

  1. Такая картина несколько лет (стройка закончится где-то в 2017 году по планам строителей)
  2. Планы строительства вывешены на сайте/объекте и по фундаментам можно убедиться в том, что стройка идёт по плану (точнее медленно, но размещение объектов соответствует плану).

Чем теги construction=yes, abandoned=yes, disused=yes или proposed=yes противоречат логике?

Ничем! Просто у них другая логика :wink:

Нашёл я такое :slight_smile: - http://wiki.openstreetmap.org/wiki/Comparison_of_life_cycle_concepts

а теперь посмотри на ссылку в моём сообщении от 19:58