我正在开发一个Android应用,用于访问用户当前位置,并在位置更改时在Google地图上制作路线。
对于请求更新,我使用的是Fused location provider,并且设置位置更新如下所示:
protected void createLocationRequest() {
mLocationRequest = new LocationRequest();
mLocationRequest.setInterval(10000);
mLocationRequest.setFastestInterval(5000);
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
}
通过以上设置进行位置更新,由于间隔为10秒,因此无法创建正确的路径。但是,如果我将其减少到1秒,那么它就会创建正确的路由并将当前位置发送到服务器进行保存。
问题是,如果有一条路线需要60分钟来覆盖,如果我设置间隔1秒,那么它将在服务器上发送太多数据用于保存,这将为数据库带来问题。
那么,如果间隔时间为1秒,我怎样才能获得较少的纬度和经度?
答案 0 :(得分:0)
您可以通过将SmallestDisplacement设置为合理的值来减少更靠近的点,在这种情况下,您将只获得有意义的lat / lng更新。这样做可以减少你的积分数。
此外,您可以使用Snap to Roads来减少点数,{{3}}获取输入点并返回点集表示的可能路线。从返回的结果中,您应该能够解码折线并获得表示路径的最小点数。