【发布时间】:2014-04-17 09:27:47
【问题描述】:
我正在构建一个 Android 应用,我需要在其中以非常高的频率获得非常准确的位置。 我深入研究了用于定位的 google play services api,发现 LocationRequest.setSmallestDisplacement 对于限制电池消耗非常有用。
但是,当我在室内进行测试时,即使我将请求的优先级设置为高精度,我得到的位置的精度也会有很大差异(有时 10m,有时 96m...)。
我的问题是 setSmallestDisplacement 并没有对最后返回的准确性表示怀疑。 因此,如果我得到一个精度非常低的位置,我仍然需要走我的“最小位移”距离才能得到一个新的位置,希望更准确。
我想知道是否有办法避免此类数据(我不能使用不够准确的位置),或者我是否必须跳过 setSmallestDisplacement 部分(不利于电池消耗)。
一些代码供您欣赏:
mLocationRequest = LocationRequest.create();
mLocationRequest.setInterval(100); //We get a new location every 100ms or so
//mLocationRequest.setSmallestDisplacement(5); //but only if we traveled 5m
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
谢谢。
【问题讨论】:
-
如果您找到任何解决方案,请发布答案。
-
您正在测试哪种设备 - 仅 WiFi 或数据+Wifi?
-
同意。如果该位置来自精度为 3000m 的蜂窝塔,那么获得一个最小位移 100m 的位置有什么用。
-
你往哪个方向走?
标签: android geolocation location google-play-services