我在Android中使用GoogleMaps API创建了一个应用程序。
当我使用谷歌地图时,我活跃了gps,它找到了我这么快。
当我使用我的应用程序时,它需要几秒钟,如果我在我家,gps不会找到我。为什么?
我的代码的简短摘要:
locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
MyLocationListener = new MyLocationListener();
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
7000,
5,
MyLocationListener
);
谢谢答案,对不起我的英语很差
修改
谢谢答案!问题是我不想使用网络提供商。 Wifi是非常的,3g有400米的错误jejeej。
我只想知道,为什么google地图,使用GPS,在1秒内找到我,位置很好虽然我住在一个房子里。
你的答案是"使用粗略定位"。如果谷歌地图使用网络提供商为gps,他不可能找到我这么快。 :(
答案 0 :(得分:3)
GPS正在使用卫星,当你在室内时,它无法从卫星上获取信号,因此无法找到位置(无法修复)。
GPS需要来自至少4个卫星的信号才能得到正确的修复,这通常需要几秒钟,一旦你已经有一个修复,你可以很容易地维护它。因此,如果您使用谷歌地图,它将为您提供更快的解决方案。
要更好地了解GPS的工作原理,请查看link
您可能希望使用different location approachs获取室内位置(粗略位置可能是答案)。我还会考虑使用谷歌播放服务的fused location,它会为您提供位置提供商的总结,并根据当时可用的内容(意味着GPS,粗糙 - 无线网络或网络)为您提供位置。
答案 1 :(得分:2)
您应该尝试使用粗略定位进行快速定位,然后使用精确定位以获得更准确的位置。粗定位通常非常快,而精细定位需要更多时间。
基本上,我们的想法是做多个定位,并通过更新,更准确的定位来覆盖不太准确的定位。
您可以在Android开发者文档中找到更多信息:http://developer.android.com/guide/topics/location/strategies.html
编辑:如果Google地图能够如此快速地找到您,那是因为您没有移动并且他们使用最后位置的知识。请阅读以上链接,该链接为位置策略提供了大量有用信息(并且效果很好)。