我想制作一个用于运行的应用程序,该应用程序可以跟踪用户的位置,速度和拍打距离。目前,我正在使用Google Location Services API来获取GPS数据,因为Google在the official site上建议使用它。
但是问题是我只能每10秒获取一次位置更新,如果只涉及在地图上绘制位置,这是可以的,但是我想计算用户当前的速度(km / h),当前的步速(分钟) / m),并计算出他跑出一圈(1公里或1英里)的确切时间。这就是问题,如果我每10秒获取一次更新,则我将无法精确计算这些参数。例如,当用户在996m上时更新发生,而在4m中他将跑一圈。但是下一个更新将在10秒钟内不可用,因此它将例如1010m。那不是用户想要的...
如何解决这个问题?你觉得呢?
I am using the exact code form here.
位置请求如下所示:
LocationRequest mLocationRequest = new LocationRequest();
mLocationRequest.setInterval(10000);
mLocationRequest.setFastestInterval(5000);
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
来自docs:
PRIORITY_HIGH_ACCURACY的优先级,再加上您在应用清单中定义的ACCESS_FINE_LOCATION权限设置,以及5000毫秒(5秒)的快速更新间隔,使融合的位置提供者返回准确的位置更新在几英尺内。这种方法适用于映射实时显示位置的应用程序。
但这还不够。即使我将间隔更改为较小,它也始终是10秒。