使用 QgsDistanceArea.convertLengthMeasurement 的意外转换结果

Unexpected conversion result using QgsDistanceArea.convertLengthMeasurement

我是 Python 和 QGIS 的新手,我正在尝试编写一个 Python 插件以用于 QGIS v3.6.0。

我正在尝试使用 QgsDistanceArea().convertLengthMeasurement 转换测量值

我已尝试使用此 link 中的代码(滚动到接近末尾的提示 #2)https://www.e-education.psu.edu/geog489/node/2360

qda = QgsDistanceArea()
qda.setEllipsoid('EPSG') #not sure if this is required (the project CRS is EPSG:27700)

#set input measurement
m = 1000 #not sure if the unit type needs to be set

#convert the measurement
converted = qda.convertLengthMeasurement(m, QgsUnitTypes.DistanceKilometers)

print("measure: ", m)
print("converted: ", converted)

我希望输出为:

m: 1000
converted: 1

但实际输出是:

m: 1000
converted: 111319.49079327358

在 QGIS v2 中,convertLengthMeasurement 似乎需要一个参数来描述输入单位类型。然而在QGIS v3(​​我正在使用的版本)中,只需要输出单位类型。

我知道我可以简单地除以 1000 来将米换算成千米,但我想使用 convertLengthMeasurement。

如有任何帮助,我们将不胜感激。

进一步搜索后,EPSG:27700 似乎使用了 WGS84 椭球体。 "EPSG" 不是有效的 ellipsoidAcronym。

添加以下行:

qda.setEllipsoid('WGS84')

似乎可以正常工作。