文章结构如下:
1.利用python gdal库的ogr创建esri shp文件
2.向shp 文件中写入矢量数据及其属性信息
# 利用ogr创建shp点文件
def mcreateLayer(inpath):
# 导入库
try:
import osgeo.ogr as ogr
import osgeo.osr as osr
except:
print("import error")
path = inpath
# 创建shp类型
driver = ogr.GetDriverByName("ESRI Shapefile")
data_source = driver.CreateDataSource(path)
# 空间坐标系
srs = osr.SpatialReference()
srs.ImportFromEPSG(4326)
layer = data_source.CreateLayer(path,srs,ogr.wkbPoint)
return print("created")
向函数中传入需要新建的shp一个路径,如果创建成功,返回created
例如:
# 路径
path = r"F:\QGSI\test.shp"
# 调用函数
mcreateLayer(path)
打开下面红色圈出按钮
shp已经创建成功
# 添加点数据,以这几个点为例子
pointlist = [(1,3),(2,5),(3,3),(5,3)]
# 获取刚才创建的shp点图层
layer = QgsVectorLayer(path,"point","ogr")
if layer.isValid():
# 开始编辑
vpr = layer.dataProvider()
pointFeature = QgsFeature()
for point in pointlist:
pnt = QgsGeometry.fromPointXY(QgsPointXY(point[0],point[1]))
pointFeature.setGeometry(pnt)
vpr.addFeatures([pointFeature])
# 更新
layer.updateExtents()
# 添加到地图中
QgsProject.instance().addMapLayer(layer)
完整代码如下:
代码版本为QGIS3.0以上,和qgis2.0版本有较大区别
以上为用python对qgis的部分操作(以后将不定期更新更多关于qgis python和qgis制图方面的文章),如果这篇文章对你有帮助,您的支持是作者写下去的动力。