質問

Googleで検索した後、私は自問します:

コンパス(見出し/方向を示すシンプルな)を構築することは可能ですか? iPhone 3GのGPSセンサーですか?

デバイスが動いている場合にのみ可能だという疑いがあります。

どんなアイデアも歓迎します。

役に立ちましたか?

解決

はい、あなたは正しいです、それが唯一の方法です。方向がわかれば、携帯電話の小さな動きを加速度センサーから追跡し、元の動きが停止しても方向を正確に描くことができると思います。

注:これは古い情報であり、3Gが登場するまでは正しいものでした。残念ながら、受け入れられた回答を削除することはできませんので、以下をご覧ください。

他のヒント

オリジナルのiPhoneおよびiPhone 3Gでは、いいえ。

はい、2009年6月に利用可能なiPhone 3GSで。コンパスアプリケーションを可能にする磁力計が含まれています。

Core Location Framework は、この情報を CLHeading クラス。 デバイスがサポートしているこの機能は、 magnetometer キーを使用します。

他の人が言ったように、iPhone 3Gでは、電話が動いているときに動きの方向を伝えることができますが、ユーザーに方向を示すために電話の向きを伝えることはできません。確かに、ユーザーは特定の方法で電話を向けるように指示することができ、それは動きと組み合わされて方向を正確に示すことができます。

これに対する更新として、iPhone 3GSには、アプリで利用できる実際の動作するデジタルコンパスが含まれています。このようなアプリを書くのは簡単です。

CLHeading クラスと magneticHeading プロパティを参照してください。

http://developer.apple .com / iphone / library / documentation / CoreLocation / Reference / CLHeading_Class / Reference / Reference.html

また、電話機が地理的に自分自身を見つける時間があると仮定して、真の北方位を取得することもできます。

利用可能なアプリケーションをスキャンすることで、現在のiPhone 3Gのコンパスを作成する方法は2つあるという結論に達しました。

  1. 携帯電話の移動が必要です。 GPSデータの違いを使用して、方向を判断します。
  2. ユーザーが電話を太陽に向ける必要があります。 GPSと時刻情報を使用して道順を決定します。

場所マネージャ機能を実装するだけで、iPhoneが指している正確な方向を見つけることができます。

だから、これを確認できます:

CLLocationManager * locationManager; [locationManager startUpdatingHeading];

そして、startUpdatingHeading()を呼び出すたびに "-(void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading" Location Managerからオーバーライドする必要があるメソッド。

これで、newHeading.magneticHeadingまたはnewHeading.trueHeadingによって、iPhone 3GSが指している方向を見つけることができます。

磁気コンパスが与える方向とまったく同じ方向を得ることができることに驚くでしょう。

コンパスには、移動している方向のみが表示されます。 iPhoneが置かれている方向はわかりません。そのため、iPhoneが回転/移動したことを追跡するために加速度計を使用しても、必ずしもディスプレイの北を指すことはできません。

(つまり、横に動いているか、iPhoneを上下逆さまに保持しているかはわかりません。どこに動いているかがわかります...)

2010年12月編集: このオリジナルの投稿が書かれて以来、iPhone 3GS('09年夏に発売)以降のモデルには電子コンパスが搭載されています。このコンパスは、移動せずに正しい方向を示すことができます...(つまり、コンパスは、iPhoneが保持されているか移動している方向に関係なく、北を指すことができるようになりました。)

疑いの余地があると思いますが、GPS位置は方向情報のない単一のポイントです。方向を決定するには、方向ベクトルを作成するために2つのポイントが必要です。カーナビゲーションシステムも同じように機能します。車が動いている場合にのみ方向ベクトルを表示できます。

アナログ時計を実装する場合、以下の手順を使用してコンパスダイヤルを重ね合わせることができます。

これは、コンパスを「較正」し、携帯電話が移動しても加速度計が北を指すようにするために使用できます。

明らかにこれは非常に正確ではありません...「ハイテクの問題に対するローテクのソリューション」

http://www.qwerty.co.zaからの指示

北半球では、地面の平らな部分に時計を置き、太陽の方向に時針を向けます。南北線は、時針と12時の線の間の角度を半分に分割する線です。

南半球では、時計を平らな地面に置き、 図12を太陽に向けます。南北線は、時針と12時の線の間の角度を半分に分割する線です。

補足として、iPhoneの加速度計は回転のみを追跡しないため、位置と方向の適切な6軸慣性追跡を行うことはできません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top