4

重複の可能性:
Androidで速度を検出する

私は Android の開発に取り組んでおり、GPS をいじって速度を取得したいと考えています。GPS を使用して速度を簡単にキャプチャし、その速度を画面に表示する方法はありますか? 使用できる単純なフレームワークまたは組み込み関数はありますか?

4

2 に答える 2

29

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);
于 2012-07-24T06:27:55.727 に答える
2

これを達成するには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

于 2012-07-24T06:26:11.993 に答える