【问题标题】:Need help understanding GPS on android需要帮助了解 Android 上的 GPS
【发布时间】:2012-10-02 21:33:22
【问题描述】:

我的 android 应用中有一个位置监听器,它将以 5 秒的间隔和 10 米的距离请求更新:

mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000,10);

我按预期通过听众的onLocationChanged() 方法收到通知。然而奇怪的是,当我在家时,我注意到检索到的坐标来自大约半个街区之外。这是相当一致的。是的,我打开了 GPS。如果我打开谷歌地图,我注意到它最初会显示我的应用程序报告坐标的位置,但会在几秒钟内移动到我的实际位置。

谷歌地图是否对坐标应用了某种 GPS 定位?我是否需要做一些比简单地收听更新更复杂的事情。我以前没有这样做过,所以对我来说这一切都很新鲜..

另外请注意,我有 Endomondo 跟踪你跑步的地方,它似乎也能得到非常准确的结果。例如,我启动它,从前面走到街上大约半个街区,然后就来了回来,它完美地绘制了它。我需要做些什么来获得更准确的报告吗?

【问题讨论】:

  • 如果您在 0 秒和 0 米处请求更新,您会收到相同的优化 Google 地图位置吗?
  • 我实际上将其更改为 0 米,我认为它现在可以正常工作(但不是 0 秒.. 那只是敲打我的手机)。

标签: android gps android-location


【解决方案1】:

是的,Google 地图不仅仅依靠您的 GPS 来确定您的实际位置。准确地说,Google 依赖于手机天线 (CellID) 和 wi-fi 接入点天线之间的无线电多点定位(参见:locationManager.NETWORK_PROVIDER)。

使用这些辅助信息源,Google 甚至可以确定您的位置,即使是在您的 GPS 无法可靠工作的建筑物内,以及由于某种原因 GPS 无法提供任何帮助的室外情况(在纽约,例如,摩天大楼造成的“峡谷效应”使 GPS 无法工作)。

而且,是的:除了阅读位置更新之外,还有更多需要考虑的因素。

您应该阅读Android Location Manager 文档,尤其是专门讨论location providerslocation strategies 的部分,以了解有关Google 位置功能的更多信息。另见:Location and Maps

【讨论】:

    【解决方案2】:

    这种行为是完全正常的,因为当您在室内/室外时,GPS 精度可能会发生变化..

     ...Although GPS is most accurate, it only works outdoors, 
     it quickly consumes battery power, and doesn't return the location as quickly 
     as users want...
    

    您也可以使用此链接中提供的示例代码Location Strategies.. 此链接将有助于了解位置管理的工作原理,它还包含很好的可用示例代码

    【讨论】:

    • 我想奇怪的是我也在室内使用谷歌地图,它似乎一直让我回到这个位置。我需要进行更多调查,以确定是否仅此而已,或者这里是否还有其他事情发生。
    • @MattWolfe 谷歌地图利用了替代定位策略。其中之一是 WiFi 定位,它可以在建筑物内非常准确。由 A A 链接的 Location Strategies 页面可以帮助您找出一种混合位置策略来帮助解决这种情况
    猜你喜欢
    • 1970-01-01
    • 2017-06-19
    • 2016-05-03
    • 1970-01-01
    • 2021-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多