2012-10-02 64 views
1

我在我的Android应用程序位置监听器将更新请求与距离的5秒和10米范围理解GPS:需要帮助的机器人

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

我得到通过的onLocationChanged()方法通知我的听众如预期的那样。然而,我注意到,当我在家时,检索到的坐标距离大约半个街区。这是非常一致的。是的,我有GPS。如果我打开Goog​​le地图,则会注意到它最初会显示我的位置,在该位置我的应用会报告坐标,但在几秒钟内会移至我的实际位置。

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

另外请注意,我有Endomondo跟踪你在哪里运行,它似乎得到真正准确的结果就好了..例如,我开始它沿着街道前后走了大约半个街区,然后回来,它完美地绘制了它。我需要做些什么才能获得更准确的报告?

+0

如果您在0秒和0米范围内请求更新,是否会收到相同的精制Google地图位置? – Sam

+0

我实际上已将其更改为0米,并且我认为它现在正在工作(但不是0秒..那只是敲击我的手机)。 –

回答

3

是的,Google地图不仅仅依靠您的GPS来确定您的实际位置。确切地说,Google依靠蜂窝电话天线(CellID)和Wi-Fi接入点天线之间的无线电多点定位(请参阅:locationManager.NETWORK_PROVIDER)。

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

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

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

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提供的示例代码..这个链接将帮助了解位置管理如何工作,它还包含很好的可用示例代码

+0

我猜想奇怪的是,我还在室内使用谷歌地图,似乎一直让我回到这个位置。我需要进一步调查以确定是否完全是这样,或者是否有其他事情正在进行。 –

+0

@MattWolfe谷歌地图利用其他位置策略。其中之一就是WiFi定位,**可以**非常精确的在建。由A A链接的位置策略页面可以帮助您找出混合位置策略来帮助解决这种情况 – psubsee2003