Android MapView缩放到半径内

4
在我的应用程序中,我有一个MapView。
我想根据用户设置的半径更改地图的缩放。 我在这个链接中找到了答案,但问题是该函数仅考虑屏幕的宽度.. 我也想要考虑高度。
例如:如果我想看到1km的半径-链接中的函数将向我显示1km的宽度,但不会显示1km的高度... 对于我来说,重要的是它能够在宽度和高度上都显示,即使高度为1km时宽度为1.5km。
我该怎么做?

你能想到一种方法来做这件事吗? - Zeba
并不是真的...问题中的链接是我目前找到的最佳答案。 - Asaf Nevo
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;
}

在这种情况下,500是什么?16在这种情况下是什么? - j2emanue

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接