是否有一个库或框架用于测地线的纬度/长坐标计算



我正在制作一个核心位置驱动的应用程序,我必须为给定的纬度/经度对计算许多东西,例如:

  • 到另一个横/长坐标的距离

  • 移动距离x到y方向时的目标横坐标/长坐标

是否有开源的东西可以使用?

既然你正在使用CoreLocation,你可以使用CoreLocation的distanceFromLocation,正如@ programmr指出的那样。

另一方面,既然你指定了开源,而那不是开源的,你可以看看@MikeT建议的地理库实现。

(我最初的答案,暗示哈弗斯公式,是有缺陷的。正如@MikeT指出的那样,哈弗斯公式只对球体有效。地球也不是一个完美的球体。

原始的,有缺陷的答案:

听起来你想要Haversine公式

Haversine公式的维基百科页面解释了它是什么,并且(在底部的"外部链接"下)包含许多实现的链接。我没有检查过,但我必须想象其中至少有一些是开源项目。

github上有一些C函数可以从坐标对或给定起点和标题的目的地坐标进行标题。坐标之间的距离你可以用CLLocation。

这些是基于余弦球面定律并从这里和这里的算法推导出来的

GeographicLib已经在几种编程语言中实现,包括Java。该库计算旋转椭球(或椭球)上测地线的长度和相关的数学性质。计算误差一般在微米范围内。

查找两个坐标之间的距离:

GeodesicData g = Geodesic.WGS84.Inverse(lat1, lon1, lat2, lon2,
                                        GeodesicMask.DISTANCE);

则两点之间的距离为g.s12

问题中的第二个例子,投影给定距离和方向的位置,是使用Direct方法找到的。

最新更新