1

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

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

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

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

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

4

2 回答 2

3

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

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

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

您应该阅读Android 位置管理器文档,特别是专门介绍位置提供程序位置策略的部分,以了解有关 Google 位置功能的更多信息。另请参阅:位置和地图

于 2012-10-03T08:55:31.900 回答
1

这种行为是完全正常的,因为当您在室内/室外时 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 .. 此链接将有助于了解位置管理的工作原理,它还包含很好的可用示例代码

于 2012-10-02T22:00:59.723 回答