Сетевой анализ QGIS
-
- Новоприбывший
- Сообщения: 10
- Зарегистрирован: 25 фев 2017, 10:26
- Репутация: 1
Сетевой анализ QGIS
Добрый день! Пытаюсь повторить пример из данной статьи 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 ] )
Но почему-то построения дорожного графа не происходит. Не понимаю почему. Кто-то пробовал делать что-то подобное? Что не так? Спасибо за ответы.
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 ] )
Но почему-то построения дорожного графа не происходит. Не понимаю почему. Кто-то пробовал делать что-то подобное? Что не так? Спасибо за ответы.
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Сетевой анализ QGIS
Выводит какую-нибудь ошибку или молча все происходит?
-
- Новоприбывший
- Сообщения: 10
- Зарегистрирован: 25 фев 2017, 10:26
- Репутация: 1
Re: Сетевой анализ QGIS
молча, ошибок нет
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Сетевой анализ QGIS
а с чего вы взяли, что путь не построен? вы в результат заглядывали?Оля писал(а):молча, ошибок нет
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Сетевой анализ QGIS
Опишите, пож-та, все ваши действия. желательно со скриншотами. Какие у вас данные?
Редактор материалов, модератор форума
-
- Новоприбывший
- Сообщения: 10
- Зарегистрирован: 25 фев 2017, 10:26
- Репутация: 1
Re: Сетевой анализ QGIS
Данные OSM для Томской области (shape), слой highway-line. Добавляю слой в проект QGIS, СК WGS 84 UTM zones 45N. Шаги повторяю согласно статье, ссылка вверху.Александр Мурый писал(а):Опишите, пож-та, все ваши действия. желательно со скриншотами. Какие у вас данные?
Шаг 1. Импортирую модуль сетевого анализа через консоль Python (расширение установлено)
Код: Выделить всё
from qgis.networkanalysis import *
Шаг 2. Активирую слой дорожной сети
Код: Выделить всё
Road = qgis.utils.iface.mapCanvas().currentLayer()
Код: Выделить всё
director = QgsLineVectorLayerDirector( Road, 5, 'yes', '1', 'no', 3 )
Шаг 4. Стратегия назначения свойств ребрам графа
Код: Выделить всё
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 ] )
Как выполнять шаги 2 и 6 в статье не указано, искала эту информацию в других источниках.
- Вложения
-
- Последовательное выполнение команд
- Шаг 1.png (344.98 КБ) 4053 просмотра
-
- Весь отработанный код. Складывается ощущение как будто он еще ждет каких-то команд.
- Последний.png (206.45 КБ) 4053 просмотра
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Сетевой анализ QGIS
В указанном примере создаётся граф в виде объектов QgsGraph (в формате библиотеки сетевого анализа). Больше вы ничего и не увидите без определённых действий.
Какова ваша конечная цель? Визуализировать граф? Построить маршрут по кратчайшему расстоянию? Или ещё что-то? В статье показаны и примеры визуализации тоже.
Какова ваша конечная цель? Визуализировать граф? Построить маршрут по кратчайшему расстоянию? Или ещё что-то? В статье показаны и примеры визуализации тоже.
Редактор материалов, модератор форума
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 12 гостей