2

我是 GeoCoding/GeoData/etc 的新手,并且有一个关于在不连接到在线地理服务的情况下进行计算的问题。

如果已经知道 的经度和纬度x,以及 的经纬度y,是否可以在不访问在线服务(即 Google、Geocoder.ca 等)的情况下确定两点之间的距离?

目前,数据位于 MySQL 数据库中。

注意:我在这里找到了几个半相关的答案,但它们链接到 C 库,而我使用的是 Ruby。

更新:万一您已经在使用 RubyGeocoder 进行在线服务查询,您可能有兴趣知道它具有内置的 Haversine 功能,文档在此处

4

2 回答 2

2

点之间的距离可以使用Haversine 公式计算。(维基百科:http ://en.wikipedia.org/wiki/Haversine_formula )

这是一个示例实现: http ://www.esawdust.com/blog/gps/files/HaversineFormulaInRuby.html

于 2013-02-28T13:59:56.733 回答
0

由于我们的地球是椭球体而不是球体,如果您正在寻找更准确的解决方案,请查看Lambert 公式

我已经为此做了一个实现。

https://github.com/tonytonyjan/geodesics

它通过了 WGS84 椭球的 500,000 个测地线测试集,准确率超过99%

于 2019-05-21T04:28:12.200 回答