繁体   English   中英

来自Android中GPS_PROVIDER或NETWORK_PROVIDER的位置不一致

[英]Location from GPS_PROVIDER or NETWORK_PROVIDER in android is not consistent

我要做什么

  • 使用Service以指定的时间间隔获取用户位置,以便只要应用程序正在运行,就可以检索Location

我面临的问题

  • 即使我长时间处于同一位置,每次LatitudeLongitude也会以不同的Accuracy级别变化
  • 因此,即使用户未更改其位置,如果我在GoogleMap绘制Location ,它18.0f由于我的缩放级别18.0f而跳到非常近的位置
  • mGoogleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(currentLatLon, 18.0f));

我已经尝试了stackoverflow链接一stackoverflow链接二中提到的方法

但是,即使我以相同的时间间隔坐在相同的位置并取回位置,纬度和经度也会有所不同, 请参见每个纬度结尾处的突出显示的值

纬度:12.8379 283长:经度:77.6647 266

纬度:12.8379 233长:经度:77.6647 368

纬度:12.8379 285经度:经度:77.6647 506

纬度:12.8379 245长:经度:77.6647 546

但是每次Accuracy不同并且纬度也会略有变化。

因为我的代码试用版与链接的中提到的完全相同,所以我不仅在这里复制粘贴。 如何解决

GPS的精度不是绝对的,因此即使是静态设备也将在连续的读数中显示不同的位置。 请尝试以下操作:

  1. 您可以添加一种方法来检测手机是否静态,方法是读取加速度计-如果两个读数之间的差值大于某个阈值-设备正在移动。 如果太小-它不会移动。 要确定增量-将设备放在桌子上,看看会得到什么值。
  2. 忽略接近的读数-以较高的准确度获取第一个读数(<20m或您确定的其他值)并将其用作参考-如果下一个读数距离参考值很小(小于10m或其他值),则忽略它。 如果更大,请将其设置为新参考。

尝试设置Accuracy_HIGH并设置时间限制和距离限制。
尝试使用Google Places融合api进行与位置相关的工作。 请参阅此处: -http : //coderzpassion.com/android-location-using-google-play-services/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM