在 Google 地图导航正在运行时请求位置更新

Posted

技术标签:

【中文标题】在 Google 地图导航正在运行时请求位置更新【英文标题】:Requesting location updates while Google Maps Navigation is actively running 【发布时间】:2012-12-24 01:39:13 【问题描述】:

我想仅使用 GPS 提供程序从 LocationManager 请求位置更新。我知道这样做不会立即返回位置结果。

但是,我们假设用户当前正在运行 Google 地图导航应用(即有一条有效路线)并且他们的 GPS 信号很强。由于 GPS 位置不断被修复,请求 GPS 位置会很快产生结果吗?还是我做了一个无效的假设?

此外,如果我在 Navigation 应用程序运行时调用 getLastKnownLocation(LocationProvider),我可以假设最后一个已知位置会非常接近当前位置吗?导航应用主动导航时,最后一次已知位置的更新频率是多少?

非常感谢!

【问题讨论】:

“导航应用程序主动导航时,最后一次已知位置的更新频率是多少?” ——这充其量是 Google Nav 的作者的一个问题。欢迎您在 Google 找到一份工作并询问他们。他们会告诉你的是,他们今天在某某间隔请求更新,但他们是否得到更新取决于环境因素(例如,汽车是否在停车场?)。他们将进一步解释说,他们将来可能需要改变他们的方法。 TL;DR:没有人会依赖其他应用行为的副作用。 @CommonsWare 我知道依赖另一个应用程序不是一个好主意。而且我也明白,因为接收等因素,答案并不简单。但我确信在用户有清晰 GPS 信号并使用他们的设备进行导航的理想情况下,有人可以说出这些位置调用的行为。 【参考方案1】:

请求 GPS 位置是否会因为它不断被修复而快速产生结果?还是我做了一个无效的假设?

此外,如果我在 Navigation 应用程序运行时调用 getLastKnownLocation(LocationProvider),我可以假设最后一个已知位置会非常接近当前位置吗?

如果您有侦听 GPS 更新的服务,您将可以访问为任何应用程序返回的最新数据。我建议使用PASSIVE_PROVIDER,它将在任何提供者到达时接收更新。

【讨论】:

是的,我可以访问返回的最新数据。我明白这一点。谢谢。【参考方案2】:

我在 30 秒内获得了我的 HTC Incredible 中的 GPS 修复,关于您的问题,我尝试打开导航应用程序和我的应用程序,如果我只运行我的应用程序,我看不出有任何区别。

请求 GPS 位置是否会因为它不断被修复而快速产生结果? GPS 会根据卫星产生快速修复。

【讨论】:

以上是关于在 Google 地图导航正在运行时请求位置更新的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python“运行 Javascript”输入更新 Google 地图标记位置

在 Android 上更改位置时不断更新标记

在 Android 中步行/驾驶时更新位置标记并在 Google 地图上绘制路径

iOS 状态栏活动应用

在运行时更改目标坐标(动态)

Google Maps API 重绘地理编码界限