2016-10-10 8 views
-3

多くのコードを試してみましたが、どれも動作しません。私はこれを試みた:Android Appでスピードを得る方法

//This is in another void 
Location location = new Location(LocationManager.GPS_PROVIDER); 
        location.setSpeed(0); 
        Greitis(location); 

//This is in CountDownTimer which has onTick every 1 second 
public void Greitis(Location location) { 
     if (location.hasSpeed()) { 
      speed.setText(location.getSpeed() * 3.6 + " Km/h"); 
     } 
    } 

誰でも私は正しく動作するかスピードを得る方法を書くことができますか?

+0

華麗なソリューションが多いがありまずが投稿する前に、いくつかの研究(少なくとも検索)を行います。ここでの質問 –

答えて

0

getSpeed()は、setSpeed(int)(あなたの場合は常に0)を使用して設定された値のみを返します。あなたは、多かれ少なかれ正確な速度を取得したい場合は

は、2つの方法があります:速度を算出あなたの加速度計

  • を使用して

    1. 自分

    あなたがしたくない場合GPSを使用する(通常は良いアイデアです)、オプション1を選択する必要があります。しかし、2番はあまり複雑ではありません。ちょうどTの遅れで2つのGPSポイントを保存してください。あなたの速度はspeed = distance/timeに応じて(あるより:。

    speed = sqrt((point2.x - point1.x)^2 + (point2.y - point1.y)^2)/T 
    

    distancepoint1point2の間の距離であるので

  • +0

    GPS座標は角度([wiki](https://en.wikipedia.org/wiki/Geographic_coordinate_system))であり、2つの地点間の距離は世界の表面上の距離です球形距離)([wiki](https://en.wikipedia.org/wiki/Haversine_formula)と[link1](https://www.math.ksu.edu/~dbski/writing s/haversine.pdf)または[link2](http://www.movable-type.co.uk/scripts/latlong.html)を参照してください)。 –

    関連する問題