Как обозначать? (Part 1)

Зачем нужна вода зимой? Зачем нужны водные переправы зимой?

Место проведений ёлочных мероприятий не меняется совсем если район застроен хоть раз. Ёлочные базары тоже относительно постоянные. Тоже самое с арбузами: продают на первом пустом углу, но не на каждом.

http://wiki.openstreetmap.org/wiki/Key:seasonal 104000 использований. Сколько из них от fserges?

seasonal=no - 67 917 раз, seasonal=yes - 33 718 раз http://taginfo.openstreetmap.org/keys/seasonal#combinations. Основная масса использований - пересыхающие реки, водоёмы. Для таких вещей seasonal абсолютно оправданная вещь.

opening_hours неплохо позволяет описать ситуацию вроде “две последние недели года” (ёлочный базар) и т.п.

Давайте тогда определимся что seasonal=* для природных объектов (рек без чёткого расписания), а месяцы ёлочных базаров нужно в opening_hours указывать?

http://projets.pavie.info/yohours/?oh=Dec-Jan%2024/7

Точные дни можно в OH не указывать.

В самом примитивном варианте можно отфильтровать


opening_hours !~ /^Dec-Jan.+$/
opening_hours !~ /^Dec-Feb.+$/
opening_hours !~ /^Dec-Mar.+$/
opening_hours !~ /^Nov-Jan.+$/
opening_hours !~ /^Nov-Feb.+$/
opening_hours !~ /^Nov-Mar.+$/

Это если с псевдоплассами MapCSS (коих полно) не хочется возится https://josm.openstreetmap.de/wiki/Help/Styles/MapCSSImplementation#PseudoClasses

PS. в программах кроме JOSM всё обстоит на порядки хуже (я думаю)

seasonal имеет вполне конкретный смысл - природные, а не календарные сезоны. В Wiki написано кратко, но смысл понять легко и даны примеры того, что зависит от изменения погодных условий: состояние дорог, работа фермерского рынка в теплое время и т.п.

А opening_hours определяет календарные интервалы. Потому то, что зависит от погоды (грубо, в рамках смены сезонов, а не “когда не идет дождь” - для такого условия сейчас способа обозначения нет), отмечаем через seasonal, а что от даты - через opening_hours. В итоге, фермерский рынок - может быть seasonal (а может быть и opening_hours - это как решат), а ёлочные базары - opening_hours.

Как быть с полосами общественного транспорта? Сейчас, например, в Москве перемешаны lanes:bus и lanes:psv. По ПДД таксистам разрешено ездить по ним в случае отсутствия “кирпича” (который вроде как массово с выделенок снимают), так что по идее lanes:bus надо массово менять на lanes:psv.

Как обозначить дорогу, одностороннюю с понедельника по субботу?

В голову приходит только убрать oneway=yes и навесить ограничений на поворот. Насколько это корректно?

type=restriction
restriction=only_straight_on
day_off=sunday - устаревающий тег

http://wiki.openstreetmap.org/wiki/RU:Отношения_-_ограничения

oneway:conditional=yes @ Mo-Fr
http://wiki.openstreetmap.org/wiki/RU:Conditional_restrictions

UPD access поправил

Выборка по access неверная.

Т.к. большую часть времени дорога односторонняя - то это должно быть значением по умолчанию (для совместимости с программами, которые не знают про схему conditional), с исключением для воскресенья.
Т.е.: oneway=yes + oneway:conditional=no @ Su

Проще обрабатывать один вид написания (только для yes/no) или два (для no, для yes)?

Я бы не стал усложнять и писал всё по одному виду (только для no “oneway:conditional=no @ Su”) или (только для yes, “oneway:conditional=yes @ Mo-Fr”)

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

Вы забываете про уже существующие программы и конвертеры, среди которых мне пока не известны поддерживающие теги conditional, т.е. они знают только про oneway. Указав только вариант с conditional вы тем самым окажетесь в ситуации, когда в этих программах в большую часть времени данные неверны.

Как раз наоборот - в моём примере больше букв (не забывайте про сам oneway=yes), однако он удобнее для практического использования.

Я ничего не забываю, это нужно явно обговаривать в теме “как обозначать”.

  1. oneway=* обозначается для совместимости с обычнми программами.

  2. значение его “преимущественно одностороннее” (yes) или “преимущественно двусторонннее” (no).

  3. детальное расписание указывается в теге с :conditional припиской, прямо сейчас мало кем поддерживается, но тегировать нужно единообразно. Человек значение тега может понять в после прочтения вики.

Я говорил про

oneway:conditional=no @ Su
oneway:conditional=yes @ Mo-Sa
(здесь должно было быть Sa)

а не про oneway=*.

Два обозначения выше эквивалентны, лучше указывать вариантом с yes для совместисмости с opening_hours для “открыт по умолчанию” (opening_hours=24/7).

Они не эквивалентны (да и Sa вместо Fr следует указать), т.к. не описывают какое значение будет вне указанного диапазона времени.
Эквивалентными (для поддерживающих conditional) можно назвать следующие варианты:

oneway=yes + oneway:conditional=no @ Su
oneway=no + oneway:conditional=yes @ Mo-Sa
oneway:conditional=yes @ Mo-Sa; no @ Su

однако для тех, кто conditional не поддерживает, лучше вариант с oneway=yes, т.к. это значение действительно в большую часть времени.

Опечатку обуждать не будем; совместимость тоже не очень интересна.

Вот этот вариант на вики не описывался подробно.

Например, я представлял что из

oneway:conditional=yes @ Mo-Sa

следует

oneway:conditional=yes @ Mo-Sa; no @ Su

Поэтому я речь про приведение к “yes” и веду. На табличке тоже написано про “Mo-Sa”, а не про запрет “no @ Su”, что упрощает ввод и восприятие людьми - не считаете?

Отсюда и мои предпочтения указывания “yes”.

И тот же opening_hours хорошо работает по принципу исключения (те интервалы, дни, которые не указаны, становятся автоматически «closed_hours»)

Что касается того, указывать ли интервал разрешения или запрета - это, также как в случае с ограничениями поворотов, взаимозаменяемые значения.

Спасибо за помощь. Вариант

oneway=yes
oneway:conditional=yes @ Mo-Sa

точнее прочих отражает смысл знака на картинке. Его и буду использовать.