如何使用GPS精确计算速度和距离?跟踪用户位置。运行应用

时间:2018-10-26 19:27:37

标签: java android google-maps gps location

我想制作一个用于运行的应用程序,该应用程序可以跟踪用户的位置,速度和拍打距离。目前,我正在使用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秒。

1 个答案:

答案 0 :(得分:0)

使用此代码,它可以每3秒发送一次位置更新。

intent.putExtras(bundle);

此代码的更多详细信息 Github.

相关问题