是否可以通过Python命令在QGIS中设置项目的项目CRS?
在我的情况下,用户应打开QGIS,启动我的书面插件,此插件将加载具有epsg代码31467(高斯Krueger区域3)的空间数据。不幸的是,QGIS的默认CRS是WGS84,所以我遇到了单位和比例的麻烦。
我的第一种方法是使用以下代码:
my_crs = core.QgsCoordinateReferenceSystem(31467, core.QgsCoordinateReferenceSystem.EpsgCrsId)
self.iface.mapCanvas().mapRenderer().setDestinationCrs(my_crs)
这将CRS更改(在已经可视化数据之后)到高斯Krueger区域3。至少右下角的espg代码已更改。单位仍然是度,刻度是完全错误的。高斯·克鲁格的1:5000是WGS 84中的1:528822376(在我的情况下是QGIS)。在属性中手动设置项目CRS之后,项目crs实际上是GK3,并且比例和单位正确。
所以我的问题是,我可以用不同于完成项目的其他方式设置项目CRS吗?我想避免手动方式。
我通过添加以下代码解决了该问题:
qgis.utils.iface.mapCanvas().setMapUnits(0)
qgis.utils.iface.mapCanvas().refresh()
这会将单位设置为米,并且刻度会自动更新。0代表米,1代表英尺,2代表度,3代表未知数。