2012-06-04 5 views
3

В моем приложении для Android у меня есть MapActivity, где при масштабировании карты двумя пальцами (увеличение) это масштабирование, но когда я поднимаю пальцы, он увеличивает масштаб. Значение, если Лондон сосредоточен на карте, когда я увеличиваю масштаб Лондона до края экрана; когда я поднимаю пальцы, он выходит из экрана, еще больше увеличивая масштаб. Я хочу, чтобы это было как приложение для карты iOS (без дальнейшего масштабирования). Как я могу это сделать?Как управлять масштабированием, уменьшать масштаб карты на Android?

Я пробовал следующий код, но не работал.

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; 
    .... 
    } 
} 
} 
+0

вы можете попробовать протестировать и добавить журнал событий для щепотку, чтобы увеличить Я предполагаю, что есть ACTION_MOVE зарегистрировано после ACTION_POINTER_UP или ACTION_UP – MikeIsrael

+0

ли вам найти решение? Я тоже сталкиваюсь с такой же проблемой. – Veer

+0

@Veer No..Its поведение карты google. –

ответ

0

Вы пробовали функцию zoomToSpan?

mMapController.zoomToSpan(maxLatitude - minLatitude,maxLongitude - minLongitude); 

Кроме того, вы можете ограничить низкий масштаб с чем-то вроде этого

if (LOWEST_ZOOM_LEVEL < mMap.getZoomLevel()) { 
    mMapController.setZoom(LOWEST_ZOOM_LEVEL); 
} 
1

Вы можете получить максимальный уровень масштабирования доступного по телефону #getMaxZoomLevel() в MapView. Это самый близкий зум, который вы сможете получить, независимо от того, что происходит в официальном приложении Google Maps. mapView.getController().animateTo(geoPoint); mapView.getController().setZoom(15); mapView.invalidate();

0

Постарайся это

mapview.getController().animateTo(startGP); 
    mapview.getController().setZoom(13);   
    mapview.setBuiltInZoomControls(true); 
    mapview.invalidate(); 

 Смежные вопросы

  • Нет связанных вопросов^_^