Поиск маршрутов транспорта?

Решил поэкспериментировать в создании (пока что для себя) сервиса поиска маршрутов общественного транспорта (далее ОТ).

Уверен, кто-то с подобным работает, сталкивался или, по крайней мере, интересовался. Из того, что успел сделать, всё в голове :)

Картина следующая…

Случай №1:

— Город.

— Много маршрутов ОТ.

— Ещё больше остановок.

— ОТ может двигаться по этим маршрутам в нескольких направлениях (иногда маршрут в одну сторону не полностью совпадает с маршрутом другую либо маршрут в виде петли как на «Кольцевой» линии).

— Маршруты могут пересекаться на определенных остановках.

— Одним маршрутом можно не добраться из пункта отправления в пункт назначения, нужно делать пересадки.

— Человек находится в месте, которое может оказаться ближе к одной остановке по расстоянию, но не по доступности (мешают, допустим, забор или река).

— Добраться может также не получиться. Выберется ближайшая остановка.


Случай №2:

Сеть дорог города… ОГРОМНЫЙ граф. Если учитывать дальнейшее добавление сервиса «пробок»…


Интересуют следующие моменты:

— литература;

— примеры (открытые проекты);

— более оптимальный способ хранения данных;

— ваши мысли, опыт, «я когда-то собирался/делал» и т.п. :)


Из мыслей:

У каждой остановки ОТ будет «зона влияния».

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


Спасибо за внимание)
  • Вопрос задан
  • 3877 просмотров
Пригласить эксперта
Ответы на вопрос 6
alekciy
@alekciy
Вёбных дел мастер
А что тут говорить, алгоритмически задача давно уже рассмотрена и даже программно имплеменированна. Взять хотя бы алгоритм Дейкстры. Для задачи «а может пешком ближе» нужно знать координаты всех остановок. Тут может помочь база данных с поддержкой географических объектов как-то Postgresql с postgis-ом.
Ответ написан
Комментировать
Посмотрите в сторону OSM, вот кстати страница посвященная маршрутам общественного транспорта в Пензе wiki.openstreetmap.org/wiki/RU: Пенза/Общественный_транспорт (вы ж оттуда вроде?)
Ответ написан
akimovpro
@akimovpro
Свяжитесь с автором www.rusavtobus.ru, он подобную задачу уже решил
Ответ написан
Комментировать
@digdream
в 2гис такой сервис есть, показывает с пересадками
Ответ написан
steff
@steff Автор вопроса
Интересно услышать и других хабрапользователей ;)
Ответ написан
Комментировать
z17
@z17
Java, PHP
Забрёл в ваш топик спустя 3 года.
вы реализовали задуманное?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы