getAccuracy()によって返される精度測定値の適切な解釈を知っている人はいますか?たとえば、次のように計算されますか?
循環エラーの確率(つまり、私が正しく理解していれば、50%の信頼円の半径)?
95%信頼円の半径?
他に何か?
さらに、実際に使用されている計算はどのくらいで、どれだけそれらに依存できますか?ロケーション推定のソース(GPSとネットワーク)に依存しますか?
あなたが私に与えることができるどんなアドバイスにも感謝します。
getAccuracy()によって返される精度測定値の適切な解釈を知っている人はいますか?たとえば、次のように計算されますか?
循環エラーの確率(つまり、私が正しく理解していれば、50%の信頼円の半径)?
95%信頼円の半径?
他に何か?
さらに、実際に使用されている計算はどのくらいで、どれだけそれらに依存できますか?ロケーション推定のソース(GPSとネットワーク)に依存しますか?
あなたが私に与えることができるどんなアドバイスにも感謝します。
回答:
質問の一部に答えるために、この数はthe radius of 68% confidence,
、実際の位置がメートル単位の測定点の半径内にある確率が68%であることを意味しています。エラーが正規に分布していると仮定すると(ドキュメントが言うように、必ずしもそうではない)、これは1つの標準偏差であることを意味します。たとえば、Location.getAccuracy
10が返された場合、デバイスの実際の位置が報告された座標から10メートル以内にある確率は68%です。
http://developer.android.com/reference/android/location/Location.html#getAccuracy()
バッテリー寿命が限られている場合や、建物や大きな建物が多い地域などにGPS信号がない場合は、場所を特定するのが難しい作業です。しかし、Androidを使用すると、はるかに簡単になります。場所をリクエストするときは、必要な精度を指定するだけです。
accuracy
例としてを指定すると*100 meters*
、Androidは位置を取得しようとし、70メートルの精度で位置を取得できる場合はそれを返しますが、Androidが100を超える精度で位置を取得できる場合メートルの場合、アプリケーションは待機し、そのような正確な場所が見つかるまで何も受信しません。
通常、Androidは最初にセルIDを取得してから、そのIDをGoogleサーバーに送信します。これにより、そのようなセルIDがマップされ、サーバーは、たとえば1000メートルと低い精度で緯度と経度を返します。このときまでに、Androidはエリア内のすべてのWiFiネットワークも確認しようとし、それらについての情報もGoogleサーバーに送信し、可能であればGoogleサーバーは、たとえば800メートルのより高い精度で新しい場所を返します。
この時点で、GPSはオンになります。GPSデバイスは、修正を取得するためにコールドスタートから少なくとも30秒を必要とするため、修正を取得できる場合は緯度と経度を返しますが、精度は100メートルの例では最高になります。GPSが長ければ長いほど、精度が高くなります。
重要なお知らせ:最初の2つの方法にはインターネット接続が必要です。データ接続がない場合は、GPSを待つ必要がありますが、デバイスが建物内にある場合は、場所を取得できない可能性があります。
getAccuracyのドキュメントには、精度をメートル単位で返すと記載されています。これは、戻り値が60の場合、指定された位置を中心とする半径60メートルの円のどこかにいることを意味すると思います。
Androidのソースコードを一目で見る限り、これはデバイスのハードウェアと、デバイスが返すことを選択した値によって異なります。
このGpsLocationProvider.java
ファイルには、ネイティブコードによって呼び出され、精度を値として渡すreportLocation
メソッドがあります。したがって、少なくともフレームワークでは計算が行われていないようです。
qcom(これはQualcommだと思います)のGPS git repo はhor_unc_circular
、少なくとも実装がCERを使用していることを意味するように見える精度のためにパラメーターを渡しています。
ドキュメントで引用されているように、それが精度である場合、ユーザーの実際の位置はQUOTED_LOCATION +/- ACCURACY内のどこかにあります。したがって、精度は、ユーザーが期待できる半径を定義します。ドキュメントが言っていないことは、ユーザーが半径内にいることがどれほど確実であるかということです-標準は95%なので、私はそれを推測します。
確率に関して明確な答えを求めていると思いますが、ここでは2つの点を検討する必要があると思います。
まず、この値に何を入れるかを決めるのはプロバイダー次第です。そのため、プロバイダーによっては、間違った推測になるかもしれません。
第2に、これを潜在的な丸めの問題と考えるとよいでしょう。私がいくつかの入力に基づいて位置を計算しようとしていて、それらの入力の一部が特定の有効桁数でしか利用できない場合、指定された有効桁数でのみ位置を計算することが可能です。
このように考えてください。「約」1プラス「約」100は何ですか。おそらく100程度です。100の精度は1のマグニチュードよりも低い可能性が高いからです。突然答えが101であると言うと、そこにはなかった精度のレベルを暗示する可能性があります。ただし、実際に精度を指定すると、100プラスまたはマイナス10プラス1プラスまたはマイナス.1は101プラスまたはマイナス10であると言えます。これは、一般に95%の信頼レベル(標準エラー)ですが、繰り返しになりますが、プロバイダーは統計情報を理解しており、単に推測しているだけではありません。