2010-12-01 7 views
0

私はgpxファイルを使用して動きをシミュレートするためにアンドロイドエミュレータddmsを使用しています。 gpxファイルには約1000のエントリがあります。しかし、私はonLocationChangedメソッドがファイル全体の中で数回だけトリガされていることを発見しています。次のように私のコードが...GPSエミュレータのトラック

LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);   

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, myListener); 

myListener = new LocationListener(){ 
public void onLocationChanged(Location location){ 
    double mylat = location.getLatitude(); 
    double mylon = location.getLongitude(); 
    ... 
    } 
... 
} 

である1000に設定されているrequestLocationUpdatesの私の理解では、それが1秒ごとに場所が1メートル以上離れて、前から提供される位置更新を要求しなければならないことです。これは正しいです?もしそうなら、なぜ私はgpxファイルからいくつかの緯度/経度のペアを取り出すだけでしょうか?私は約1000人を検索していないでしょうか? (GPSデータは走っている人のものなので、一定の動きがあります。)

答えて

1

gpx、kmlを使用してエミュレータの位置を使用したり、緯度/経度を手動で入力しても大したことはありませんでした。私の経験上、requestLocationUpdatesでの位置と距離の最小値の設定は、実際のハードウェアではうまく動作しますが、エミュレータではうまく動作しません。

gpxファイルをテスト目的のためだけに使用している場合は、timeとlocationの制約を0と0に設定して、エミュレータ内に1000点のポイントがすべて登録されているかどうかを確認してください。

+0

これは実際には非常に有用でした。 0,0に設定すると、すべての点が得られます。だから...これを読んだ人のために:マークのアドバイスに従ってください。 – Ryan

関連する問題