2010-12-01 151 views
0

我正在使用android模擬器ddms來模擬使用gpx文件的移動。 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秒提供的位置是大於1m從以前更加遠離位置更新。它是否正確?如果是這樣,爲什麼我只能從gpx文件中檢索一些緯度/經度對?我不會檢索近千個? (GPS數據來自某人運行,所以有不斷運動。)

回答

1

我沒有很好的運氣,使用模擬器位置使用gpx,kml,或手動輸入緯度/經度座標。根據我的經驗,在requestLocationUpdates中設置位置和距離最小值在真實硬件上確實很好,但不能在仿真器中正常工作。

如果使用gpx文件僅用於測試目的,請嘗試將時間和位置約束設置爲0和0,以查看它現在是否在模擬器中註冊了所有1000個點。

+0

這實際上非常非常有幫助。當我將它設置爲0,0時,我可以獲得所有要點。所以......對於其他讀者來說:按照Marc的建議。 – Ryan 2010-12-01 20:41:02