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