2

私は場所の緯度と経度を持っています。そのポイントの南 100 メートルを計算する方法はありますか?

iOS7 プラットフォーム用の Objective C でコードを書いています。

トリックを効果的に行ういくつかの関数を探しています。

私はHaversine式を試しました(以下に示します)。しかし計算は複雑になりつつあり、Haversine は地球を球体と見なしているため、値は正確ではありません。

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)
4

2 に答える 2

2

経度は場所の東西を表すため、変更されません。

緯度を符号付きの度数として表します。赤道の北は正の数値、赤道の南は負の数値です。次に、100 メートル南に移動するには、100 メートルに対応する角度だけ南に移動します。地球の円周は 40075 km (40075000 m) で、360 度を表します。したがって、100 メートルは 100/40075000*360、つまり約 0.0008983 度に相当します。したがって、緯度から 0.0008983 度を引くと答えが得られます。

上記は、地球が球形であると仮定しています。実際、それは楕円体であり、それを適切に考慮したい場合、答えはより複雑になりますが、ほとんどの目的では、球を仮定した計算で十分です。

于 2013-09-22T02:24:19.657 に答える
1

これを行う方法を考え出しました。同じことを共有する考え...

  1. MKMapPointを使用して座標を変換しMKMapPointForCoordinateます。

  2. MKMapPoin次に、ステップ 1 で取得した t の x または y 座標を加算または減算しMKMapPointMakeます。これを実行するには、 を使用します。

  3. に変換MKMapPointCLLocationCoordinate2Dます。これを実行するために使用MKCoordinateForMapPointします。

于 2013-09-22T04:56:23.607 に答える