2011-01-03 2 views
0

IOSのコア位置を使用していくつかの問題が発生しました。私はすべてのことがどう働いているのか理解できません...助けてください。CLLocationManagerのタイムスタンプと座標

シナリオ:ロケーションサービスがオンのiPhone。ワイヤレスと3Gはオンではありません。 GPSが届かない建物のiPhone。

私自身のプログラムを作成しました。私はLocateMeの例に従うことでコアの位置関数を使用しています。 startUpdatingLocationを呼び出した後、didUpdateToLocationは、古いGPS座標でも呼び出されます。私は2つの質問があります:

1)didUpdateToLocationで、私がnewLocation.timestampをプリントアウトすると、iphoneシステムの時間が表示されます。私はiPhoneの設定で日付の時間を変更することでこれを確認します。この機能が有効になると、newLocation.timestampはiphoneシステムの日付時刻を保存します。なぜnewLocationはGPSの場所を取得できないときにシステム時刻を格納していますか?とにかくタイムスタンプの有効性を判断し、GPSかシステムかどうかを確認するには?

2)私が受け取ったタイムスタンプはシステム時刻なので、座標が更新されたタイムスタンプであるかどうかをどのように判断するのですか?この問題に対処するにはLocateMeの例で十分ですか?

ありがとうございます!

答えて

2

コアロケーションは、どのソースからでも新しいロケーションアップデートを受信したときに、現在のシステム時刻を挿入します。 iPhoneは、衛星が送信したGPS時刻を使用しません。

通常、「今」とCLLocationタイムスタンプの時間差を計算して、更新の最新状態を調べます。 IME、キャッシュされた結果は、3つの場所検出テクニックすべて(利用可能な限り)で送信されます。

ロケーションの更新元が直接示されていません。しかし、いくつかのヒントがあります。高度、垂直精度、および速度は、GPSアップデートのためにのみ設定されています。通常、WiFiアップデートは60m水平精度範囲にありますが、セルタワーのアップデートは> 500mです。

関連する問題