如何在Android中控制地图的放大、缩小?

如何在Android中控制地图的放大、缩小?,android,google-maps,zooming,pinch,Android,Google Maps,Zooming,Pinch,在我的Android应用程序中,我有一个MapActivity,当用两个手指(捏)缩放地图时,它正在缩放,但当我抬起手指时,它正在进一步缩放。意思是,如果伦敦在地图上居中,当我缩放伦敦时,它会到达屏幕的边缘;当我抬起手指时,它会离开屏幕,进一步放大。我希望它像iOS地图应用程序(没有进一步的缩放)。我该怎么做 我尝试了以下代码,但没有成功 class MapOvelay extends Overlay { boolean moveTouch; int i; @Overrid

在我的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;
   .... 
  }
 }
}

您是否尝试过zoomToSpan功能

mMapController.zoomToSpan(maxLatitude - minLatitude,maxLongitude - minLongitude);
此外,您还可以使用类似这样的方式限制最低缩放

if (LOWEST_ZOOM_LEVEL < mMap.getZoomLevel() ) {
    mMapController.setZoom(LOWEST_ZOOM_LEVEL);
}
if(最低缩放级别
您可以通过在MapView中调用#getMaxZoomLevel()获得可用的最大缩放级别。这是你能得到的最接近的缩放,不管在官方的谷歌地图应用程序中发生了什么。
mapView.getController().animateTo(地质点)
mapView.getController().setZoom(15)
mapView.invalidate()

试试这个

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

你能尝试一下测试并添加事件日志以便进行收缩缩放吗?我猜在操作指针向上或操作向上后会有一个操作移动。你找到解决方案了吗?我也面临同样的问题。@Veer No.。它的谷歌地图行为。好的,我也检查了谷歌地图应用程序2.2,它的行为也一样(过度缩放)。但如果你检查谷歌地图应用程序的4.0工作良好。但是,当我们在4.0中实现mapview时,它会过度缩放。所以,我认为一定有一些解决方案。@Veer Try 4.1果冻豆可能有解决方案,因为“黄油计划”,我不确定。。