美文网首页
Qgis python创建并且添加矢量要素

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

作者: renew_c376 | 来源:发表于2019-03-03 14:42 被阅读0次

    文章结构如下:

    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制图方面的文章),如果这篇文章对你有帮助,您的支持是作者写下去的动力。

    相关文章

      网友评论

          本文标题:Qgis python创建并且添加矢量要素

          本文链接:https://www.haomeiwen.com/subject/vxvpuqtx.html