2012-02-14 22 views
1

私はLocationListenerを使用して、私が行う必要がある何か他のものがありますLocation.getBearingは常に0.0

0.0と場所が常にベアリングた戻っていますか?

私はまた、4.0.3アップデートで私はめったにスピードの報告がないことに気づきました。 GPSプロバイダを使用する場合は今、私はちょうど位置し、精度/標高

public void onLocationChanged(Location loc) 
    { 
     Log.d(LOG_TAG, "onLocationChanged"); 

     Position position = new Position(); 

      position.PositionGKey = UUID.randomUUID(); 
      position.GPSTime = new Date(loc.getTime()); 
      position.DeviceTime = new Date(); 
      position.Latitude = loc.getLatitude(); 
      position.Longitude = loc.getLongitude(); 
      position.Altitude = loc.getAltitude(); 
      position.Speed = loc.hasSpeed() ? loc.getSpeed() * 2.23693629 : 0; 
      position.Accuracy = (int)loc.getAccuracy(); 
      position.Bearing = loc.hasBearing() ? loc.getBearing() : 0; 

      // There was cases with speed reported 1000+. Just make it real here, round of obvious errors. 
      if (position.Speed > 120) 
      { 
       position.Speed = 0.0; 
      } 

      PositionData.InsertPosition(getApplicationContext(), position); 

    } 
+0

あなたは私たちの一部は、魔術を行う可能性があります...場所を取得している方法に関連するコードを投稿してください、私たちはコードが掲載:) – m0skit0

+0

間違いguessersじゃありません。ポイントは4.0.3が異なって動作することです。私はほとんどスピードを得ることができません。ちょうど今、私はベアリングを追加し、記録されたことはありません。 – katit

+0

GPSまたはネットワークプロバイダを使用しているのですか? – Jakar

答えて

0

を取得し、ベアリングは通常更新されない/返されたデバイスが物理的に移動し、ゲイン速度は(getSpeedをチェック())を除きます。実際には、1m/sを超える速度は正確なベアリングを生成するはずです。また、GPSプロバイダの最後の場所をポーリングして確認し、適切な読み取り値を得るために更新されたベアリングを取得しなければならないことも発見しました。

関連する問題