2016-11-24 49 views
0

我在应用程序中使用Google地图,并使用自定义标记显示用户的位置。
我使用Fuse Location API接收位置更新,并在用户位置发生更改时重新绘制标记。
它工作正常,但问题是如何实现我们可以看到默认标记(用户的标记周围半透明蓝色动态圆)的精度圈? 画圆不是问题,问题是如何获取当前位置精度半径。Google Maps自定义MyLocation标记,具有准确性水平

在此先感谢您的任何建议。

而且它目前是如何工作的一些代码:

// here is the Api client 
private synchronized void buildGoogleApiClient() { 
     Log.i(LOG_TAG, "Building GoogleApiClient"); 
     mGoogleApiClient = new GoogleApiClient.Builder(this) 
       .addConnectionCallbacks(this) 
       .addOnConnectionFailedListener(this) 
       .addApi(LocationServices.API) 
       .build(); 
     createLocationRequest(); 
    } 


    protected void createLocationRequest() { 
     mLocationRequest = new LocationRequest(); 
     mLocationRequest.setInterval(UPDATE_INTERVAL_IN_MILLISECONDS); 
     mLocationRequest.setFastestInterval(FASTEST_UPDATE_INTERVAL_IN_MILLISECONDS); 
     mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 
     } 

    @Override 
    public void onLocationChanged(Location location) { 
     // update user location (redraw marker and animate camera) 
     updateMyLocation(); 
    } 

回答

2

可以使用Location.getAccuracy方法。从the documentation

获取此位置的估计精度,单位为米。

我们将精度定义为68%置信度的半径。换句话说,如果您绘制一个以该位置的经度和纬度为中心的圆,其半径等于精度,则真实位置在圆内的概率为68%。

因此,您可以使用返回的值作为以该位置为中心的圆的半径以绘制近似精度的圆。

+0

太棒了!非常感谢! –

相关问题