О запрете разворота (no_u_turn)

Имеем двухполосную дорогу со сплошной по середине.
Как обозначить, что разворачиваться на ней нельзя?
Нашёл такой пропозал
В данный момент ставлю на вей следующий relation:

  • type=restriction

  • restriction=no_u_turn

Ни какой роли ему не ставлю. Но чую, что это не правильно. Хотя с другой стороны, этот вей одновременно должен быть во всех 3-х ролях и from, и to, и via (потому что разворот запрещён в любой точке), что тоже абсурд.

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

А если на этой точке нет разворота? А ближайшая, на которой можно развернуться - километрах в 10? Иногда проще три раза повернуть направо, чем один налево.

divided=yes

не?

divided/nondivided вроде как в стадии пропозала (ссылка в 1-м посте)

Этот пропозал, по-моему, и есть самое разумное, что можно сделать. Я такое же свойство встречал в картах дорог waze. И рендерится так же - линия посредине дороги.

Ясн. Так и буду делать, наверное.

а дайте линку посмотреть на divided=yes, если есть под рукой

я вот нашел статистику использования http://tagstat.hypercube.telascience.org/tagdetails.php?tag=divided
Получается, его почти не используют?

Там в пропозале вообще-то тег divider вроде как. Его немного чаще используют.

Да, divider.

А вот у меня назрел вопрос, поскажите, как проходит голосование и принятие предложений? А то нет уверенности использовать или нет divider.

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

Исходные данные: перекресток двух дорог, каждая нарисована как 2-х вейная, везде разрешен поворот налево, но запрещен разворот.
В настоящее время поддерживается конверторами для автонавигаторов хоть какая то схема, позволяющая запретить развороты на таких перекрестках???
Например если в качестве роли “via” указать не точку, а линию, будет ли правильно работать эта схема?

Без модификации графа - нет.
Вернее есть вариант запрета с указанием way вместо точки в роли via, но он никем не поддерживается.

Самый просто способ модификации - стянуть короткие рёбра на перекрёстке в точку, тогда всё решается обычным restriction.

Очередной костылище? А поддержку “запрета с указанием way вместо точки в роли via” добавить никак нельзя, неужели такие случаи редки?

Такие запреты есть у Телеатласа и Навтека (впрочем нам от этого ни холодно ни жарко), но и в полише они описаны для Гармина. Надо консультироваться с liosha поддерживает ли их какой-то из компиляторов Гармина, в коммерческом MPC они точно должны быть.

Поинтересуюсь еще разок на счет поддержки “запрета с указанием way вместо точки в роли via” - это проблема вообще решаемая в тех рамках, которые есть сейчас, или же можно про это забыть? А то конкурировать с официальными картами без костылей не получается :slight_smile: Как то совсем не хочется портить перекрестки…

что мешает начать использовать для запрета разворота на перекрестках с 2-х вейными дорогами way в роли via? это, вроде, логично. Все равно лучшей схемы не придумано, и соответственно навигаторам-конвертерам пока просто нечего имплементить. будет хоть какая схема - будет и использование

а запрет разворота на прямой дороге вроде накрывает overtaking=no - там где сплошная, там и развернуться нельзя

Мешает то, что эта схема принципиально не поддерживается в распространённых алгоритмах маршрутизации, т.к. в них при прокладке маршрута при очередном шаге идёт просмотр только соседних рёбер, а в данном случае при выборе разрешённых путей нужно уже учитывать 2 ребра. Соответственно, чтобы поддержать подобный запрет - нужно модифицировать нужным образом алгоритм, что может быть нетривиальным, особенно если хочется чтобы быстродействие при этом не пострадало.

Ну дополнительными рёбрами сделать нужную схему несложно. Вот простейший пример перекрёстка с запретами разворота со всех направлений:

Два дополнительных ребра и по паре relation-ов доп. запретов на каждое направление.
Не такая и большая цена, зато алгоритмы можно не трогать.