我在应用程序中使用Google地图,并使用自定义标记显示用户的位置 我使用Fuse Location API接收位置更新,并在用户位置更改时重新绘制标记 它工作正常,但问题是如何实现我们可以在默认标记上看到的精确度圆圈(用户标记周围的半透明蓝色动态圆圈)? 绘制圆圈不是问题,问题是如何获得当前位置精度半径。
提前感谢任何建议。
关于目前如何运作的一些代码:
// 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();
}
答案 0 :(得分:2)
您可以使用Location.getAccuracy
方法。来自the documentation
获取此位置的估计精确度,以米为单位。
我们将准确度定义为68%置信度的半径。换句话说,如果您绘制一个以该位置的纬度和经度为中心的圆,并且半径等于精度,那么真实位置在圆内的概率为68%。
因此,您可以使用返回的值作为居中该位置的圆的半径来绘制近似的精确圆。