当用户单击mapview时,我有一个mapview,它设置了lon和纬度点。我希望能够捕获缩放级别/缩放距离中的半径,什么是最好的方法?

最佳答案

请检查以下问题:Android: How do I set the zoom level of map view to 1 km radius around my current location?

对我来说很好。

您必须使用:

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

mapView.getController().setZoom(calculateZoomLevel(metrics.widthPixels));




private int calculateZoomLevel(int screenWidth) {
    double equatorLength = 40075004; // in meters
    double widthInPixels = screenWidth;
    double metersPerPixel = equatorLength / 256;
    int zoomLevel = 1;
    while ((metersPerPixel * widthInPixels) > 1000) {
        metersPerPixel /= 2;
        ++zoomLevel;
    }
    return zoomLevel;
}

关于android - mapview的半径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6867656/

10-10 04:27