Как контролировать масштабирование, уменьшение масштаба на карте в Android?
В моем приложении для Android есть MapActivity, где при масштабировании карты двумя пальцами (масштабирование) это масштабирование, но когда я поднимаю пальцы, оно масштабируется дальше. Это означает, что если Лондон центрируется на карте, когда я увеличиваю, Лондон достигает краев экрана; когда я поднимаю пальцы, он выходит за пределы экрана, увеличивая масштаб. Я хочу это как приложение для карты iOS (без дальнейшего увеличения). Как я могу это сделать?
Я попробовал следующий код, но не работал.
class MapOvelay extends Overlay {
boolean moveTouch;
int i;
@Override
public boolean onTouchEvent(MotionEvent event, MapView mapView) {
switch (event.getAction()) {
case MotionEvent.ACTION_POINTER_UP://when two fingers are lifted
mapController.setZoom(i);
i=0;
break;
case MotionEvent.ACTION_MOVE://when two fingers are moving on map
i = mapView.getZoomLevel();
moveTouch = true;
break;
....
}
}
}
3 ответа
Вы можете получить максимальный доступный уровень масштабирования, вызвав #getMaxZoomLevel() в MapView. Это самый близкий к вам масштаб, независимо от того, что происходит в официальном приложении Google Maps.mapView.getController().animateTo(geoPoint);
mapView.getController().setZoom(15);
mapView.invalidate();
Попробуй это
mapview.getController().animateTo(startGP);
mapview.getController().setZoom(13);
mapview.setBuiltInZoomControls(true);
mapview.invalidate();
Вы пробовали функцию zoomToSpan?
mMapController.zoomToSpan(maxLatitude - minLatitude,maxLongitude - minLongitude);
Кроме того, вы можете ограничить самый низкий зум что-то вроде этого
if (LOWEST_ZOOM_LEVEL < mMap.getZoomLevel() ) {
mMapController.setZoom(LOWEST_ZOOM_LEVEL);
}