要保存生成的矢量图层,可以使用以下Python脚本:
from qgis.core import QgsVectorFileWriter, QgsVectorLayer, QgsField, QgsFeature, QgsGeometry
# 创建图层
layer = QgsVectorLayer("Point", "point_layer", "memory")
pr = layer.dataProvider()
# 添加字段
pr.addAttributes([QgsField("name", QVariant.String)])
layer.updateFields()
# 添加要素
feature = QgsFeature()
feature.setGeometry(QgsGeometry.fromPointXY(QgsPointXY(0, 0)))
feature.setAttributes(["Point 1"])
pr.addFeature(feature)
# 保存图层
error = QgsVectorFileWriter.writeAsVectorFormat(layer,
"path/to/save/point_layer.shp",
"utf-8",
layer.crs(),
"ESRI Shapefile")
if error == QgsVectorFileWriter.NoError:
print("图层保存成功!")
else:
print("图层保存失败!")
在上面的示例中,我们首先创建了一个名为point_layer
的点图层,并为它添加了一个名为name
的字段。然后,我们创建了一个要素,并将其几何位置设置为(0, 0)的点,并设置要素的属性为"Point 1"
。接下来,我们使用QgsVectorFileWriter.writeAsVectorFormat
函数将图层保存为ESRI Shapefile格式的文件,并指定保存路径为"path/to/save/point_layer.shp"
。保存成功时,将打印出"图层保存成功!",否则将打印"图层保存失败!"。
请注意,您需要根据您的实际情况修改保存路径和图层属性。此外,确保已正确导入QgsVectorFileWriter
、QgsVectorLayer
、QgsField
、QgsFeature
和QgsGeometry
等类。