实际速度和GPS速度之间存在很大差异(~20%)。但首先让我展示我的代码:
private LocationManager locationMgr;
private String locationProvider;
...
// Location Manager for GPS
this.locationMgr = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
this.locationProvider = locationMgr.getBestProvider(criteria, false);
this.locationMgr.requestLocationUpdates(this.locationProvider, 0, 1.0f, this);
在位置监听器中:
@Override
public void onLocationChanged(Location location) {
// Get speed from location
this.speed = location.getSpeed();
// Set speed TextView
this.gpsVelo.setText(Helper.doubleToStringParser(this.speed, Constants.KMPH, null));
}
结果我获得的速度与我的汽车显示的速度不同。我知道车速表的车速表是+ 3-5%,但我有20%甚至更多。所以我已经使用其他GPS-App进行了测试,它向我展示了正确的价值。我做错了什么?
答案 0 :(得分:2)
GPS在极低速度值下无法提供准确的速度 在低速时,不同的算法(使用平均等)可以报告差速度。 超过10 - 20公里/小时,它应该非常高达1%。 在汽车或火车上进行测试时,当列车以至少50公里/小时的速度运行时,所有GPS设备都应该具有相同的积分km / h值。
答案 1 :(得分:1)
location.getSpeed()以m / s为单位返回速度。如果您需要它以km / h为单位,则需要double speed = location.getSpeed()*3.6;
。