我有一个位置的纬度和经度。有没有办法可以计算出该点以南 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/