1

iPhone の GPS とコンパスを使用して、ある種のポインタを特定の場所に向けるアプリケーションを開発しようとしています (コンパスが常に北を指すように)。
場所は固定されており、ユーザーがどこにいても、その特定の場所を指すポインターが常に必要です。
この場所の緯度/経度の座標を持っていますが、コンパスと GPS を使用してその場所を指す方法がわかりません... 助けていただければ幸いです。

ネタネル

4

2 に答える 2

1

現在の地点と目的地の緯度と経度があるとします。目的地を「Q」、現在地を「P」としましょう。

まず、P と Q の間の緯度と経度の距離 (デルタ) を計算します。

dx = q.lat - p.lat
dy = q.lon - p.lon

次に、P から Q に到達するためにユーザーが移動する必要がある角度を計算します。これは基本的な三角形のジオメトリです。

float angleRadians = atan2(dy,dx);

次に、その角度を iPhone のコンパスが提供する現在の角度と比較します。アプリが「北から 56 度回転する」ではなく、「現在の進行方向の左に 10 度回転する」と言うように、矢印の方向をユーザーの現在の方向に相対的にする必要があります。これは次のように実現できます。

float relativeRadians = angleRadians - currentHeadingRadians

そのような何かがそれを行う必要があります!これは重い疑似コードですが、基本的な考え方だと思います。それが役立つことを願っています!

于 2009-12-27T21:50:34.210 に答える
0

上記の答えは平らな地球を想定しており、短い距離ではうまく機能しますが、メッカを指す祈りの羅針盤を作りたい場合のように、長い距離では受け入れられないかもしれません.

于 2010-12-12T14:26:29.003 に答える