我正在使用LocationManager来获取用户的纬度和经度值。这些值会定期更新到数据库,并根据存储的纬度和经度值找出两个用户之间的距离。
现在,onLocationchanged()调用非常慢,有时会变快。而我等待很长时间才能进行下一个过程。当我在室内时,位置搜索非常慢..
这个问题是否有任何解决方案。请给我一个指南和示例。
请尽快给我一个解决方案,接受我的问题。
答案 0 :(得分:2)
如果您使用network location provider,您将获得更快的位置,但不太准确(100-500米)。
OTOH,GPS提供商将更准确(10-20米),但由于设备需要获取GPS卫星信号,因此需要更多时间来获取位置。有时甚至不可能获取信号,特别是在室内或厚树下。答案 1 :(得分:0)
有很多类型的GPS启动:
COLD start
:需要花费很多时间。旧的GPS(卫星/时间)数据实际上是无用的。
WARM start
:当GPS设备记住其最后计算的位置,使用的历书和UTC时间,但不记得哪些卫星在视野中。你得到了相当快的修复。
HOT start
:当GPS设备记住其最后计算的位置和视野中的卫星时,使用的历书(星座中所有卫星的信息),UTC时间并尝试锁定相同的卫星并根据先前的信息计算新的位置。
要模拟热启动案例,您只需连接到提供辅助数据的SUPL网络即可。即使冷启动也可以转换为热启动。要确保SUPL网络可用,请确保已连接到互联网。在室内情况下,没有卫星可见,因此在没有任何辅助数据的情况下获得精确修复是很困难的。至少应该看到3颗卫星。 SUPL网络再一次得救。
请注意,各种GPS芯片组具有不同的性能/算法,三角测量时间取决于您的网络提供商提供的SUPL网络。
您可以在此处详细了解此here
答案 2 :(得分:0)
良好的起点是Reto Meier的博客/项目: