highway= stop и highway=give_way

oneway=yes, кстати, JOSM не ломает, про incline не знаю

Проблема не в постановке точки, а в том, что вей короткий, и изменение его длинны (новичек, неведающий о правилах действия знаков в ОСМ перетащил перекресток на пять метров) инвертирует направление действия знака. Не зависимо, насколько близко точка стоит к перекрестку, на коротких вефях она запросто может стать ближе к другому концу вея.

Добавлю, стоит он всегда справа от вея по направлению движения. Я тоже склоняюсь к тому чтобы обзначать их (знаки) реальное мосто положение, а не на веях. Ну и в отношении.

Вы предложите схему. Пока то, что есть - хотя как-то может быть обработано. То, что предлагается сделать отношением - вообще не ясно и не понятно. Как это будет выглядеть?
По поводу “поломать”. Релейшн ломается в 100 раз легче, чем вей.

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

Сходу пример на суд:


отношение:
type = traffic_sign
traffic_sign = give_way, stop, ... (считаю не обязательным, ибо есть линк на знак)

участники:
Точка  sign   кол-во = 1, пой знака
Вей     via     кол-во = 1, хайвей, на который распространяется знак
Точка  from  кол-во = 0..1, задает направление движения действия знака, в случае если to не является концом вея.
Точка  to      кол-во = 1, точка на вее, в направлении которой действует знак, для рассматриваемых знаков, идеал - точка перекресток

Хайте, вместе найдем наилучшее решение.
Или, все же, ПОИ знака оставить в покое, пусть будет сам по себе, и вот это:


traffic_sign = give_way, stop, ...

оставить, такая конструктивность уже стала стандартом для отношений, и вот это:


Точка  sign   кол-во = 1, пой знака

из отношения выкинуть

Вот, уже думал. тынц

dr&mx, sign на хайвее? В реале знак же не на дороге ставится.

не на дороге - там где он стоит в реале. а некоторые над дорогой висят
в отношении описываешь примерно так

Type=junction

via=место пересечения дорог
major=вей главной дороги
sign=точка знака главной дороги (если есть) или стоп (для жд переездов?)
major=вей главной дороги
sign=точка знака главной дороги (если есть) или стоп (для жд переездов?)
minor=вей второстепенной
sign=точка знака уступи (если есть)
minor=вей второстепенной
sign=точка знака уступи (если есть)
minor=вей второстепенной
sign=точка знака уступи (если есть)

IMHO, отношение лучше делать на весь перекрёсток
Типа такого:

Свойства:
type=crossing
crossing=controlled/uncontrolled

Роли:

main_road - главная
minor_road - второстепенная
outline - границы перекрёстка

Точки give_way/stop остаются как есть.

Для расчёта времени прохождения перекрёстка потребуется анализ попадания пересечения внутрь границ перекрёстка + определение взаимного расположения примыкающих дорог (слева/справа) для подсчёта направлений движений, которым требуется уступать. Чем больше направлений - тем выше время прохождения. Вместо границы перекрёстка можно перечислять все пересечения в отношении, но это более неустойчивая к ошибкам схема получится.

Каков алгоритм расчёта? Может вы знаете волшебную формулу? Без учёта трафика?

Когда весь перекрёсток состоит из более чем двух дорог или некоторые имеют две проезжие части очень трудно описать приоритеты.
А когда отношение описывает только пересечение в точке, то уже просто задать их. И например primary_link будет главнее primary

dr&mx, не на дороге - это хорошо, но возникают трудности с определением направления действия знака в случае не разделенного вея на перекрестке. Лучше добавить признак, явно указывающий направление действия знака, иначе проблем не оберешься. ИМХО, заставлять бить вей на перекрестке тоже не хорошо.

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

Т. е. в случае поворачивающей главной имеем: на второстепенной уступаем тем, кто на главной слева, на главной спереди и на второстепенной справа, а на главной уступаем тем, кто на главной справа.

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

Я ж практически всё расписал - время прохождения пропорционально кол-ву примыкающих направлений движения, которым требуется уступать. Это кол-во зависит от регулируемости перекрёстка и маршрута движения (откуда-куда). Конкретную формулу и коэффициенты в ней проще подбирать эмпирически.

К примеру в том же Ситигиде сейчас зашиты единые стоимости левого/правого поворота. Если б они добавили в свой конвертер расчёт индивидуальных стоимостей с учётом приоритетов - маршруты бы улучшились. Благо в самой программе у них и так почти всё есть для этого (статистика в карте, векторные пробки по направлениям и т.п.)

Учёт трафика - это уже статистика/пробочный сервис. Пускай этим специализированные сервисы занимаются.

В ПДД нет разделения “более главная дорога”/“менее главная дорога”. Есть только главная, второстепенная и помеха справа. Согласно этому и нужно определять приоритетность.

Всё расписывать отдельно - это будет по одному relation на каждое направление движение к перекрёстку. Вручную это расписать и поддерживать будет нереально.

Плюсую аутлайн - тогда в навигаторе с легкостью генериться крупная картинка со схемой проезда перекрестка.

По одному релейшену на каждое «Уступи дорогу». Т. е. для классического перекрёстка это два релейшена со второстепенки с двух сторон, а для поворачивающей главной это будут два релейшена для второстепенной и один для главной, у которой помеха справа. Плагин их без труда расставит :slight_smile: Зато конвертеру не надо будет мучиться.

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

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

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

Можно вообще без отношений тег прямо на дорогу ставить. Правда, между двумя перекрестками может понадобиться разрыв.
А знаки отмечать как прежде.

Точнее , отношения нужны будут только для рисования знаков