Несмотря на бОльшее использование умолчаний мне не нравится использование числа. Вместо этого мне кажется логичным описание свойств каждой полосы (как вариант - с использованием диапазонов).
первый пример:
lanes=6
lanes:forward=3
lanes:forward:1=turnleft
lanes:backward:1-3=turnleft
При этом направления можно описывать не перечнем, а через теги для каждой полосы
lanes:forward:1:directions=l
что представлется более удобочитаемым чем перечень (а это, в свою очередь важно с точки зрения удобства использования в не-визуальной форме)
\А может и просто тогда типы через точку с запятой указывать?\
Также это позволит решить проблему нелогичного выделения полос. Например, мне совершенно непонятно что будет делать текущий вариант с примыканием слева.
Ну а мне он пришел в голову автоматически, стоило только просмотреть “отношение с плагином” (релейшн из одной линии - но вэй!)и тут же увидеть lane:x: как отличную замену релейшнам.
В общем, после минутной паники «омг как же я не додумался закрываю обсуждение всё переделываю» подумал трезво, и вот какие минусы вижу:
перечисления в названии тегов (ну и вообще параметрические теги); Komяpa: «его хрен запроксируешь в шейпы и любой другой формат со стандартным набором колонок, я такое вообще хрен на постгисе поддержу, при всём желании»;
не рифмуется с lanes: там количество, а здесь перечисление, причём дважды.
lanes=6
lanes:forward=3
lanes:forward:turnleft=1
lanes:backward:turnleft=1-3 (или даже 1;2;3 - ближе к принятым схемам тегирования)
Просто вариант с количеством слишком опирается на “умолчания” из-за чего плохо воспринимается и постоянно остается желание вкрутить directions, который, в силу сокращений, тоже не эталон красоты - все эти буквы надо держать в голове, а они ведь, по сути, дублируют те же полосы.
Минусы “переворота” по сравнению с lanes:x - нельзя навешать “чего хочу” на каждую полосу.
С другой стороны можно оставить непосредственно движение на lanes::=
а все расширенное (ширина там, рельсы, можно вообще все из вэйпартов) выкинуть в lane:x:
Два тега - два подхода. Один лучше поддерживается ПО, второй - больше позволяет. При желании прожевывается роботом в любом направлении.
В этой схеме меня смущают итоги вида: lanes=3, lanes:turnleft=3. Путаются количество с номерами, очень неочевидно для новичков, не видевших соответствующей вики-страницы.
Точно. Поэтому еще раз предлагаю посмотреть в сторону turnleft_only/turnright_only (для исключения крайних левых/правых полос из движения прямо) как варианта однозначного обозначения движения по полосам для Прогорода. Имхо, lanes:directions надо убирать, не ложится он в эту схему…
Ну да. Но с одной стороны эта проблема, с другой стороны lanes:forward:bus=1 при использовании по числу нам сообщает достаточно только то, что есть полоса для автобуса. Ее положение мы можем определить либо опираясь на ряд допущений, либо на directions.
Так… а если оставить lanes как в пропозале, а directions пропозала заменить на lane:x: ?
Вылезают проблемы с перечислением в названии… черт. Главное что меня смущает в пропозале: мы либо угадываем либо смотрим в directions, который использует синтаксический код вместо описательных тегов…
Тут дело в том, что lanes:psv:* используется уже примерно полгода. При этом используется умолчание, что эта полоса — первая от внешней стороны. Другими словами, я просто расширил эту схему на полосы поворота, соответствующим образом усложнив умолчания.
Проблема с lanes:directions несомненна, но заменять этот тег на ещё N тегов, похожих на lanes:: — не очень хорошо: двойная работа, либо непонятки для непосвящённых. Можно попытаться раскрыть его, но я опасаюсь другой пропасти: программистского синтаксиса, как в украинском пропозале. lanes:directions=turnleft;through;through,turnright;turnright,psv читается, на мой взгляд, куда сложнее lanes:directions=l;s;sr;rp.
Dimuzz, тег directions снимает неоднозначность не столько с количеством полос для движения прямо, сколько с расположением и взаимоотношением поворотных и ограниченных полос: например, где находится полоса для общественного транспорта, можно ли с неё поворачивать.
Да, ещё не забудьте, пожалуйста как учесть “переходящие полосы”. Т.е. как в этом формате описать такую развязку, что бы было однозначное представление вот такой развязки, т.е. что бы было понятно, что правая полоса становится “только направо”, а левая “вырастает” из второстепенной дороги.
А не трактовалось, что второстепенная дорога вклинивается в главную, а на главной потом появляется правая полоса для поворота.
Читается сложнее, но если не держать в голове схему - то l;s;sr;rp не читается вообще.
Более того: перечисление через точку с запятой в текущем применении обозначает (насколько я понял) не последовательное, а одновременное применение. И вот с этим directions идет в разнос по-полной. Представим что мы объединили два куска с разными directions в JOSM: автомат нам такую кашу смешает, что мне страшно.
Логично: переделал все точки с запятой на запятые.
По крайней мере, это даёт стимул найти описание тега, а не придумывать объяснение ему из головы, как варианты с lanes:*, напоминающие об обычных lanes и lanes:psv.
Ну схема-то при этом не должна допустить двоякого толкования. Просто пока я не понял чем в схемах будут отличаться развязка из предыдущего моего поста и эта?
Вообще-то на местности там трёхполосный участок довольно длинный, начинается от первого примыкания (2+2->3) и длится до моста и дальше, где первая полоса становится «только направо» (3->2+1). Собственно, поэтому всё тегирование — поставить lanes:turnright=1 на последнем отрезке.
А как навигатор(или рендер) поймёт, что это не дополнительная полоса, а правая полоса от предыдущего участка. Ибо по незнанию, многие едут по правой полосе, а она ведёт совсем не туда, куда бы хотелось.
И как он поймёт, что переход из 2 полос в 3 осуществляется примыканием слева одной полосы?
Собственно, это и означает тег lanes:turnright=1 — что правая полоса только для поворота направо. Если были все прямо, а затем появился этот тег, то это самый логичный вывод.
Опять же, на усмотрение навигационной программы. 2+2->3 более логично, чем 2+2->(2)->3. Но в реальности зависит от программистов, конечно: схема тегирования здесь ни при чём, это только подсказка.