我有一个mapview,当用户点击mapview时,它设置了lon&纬度点。我希望能够捕捉缩放距离的缩放级别/半径,这是最好的方法吗?
答案 0 :(得分:2)
请检查此问题: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;
}
答案 1 :(得分:0)
getZoomLevel()
是您正在寻找的方法。