在我的应用程序中,我有一个 MapView。
我想根据用户设置的半径更改地图的缩放。我在这个链接中找到了答案,但问题是该函数只考虑屏幕的宽度..我也想考虑高度。
例如:如果我想查看 1 公里的半径 - 链接中的函数将显示 1 公里的宽度,但不会显示 1 公里的高度.. 对我来说非常重要的是它会同时显示宽度和高度,即使当高度为 1 公里时,宽度为 1.5 公里
我该怎么做 ?
在我的应用程序中,我有一个 MapView。
我想根据用户设置的半径更改地图的缩放。我在这个链接中找到了答案,但问题是该函数只考虑屏幕的宽度..我也想考虑高度。
例如:如果我想查看 1 公里的半径 - 链接中的函数将显示 1 公里的宽度,但不会显示 1 公里的高度.. 对我来说非常重要的是它会同时显示宽度和高度,即使当高度为 1 公里时,宽度为 1.5 公里
我该怎么做 ?
这是工作代码,结果准确。
1)在具有所需半径的对象上画一个圆圈
Circle circle = mGoogleMap.addCircle(new CircleOptions().center(new LatLng(latitude, longitude)).radius(getRadiusInMeters()).strokeColor(Color.RED));
circle.setVisible(true);
getZoomLevel(circle);
2)将该对象传递给此函数并设置缩放级别这是一个链接
public int getZoomLevel(Circle circle) {
if (circle != null){
double radius = circle.getRadius();
double scale = radius / 500;
zoomLevel =(int) (16 - Math.log(scale) / Math.log(2));
}
return zoomLevel;
}