我正在构建一个Android应用,我需要以非常高的频率拥有非常准确的位置。 我喜欢谷歌播放服务api的位置,并发现LocationRequest.setSmallestDisplacement非常有用,以限制电池消耗。
然而,当我在室内进行测试时,即使我将请求的优先级设置为高精度,我获得的位置也会有很大的变化(有时10米,有时是96米......)。
我的prob1em是setSmallestDisplacement没有给出关于最后返回的准确性的sh *。 因此,如果我得到一个精度非常低的位置,我仍然需要走“最小位移”距离才能得到一个新位置,希望更精确。
我想知道是否有办法避免这些数据(我不能使用不够准确的位置)或者我必须跳过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);
感谢。
答案 0 :(得分:6)
" LocationRequest.setSmallestDisplacement"并不重要,只是为了避免不必要的更新,你可以继续使用它。
没有任何方法可以提高低精度,只需要准确一点(更好或更差),如果您对低精度位置不感兴趣,请跳过此位置并等待更好的位置。
此页面可以帮助您准确度和消费量,但请注意,不存在完美的准确度,Wi-Fi的准确度为100米,准确性较差。
在这里,您可以获得每个优先级的准确性 https://developer.android.com/training/location/receive-location-updates.html#location-request
这里来自Google工程师的IO会话非常有用,你也可以在那里获得PDF <击> https://developers.google.com/events/io/sessions/325337477 击>
更新了链接brokens
希望这会有所帮助:D。