После построения индексированного графа дорог по исходным данным фиксируется множество характеристик связности дорог и их параметров. Это позволяет создать вспомогательные структуры данных, при использовании которых существенно увеличивается скорость расчёта. Логический граф дорог на момент создания индексной структуры становится неизменным.
Нередко случаются ситуации, когда определённые сегменты дороги должны игнорироваться, так как движение по ним запрещено (проезд перегорожен, идет ремонт и т. п.). Для таких ситуаций технология TrueDrive имеет специальную возможность задания барьеров.
Изменение итогового маршрута при добавлении барьера
Барьеры могут быть точечными, линейными или полигональными. Точечные барьеры привязываются к ближайшему сегменту дорог и формируют виртуальный барьер на этом сегменте. Линейный барьер помечает как «не проездные» те сегменты, которые пересекаются с заданной линией. Полигональные барьеры аналогичным образом помечают те сегменты, которые полностью или частично попадают внутрь полигона.
Барьеры могут быть «полупрозрачными», т. е. не жёстко запрещать движение, а увеличивать время проезда по заданному сегменту. Этот механизм позволяет задавать области нежелательного присутствия. В результате алгоритм сетевого анализа будет стараться объехать помеченную область до тех пор, пока это не станет нерациональным. Если объезд невозможен или стоимость объезда с учетом выбранной оптимизации слишком дорога, то допускается проезд с минимальным присутствием в нежелательной области.
Степень «прозрачности» барьера задаётся параметром penalty. Примеры значений:
- -1 – абсолютный барьер (проезд запрещён)
- 0 – мгновенная телепортация (стоимость проезда по сегменту игнорируется)
- 0.5 – скорость передвижения в два раза быстрее
- 1 – барьер отсутствует
- 2 – в два раза медленнее
Таким образом задание барьера на дороге может как полностью запретить проезд, так и уменьшить приоритет проезда по заданному сегменту.
Особым случаем является задание параметра penalty в диапазоне от 0 до 1. Значения из этого диапазона позволяют, наоборот, увеличить скорость проезда по сегменту дороги. Такая возможность может быть использована в ситуациях, когда характеристики дороги изменились в лучшую сторону, например поверх щебёночной насыпи положили асфальтовое покрытие.
Использование барьеров позволяет меньше зависеть от необходимости перестройки индекса дорожного графа, но при существенном увеличении количества заданных барьеров стоит изменить исходные данные по дорогам и пересоздать индексный файл.