【发布时间】:2011-11-18 11:26:10
【问题描述】:
我有一个 CLLocationCoordinate2D (c1) 和一个 CLLocation (l1),所以我有每个点的纬度/经度值,我可以使用以下方法计算它们之间的距离(以米为单位):
[c1 distanceFromLocation:l1]
如何找到比 c1 更接近 l1 100 米的点 (c2) 的坐标(沿同一方位)?
我使用以下基本三角函数计算了它:
- 利用经纬度差计算斜边和角度
- 使用到 cl 的距离和到 c2 的距离之间的比率来获得以 c2 结尾的三角形的斜边
- 用cos和sin计算c2的经纬度
但这似乎是一种 hacky 方式,因为它没有考虑曲率,并且似乎以不应该使用的方式使用纬度和经度。不过,它似乎确实可以在短距离内工作。
【问题讨论】:
-
你想要做到多准确? 100m正负几寸,还是100m正负几码?
-
当然不是英寸。在 10 米到 10 英里的距离内,它需要精确到几米。
-
在我看来,您的做法是正确的;我不相信有任何 CLLocation 的本地方法来完成你想要的。你的做法有什么问题?
-
这对我来说似乎有点粗鲁。需要进行大量计算(我需要对多个坐标进行密集计算),并且涉及将纬度和经度视为笛卡尔坐标。
标签: objective-c ios geolocation mapkit