public void setZoom ( int zoom ) { if ( zoom == this . zoomLevel ) { return ; } TileFactoryInfo info = getTileFactory ( ) . getInfo ( ) ; // don't repaint if we are out of the valid zoom levels if ( info != null && ( zoom < info . getMinimumZoomLevel ( ) || zoom > info . getMaximumZoomLevel ( ) ) ) { return ; } // if(zoom >= 0 && zoom <= 15 && zoom != this.zoom) { int oldzoom = this . zoomLevel ; Point2D oldCenter = getCenter ( ) ; Dimension oldMapSize = getTileFactory ( ) . getMapSize ( oldzoom ) ; this . zoomLevel = zoom ; this . firePropertyChange ( "zoom" , oldzoom , zoom ) ; Dimension mapSize = getTileFactory ( ) . getMapSize ( zoom ) ; setCenter ( new Point2D . Double ( oldCenter . getX ( ) * ( mapSize . getWidth ( ) / oldMapSize . getWidth ( ) ) , oldCenter . getY ( ) * ( mapSize . getHeight ( ) / oldMapSize . getHeight ( ) ) ) ) ; repaint ( ) ; }
Set the current zoom level