我有一个CLLocationCoordinate2D(c1)和一个CLLocation(l1),所以我有每个点的纬度/经度值,我可以使用以下方法计算它们之间的距离:
[c1 distanceFromLocation:l1]
如何找到比c1(沿同一轴承)靠近l1 100米的点(c2)的坐标?
我使用以下基本触发计算了它:
但这看起来像是一种黑客的方式,因为它没有考虑到曲率,似乎是以不应该使用的方式使用纬度和经度。它确实似乎在很短的距离内工作。
答案 0 :(得分:1)
经过一番研究,我发现了一个计算地球表面两点之间弯曲距离的基本公式:
dlon = lon2 - lon1
dlat = lat2 - lat1
a = { sin(dlat/2) }^2 + [ cos(lat1) * cos(lat2) * { sin(dlon/2) }^2 ]
c = 2 * arcsin(min(1,sqrt(a)))
d = R * c
答案 1 :(得分:1)
虽然Rickay的回答很有帮助,但我最终使用了以下优秀的库,它具有许多用于核心位置计算的有用功能:https://github.com/100grams/CoreLocationUtils