グーグルで検索した後、私は自分自身に尋ねます:
iPhone 3GのGPSセンサーでコンパス(機首方位/方向を簡単に表示)を作成することは可能ですか?
これは、デバイスが動いている場合にのみ可能であると私は疑っています。
どんなアイデアでも大歓迎です。
グーグルで検索した後、私は自分自身に尋ねます:
iPhone 3GのGPSセンサーでコンパス(機首方位/方向を簡単に表示)を作成することは可能ですか?
これは、デバイスが動いている場合にのみ可能であると私は疑っています。
どんなアイデアでも大歓迎です。
オリジナルのiPhoneとiPhone3Gでは、違います。
はい、2009年6月にiPhone3GSが利用可能になりました。これには、コンパスアプリケーションを可能にする磁力計が含まれています。
Core Location Frameworkは、 CLHeadingクラスでこの情報を提供します。キーを使用して、デバイスがこの機能をサポートしているかどうかを確認できmagnetometer
ます。
他の人が言っているように、iPhone 3Gを使用すると、電話が動いているときに移動の方向を知ることはできますが、ユーザーに方向を示すために電話の向きを知ることはできません。確かに、ユーザーは、動きと組み合わせて方向を正確に示すことができる特定の方法で電話を向けるように指示することができます。
これに対するアップデートとして、iPhone 3GSには、アプリで利用できる実際の動作するデジタルコンパスが含まれています。それはそのようなアプリを書くことを簡単にします。
CLHeading
クラスとmagneticHeading
プロパティを参照してください。
また、電話が地理的に位置を特定する時間があったと仮定すると、真の北向きを取得することもできます。
はい、あなたは正しいです、それが唯一の方法です。方向がわかれば、加速度センサーから携帯電話の小さな動きを追跡し、元の動きが止まったとしても正確に方向を描くことができると思います。
注:これは古い情報であり、3Gがリリースされるまでは正しいものでした。残念ながら、受け入れられた回答を削除することはできませんので、以下をご覧ください。
iPhoneが指している正確な方向を見つけるには、ロケーションマネージャ機能を実装する必要があります。
だから、あなたはこれをチェックすることができます:
CLLocationManager * locationManager; [locationManager startUpdatingHeading];
また、startUpdatingHeading()を呼び出すと、「-(void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading」メソッドが呼び出されます。このメソッドは、ロケーションマネージャーからオーバーライドする必要があります。
これで、iPhone3GSが指している方向をnewHeading.magneticHeadingまたはnewHeading.trueHeadingで見つけることができます。
あなたはあなたが磁気コンパスがあなたに与えるのとまったく同じ方向を得ることができることに驚くでしょう。
利用可能なアプリケーションをスキャンすることで、現在のiPhone3G用のコンパスを作成する方法は2つあるという結論に達しました。
コンパスには、移動している方向のみが表示されます。iPhoneが置かれている方向はわかりません。したがって、加速度計を使用してiPhoneが回転/移動したことを追跡しても、必ずしもディスプレイ上で北を指すとは限りません。
(つまり、横に動いているのか、iPhoneを逆さまに持っているのかはわかりません。どこに動いているのかがわかります...)
2010年12月の編集: この元の投稿が書かれて以来、iPhone 3GS(2009年夏に発売)以降のモデルには電子コンパスが搭載されています。このコンパスは、移動せずに正しい方向を示すことができます...(これは、iPhoneが保持されている方向や移動している方向に関係なく、コンパスが北を指すことができることを意味します。)
私はあなたの疑いであなたの権利だと思います、GPS位置は方向情報のない単一のポイントです。方向を決定するには、方向ベクトルを作成するために2つのポイントが必要です。カーナビゲーションシステムも同じように機能します。車が動いている場合にのみ、方向ベクトルを表示できます。
アナログ時計を実装する場合は、以下の手順を使用してコンパスダイヤルを重ね合わせることができます。
これを使用して、コンパスを「調整」し、電話が移動したときに加速度計を北に向けたままにすることができます。
明らかに、これは非常に正確ではありません...「ハイテク問題に対するローテクソリューション」
( http://www.qwerty.co.zaからの指示)
北半球では、時計を平らな地面に置き、時針を太陽の方向に向けます。南北線は、時針と12時線の間の角度を半分に分割する線です。
南半球では、時計を平らな地面に置き、図12を太陽に向けます。南北線は、時針と12時線の角度を半分に分割した線です。
ちなみに、iPhoneの加速度計は回転のみを追跡しないため、位置と方向の適切な6軸慣性追跡を行うことはできません。