2012-06-04 4 views
3

내 안드로이드 앱에서 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; 
    .... 
    } 
} 
} 
+0

당신은 테스트를 시도하고 내가 거기에 ACTION_POINTER_UP 후 등록 된 ACTION_MOVE이거나 ACTION_UP – MikeIsrael

+0

당신을 했 추측하고 확대하기 위해 핀치에 대한 이벤트 로그를 추가 할 수 있습니다보십시오 해결책을 찾으십니까? 나도 같은 문제에 직면 해있다. – Veer

+0

@Veer No..Google지도 동작입니다. –

답변

0

zoomToSpan 기능을 사용해 보셨습니까?

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

또한, 당신은 당신이 당신의지도보기에 #getMaxZoomLevel()를 호출하여 사용할 수있는 최대 줌 레벨을 얻을 수있는이

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

처럼 뭔가 가장 낮은 줌을 제한 할 수 있습니다. 공식 Google지도 응용 프로그램에서 어떤 일이 일어나더라도 가장 가까이에서 볼 수있는 확대/축소입니다. mapView.getController().animateTo(geoPoint); mapView.getController().setZoom(15); mapView.invalidate();

0

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