2010-12-01 147 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