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

Тагил - это и есть райцентр :slight_smile:

Тагил — это город. И вообще на транке стоит.

Мне кажется что если кто захочет из Таборов доехать до Москвы, он сообразит как доехать до Екатеринбурга, а там уже по подсказкам навигатора сможет ехать.

Тем более что карта Свердловской области с траками и сервисами у него наверняка есть…

Вы делаете самостоятельную карту, или вспомогательную для глобального роутинга, типа ситигидовской “Евразии”? Во втором случае secondary нафиг, конечно.

Брать или не брать секондари (или даже тертиари) на решение самой задачи (на алгоритм) никак не влияет.

Без Секондари обзорка не нужна.

Секондари в обзорке не нужна.

Обзорки бывают разные, для разных целей. Где-то нужна, где-то нет. Это непринципиальный момент, на алгоритм влиять не должен.

Что-то я сомневаюсь, что на объединении двухвеек много съекономишь. Может, процентов 20. Оно того стоит?
Думаю, лучше отбросить те секондари, которые не несут особого смысла для роутинга.

Не совсем понятно, зачем делать генереализацию для роутинга, которая ещё будет глючить. Разве что только для лёгких устройств.

Есть роутер OSRM, который строит иерархию дорог, и оптимальный путь находит с очень малым количеством итераций, почти равным числу перекрёстков. Вот презентация, посмотрите, сколько узлов перебирает двусторонний A*, и сколько аналогичный OSRM алгоритм Reach.

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

У Навитела вроде бы похожая ситуация.

Маршрутизация на базе иерархии классов дорог не работает в условиях, когда надо учитывать пробки. Об это многие споткнулись при реализации пробочных сервисов.

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

Да, стоит. Карта должна выглядеть еще и эстетично. Вся эта затея имеет две цели.

  1. Упрощенный рутинговый граф.
  2. Эстетично выглядящая обзорная карта дорог.

Одна проблема - он маршрут с легкостью кладет по односторонним улицам против шерсти (в их онлайн-демо).

Здравствуйте. А скажите, актуальна вот какая задача. Скажем некое десктопное приложение для построения маршрута. Я что-то такое попытался запрограммировать, тоже на основе иерархии класса дорог. Та же дилемма, включать секондари в маршрут или нет. Пришёл к выводу, что включать, если длина дороги больше 10 км. В общем, что могу сказать про свою программку. Работает конечно медленнее, чем демонстрашка роутера OSRM, но работает, где-то 30 сек уходит на маршрут, скажем, по Краснодарскому краю. Правда, пользователю нужен MS SQL Server (SQLEXPRESS – бесплатная версия). Кому интересны детали классификации и описание алгоритма с цифрами, можно почитать тут: http://efim-manevich.blog.ru/136882227.html . Но сразу предупреждаю, заметка получилась очень занудной. Ну так вот, вопрос такой. Есть смысл доводить программку до ума и выкладывать общественности или лучше забыть про неё , как про страшный сон. Конкретнее вопрос звучит так. Нужна ли десктопная программа – построитель маршрута или затея бессмысленная. Как думаете?

Нужна, особенно если с ее помощью можно будет проверять расстановку ограничений.

Расстановка ограничений, расстановка ограничений… Это вы что имеете ввиду? Мне почему-то кажется, что для проверки ограничений может и не нужно маршруты составлять… Если просто проверку какую-то сделать, то мне кажется это должно получиться. Да, но она у меня только шейп файлы понимает, вот ещё какой момент важный…

Без расстановки ограничений - роутинг не роутинг, а просто набор цифирь и буков.

У меня проверяются такие ограничения. Учитывается односторонняя дорога или нет. Если повороты на перекрёстке запрещены, это тоже учитывается. А если запрещён поворот налево, это не учитывается. Потому, что в атрибутах с проекта Gis-lab я не понял как это отражается. Мне кажется, никак не отражается…

Pifagoroff, посмотрите хотя бы на то, как работает gosmore. 30 секунд - это маршрут через всю страну, не меньше.

И брать за основу стоит не шейпы, а исходный osm xml.

Да, наверно gosmore - классная программа. А 30 секунд через всю страну, моя прога не потянет к гадалке не ходи…