Перейти к содержанию
GPS навигатор СитиГИД

Рекомендуемые сообщения

Когда вы говорите "просто добавить ребро" - это подразумевает добавление ребра на карту без смены текущего алгоритма маршрутизации и учёта информации. ИМХО, очевидно, что такое решение работать не будет, в любом случае нужно менять программу.

 

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

 

Такая модель будет автоматически учитывать изменения в дорожной обстановке. Была, к примеру, двустороняя дорога, а сделали односторонюю - автоматом можно понизить взаимовлияние т.к. ширина и пропускная способность дороги выросла. Закрыли поворот - скорость в данном направлении можно уже не учитывать и т.д. и т.п...

 

МКАД - 5 полос в одну сторону плюс разгонные полосы, в случае с развязкой МКАД-Ярославка их 2 - то есть всего 7 полос. Но когда стоит Ярославка в область, МКАД стоит целиком.

Волоколамское шоссе в центр (после проезда под каналом им. Москвы) поворот налево и разворот. Дорога - всего 3 полосы. Но стоящие налево и разворот не мешают движению вперед. Как обработать такие совершенно разные ситуации?

Бывают и еще более радиальные ситуации: 2 полосы в каждую сторону и очередь длинной в 100 метров на поворот не мешает движению прямо. Как это можно решить без добавления дополнительных ребер? Ну либо присвоением нескольких скоростей ребрам. Что по сути почти то же самое.

 

Если ребро будет на самом повороте, то там-то никто не останавливается. Все стоят до поворота.

Может есть смысл сделать разную стоимость разных поворотов? В одном месте левый поворот стоит 10 секунд пути, а в другом может и три минуты добавлять.

Я, например, говорил о создании именно длинных ребер. Т. к. очередь на поворот иногда бывает довольно длинной. 
Ссылка на сообщение
Поделиться на другие сайты

МКАД - 5 полос в одну сторону плюс разгонные полосы, в случае с развязкой МКАД-Ярославка их 2 - то есть всего 7 полос. Но когда стоит Ярославка в область, МКАД стоит целиком.

Волоколамское шоссе в центр (после проезда под каналом им. Москвы) поворот налево и разворот. Дорога - всего 3 полосы. Но стоящие налево и разворот не мешают движению вперед. Как обработать такие совершенно разные ситуации?

Бывают и еще более радиальные ситуации: 2 полосы в каждую сторону и очередь длинной в 100 метров на поворот не мешает движению прямо.

 

Тут идёт корреляция с интенсивностью трафика. Это можно автоматически учитывать на сервере (считать число машин в час).

 

 

Совсем не то же самое. Рёбра - это элемент графа маршрутизации. Добавили ребро - появилась новая ветка маршрута. Всё работает замечательно, если машина всегда едет строго по маршруту. Скакнул GPS, или просто поехал по своему - приплыли, теперь нужно данные одного ребра засчитывать как данные другого. А для этого нужно эту связь так же прописывать. Кроме того, из-за ограниченой точности GPS, обнаружение отклонения от маршрута зачастую обнаруживается уже через некоторое время, постфактум, т.е. нужно держать в памяти несколько предыдущих веток. ИМХО - абсолютно лишнее усложнение программы и карт.

 

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

 
Ссылка на сообщение
Поделиться на другие сайты

Уважаемый d C G, очень приятно было увидеть, что вы работаете в этом направлении!

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

Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...