测量方式分为测地线、平面。
平面测算没有考虑椭球体和投影情况,跟真实情况误差较大
测地线是根据地理坐标系进行计算,不同的sdk可能使用球体或椭球体进行计算。椭球体的计算方式精度最好,球体面积忽略了地球的扁平率,会有一定误差
平面测量
openlayers的Geometry对象提供了getLength、getArea接口获取平面的测算结果
测地线测量
openlayers的ol/sphere 模块提供了基于测地线的距离、面积测量函数,测算方式都是基于球体的;
椭球体面积计算可以通过以下几种方式:
- ArcGIS JavaScript SDK geodesicUtils,sdk提供了基于椭球体的面积、距离、坐标反算等函数
- ArcGIS Server rest 接口areasAndLengths
- GeographicLib,geodesic模块提供了很多测量函数
openlayers使用的地球半径是6371008.8,arcgis使用的是6378137