我使用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文件中检索一些lat / lon对?难道我不会找回近一千个吗? (GPS数据来自某人,因此不断运动。)
答案 0 :(得分:1)
使用gpx,kml或手动输入纬度/经度坐标时,我没有很好的运气模拟器位置。根据我的经验,在requestLocationUpdates中设置位置和距离最小值在真实硬件上运行良好,但在模拟器中却不行。
如果使用gpx文件仅用于测试目的,请尝试将时间和位置约束设置为0和0,以查看它是否现在在模拟器中注册了所有1000个点。