Сетевой анализ QGIS

Не знаете, где задать вопрос? Задавайте здесь.
Ответить
Оля
Новоприбывший
Сообщения: 10
Зарегистрирован: 25 фев 2017, 10:26
Репутация: 1

Сетевой анализ QGIS

Сообщение Оля » 22 апр 2017, 10:24

Добрый день! Пытаюсь повторить пример из данной статьи http://gis-lab.info/qa/qgis-network-analysis-lib.html, на своих данных. Согласно статье ввожу в консоль Python следующий код:
Road=iface.activeLayer()
from qgis.networkanalysis import *
director = QgsLineVectorLayerDirector( Road, -1, '', '', '', 3 )
director = QgsLineVectorLayerDirector( Road, 5, 'yes', '1', 'no', 3 )
properter = QgsDistanceArcProperter()
director.addProperter( properter )
crs = QgsCoordinateReferenceSystem("EPSG:32645")
builder = QgsGraphBuilder(crs)
startPoint = QgsPoint( 84.87679719, 56.37931582 )
endPoint = QgsPoint( 84.87367968, 56.37734577 )
tiedPoints = director.makeGraph( builder, [ startPoint, endPoint ] )
graph = builder.graph()
startId = graph.findVertex( tiedPoints[ 0 ] )
endId = graph.findVertex( tiedPoints[ 1 ] )
Но почему-то построения дорожного графа не происходит. Не понимаю почему. Кто-то пробовал делать что-то подобное? Что не так? Спасибо за ответы.

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Репутация: 123
Откуда: Казань

Re: Сетевой анализ QGIS

Сообщение KolesovDmitry » 24 апр 2017, 18:36

Выводит какую-нибудь ошибку или молча все происходит?

Оля
Новоприбывший
Сообщения: 10
Зарегистрирован: 25 фев 2017, 10:26
Репутация: 1

Re: Сетевой анализ QGIS

Сообщение Оля » 24 апр 2017, 20:39

молча, ошибок нет

gamm
Гуру
Сообщения: 4056
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

Re: Сетевой анализ QGIS

Сообщение gamm » 25 апр 2017, 12:20

Оля писал(а):молча, ошибок нет
а с чего вы взяли, что путь не построен? вы в результат заглядывали?

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Сетевой анализ QGIS

Сообщение Александр Мурый » 25 апр 2017, 15:52

Опишите, пож-та, все ваши действия. желательно со скриншотами. Какие у вас данные?
Редактор материалов, модератор форума

Оля
Новоприбывший
Сообщения: 10
Зарегистрирован: 25 фев 2017, 10:26
Репутация: 1

Re: Сетевой анализ QGIS

Сообщение Оля » 26 апр 2017, 16:45

Александр Мурый писал(а):Опишите, пож-та, все ваши действия. желательно со скриншотами. Какие у вас данные?
Данные OSM для Томской области (shape), слой highway-line. Добавляю слой в проект QGIS, СК WGS 84 UTM zones 45N. Шаги повторяю согласно статье, ссылка вверху.
Шаг 1. Импортирую модуль сетевого анализа через консоль Python (расширение установлено)

Код: Выделить всё

from qgis.networkanalysis import * 

Шаг 2. Активирую слой дорожной сети

Код: Выделить всё

Road = qgis.utils.iface.mapCanvas().currentLayer()
Шаг 3. Затем создаю директора, с помощью которого будет строиться дорожный граф.

Код: Выделить всё

director = QgsLineVectorLayerDirector( Road, 5, 'yes', '1', 'no', 3 )
значения в скобках соответствуют данным OSM.
Шаг 4. Стратегия назначения свойств ребрам графа

Код: Выделить всё

properter = QgsDistanceArcProperter()
Шаг 5. Директору сообщаю об используемой стратегии

Код: Выделить всё

director.addProperter (properter)
Шаг 6. Задаю систему координат

Код: Выделить всё

 crs = QgsCoordinateReferenceSystem ("EPSG:32645")
Шаг 7. Создаю строителя, который будет строить граф

Код: Выделить всё

builder = QgsGraphBuilder( crs )
Шаг 8. Задаю начальную и конечную точки, которые будут использоваться для анализа

Код: Выделить всё

startPoint = QgsPoint( 84.87679719, 56.37931582 )

Код: Выделить всё

endPoint = QgsPoint( 84.87367968, 56.37734577 )
Шаг 9. Записываются координаты привязанных точек

Код: Выделить всё

tiedPoints = director.makeGraph( builder, [ startPoint, endPoint ] )
Шаг 10. Строится граф

Код: Выделить всё

graph = builder.graph()
Шаг 11. Заданные точки индексируются

Код: Выделить всё

startId = graph.findVertex( tiedPoints[ 0 ] )

Код: Выделить всё

endId = graph.findVertex( tiedPoints[ 1 ] )
Все команды отрабатывают, но с дорожной сетью ничего не происходит.
Как выполнять шаги 2 и 6 в статье не указано, искала эту информацию в других источниках.
Вложения
Шаг 1.png
Последовательное выполнение команд
Шаг 1.png (344.98 КБ) 4053 просмотра
Последний.png
Весь отработанный код. Складывается ощущение как будто он еще ждет каких-то команд.
Последний.png (206.45 КБ) 4053 просмотра

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Сетевой анализ QGIS

Сообщение Александр Мурый » 28 апр 2017, 07:22

В указанном примере создаётся граф в виде объектов QgsGraph (в формате библиотеки сетевого анализа). Больше вы ничего и не увидите без определённых действий.
Какова ваша конечная цель? Визуализировать граф? Построить маршрут по кратчайшему расстоянию? Или ещё что-то? В статье показаны и примеры визуализации тоже.
Редактор материалов, модератор форума

Ответить

Вернуться в «Я новичок!»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 12 гостей