当用户单击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/