mapkit と SDK 3.0 を使用してアプリをプログラミングしています。1 つの詳細を除いて、すべて正常に動作します。ユーザーの位置を表示すると、現在のネットワークに応じて、マップ上に異なるユーザーの位置が表示されることに気付きました。私はこの問題について読み、それが一般的であることを理解しましたか? 私の WLAN では、ユーザーの位置が正しく表示されます。3Gネット(T-mobile)の場合、現在地から100mほど離れています。これは、三角測量を使用したセルラー電話ネットに関係しており、WLAN では GPS または WiFi ホットスポットが使用されていることを理解しています。それで、私の質問に。これを回避する方法はありますか?私のアプリは、町の位置とそれらの位置までの距離を表示します。距離が短いために位置が間違っていると、非常に明白で誤解を招きます。ユーザーの位置を取得するために使用するメソッドを (コードで) 設定する方法はありますか? マップを使用して iPhone の他のすべてのアプリをテストしましたが、問題はすべて同じようです。(誰かが私のアプリをテストしたい場合は、car2go のアプリ ストアで無料で入手できます。他のコメントももちろん興味深いものです) よろしくお願いします! -ループ-
3 に答える
コア位置は、報告している位置の垂直および水平の精度に関する情報を提供します。場所が疑わしい場合は、その精度を使用してユーザーに報告する必要があります。Google マップでは、位置マーカーの周りの青い円のサイズを大きくすることでこれを行います。場所が疑わしいことをユーザーに示す方法、警告ボックス、所定の精度から外れている場合は場所を表示しない方法などがあります。
現在地の代替ソースを使用しますか? ポータブル GPS ユニットでうまくいくでしょう。
本当の問題は、3G 三角測量で指定されているデータをどのように修正できるかということです。3G の位置エラーを修正するために微分を行うことができるのだろうか。
1) 特定の都市で、都市をプロットして 3G 位置誤差を調整します。これは 3G ネットワークによっていつでも修正される可能性があるため、確認して再調整する方法が必要になります。
2) 既知の場所 (3G の場所と GPS の場所) を使用して、3G ネットワークの場所を調整します。他の 3G ロケーションに適用できる差分と考えてください。これは、おそらく現実ではない三角測量計算で一貫したオフセットを想定しています。
3) 3G ネットワークが修正されるのを待ち、その間は何もしません。
4) 3G ネットワーク プロバイダーに三角測量でエラー情報を提供し、それが彼らにとって優先事項であるかどうかを確認します。
他の実行可能なオプションは考えられません...
おそらく、CoreLocation を直接使用できます。正確さを含むよりもオブジェクトCLLocationManager
を提供します。CLLocation
精度が 50 メートル未満の場合、その場所はおそらく GPS からのものです。