我是GeoCoding/GeoData/etc的新手,并且有一个关于在不连接到在线地理服务的情况下进行计算的问题。
如果已经知道了x
的经纬度和y
的经纬度,是否可以在不访问在线服务(如Google, Geocoder)的情况下确定两点之间的距离?ca等)?
当前数据在MySQL数据库中
注意:我在这里找到了几个半相关的答案,但它们链接到C库,而我使用Ruby。
UPDATE:如果您已经在使用RubyGeocoder进行在线服务查询,您可能有兴趣知道它具有内置的Haversine功能,在这里记录。
两点之间的距离可使用Haversine公式计算。(维基百科:http://en.wikipedia.org/wiki/Haversine_formula)
下面是一个示例实现:http://www.esawdust.com/blog/gps/files/HaversineFormulaInRuby.html
因为我们的地球是一个椭球体而不是一个球体,如果你正在寻找一个更精确的解,看看兰伯特的公式。
我已经为此做了一个实现。
https://github.com/tonytonyjan/geodesicsWGS84椭球体通过50万测地线测试集, 99%以上精度