Обсудить в форуме Комментариев 97Редактировать в вики
Статья содержит подробное описание расширения свободной к ГИС Quantum GIS модуля Road Graph.
Road graph — расширение свободной ГИС с открытым исходным кодом Quantum GIS, позволяющее осуществлять поиск оптимального маршрута на заданном графе дорог. Расширение автоматически устанавливается вместе с QGIS, начиная с версии 1.6, автор модуля — Сергей Якушев (stopa85).
Эта статья - расширенное описание модуля, старую, упрощенную версию описания можно найти здесь.
Для начала работы нужно установить и активировать модуль и загрузить в QGIS линейный векторный слой по которому нужно проложить маршрут, например из данных OpenStreetMap. Далее, используя инструменты модуля можно легко найти путь от одной заданной точки к другой, указав их на карте. Маршрут можно оптимизировать по расстоянию (самый короткий) или по времени (самый быстрый). Далее в статье подробно рассматриваются все пункты работы с модулем.
Содержание |
Road graph является расширением ядра QGIS, поэтому достаточно установить QGIS со всеми зависимостями (подробнее) и в Менеджере модулей («Модули — Управление модулями») активировать модуль Road graph.
После активации модуль добавляет свою панель в левой части окна QGIS и создает вложенный пункт в меню «Вектор» (новые экспериментальные версии QGIS) или пункт в меню «Модули» (Версии QGIS 1.6, 1.7). Панель может быть скрыта/показана с помощью пункта меню «Вид — Панели — Кратчайший маршрут».
Основные возможности расширения:
В версиях QGIS 1.6, 1.7 присутствует возможность подсветки направления движения дорог (работает медленно, чаще всего используется в целях проверки настроек). В будущих релизах QGIS данная возможность будет удалена. Эффекта подсветки направления можно легко добиться настраивая стиль отображения слоя.
В качестве слоя дорог можно использовать любой линейный векторный слой в формате, поддерживаемом QGIS. Две линии, имеющие общую точку считаются связанными между собой.
ВНИМАНИЕ: при редактировании слоя дорог в качестве СК проекта необходимо использовать СК слоя. Это вызвано тем, что при пересчете координат между разными СК возникают погрешности, что может приводить к появлению разрывов даже при включенном «прилипании».
В атрибутивной таблице слоя могут присутствовать и использоваться в работе расширения следующие поля:
Если значение какого-либо поля не задано, или поле отсутствует — используется значение по умолчанию, изменить которое можно в настройках расширения.
Выбор начальной и конечной точек маршрута выполняется при помощи соответствующих кнопок возле полей ввода. Координаты выбранных точек будут отображены в полях ввода.
Нажатие на кнопку «Рассчитать» запустит поиск кратчайшего маршрута с использованием критерия оптимизации, заданного выпадающим списком «Критерий». Кнопка «Экспорт» служит для экспорта построенного маршрута в новый векторный слой, а при помощи кнопки «Очистить» выполняется очистка полей с координатами начальной и конечной точек, а также из области карты удаляются сами точки и построенный маршрут. Краткую справку по работе с модулем можно получить нажав кнопку «Справка».
Перед использованием рекомендуется выполнить настроку модуля. Для этого вызовите диалог настройки из меню «Вектор — Road graph — Параметры модуля Road graph».
Здесь задаются предпочитаемые единицы измерения времени и расстояния, топологический порог и настраивается распознавание характера движения по дорогам. Если первые два параметра не требуют дополнительных пояснений, то остальные мы рассмотрим подробнее.
При использовании слоя дорог, в котором присутствуют артефакты в виде небольших разрывов между вершинами полилиний, необходимо установить «топологический порог». Топологический порог (или топологическая толерантность) — это расстояние между двумя соседними вершинами, при котором они интерпретируются как одна и та же вершина графа. Эта величина должна быть как можно меньше (чем меньше — тем лучше). Не стоит полагаться на параметр топологической толерантности как на панацею, лучше если Ваши данные будут приведены к «правильному» виду.
Модуль может правильно обрабатывать дороги с разным характером движения: одностроннее или двустороннее. Для этого необходимо, чтобы в атрибутивной таблице слоя присутствовало поле с указанием типа дороги. Его нужно выбрать в выпадающем списке «Поле направления» с настройках модуля и задать значения для прямого, обратного и двустороннего движения. Под прямым направлением понимается движение в порядке создания точек линии, от первой точки к последней. Соответственно, обратное направление это движение от последней точки линии к первой. Эти два варианта задают односторонние дороги.
Рассмотрим настройку на примере данных OpenStreetMap. В качестве поля направления выбираем «oneway», тогда двусторонней дороге будет соответствовать значение «no», прямому направлению односторонней дороги будет соответствовать значение «yes», a обратному — какое-либо другое значение, например «-1». На вкладке «По умолчанию» для поля «Направление» выбираем «Двустороннее направление», чтобы дороги, не подпадающие под описанную выше схему трактовались как двусторонние. Все, теперь модуль будет различать дороги и строить маршруты с учетом характера движения по дорогам.
Здесь же можно указать в каком поле находится информация о скорости движения по данному участку дороги. Если такое поле присутствует, то становится возможной оптимизация маршрута не только по расстоянию, но и по времени движения.
На вкладке «По умолчанию» задаются значения параметров по умолчанию, которые будут использоваться, если модуль не сможет извлечь информацию из указанных полей или если эти поля отсутствуют.
В настоящее время, в экспериментальных версиях QGIS базовый функционал плагина вынесен в отдельную библиотеку network-analysis, что делает возможным использование алгоритмов сетевого анализа реализованных в модуле из Консоли Python QGIS, а также в своих расширениях.
Обсудить в форуме Комментариев 97Редактировать в вики
Последнее обновление: 2014-05-14 21:48
Дата создания: 02.01.2012
Автор(ы): Сергей Якушев (stopa85), Александр Бруй
© GIS-Lab и авторы, 2002-2021. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна. Содержание материалов - ответственность авторов. (подробнее).