重複の可能性:
Androidで速度を検出する
私は Android の開発に取り組んでおり、GPS をいじって速度を取得したいと考えています。GPS を使用して速度を簡単にキャプチャし、その速度を画面に表示する方法はありますか? 使用できる単純なフレームワークまたは組み込み関数はありますか?
重複の可能性:
Androidで速度を検出する
私は Android の開発に取り組んでおり、GPS をいじって速度を取得したいと考えています。GPS を使用して速度を簡単にキャプチャし、その速度を画面に表示する方法はありますか? 使用できる単純なフレームワークまたは組み込み関数はありますか?
GPS を介してユーザーの位置を取得するために使用されるLocationManagerを使用する必要があります。返される GPS データには速度が含まれます。LocationListeneronLocationChanged(Location location)
の機能を使用する必要があります。
速度を得るには、これを行う必要があります。
int speed = location.getSpeed();
これは m/s 単位です。km/h に変換する必要がある場合は、次のように使用します。
int speed=(int) ((location.getSpeed()*3600)/1000);
mph に変換する必要がある場合は、次を使用します。
int speed=(int) (location.getSpeed()*2.2369);
これを達成するには2つの方法があると思います:
まず、 Android でLocationクラスを参照すると、 という名前のメソッドがあることがわかります getSpeed
。それは言います:
Returns the speed of the device over ground in meters/second.
If hasSpeed() is false, 0.0f is returned.
だから、あなたは次のように書くかもしれません
if (locationObj.hasSpeed()) {
float speed = locationObj.getSpeed();
// process data
} else {
// Speed information not available.
}
第 2 に、GPS 位置情報の更新を追跡して、その更新が発生した以前の位置と時刻を保存することができます。これで、新しいアップデートが来るたびに、クラスdistanceTo
のメソッドを使用して移動距離を見つけることができます。Location
したがって、現在の速度を知るには、次の式を使用できます。distance travelled / time difference between the updates