Неправильное поведение JOSM

Насколько я вижу, первое вообще не про построение маршрута, а про моделирование траффика множества участников в дорожной сети
Есть оценки, сколько второй алгоритм будет строить маршрут Кейптаун - Магадан, если все дороги будут нарисованы только area-объектами?

Кто же пускает 20 тонные грузовики на площадь в 700 кв. метров в городе (иначе непонятно, что там за легковушки, велосипедисты и пешеходы)?
Давайте пример из жизни, а не сферический перекрёсток в вакууме.
ИМХО, если есть перекрёсток и на нём размечено движение, то по этой разметке и правилам ПДД можно нарисовать правильный дорожный граф линиями с нулевой шириной.

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

Вы сначала простой сделайте? Взяли слово - держите.

Реальный пример? Вы сразу решили обосраться на путепроводе с 6 подъездами и площадью 2500 метров с круговым движением? Такой путепровод даже приведенные мной методы с трудом возьмут.

ИМХО, если есть перекрёсток и на нём размечено движение, то по этой разметке и правилам ПДД можно нарисовать правильный дорожный граф линиями с нулевой шириной.

Так и обозначьте его??? Мой пример только по вашему мнению сферический. Приезжайте в гости, покажу эту развязку. Квадратная площадь, 4 дороги примыкают. Ни взять ни отнять. Я даже для вас её упростил - на самом деле там еще две линии трамваев ходит и расположена конечные 4 автобусов. Они сильно меняют движение по этой площади. Но я для вас упросил, вы даже со “сферическим” не справитесь.

Покажите, пожалуйста, где я “взял слово” нарисовать движение на какой-то развязке.
Я вас попросил привести пример, где правильно нарисовать невозможно.
И выссказал мнение, что если дорожная разметка нанесена и маппер знает ПДД, то он сможет нарисовать дорожный граф.
Я нигде не утверждал, что я смогу это сделать.

Адекватный для роутилок любых транспортов? Не сможет. Учитывая:

  1. соглашение OSM (или российской части) highway=* указывает “проезжая часть” (ПДД)
  2. highway=* рисуется строго по середине проезжей части (которая может быть и 50 метров, а может вообще постоянно менять ширину)
  3. обязательные точки на пересечениях путей
    Никогда не сможет.

Даю подсказку: грузовики, автобусы, фуры, мопеды, автомобили передвигаются произвольно и почти произвольно.

На спальных районах с перекрёсками в 60м^2 это худо-бедно работает, на больших площадных развязках, где ширина намного превосходит габариты движимых объектов - нет. Только графовый подход становится недостоверным кошмаром.

Понятно.

Ладно, предлагайте ваш способ отрисовки дорог

Старый граф не нужно трогать. Те, кого устраивает навигация по графу пусть ей пользуются. Она не ресурсоёмкая и работает для базового роутинга (из точки А в точку Б).

Вкратце:
0. обозначаем все возможные виртуальные направления: стоп линия - назначение

  1. перед входом на площадь развязки рисуем стоп линии (виртуальные стоп линии также возникают перед рельсами трамваев и поездов),
  2. рисуем surface=asphalt (трейсим асфальт площадей как мы трейсим леса)
  3. режем асфальт по дорожной разметке
    3.1 двойная сплошная - рисуем линию двойной сплошной
    3.2 островок треугольный по ПДД - отмечаем запрет для соотв. видов транспорта
    3.3 кусок асфальта только для автобусов - вырезаем его из полотна и отмечаем
    3.4 каждый пункт дорожной разметки по ПДД
  4. размечаем светофоры и правила переключений светофоров
  5. Запускаем http://en.wikipedia.org/wiki/Motion_planning
    5.1 “выкидываем” машины со стоп линий
    5.2 запрещаем двигаться где нельзя и моделируем запреты согласно 3
    5.3 ждем пока они доберутся до “назначений” из пункта 0

Это будет работать на любых площадных развязках но без кругового движения. Круговое движение я пока не знаю обойти - если кто подскажет - отблагодарю.

И что получится? Что будет результатом Motion planning-а?

Результатом будет линия-путь по которому можно этой машине проехать.

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

Пути могут изменятся из-за многих факторов, этим занимается http://en.wikipedia.org/wiki/Traffic_simulation. Пример: траектории машин по одной и той же площади по одному и тому же виртуальному направлению будут отличатся если они едут друг за другом либо внутренним и внешним радиусом.

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

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

PS. Пропустил вопрос:

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

d1g а можно и мне поинтересоваться?
Для решения какой практической задачи нужно столь подробное моделирование траектории?

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

Благодаря какому мотиву и откуда должны появиться те самые новые алгоритмы?

Способ описания улицы, который вы изложили здесь http://forum.openstreetmap.org/viewtopic.php?pid=434697#p434697 не требует вводить практически ничего нового.
Контуры дорожного полотна вы можете отрисовать, используя http://wiki.openstreetmap.org/wiki/Proposed_features/area:highway
Дорожную разметку - http://wiki.openstreetmap.org/wiki/Key:road_marking
По вкусу можете использовать вариации на тему http://wiki.openstreetmap.org/wiki/Key:lanes

В OSM до сих пор over 100500 дорог, которые не обозначены вообще НИКАК. Вот чесслово, лучше бы взяли и направили свои силы на их отрисовку.
Это как спорить, как лучше класть паркет, когда в соседней комнате в полу дыра сквозная :slight_smile:

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

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

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

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

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

Ух ты, сколько я пропустил отборнейшего трэша обсуждения :slight_smile:
Считаю, что мы рисуем всё-таки не граф дорог, а реальное наземное положение насыпей и асфальта/грязи. Если хочется рисовать граф для отдельной базы - отключите валидацию и не мучайтесь. Если есть обоснованное предложение, когда JOSM не должен ругаться (как раньше было с туннелями и мостами) - оно будет принято. А просто личное “задолбало” решается настройками.

P.S. Кстати, highway поверх area=highway - это не более чем костыль для роутеров традиционно-олдскульной ориентации.

А есть “роутеры” другого типа, которые могут использовать данные ОСМ? :wink:

Обсуждалось уже же и не однократно, свернуть многосвязной многодырочный area:highway в адекватный путь проезда невозможно.
и уж тем более вешать знаки поворотных ограничений на площадные объекты.
сейчас есть четкая линия highway, работающая и поддерживаемая кучей рендеров и роутеров. поверх нее рисуются красоты площадных area:highway. что у ентом плохого ??

Задам сюда вопросы по валидации JOSMа, он часто ругается на безымянные дороги (судя по всему tertiary и выше), какова причина такого поведения, ведь сомнительно, что у каждой дороги к посёлку или объекту есть имя? Ну и вопрос про пересечение: как правильно поступать с мостами через реки и ручьями проходящими под дорогами с указанным culvert’ом? Без общей точки JOSM ругается на пересечение водного/наземного пути, но какой смысл проставлять её в данном случае? Объекты же не пересекаются как таковые и вообще находятся в разных слоях. Т.е. скажем мы же не создаём общую точку при пересечении ЛЭП с дорогами и полями, может и в этих случаях не стоит?

Надо мосту и реке явно указать, что это разные слои, т.е. layer=1+layer=0 для моста+реки или же layer=0+layer=-1 для дороги и трубы/другого сооружения.

на мост надо ставить тег layer=1, показывая что он выше, чем пересекаемая линия.
на culvert соотвественно layer=-1, показывая что он проходит ниже пересекаемой линии.
в пресетах соотвествующие запросы имеются, надо не забывать проставлять.

п.с.: layer=0 указывать не надо, он подразумевается, емнип валидатор josm на layer=0 ругается.

Считается, что tertiary и выше имеют наименования. По своему опыту мапинга, ни разу не встречал безымянных tertiary+, так что согласен с JOSM по этому вопросу.

Еще JOSM предполагает, что residential также должны иметь наименования, unclassified не обязательно. Тут уже “дело вкуса”.