我正在尝试做什么
- 使用
服务
以指定的时间间隔获取用户位置,以便只要应用程序正在运行,就可以检索位置
我面临的问题
- 即使我长时间处于同一位置,每次
纬度
、经度
都会随着不同准确度
级别而变化 - 因此,即使用户没有更改其位置,如果我在
GoogleMap
中绘制位置
,它也会跳转到非常接近我的缩放级别的位置18.0f
mGoogleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(currentLatLon, 18.0f));
我已经尝试过 stackoverflow Link One 中提到的方法和 stackoverflow Link Two
但是,即使我坐在同一个位置并定期检索位置,纬度和经度也会有所不同,查看每个经度末尾突出显示的值 :
纬度:12.8379283 长:经度:77.6647266
纬度:12.8379233 长:经度:77.6647368
纬度:12.8379285 长:经度:77.6647506
纬度:12.8379245 长:经度:77.6647546
- 现在我尝试了这种方法 GITHub reference
但每次准确性
不同且经纬度略有变化时。
由于我的代码试验与链接中提到的完全相同,所以我不仅仅是复制粘贴在这里。如何解决这个问题
最佳答案
GPS 的准确性不是绝对的,因此即使是静态设备也会在连续读数中显示不同的位置。请尝试以下操作:
- 您可以添加一种方法,通过读取加速度计来检测移动设备是否静态 - 如果两个读数之间的增量大于某个阈值 - 设备正在移动。如果它太小,它就不会移动。要确定增量,请将设备放在 table 上,看看会得到什么值。
- 忽略近距离读数 - 获取准确度较高的第一个读数(<20m 或您确定的其他值)并将其用作引用 - 如果下一个读数给出的距离非常小,接近引用值(<10m 或其他值) ), 忽略它。如果它更大 - 将其设置为新引用。
关于java - Android 中 GPS_PROVIDER 或 NETWORK_PROVIDER 的位置不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35745924/