openlayers的测量方式

本文讨论了OpenLayers和ArcGIS在测量方法上的区别,包括平面测量(忽略椭球体和投影)与测地线测量(基于球体或椭球体),以及ArcGIS提供的更精确的椭球体面积计算功能。两种库使用的地球半径不同也影响了测量结果的准确性。

测量方式分为测地线、平面。
平面测算没有考虑椭球体和投影情况,跟真实情况误差较大
测地线是根据地理坐标系进行计算,不同的sdk可能使用球体或椭球体进行计算。椭球体的计算方式精度最好,球体面积忽略了地球的扁平率,会有一定误差。

平面测量

openlayers的Geometry对象提供了getLengthgetArea接口获取平面的测算结果

测地线测量

不同API使用的地球半径也不一样,

常用的地球半径:

  • 赤道半径(Equatorial Radius)
    6,378,137 米 (WGS84标准)
    地球在赤道处的半径,是最大的半径
  • 极半径(Polar Radius)
    6,356,752.314 米 (WGS84标准)
    地球在两极处的半径,比赤道半径小约21公里
  • 平均半径(Mean Radius)
    6,371,000 米 (约6371公里)
    最常用的简化值,适用于一般计算
    公式:(2×赤道半径 + 极半径) / 3
  • 体积等效半径(Volumetric Radius)
    6,371,008.8 米
    与地球体积相等的球体半径
  • 自转半径(Authalic Radius)
    6,371,007.2 米
    与地球表面积相等的球体半径

API区别

  • Openlayers
    openlayers的ol/sphere 模块提供了基于测地线的距离、面积测量函数,测算方式都是基于球体的;
    使用的地球半径:6,371,008.8

  • ArcGIS JavaScript API
    ArcGIS JavaScript API geodesicUtils,api提供了基于椭球体的面积、距离、坐标反算等函数
    使用的地球半径:6,371,008.8

  • AMap
    GeometryUtil,支持点线面的空间关系计算、长度、面积计算等等
    使用的地球半径:6,378,137

  • GeographicLib
    GeographicLib,geodesic模块提供了很多测量函数

Openlayers与ArcGIS JS API使用的半径虽然一样,但是结果还是有一定差别。
OL使用的计算方式基于球体(假设地球为球),用球面多边形面积公式(球面投影+球面三角法),优点快,缺点精度稍低
ArcGIS使用的是基于椭球体(WGS-84),先将多边形致密化(geodesicDensify),再用投影变换和叉积法计算面积,优点精度高

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值