Поиск кратчайшего маршрута c помощью Road graph для QGIS
Road graph — расширение QGIS, позволяющее осуществлять поиск кратчейшего маршрута на заданном графе дорог. Входит в состав QGIS, начиная с r15068 (0a76ab4212), автор модуля - Сергей Якушев (stopa85).
Установка
При использовании более-менее актуальной версии QGIS никаких дополнительных действий по установке модуля выполнять не нужно, так как Road graph является расширением ядра QGIS. Достаточно установить QGIS со всеми зависимостями (подробнее) и в Менеджере модулей (Модули - Управление модулями) активировать Road graph.
После активации модуль добавляет свою панель в левой части окна QGIS и создает вложенный элемент в меню Вектор.
Работа с расширением
Основные возможности расширения:
- расчет маршрута, его протяженности и времени пути
- оптимизация по критерию расстояния или времени
- экспорт маршрута в векторный слой
- подсветка направления движения дорог (работает медленно, чаще всего используется в целях проверки настроек)
В качестве слоя дорог можно использовать любой линейный векторный слой в формате, поддерживаемом QGIS. Две линии, имеющие общую точку считаются связанными между собой. Внимание: при редактировании слоя дорог в качестве СК проекта необходимо использовать СК слоя. Это вызвано тем, что при пересчете координат между разными СК возникают погрешности, что может приводить к появлению разрывов даже при включенном «прилипании».
В атрибутивной таблице слоя могут присутствовать и задействоваться следующие поля:
- скорость движения по участку дороги — числовое поле
- направление движения — любой тип, приводимый к строке. Прямое и обратное направления соответствуют односторонней дороге, оба направления — двусторонней.
Если значение какого-либо поля не задано, или поле отсутствует — используется значение по умолчанию, изменить которое можно в настройках расширения.
Выбор начальной и конечной точек маршрута выполняется при помощи соответствующих кнопок. Выбор точек маршрута возле полей ввода или ручным вводом необходимых координат.
Нажатие на кнопку «Calculate» запустит поиск кратчейшего маршрута с использованием критерия оптимизации, заданного выпадающим списком «Criterion». Кнопка «Export» служит для экспорта построенного маршрута в новый векторный слоя, а при помощи кнопки «Clear» выполняется очистка полей с координатами начальной и конечной точек, а также из области карты удаляются сами точки и построенный маршрут.
Настройки модуля
При использовании слоя дорог, в котором присутствуют артефакты в виде небольших разрывов между вершинами полилиний, необходимо установит «топологическую толерантность». Топологическая толерантность - это расстояние между двумя соседними вершинами, при котором они интерпретируются как одна и та же вершина графа. Эта величина должна быть как можно меньше (чем меньше - тем лучше).
Библиотека network-analysis
Начиная с ee19294562, появилась возможность использовать функционал модуля в своих расширениях и из Консоли Python QGIS.