基于QGIS二次开发实现矢量投影转换

我想实现通过python的QGIS包,加载矢量然后转换矢量投影,但我的代码无效。

project = QgsProject.instance()
project.read(path)
vector_layer = QgsVectorLayer(r"F:\test.shp", "test")
v2 = QgsVectorLayer("MultiPolygon?crs=epsg:4326&index=yes", "temporary_MultiPolygon", "memory")

transform = QgsCoordinateTransform(vector_layer.crs(),
                                   QgsCoordinateReferenceSystem("EPSG:4326"), project)

for feature in vector_layer.getFeatures():
    g = feature.geometry()
    a = g.transform(transform)
    feature.setGeometry(g)
    if a == QgsGeometry.Success:
        f = QgsFeature()
        f.setGeometry(g)
        print(f.geometry().boundingBox())
        re = v2.addFeature(feature=f)
        r = v2.addFeature(feature)
        print(re)
    else:
        print("fail")
v2.updateExtents()
print(v2.extent())

代码如上

re = v2.addFeature(feature=f)
 r = v2.addFeature(feature)

在这里出现了错误

于是就有了疑问,从矢量加载出的feature 为何不能添加入新的图层呢?

你可以考虑使用gdal来进行投影转换操作,不过没做过基于QGIS的,gdal的相关例子参考:https://blog.csdn.net/qq_28368377/article/details/124123721

这个看看
https://b23.tv/FcI1U5Z

看一下这篇文章: