在我的应用程序中,我有一个MapView。
我想根据用户设置的半径更改地图的缩放。 我在this链接中找到了答案,但问题是该函数只考虑屏幕的宽度..我想要考虑高度。
例如:如果我想看到1km的半径 - 链接中的函数将显示宽度为1km但不是1km的高度。 即使高度为1km,宽度为1.5km,它对宽度和高度都很重要。
我该怎么做?
答案 0 :(得分:4)
这是工作代码,结果准确。
1)在具有所需半径
的物体上做一个圆圈Circle circle = mGoogleMap.addCircle(new CircleOptions().center(new LatLng(latitude, longitude)).radius(getRadiusInMeters()).strokeColor(Color.RED));
circle.setVisible(true);
getZoomLevel(circle);
2)将该对象传递给此功能并设置缩放级别 这是a link
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;
}