4

在我的应用程序中,我有一个 MapView。

我想根据用户设置的半径更改地图的缩放。我在这个链接中找到了答案,但问题是该函数只考虑屏幕的宽度..我也想考虑高度。

例如:如果我想查看 1 公里的半径 - 链接中的函数将显示 1 公里的宽度,但不会显示 1 公里的高度.. 对我来说非常重要的是它会同时显示宽度和高度,即使当高度为 1 公里时,宽度为 1.5 公里

我该怎么做 ?

4

1 回答 1

4

这是工作代码,结果准确。

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;
}
于 2014-04-14T04:50:14.220 回答