Двойная сплошная - старт налево, как запретить?

Такое творится от сотворения мира.
Никакой навигатор, пока я не разгонюсь, не понимал в какую сторону мне маршрут строить, куда нос у машины повернут.

Навигаторы тоже конечно тема интересная, но OSRM и openrouteservice это скорее планировщики. Их используют например для планирования доставки грузов. При этом такая загогулина приводит к ошибочной последовательности доставки в рейсе.

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

Кстати, почти та же ботва и на точке финиша. Навигатор часто ведет на противоположную сторону дороги.
То есть надо еще понимать в какую сторону должен быть направлен нос машины на финище.

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

wowik
Причем тут нос машины? Заданы адреса начальной и конечной точки. Известно, на какой стороне дороги каждая из точек находится. Нужно с учетом ограничений знаков и дорожной разметки проложить маршрут.

Решается доработкой сервиса прокладки маршрута.

Для рутинга нужно знать в какую сторону по дороге стартовать.
С какой стороны стоит точка указанными рутерами тупо не учитывается.

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

Вообще-то можно все и разметить
Немного отступив от перекрестка

lanes=2
lane_markings=yes
turn:lanes:forward=none
turn:lanes:backward=none

Хотя перед местами, где правые повороты надо типа
turn:lanes:forward=through;right
а потом опять
turn:lanes:forward=none

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

turn:lanes:forward=through наверно. none это отсутствие регулирования.
https://wiki.openstreetmap.org/wiki/Key:turn

Для запрета поворота с движения должно работать. Про старт там ничего не написано, строго говоря.

Если там 4 полосы то нельзя. А если две со сплошной, то должно стоять обгон запрещён.

Это типа в реале? Программа (роутер) откуда это возьмет?

Положим стоит

overtaking=no

. Но при старте по какой причине роутер должен это воспринимать как двойную сплошную?

Про turn:lanes=*

Т.е. этот тэг предназначен для нанесения на карту информации об информационной разметке, которая сообщает, какие ограничения ждут впереди на перекрестке, но сама по себе ничего не запрещает. В частности, о разметке в виде стрелок на проезжей части в ПДД РФ сказано:

Т.е. пересечение полос с целью стартовать налево эта разметка в реале не запрещает, и роутеры встретив этот тег на карте, должны его просто игнорировать. Ибо все что надо учитывать при планировании проезда перекрестков содержится в restrictions, а более эта разметка при планировании маршрута ни о чем не говорит.

Выходит, нужен бы специальный тег про двойную сплошную.

Роутер может учитывать только движение по имеющимся у него линиям дорог. Там будет полезно расставить запреты левых поворотов из дворов (а обычно оттуда и выезжает транспорт, обслуживающий торговые точки).
Если Вы занимаетесь планированием маршрута, то вряд ли тупо расставляете все точки отбалды в ожидании чудесного построения роутером оптимального пути. Наверняка Вы уже представляете более-менее правильную последовательность посещения точек на маршруте, а значит там не будет «внезапных стартов налево через двойную сплошную», т. е. челночного движения сначала туда, потом — обратно, с разворотом, по той же дороге (иначе Вы как-то не так представляете себе удобный маршрут для водителя).
Самое главное: маршрутизатор не может учесть расположения старта «где-то в чистом поле», он его всегда привязывает к определённой точке именно на дороге. Поэтому от наличия или отсутствия тега про двойную сплошную ничего не зависит. Рассчёт пойдёт от точки на дороге, а поскольку она предполагает движение в обоих направлениях, то далее путь будет проложен в зависимости от следующего пункта назначения.

Поэтому товарищ и хочет, чтобы дороги со сплошной белой кодировались двумя вэями. Тогда при остановке на обочине или выезде с прилегающей машина окажется на односторонней дороге и роутер сможет правильно просчитать маршрут. По мне так не вариант. Заносить ограничения для каждой прилегающей тоже вряд ли рационально. Во-первых, разметка меняется довольно регулярно или вообще неизвестна. Во-вторых, это всю планету переделывать придется. В-третьих, эти два вэя надо как-то соединять между собой у каждой прилегающей, где поворот таки разрешен. В-четвертых, на картах рисуются несколько дорог и куча развязок вместо одной дороги, что вводит в заблуждение. А в-пятых, в 99.99 % случаев это все не нужно. Выезд на дорогу и начальное маневрирование возлагается на водителя и он с этим обычно справляется. После того как это сделано, включается навигатор, и дальше можно ехать по нему. Обычно указанная проблема возникает, наоборот, в конце маршрута. Навигатор жизнерадостно подводит по скорейшему маршруту ко въезду во двор и зычно командует: “Поверните налево, во двор!”. И плевать ему на двойную сплошную и встречный трафик, делающий разворот практически невозможным. Более рационально повернуть за квартал до цели, объехать ее и спокойно подрулить с противоположенной стороны. Но ждать столь интеллектуального решения от навигатора глупо.
Поэтому, если требуется планировать движение транспорта по карте, наверное, стоит порекомендовать использовать специализированное ПО, учитывающее по умолчанию запрет поворота налево и начальное положение машины, и/или специально подготовленный набор данных, в котором дороги разделены на два вэя или обочины/прилегающие выделены в отдельные вэи с односторонним движением. Но это не к OSRM или OpenRouteService

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

Serg Levin, недавно кто-то попытался выступить в списке рассылки с предложением тега u_turn=yes/no, который ставится на саму линию дороги и, грубо говоря, обозначает отсутствие/наличие сплошной разметки. См. также сам пропозал и его обсуждение. Предложение не вдохновило сообщество, а сам тег u_turn=* пока не используется.

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

Т. е. уметь в запрет поворота налево относительно виртуального ребра? Идея понятна, но кто будет с этим работать? Расставить u_turn=yes/no не сложно. Сложнее мотивировать разработчиков сервисов по маршрутизации.

u_turn=yes/no тут вообще никак не поможет, я не видел не одного роутера, который бы разворачивал на ровном месте. А для пересечений дорог и так есть запреты разворота.

Теоретически это так. На практике возникают сложности. По спутнику Вы такой мэппинг не сделаете. И даже если живете рядом можете не обращать внимание на разметку, которую зимой к тому же не видно. Особенно, если не автолюбитель. Я вот каждый день хожу по Малышева, но где на какие прилегающие можно поворачивать не знаю. Просто не заморачиваюсь. Во-вторых, на ту же Малышева в Екатеринбурге на участке от Луначарского до Восточной выходит 10 съездов во дворы. Плюс есть не отмеченные на карте “карманы”. При существующей схеме тэгирования Вам придется разбить один вэй, соответствующий улице, на 11 маленьких вэев, присвоить каждому имя, расписать движение по полосам, освещение и т.д. и для каждого пересечения с выездами во двор добавить по 3 - 4 ограничения. К тому же по Малышева проходит 20+ маршрутов общественного транспорта и их все надо поправлять. Ну и выглядеть отношения маршрутов будут красиво - сотни маленьких вэев от подъезда до подъезда и не дай бог переставишь. Не завидую я тому, кто примется эти ограничения расставлять. Хотя может я ошибаюсь, конечно

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