如何将 qgis 图保存到 shapefile 以在 networkx 中使用?

问题描述

我使用下面的代码从图层创建了一个图表。我想将此图保存到 shapefile 以在 networkx 中进一步使用。 我不想也将其另存为 QGIS 图层。那么如何在不将图层作为 writeAsvectorFormat 的第一个参数的情况下简单地保存它呢? 如果我尝试将现有图层作为参数,它会产生一个奇怪的错误代码运行,Windows 在 Windows 资源管理器中的最近文件显示 .shp 文件,但是当我想打开它时,它说该文件不存在,而且我也无法在它应该在的文件夹中看到它。 我也找不到如何只创建一个随机图层,所以如果真的需要创建一个图层,有人能告诉我怎么做吗?

感谢您的帮助

from qgis.analysis import *

vectorLayer = qgis.utils.iface.mapCanvas().currentLayer()

director = QgsvectorLayerDirector(vectorLayer,12,'2.0','3.0','1.0',QgsvectorLayerDirector.DirectionBoth)

# The index of the field that contains information about the edge speed
attributeId = 1
# Default speed value
defaultValue = 50
# Conversion from speed to metric units ('1' means no conversion)
toMetricFactor = 1
strategy = QgsNetworkSpeedStrategy(attributeId,defaultValue,toMetricFactor)

director.addStrategy(strategy)

builder = QgsGraphBuilder(vectorLayer.crs())

startPoint = QgsPointXY(16.8346339,46.8931070)
endPoint = QgsPointXY(16.8376039,46.8971058)

tiedPoints = director.makeGraph(builder,[startPoint,endPoint])

graph = builder.graph()

vl = QgsvectorLayer("Point","temp","memory")

QgsvectorFileWriter.writeAsvectorFormat(v1,"zzsh.shp","CP1250",vectorLayer.crs(),"ESRI Shapefile")

#QgsProject.instance().mapLayersByName('ZZMap07 copy')[0]

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)