AndroidでGPSから正確な速度を取得するにはどうすればよいですか? はい、私はLocation
クラスのlocation.getSpeed()
メソッドを認識しています。問題は、既定の実装は速度として0.0を返します:明らかにthat is the default behavior。AndroidでGPSから最も正確な速度を得る方法
私は現在やっている何を、次のように、位置を考慮していることはB後に最初に取られ、bは、オブジェクト:
a.distanceTo(b)/(b.getTime()-a.getTime());
(読みやすくするために簡略化され、歴史ArrayList
と元のコードディール)
これは多少不正確です。通常の状況では、データポイントは互いに非常に近く、GPSの不正確さが実際に問題になります。どちらかといえば、更新頻度を減らすか、もっと遠く離れた場所を基準にして速度を計算する必要があります。私は可能な限り高い周波数を得たいと思っていますが、前者はやりたくありませんが、おそらく距離をフィルターにしてその距離に基づいて速度を計算することができますか? 私がgetSpeed()
メソッドを実行すると仮定した最適解は、GPS衛星自体の速度を計算することになり、より正確な結果が得られます。 getSpeed()
何となく間違って使っていますか?
こんにちは、私は緯度を取得すると正確なパラメータを含めるべきだと思っています。Locationクラスからログします。 "getAccuracy()"それはint - meterの精度を返します。これを計算に含める必要があります –
エミュレータは明らかに常に速度として0に答えますが、実際のデバイスは速度ではありません。実際のデバイスで同じ問題がありますか? – Stefan