我有一个独立的应用程序,可以导入qgis.core库来执行GIS映射。我有一个用于地图显示的QgsMapCanvas。现在,我可以找回地图显示的mapUnits(),但它会以数字形式返回,例如{UnitType 2},我知道它是QGis :: UnitType枚举类型中的数字,所以问题是如何从我从地图画布获得的单位类型编号中获取QGis中UnitType的名称?
我知道我可以对它们进行硬编码,但最好去它定义的地方。下面是代码片段。 ' mapUnits' call会给你一个数字,我想得到那个QGis :: UnitType枚举的名字。
<code>
fileInfo = QFileInfo(raster)
path = fileInfo.filePath()
baseName = fileInfo.baseName()
layer = QgsVectorLayer(path, baseName)
QgsMapLayerRegistry.instance().addMapLayer(layer)
if layer.isValid() is True:
layer.dataProvider().crs().mapUnits()
</code>
答案 0 :(得分:0)
你可以做到
print(QgsUnitTypes.toString(myUnits))
请注意,版本3.x中的单元枚举已重命名并移出QGis
到QgsunitTypes
类: