2

私は位置情報ベースのアプリケーションを書いており、現在 iPhone の第 1 世代を持っていますが、iPhone 3G または 3G が GPS チップを使用してその位置を特定するのにどのくらいの時間がかかるのでしょうか?

私が理解している限り、 locationManager:didUpdateToLocation:fromLocation: は、ますます正確な位置情報で呼び出され続ける可能性があります (保証はありません)。したがって、ユーザーの位置が時間 x によって決定されない場合は、単にそれを決定しようとするのをやめて、私たちが持っているものを使用するタイマーを作成したいと思います。

また、デバイスに GPS チップが搭載されているかどうかを確認する方法はありますか? UIDevice でデバイスの種類を確認し、タッチと iPhone を区別するだけでよいことはわかっていますが、GPS なしの iPhone と GPS 付きの iPhone はどうですか?

ありがとう!

4

3 に答える 3

1

私は iPhone の GPS 実装の専門家ではありませんが、GPS ユニットがその位置を見つけるのにかかる時間の長さについてはコメントできます。

GPS が衛星を取得して修正を取得するのにかかる時間は、空のビューの品質と GPS が衛星コンステレーションについて知っている量の 2 つに依存します。

GPS は信号を受信するために衛星を見ることができる必要があるため、最初のことが重要です。ここ英国では、北向きの壁のそばに立っていると、どの軌道も北に約 50 ~ 55 度以上来ないため、衛星の視界が非常に悪くなります。空と軌道の北端にあります。

2 番目の要素は、GPS が最後に衛星を検出して軌道情報 (アルマナックとエフェメリス) をダウンロードしてからの経過時間に依存します。GPS に最新の衛星データがあり、視界が良好な場合、多くの場合、数秒以内に新しい修正を見つけることができます。GPS の電力が失われたか、データが古い場合、新しいデータをロードするのに 32 秒と衛星検索時間がかかります。最初の修正までの時間は、私が使用したほとんどの GPS エンジンで通常 45 ~ 50 秒です。

于 2009-08-04T08:06:38.933 に答える
1

あなたの最後の答えとして、私はあなたにこの SO questionを指摘します。iPhone1,1かiPhone1,2かでGPSチップの有無がわかります。

あなたの質問の最初の部分については、私がアプリケーションでどのようにそれを行ったかを説明できます。2 つのタイマー、たとえば shortTimer と longTimer を開始します。どちらも同じコールバック メソッドを呼び出します。コールバック メソッドは、両方のタイマーが起動するまで待機し、その後でのみ他の作業を続行します。タイマーを開始した直後に、現在地の更新をリッスンし始めます。locationManager:didUpdateToLocation:fromLocation メソッドで受信した位置情報が最新であり、十分に正確である場合、ロング タイマーを時期尚早に (つまり、それ自体が起動する前に) 起動します。

このようにして、少なくとも shortTimer のタイムアウトで最新の正確な位置を待ち、最大で longTimer のタイムアウトを待ちます。それらの合理的な値は?少し実験してみてください。続行する前に会社のロゴが表示されたスプラッシュ スクリーンがあるため、shortTimer はかなり長くなります (つまり 4 秒)。私の longTimer は 20 秒に設定されています。これは私のために働いているようです。

HTH

于 2009-08-04T07:56:07.550 に答える
0

あなたの居場所を特定するために、1 分間試してみてください。iPhone の Google マップで自分の位置を三角測量した経験では、通常、その時までには答えが返ってきます。もちろん、それはあなたの粒度に依存します - キロメートルの精度を要求した場合、最善を定義した場合よりも早く答えが得られる可能性があります。

デバイスが GPS 付きの iPhone であるかどうかについては、CoreLocation は、知らない/気にせずにその答えを提供するように設計されています。GPS がインストールされている場合、利用可能な最適な場所を取得しますか? その場合、kCLLocationAccuracyBest を使用すると、デバイスがサポートする最も正確な更新を取得できます。

GPS ロックを取得すると、精度 (Horizo​​ntalAccuracy で測定) は 10m 未満になります。それよりも大きなもので、GPS ロックを取得していないか、少なくとも適切なものではありません。

また、GPS 対応デバイスでは垂直精度が表示され、非 GPS デバイスでは有効にならないこともわかります。

于 2009-08-04T08:03:55.600 に答える