我正在制作一个核心位置驱动的应用,我必须为给定的纬度/经度对计算很多东西,例如:
与另一个纬度/经度坐标的距离
距离x到y方向时的目标纬度/经度坐标
是否有可以使用的开源软件?
答案 0 :(得分:4)
由于您使用的是CoreLocation,因此可以使用CoreLocation's distanceFromLocation作为@progrmr指出。
另一方面,由于您指定了开源,并且未开源,您可以按照@MikeT的建议查看GeographicLib实现。
(我的原始答案,暗示了Haversine公式,存在缺陷。正如@MikeT指出的那样,Haversine公式只适用于球体。而且地球不是一个完美的球体。)
原创,有缺陷的答案:
听起来你想要Haversine公式。
Wikipedia page for the Haversine formula解释它是什么,(at the bottom, under "External links")包含许多实现的链接。我没有检查过,但我必须想象至少其中一些是开源项目击>
答案 1 :(得分:1)
答案 2 :(得分:1)
GeographicLib已使用多种编程语言实现,包括Java。该库计算旋转椭圆体(或椭球体)上测地线的长度和相关数学特性。计算误差通常在微米范围内。
找到两个坐标之间的距离:
GeodesicData g = Geodesic.WGS84.Inverse(lat1, lon1, lat2, lon2,
GeodesicMask.DISTANCE);
然后得到g.s12
两点之间的距离。
使用Direct
方法找到问题的第二个示例,即投影给定距离和方向的位置。