objective-c - 如何计算 Objective C 中某个位置以南 100 米?

标签 objective-c ios7 latitude-longitude

我有一个位置的纬度和经度。有没有办法可以计算出该点以南 100 米?

我正在为 iOS7 平台使用 Objective C 编写代码。

我正在寻找一些可以有效实现这一目的的函数。

我尝试了半正矢公式(如下所示)。但由于半正矢认为地球是一个球体,因此计算变得复杂且该值不准确。

a = sin²((φ1-φ2)/2) + cos(φ1)*cos(φ2)*sin²((λ1-λ2)/2)
c = 2*atan2(√a, √(1−a))
distance = R*c
(φ is latitude, λ is longitude, R is Earth’s = 6,371km)

最佳答案

经度代表东/西位置,因此它将保持不变。

将纬度表示为带符号的度数,正数表示赤道以北,负数表示赤道以南。然后向南行驶 100 米,您需要向南行驶 100 米对应的度数。地球的周长是 40075 公里,即 40075000 米,相当于 360 度。因此 100 米对应于 100/40075000*360,或大约 0.0008983 度。因此,从纬度中减去 0.0008983 度即可得到答案。

以上假设地球是球形的。事实上,它是一个椭球体,如果您想正确考虑这一点,答案会更复杂,但对于大多数目的,假设球体的计算应该足够好。

关于objective-c - 如何计算 Objective C 中某个位置以南 100 米?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18939585/

相关文章:

iphone - 如何暂时锁定 iPad/iPhone 方向

ios - dismissModalViewControllerAnimated 已弃用

ios7 - UISearchbar barTintColor 取消按钮不可见

iphone - iOS 7 中的转弯导航

uinavigationcontroller - 为什么在导航栏中,推送和弹出无法根据 (XCode) ios sdk-7 正常工作?

php - 根据经纬度从mysql获取结果

ios - 文件是为 arm64 构建的,它不是链接的体系结构 (x86_64)

objective-c - Theos中如何声明子类的成员变量

mysql - 将经纬度文本列移动到 'point' 类型的列中

mysql - 从自定义多边形 MySQL 进行纬度经度搜索