Установите минимальный уровень масштабирования для MapView

Есть ли способ установить минимальный уровень zoon для моего MapView ?. Я не знаю, поняли ли вы, что карта выглядит очень уродливой, когда уровень масштабирования один. Вы видите, что вся карта мира воспроизведена. Я бы хотел избежать этого уровня масштабирования независимо от того, масштабируется ли пользователь с помощью жестов или органов управления зумом. Я рассмотрел различные варианты, но никто не работает. У кого-то есть хорошее представление об этом?

Ger

Solutions Collecting From Web of "Установите минимальный уровень масштабирования для MapView"

К счастью, у меня был оверлей в моем MapView. В противном случае, я думаю, вам придется создать его, только для этой крошечной функции: – /. Интересно, почему нет другого способа сделать это проще.

В любом случае вам просто нужно переопределить метод рисования следующим образом:

@Override public void draw(Canvas canvas, MapView mapView, boolean shadow) { super.draw(canvas, mapView, shadow); if (mapView.getZoomLevel() < 2) mapView.getController().setZoom(2); } 

Ger

Подобно ответу ggomeze, переопределяя метод *draw() но может быть лучше переопределить dispatchDraw() в MapView . Таким образом, вы можете заблокировать ничью для уровня масштабирования, где плитки пусты.

Также обратите внимание на то, что на этом месте хорошо центрировать карту так, как если бы вы увеличивали масштаб с помощью сенсорных жестов, вручную устанавливая уменьшение на один уровень, это может привести к тому, что карта будет отходить от центра каждый раз (что делает MapView более искаженным !).

 @Override public void dispatchDraw(Canvas canvas) { //limit zoom level if(getZoomLevel() == 1){ getController().setZoom(2); getController().setCenter(new GeoPoint(0, 0)); //dont draw as it will just be blank and then jump return; } super.dispatchDraw(canvas); } 

Это может быть улучшено путем отслеживания уровня масштабирования, пока идет жест, так что пользователь не может видеть частичный зум на заблокированном низком уровне масштабирования (1), пока жестикулит, но я думаю, что вышеприведенный случай будет соответствовать большинству и много Полегче!

Просто напишите onCreate следующий код:

 MapController myMC myMapView.getController(); myMC.setZoom(int value);