我正在比较计算两点之间距离的两种不同方法。
-
页面上的Haversine公式:http://www.movable-type.co.uk/scripts/latlong.html
-
地理工具库的以下功能:
GeodeticCalculator geodeticCalculator = new GeodeticCalculator();
geodeticCalculator.setStartingGeographicPoint(lng1, lat1);
geodeticCalculator.setDestinationGeographicPoint(lng2, lat2);
double distance = geodeticCalculator.getOrthodromicDistance();
在大约100米的范围内的两个坐标的结果相差大约3米。对于较长的距离(约1000公里),甚至更多(数公里)。但也很难检查哪一个更准确,因为你没有一个可以真正信任的参考。(例如,不知道谷歌地图是否那么精确)
知道吗?
经过更多研究后,我想回答自己的问题:
Geotools库在这里更精确,因为如果使用空构造函数实例化,它默认使用WGS84模型。
另一个公式使用了一个不精确的地球球形模型。
我不是专家,但Haversine公式的文档说它假设地球是球形的。而地球实际上是大地水准面形状。所以我认为大地测量计算器更准确。
如果你想要更多的细节,最好在GIS堆栈交换中询问。