繁体   English   中英

Google Maps(Android)中的位置更新率

[英]Location update rate in Google Maps (Android)

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

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

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

更新的频率高度依赖于硬件。 好的gps芯片会发送非常频繁的更新(三星Galaxy S3),尽管有些挣扎甚至无法显示拉特兰的位置。 要点是根据距离和时间归一化接收更新的频率。 使用各种时间和距离配置,并对其进行测试并使用最合适的值。 对于我的项目,我使用以下值://对于步行用户

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

//适用于汽车用户

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM