1

私のAndroidアプリには、5秒間隔で10メートルの距離で更新を要求するロケーションリスナーがあります。

mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000,10);

onLocationChanged()期待通り、リスナーの方法で通知が届きます。しかし、奇妙なことに、家にいると、取得される座標が約半ブロック離れていることに気づきました。これはかなり一貫しています。はい、GPSをオンにしています。Googleマップを開くと、アプリが座標を報告する場所が最初に表示されますが、数秒以内に実際の場所に移動します。

グーグルマップは座標か何かにある種のGPS修正を適用していますか?単に更新をリッスンするよりも複雑なことをする必要がありますか?私はこれまでこれを行ったことがないので、それはすべて私にとってかなり新しいものです。

また、私はあなたが走っているトラックを持っていることに注意してください、Endomondoそしてそれは本当にうまく結果を得るようです..例えば私はそれを始めて、通りの前と下を約半ブロック歩いて戻ってきて、それを完璧にプロットしました。より正確なレポートを取得するために必要なことはありますか?

4

2 に答える 2

3

はい、Googleマップは、実際の位置を特定するためにGPSだけに依存していません。正確には、Googleは携帯電話アンテナ(CellID)間およびwi-fiアクセスポイントアンテナ間での無線マルチラテレーションに依存しています(locationManager.NETWORK_PROVIDERを参照)。

これらの補助的な情報源を使用して、Googleは、GPSが確実に機能しない建物内や、何らかの理由でGPSが役に立たない屋外の状況(ニューヨークなど)でも、位置を特定できます。 、高層ビルによって作成された「キャニオン効果」は、GPSが機能しないようにします)。

そして、はい:場所の更新を読むだけでなく、考慮すべきことがたくさんあります。

Googleの位置情報機能の詳細については、 Android Location Managerのドキュメント、特に位置情報プロバイダー位置情報戦略に関するセクションをお読みください。参照:場所と地図

于 2012-10-03T08:55:31.900 に答える
1

屋内/屋外ではGPSの精度が変わる可能性があるため、この種の動作は完全に正常です。

 ...Although GPS is most accurate, it only works outdoors, 
 it quickly consumes battery power, and doesn't return the location as quickly 
 as users want...

このリンクで提供されているサンプルコードを使用することもできますロケーション戦略..このリンクは、ロケーション管理がどのように機能するかを理解するのに役立ちます。また、優れた使用可能なサンプルコードが含まれています

于 2012-10-02T22:00:59.723 に答える