Для определения длины маршрута при пересадке на другой вид транспорта можно использовать следующие подходы:
- Построение графа с остановками. forum.vingrad.ru Нужно отбросить остановки, заведомо расположенные на карте вне зоны возможных пересечений. forum.vingrad.ru Из остальных построить граф, связав их автобусными линиями. forum.vingrad.ru Затем выбрать максимальную длину «пешеходного броска», например 10 минут, и связать между собой все не связанные напрямую остановки, находящиеся в пределах этой длины. forum.vingrad.ru После этого в графе нужно найти кратчайший путь от каждой остановки к каждой. forum.vingrad.ru
- Применение волнового алгоритма. forum.vingrad.ru Для каждого момента времени, начиная с исходного, нужно посчитать, куда можно добраться. forum.vingrad.ru Первый момент времени, для которого целевая точка оказалась покрытой, и будет ответом. forum.vingrad.ru Если рассматривать только движение пешком, это будет окружность с увеличивающимся радиусом. forum.vingrad.ru Если добавляются автобусы и другие виды транспорта, добавляется возможность «прыгать» из одной точки в другую, то есть как бы точка. forum.vingrad.ru А уже из следующей остановки тоже расходятся окружности. forum.vingrad.ru Если по расписанию на остановке нужно ждать автобуса какое-то время, оно добавляется к стоимости «прыжка». forum.vingrad.ru
Также при расчёте длины маршрута можно использовать специальные формулы, например, для пересадочных передвижений с использованием наземного общественного транспорта. elar.urfu.ru В них учитываются маршрутный или сетевой интервал, количество пересадок, расстояние между остановочными пунктами посадки и высадки (дальность поездки) и скорость сообщения транспорта. elar.urfu.ru