Android MapView缩放到半径

时间:2012-09-19 22:15:25

标签: android zoom android-mapview

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

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

例如:如果我想看到1km的半径 - 链接中的函数将显示宽度为1km但不是1km的高度。 即使高度为1km,宽度为1.5km,它对宽度和高度都很重要。

我该怎么做?

1 个答案:

答案 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;
}