如何从独立的python应用程序访问QGis :: UnitType枚举

时间:2017-02-18 23:25:56

标签: qgis

我有一个独立的应用程序,可以导入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>

1 个答案:

答案 0 :(得分:0)

你可以做到

print(QgsUnitTypes.toString(myUnits))

请注意,版本3.x中的单元枚举已重命名并移出QGisQgsunitTypes类:

  • 2.x:QGis :: UnitType
  • 3.x:QgsUnitType :: DistanceUnit