Java 谷歌地图如何快速找到我的位置,但当我使用位置管理器时,我需要等待40+;秒

Java 谷歌地图如何快速找到我的位置,但当我使用位置管理器时,我需要等待40+;秒,java,android,gps,location,Java,Android,Gps,Location,可以看看谷歌地图中使用的算法吗?如果没有,有什么好的算法可以快速找到一个好的位置吗 编辑 NickT指出,谷歌地图最初使用网络提供商获取位置,如果我将手机置于飞行模式,谷歌地图将与我的应用程序一样长的时间才能找到我的位置,他是对的 我现在的问题是,谷歌地图如何从网络供应商那里找到一个相当准确的位置,尽管网络供应商通常不太准确。ie大多数情况下的准确度超过1000米(至少对我而言) ps我正在使用play services库中最新的位置API来回答您的问题,即使可用的网络和GPS信息可能不那么精确

可以看看谷歌地图中使用的算法吗?如果没有,有什么好的算法可以快速找到一个好的位置吗

编辑

NickT指出,谷歌地图最初使用网络提供商获取位置,如果我将手机置于飞行模式,谷歌地图将与我的应用程序一样长的时间才能找到我的位置,他是对的

我现在的问题是,谷歌地图如何从网络供应商那里找到一个相当准确的位置,尽管网络供应商通常不太准确。ie大多数情况下的准确度超过1000米(至少对我而言)


ps我正在使用play services库中最新的位置API来回答您的问题,即使可用的网络和GPS信息可能不那么精确,但某些应用程序如何快速定位:

大多数设备(据我所知,包括安卓、苹果和微软)也使用附近的WiFi点来确定您的位置

他们通过定期更新所有用户的位置数据和附近的wifi点来做到这一点,从而建立一个大型数据库,将特定的wifi网络(通常是相对较短的距离)映射到地理位置


当他们想要快速定位时,他们可以查看多个输入,例如网络提供商桅杆、GPS数据和最近的wifi网络。他们通过查看范围内的WiFi网络ID并查找他们为将其映射到某个位置而建立的数据库来完成WiFi部分。

如果我没记错的话,google maps从evers可用的位置(大部分是手机天线杆)获得一个坏位置,如果可能的话,首先获得gps定位,我们应该看看你的代码来理解为什么你需要40多秒才能得到一个职位。然后,我建议您切换到新的位置API:在获取当前位置时从未出现过问题或明显延迟。看看今年早些时候推出的新位置API。特别是,要注意融合定位服务提供商,正如Richard的第一条评论所指出的,它首先使用电话杆。将你的手机置于飞行模式,打开GPS,看看谷歌地图得到修复的速度有多快——我敢打赌不会比你的应用程序快。@NickT你说得对,在将我的手机置于飞行模式后,谷歌地图需要一段时间才能找到我的位置。我现在的问题是,既然网络位置不是很准确,那么它如何从网络中获得一个相当准确的位置呢