Android 提高GPS频率和精度
我正在探索使用GPS进行虚拟现实游戏的可能性。在我当前的测试构建中,频率和精度都非常低 在舱单上我有Android 提高GPS频率和精度,android,gps,Android,Gps,我正在探索使用GPS进行虚拟现实游戏的可能性。在我当前的测试构建中,频率和精度都非常低 在舱单上我有 <uses-permission android:name="android.permission.LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 然后我使用distanceBetween函数得到方位和距离 public void onLoca
<uses-permission android:name="android.permission.LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
然后我使用distanceBetween函数得到方位和距离
public void onLocationChanged(Location location) {
if(lastLocation != null) {
Location.distanceBetween(lastLocation.getLatitude(), lastLocation.getLongitude(), location.getLatitude(), location.getLongitude(), distanceBetween);
newGpsDataToSend = true;
if(debug)
debugListener.debugGPS(distanceBetween);
releaseSendThread();
}
lastLocation = location;
}
频率低于1hz(可能是5-10hz,对吗?),方位和距离非常不稳定
我是不是在代码中做错了什么?我不关心电池消耗等问题,我只想从手机上获得最快、最可靠的数据
完全来源
对于高采样频率(将1Hz计算为GPS采样的高频率),当位置之间的距离小于GPS精度时,您将获得GPS读数。因此,观察到轴承和距离跳动。 为了获得更好的轴承,降低采样频率或通过过滤或计算平均值来处理数据
例如,对于飞行记录应用程序,我大约每2到5秒采样一次,然后计算最后5个高度读数的平均值来计算垂直速度。那么你是说不可能获得更好的性能?糟糕,我想我得试试卡尔曼滤波和加速度计融合:/这是电话,不是导弹航空电子设备:-)
public void onLocationChanged(Location location) {
if(lastLocation != null) {
Location.distanceBetween(lastLocation.getLatitude(), lastLocation.getLongitude(), location.getLatitude(), location.getLongitude(), distanceBetween);
newGpsDataToSend = true;
if(debug)
debugListener.debugGPS(distanceBetween);
releaseSendThread();
}
lastLocation = location;
}