Радиус карты
У меня есть вид карты, когда пользователь нажимает на вид карты, он устанавливает точки долготы и долготы. Я хочу иметь возможность фиксировать уровень масштабирования / радиус на расстоянии от масштаба, каков наилучший способ сделать это?
2 ответа
Пожалуйста, проверьте этот вопрос: Android: Как мне установить уровень масштабирования вида карты на радиус 1 км вокруг моего текущего местоположения?
Работал нормально для меня.
Вы должны использовать:
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;
}