【问题标题】:Location from GPS_PROVIDER or NETWORK_PROVIDER in android is not consistentandroid 中 GPS_PROVIDER 或 NETWORK_PROVIDER 的位置不一致
【发布时间】:2016-06-15 05:30:20
【问题描述】:

我想做什么

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

我面临的问题

  • 即使我长时间在同一个位置,每次Latitude、Longitude 都会随着Accuracy 级别的不同而变化
  • 因此,即使用户没有改变他的位置,如果我在GoogleMap 中绘制Location,它会跳转到非常靠近我缩放级别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

但每次Accuracy 不同且经纬度略有变化。

由于我的代码试验与链接中提到的完全相同,我不只是在这里复制粘贴。这个怎么解决

【问题讨论】:

    标签: java android google-maps gps geolocation


    【解决方案1】:

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

    1. 您可以添加一种方法来检测移动设备是否静止,方法是读取加速度计 - 如果两个读数之间的差值大于某个阈值 - 设备正在移动。如果它太小 - 它不会移动。要确定 delta - 将设备放在桌子上,然后查看您得到的值。
    2. 忽略近距离读数 - 以良好的精度(

    【讨论】:

      【解决方案2】:

      尝试设置 Accuracy_HIGH 并设置时间限制和距离限制。
      尝试使用 google places fused api 进行位置相关工作。 参考这里:-http://coderzpassion.com/android-location-using-google-play-services/

      【讨论】:

      • 我尝试的最后一个链接是使用相同的。无论如何感谢您的建议.. github.com/nickfox/GpsTracker/blob/master/phoneClients/android/…
      • @Stallion Welcome :) 它每 1 秒请求一次位置,并且没有距离限制
      • 这些我都试过了,locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,10, 10, mLocListener);和 locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,10,10, mLocListener);另外,我得到的结果仍然相同
      • @Stallion 好的,我会尝试,如果找到我会发布的东西
      • 那应该很棒。谢谢
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-06
      • 1970-01-01
      • 2017-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多