1

テストにより、必要な精度を低く設定するCLLocationManagerと、このコンポーネントの動作にバグが生じることがわかりました。

これが私が行った2つのテストです:

  1. 必要な精度をに設定しますkCLLocationAccuracyHundredMeters。そうすると、デバイスは私の位置を希望どおりに正確に見つけることができなくなります。これが私CLLocationManagerの代理人からのログです:

    Accuracy is 1500.000000 (desired accuracy is 100.000000)
    Accuracy is 1500.000000 (desired accuracy is 100.000000)
    

    それでおしまい。水平精度1500の30秒で2つのイベント。

  2. 希望精度をに設定しkCLLocationAccuracyBestます。次に、デバイスが私を見つけます!同じログ:

    Accuracy is 1500.000000 (desired accuracy is -1.000000)
    ...
    Accuracy is 162.957953 (desired accuracy is -1.000000)
    ...
    Accuracy is 76.356886 (desired accuracy is -1.000000)
    ...
    Accuracy is 47.421634 (desired accuracy is -1.000000)
    

    私はテスト1とまったく同じ場所にいますが、今回は、デバイスが最初に必要な精度(つまり、100.0)で現在地を見つけることができます。

同じ結果を得るために、これら2つのテストを何度も繰り返しました。

私の質問は:

「精度を設定したときにiPhoneデバイスが自分の位置を見つけようとしない理由を誰かが知っていますkCLLocationAccuracyHundredMetersか?」</ p>

精度をに設定すると、kCLLocationAccuracyBest別のハードウェアセンサーがオンになる可能性があると思いますが、これはバグとは見なされませんか?この問題に関連するものをインターネット上で見つけることができませんでした。

あなた自身の経験を共有してくれてありがとう。(テストは、Wi-Fiおよび電話ネットワークを介した3GSデバイスで行われました)

4

1 に答える 1

1

より詳細な設定では、セルと Wi-Fi の三角測量のみを使用して位置を特定しようとしますが、これは正確ではありません. kCLLocationAccuracyBest は GPS モジュールをオンにして使用します。これは数フィート以内に収まるはずです。これはバグではありません。どちらの場合も、要求した精度が得られました。

違いは、GPS は三角測量よりも多くのバッテリーを消費するためです。そのため、大まかな場所にデバイスを配置する必要がある場合は使用されません。

于 2010-10-05T20:05:24.897 に答える