gpt4 book ai didi

objective-c - 直线上点的 Mapkit 坐标

转载 作者:行者123 更新时间:2023-11-28 23:11:20 27 4
gpt4 key购买 nike

我有一个 CLLocationCoordinate2D (c1) 和一个 CLLocation (l1),所以我有每个点的纬度/经度值,我可以使用以下方法计算它们之间的距离(以米为单位):

[c1 distanceFromLocation:l1]

如何找到比 c1 更靠近 l1 100 米的点 (c2) 的坐标(沿同一方位)?

enter image description here

我使用以下基本三角函数计算了它:

  1. 利用纬度和经度的差异计算斜边和角度
  2. 使用到 cl 的距离与到 c2 的距离之间的比率来获得终止于 c2 的三角形的斜边
  3. 用cos和sin计算出c2的经纬度

但这似乎是一种怪异的做法,因为它没有考虑曲率,而且似乎以不应该使用的方式使用纬度和经度。不过,它似乎确实适用于短距离。

最佳答案

经过一番研究,我发现了一个计算地球表面两点之间弯曲距离的基本公式:

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

关于objective-c - 直线上点的 Mapkit 坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8181645/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com