Google 地图 (Android) 中的位置更新率

Posted

技术标签:

【中文标题】Google 地图 (Android) 中的位置更新率【英文标题】:Location update rate in Google Maps (Android) 【发布时间】:2014-06-16 06:40:32 【问题描述】:

我正在编写一个简单的基于 GPS 的位置感知应用。每当启用 GPS 时,应用程序都会请求位置更新并在 TextView 中打印纬度和经度。如果 GPS 被禁用,位置提供者将退回到LocationManager.NETWORK_PROVIDER 以三角测量设备相对于相邻蜂窝塔的位置。目的是每当检测到设备移动时,它应该开始使用 lat/long 填充TextView。当没有运动时,该过程应该停止。为此,我将位置更新率实现为:

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 1, this);

上面的行会导致非常频繁的位置更新(即使没有移动,我也会不断获得纬度/经度值)。我在某处读到,放置minTime=0 不是一个好主意(电池耗电更快)。当我将其更改为 2 或 3 秒时,更新变得非常缓慢(即使设备移动超过 50 米)。更改minDistance 似乎也不起作用!我想知道 Google 地图应用程序使用哪些设置?功耗对我来说不是一个限制因素,因为我正在为一些网络路测设备(从车辆的车载铅酸电池获得恒定功率)开发应用程序。

【问题讨论】:

【参考方案1】:

更新频率很大程度上取决于硬件。好的 gps 芯片会发送非常频繁的更新(三星 Galaxy S3),而有些芯片甚至很难显示 lat-lan 位置。这里的要点是根据距离和时间来规范接收更新的频率。使用各种时间和距离配置并对其进行测试并使用最合适的值。对于我的项目,我使用了以下值: //对于步行用户

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5, 10, this);

//对于开车的用户

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2, 50, this);

【讨论】:

谢谢,但你能告诉我谷歌地图使用什么配置吗? 如果您查看关于基于位置的搜索的 google 教程中的 location.zip,您会看到 google 根据所需时间请求更新。如果 gps 在指定时间内提供位置修复,例如 8 秒,则使用该数据,否则使用来自其他来源(如网络)的数据。首先,它会检查设备本身的最后一个已知位置,然后才开始检查过程。

以上是关于Google 地图 (Android) 中的位置更新率的主要内容,如果未能解决你的问题,请参考以下文章

仅使用 URL 的 Google 地图中的当前位置

如何在 Android 中的 onMapReady() 之外添加 Google 地图标记?

Android、Google Maps Android api、设置位置和地图类型

如何使用 android studio 更改 Google 地图中“我的位置”按钮的位置

InfoWindow中的Android Google地图摘要自动更新

如何在 Android Marshmallow 上的 Google 地图上显示当前位置?