什么距离计算(经度,纬度)更精确?

时间:2014-09-02 07:38:00

标签: java geospatial geotools

我正在比较计算两点之间距离的两种不同方法。

  1. 在页面上找到了Haversine公式:http://www.movable-type.co.uk/scripts/latlong.html

  2. geotools库的以下功能:

  3. GeodeticCalculator geodeticCalculator = new GeodeticCalculator(); geodeticCalculator.setStartingGeographicPoint(lng1, lat1); geodeticCalculator.setDestinationGeographicPoint(lng2, lat2); double distance = geodeticCalculator.getOrthodromicDistance();

    两个坐标在约100米范围内的结果相差约3米。而对于更长的距离(约1000公里)甚至更多(几公里)。 但是,由于您没有可以信任的参考,因此很难确定哪一个更精确。 (例如,不知道google地图是否精确)

    有什么想法吗?

2 个答案:

答案 0 :(得分:2)

我不是专家,但是关于Haversine公式的文档说它假设是球形的。而地球实际上是大地水准面形状。所以我假设GeodeticCalculator更准确。

如果你想在GIS堆栈交换中更好地提出要求。

答案 1 :(得分:2)

在进行更多研究后回答我自己的问题:

Geotools库在这里更精确,因为如果使用空构造函数进行实例化,它默认使用WGS84模型。

另一个公式使用地球的真空球形模型。