使用PyQGIS将向量层写入具有几何形状的CSV文件?


12

我使用Python尝试使用此代码将矢量层文件写入csv文件:

QgsVectorFileWriter.writeAsVectorFormat(mylayer, r'c:\temp\xyz.csv', "utf-8", None, "CSV")

它可以导出到xyz.csv,但仅属性显示在csv中,而不显示在geometry列中。

如何将属性和空间数据导出到csv文件中?


1
这是相同的问题和解决方案[link] [1]。[1]:gis.stackexchange.com/questions/43129/...
mete7

很抱歉让您提出的问题不清楚。我的工作使用pyqgis的python将向量层写入csv文件。我想要csv文件具有几何图形,但没有几何图形。仍然需要答案
Anubiz

取决于要导出的矢量层的类型。对于点图层,您可以只添加经度和纬度值作为属性表列。对于其他所有人,您都需要WKT
Curlew

谢谢Curlew,我致力于点和多边形图层。对于点层,您的意思是在属性表中添加纬度,经度列?多边形怎么样?
2013年

3
这真的是重复的吗?这里的问题特别针对python,而链接的答案未涵盖该问题。
Matthias Kuhn 2013年

Answers:


9

这篇文章提供了类似的答案:

在QGIS 2.2和PyqGIS中将坐标另存为.csv

只需layerOptions ='GEOMETRY=AS_XYZ在末尾添加:

layer = QgsVectorLayer("path/to/shapefile", "name", "ogr")
QgsVectorFileWriter.writeAsVectorFormat(layer, r'c:\temp\xyz.csv', "utf-8", None, "CSV", layerOptions='GEOMETRY=AS_XYZ')

嗨,我遇到了一个问题,如果我在控制台中键入它,它不会保存Spatial数据,而只会保存属性。但是,如果我手动保存它就可以了。我正在使用QGIS 2.14.12。
Sunny Naik

2
@SunnyNaik -该layerOptions参数现在要求串值而在此之前的单一值足够(如在所描述的列表此篇)。因此,您的最后一行如下所示:QgsVectorFileWriter.writeAsVectorFormat(layer, r'c:\temp\xyz.csv', "utf-8", None, "CSV", layerOptions=['GEOMETRY=AS_XYZ'])
约瑟夫
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.