openlayer 4.4 getArea() 给出了一个糟糕的结果



getArea()给出 206.85693359375 m2 对于侧面 10 米的正方形。此几何图形的坐标为:

A: (10) […]
​​0: 349342.54170016386
​​1: 5765285.69787908
​​2: 349356.90080337634
​​3: 5765285.67265447
​​4: 349356.87564911734
​​5: 5765271.266706267
​​6: 349342.51656936127
​​7: 5765271.291930803
​​8: 349342.54170016386
​​9: 5765285.69787908
​​length: 10

feature.getGeometry().getArea()怎么了?

这在投影单位中是正确的,并且接近这个近似计算

349356.90 -  349342.54 = 14.36
5765285.69 - 5765271.26 = 14.43
14.36 * 14.43 = 207.21

当您在 Web 墨卡托投影中远离赤道时,内容看起来更大,因此您应该使用ol.Sphere.getArea(geometry)得到世界曲面上的真实面积

我发现getArea((适用于笛卡尔投影,比如EPSG:2154对我来说(和utm?

您可以将投影传递给它,例如:

const opts: SphereMetricOptions = { projection: 'EPSG:32634' }
const area = getArea(polygon, opts)

见 https://openlayers.org/en/latest/apidoc/module-ol_sphere.html#~SphereMetricOptions

相关内容

  • 没有找到相关文章

最新更新