Skip to main content

Налаштування рушія маршрутизації

У деяких випадках ви можете захотіти розширити або налаштувати маршрутизацію в OsmAnd, щоб додати додаткові параметри, перешкоди або змінити деякі штрафи. Будь ласка, ознайомтеся з файлом routing.xml. Маршрутизація OsmAnd використовує двонаправлений алгоритм A*, заснований на найшвидшому часі (= відстань/(швидкість*пріоритет) + штрафи). Це досить простий формат. Він розділений на 7 розділів (групи оцінки):

  • access (1 дозволено, -1 не дозволено)
  • speed (число, що представляє швидкість у км/год)
  • priority (число від 0 до 1) - множник швидкості, який все ще обмежений maxSpeed, тому для A* буде використовуватися мінімум (швидкість * множник, maxSpeed)
  • oneway (1, -1 або 0) - використовується для уточнення доступу на основі напрямку руху
  • penalty_transition (штраф у секундах) - використовується для визначення штрафу, коли користувач переходить з дороги високого класу на дорогу низького класу. Наприклад, автомагістраль - 10, магістраль - 15, якщо користувач переходить з автомагістралі на магістраль, штраф становитиме 5 секунд (=10 - 15). Цей штраф буде використовуватися алгоритмом A*. Штраф відсутній, якщо користувач переходить з автомагістралі на магістраль, і штраф відсутній, якщо маршрут продовжується з автомагістралі на автомагістраль.
  • obstacle (штраф у секундах) - визначає штраф, який додається до часу маршрутизації
  • obstacle_time (штраф у секундах) - визначає штраф, який відображається користувачеві, але не враховується рушієм маршрутизації, тобто obstacle_time - 2 години, obstacle - 1 хвилина, на найкоротшому маршруті рушій знайде маршрут, використовуючи 1 хвилину перешкоди, але користувач побачить, що час маршруту становить 2 години.

Щоб протестувати routing.xml, ви можете використовувати OsmAndMapCreator. Щоб протестувати routing.xml на пристрої, ви можете просто замінити стандартний routing.xml у кореневій папці OsmAnd на SD-карті.