Qgis python创建并且添加矢量要素

2019-03-03  本文已影响0人  renew_c376

文章结构如下:

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)

打开下面红色圈出按钮

图1

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)

图2 结果图

完整代码如下:

图3 完整代码图

代码版本为QGIS3.0以上,和qgis2.0版本有较大区别

以上为用python对qgis的部分操作(以后将不定期更新更多关于qgis python和qgis制图方面的文章),如果这篇文章对你有帮助,您的支持是作者写下去的动力。

上一篇下一篇

猜你喜欢

热点阅读