Comments 4
Недавно по работе озадачили меня добавить на карту прокладку маршрута общественным транспортом. Из доступных данных была геометрия дорог. Долго думал как же все реализовать, в итоге решил составлять базу всех остановок и рисовать геометрию всех маршрутов. Слава богу город у нас небольшой и маршрутов не так много. Реализовал методом перебора ближайших остановок начальной и конечной точки на предмет проходящих одинаковых маршрутов. Если маршрутов одинаковых через них не проходит, то уже идет поиск остановок в которой пересекаются маршруты проходящие через эти две точки. Если интересно что получилось можно посмотреть тут maps.zabmedia.ru
0
Как-то это всё кустарно.
Хорошее решение должно иметь под собой продуманную математику, здесь этого не видно.
Алгоритмы на графах уже довольно проработаны, и насколько я понимаю, в итоге они сводятся к довольно простым операциям, но на больших матрицах — это то что уже можно было бы оптимизировать в SQL.
Способ сбора «переходов» между остановками — как я понял, используется кратчайшее расстояние. Стоило использовать особенности карты. Например, между двумя близкими точками может пролегать шоссе, перейти которое можно только по переходу.
В целом предложенный вариант — это решить задачу «хоть как нибудь», от него довольно далеко до действительно хорошего решения.
Хорошее решение должно иметь под собой продуманную математику, здесь этого не видно.
Алгоритмы на графах уже довольно проработаны, и насколько я понимаю, в итоге они сводятся к довольно простым операциям, но на больших матрицах — это то что уже можно было бы оптимизировать в SQL.
Способ сбора «переходов» между остановками — как я понял, используется кратчайшее расстояние. Стоило использовать особенности карты. Например, между двумя близкими точками может пролегать шоссе, перейти которое можно только по переходу.
В целом предложенный вариант — это решить задачу «хоть как нибудь», от него довольно далеко до действительно хорошего решения.
0
Любой переход с остановки на остановку это число, которое характеризует затрачиваемое время. Если там переход под шоссе, то просто число будет выше. Расставлять числа для всех пересадок, а их там ???, это тоже не совсем простая задача.
0
Sign up to leave a comment.
Поиск кратчайшего пути в транспортном графе (концепт) + исходники