4

iPhone4 のモバイル Safari と iOS6 の iPhone5 で奇妙な動作に直面しています。

私がしたいこと

を使用して、ブラウザ内のユーザーの位置を精度で追跡する

geolocation.watchPosition({ enableHighAccuracy: true, maximumAge: 0, callback })

私が直面している問題

通常、デバイスが屋外にあり、晴天の下で移動している場合、GPS 位置の精度と更新周期は非常に良好です。

コールバックに渡されたcoordsオブジェクトは 5 メートルの精度を持ち、正しいヘディング値が与えられ、コールバックが移動すると少なくとも 500 ミリ秒ごとに起動されます。

しかし、同じ条件で(可能な限り)テストしても、監視位置が正確にならない場合があります。

また、更新期間ははるかに長く、ほぼ 30 秒です。

基本的に、この場合、位置の正確な追跡に HTML ジオロケーションは使用できません。

観察

  • これは、GPS センサーが「ホットスタンバイ」になっていないときに発生するようです。つまり、別のネイティブ アプリによってしばらく (どのくらいの時間かは不明) 使用されていないことを意味します。

  • ページをリロードし、GPS アクセスを再度許可し、watchPosition を再初期化しても何も変わりませんが、依然として精度が低く、更新が遅くなります。

  • 渡されたオプションを変更しwatchPositionても何も起こらないようです。

  • 手動修正 1:

    • サファリを閉じる
    • Maps や GMaps などの別のネイティブ アプリを開く
    • ネイティブ アプリでの位置を特定する
    • サファリを開く
    • GPS 位置はすぐに正確になり、位置の更新は 500 ミリ秒間隔で再起動され、非常に正確です (リロードは必要ありません)。
  • 手動修正 2:

    • サファリを閉じる
    • 設定パネルを開く
    • Wi-Fiを無効にする
    • サファリを開く
    • 繰り返しますが、問題は修正されました(リロードなし)

結論

coords問題が発生したときに、コールバックのオブジェクトを調べたところ、次のことがわかりました。

渡された場所はデバイスの実際の位置から遠く離れていますが (> 1km)、accuracy渡された場所ははるかに小さくなっています (多くの場合 165 メートル)。はheading決して与えられません。

iPhone の WiFi が無効になっている場合、設定パネルに、WiFi を有効にすると位置特定の精度が向上するというヒントが表示されます (地理コード化された WiFi ネットワークのデータセットでサポートされている AGPS のため)。しかし、モバイル サファリで GPS を使用したい場合、これは正しくありません。実際、それは逆です。

モバイルサファリは、場所を特定するために次のようなことをしているように思えます。

  • デバイスで GPS が既に有効化されているか、使用されている場合、GPS センサーを使用します (高速で正確な位置更新)。

  • 以前に GPS がアクティブではなく、WiFi が有効になっている場合、デバイスは WiFi データベースのみを使用して位置を取得します。(更新が非常に遅く、正確ではありません)。あるWiFiロケーションから別のWiFiロケーションに更新するだけです. たとえば、連邦道路を運転している場合、現在地はほとんど隣の住宅地にマッピングされているため、これは非常にはっきりとわかります。

  • 以前は GPS がアクティブではなく、WiFi が無効になっている場合にのみ、モバイル サファリは GPS を使用してデバイスの位置を特定します (これも高速かつ正確です)。

質問

誰でも私の問題と私の観察を確認できますか? 以前の iOS バージョンでジオロケーションを使用していましたが、これまでこの問題に直面したことはありませんでした。

これはモバイル サファリの既知のバグですか?これが修正される可能性はありますか? それとも、よりwatchPosition良い結果を得るために のより良い構成が欠けているだけですか?

4

2 に答える 2

0

私を含め、多くの人が同様の問題を説明しています。このディスカッションの 5 ページ以降 (alstorp として) で私の問題について説明しましたhttps://discussions.apple.com/thread/4313850?start=45&tstart=0 読んで、それがあなたの問題と一致するかどうかを確認してください。

問題は、私の知る限り、Apple がこれを確認していないことです。彼らはそれを修正するために取り組んでいますか?それは本当に彼らの味方ですか?それは本当にバグですか?したがって、いつ修正されるかはわかりません...

iOS 6 のブラウザベースの地理位置情報に問題がない人はいますか? (さまざまな状況で複数のテストを行った後でも)。

修正を広範囲にテストしましたか? 私の経験では、このタイプの修正は場合によっては役立ちますが、常に (または長期間) 役立つわけではありません。それらがあなたのために確実に機能するなら、それは本当に興味深いでしょう...

( IOS6 geolocation watchPosition Callbacks fail iOS 6 break GeoLocation in webapps (apple-mobile-web-app-capable)も確認してください)

于 2013-03-27T14:55:37.590 に答える
0

誰でも私の問題と私の観察を確認できますか? 以前の iOS バージョンでジオロケーションを使用していましたが、これまでこの問題に直面したことはありませんでした。

watchPosition(onGeoSuccess,onGeoFail,{enableHighAccuracy:true}); を試しました。iPhone (iOS 7.0.2) を使用して Web アプリで。

WiFi をオンにすると、精度が非常に悪く、時には 1 マイルもずれることもありました。WiFi をオフにすると、精度はほぼ完璧になり、時折数百フィートの不一致が生じました。

キャプチャ ポイント間で GPS を実行したままにしておくことが役立つかどうか、または次のキャプチャ ポイントに到達するまで GPS をオフにして、watchPosition() 関数を安定させる方がよいかどうかをまだテストしていません。

于 2013-10-01T19:36:37.667 に答える