我正在使用android模拟器ddms通过gpx文件来模拟移动。gpx文件中大约有1000个条目。但是,我发现在整个文件过程中,我的onLocationChanged方法只被触发了几次。我的代码如下...
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();
...
}
...
}我对requestLocationUpdates设置为1000的理解是,它应该每1秒请求一次位置更新,前提是该位置与前一个位置的距离超过1米。这是正确的吗?如果是这样,为什么我只能从gpx文件中检索少数经度/经度对?我不是要检索将近一千个吗?( GPS数据来自跑步的人,所以有持续的运动。)
发布于 2010-12-02 03:46:29
我使用gpx、kml或手动输入经纬度坐标来使用模拟器位置时,运气不是很好。根据我的经验,在requestLocationUpdates中设置位置和距离最小值在实际硬件上效果很好,但在仿真器中效果不佳。
如果使用gpx文件只是为了测试,请尝试将时间和位置约束设置为0和0,看看它现在是否在仿真器中注册了所有1000个点。
https://stackoverflow.com/questions/4327477
复制相似问题