public void zoomAll() { getLayerCanvas().getViewport().zoom(worldMapLayer.getModelBounds()); fireScrolled(); }
public void zoomToProduct(Product product) { if (product == null || product.getSceneGeoCoding() == null) { return; } final GeneralPath[] generalPaths = getGeoBoundaryPaths(product); Rectangle2D modelArea = new Rectangle2D.Double(); final Viewport viewport = getLayerCanvas().getViewport(); for (GeneralPath generalPath : generalPaths) { final Rectangle2D rectangle2D = generalPath.getBounds2D(); if (modelArea.isEmpty()) { if (!viewport.isModelYAxisDown()) { modelArea.setFrame(rectangle2D.getX(), rectangle2D.getMaxY(), rectangle2D.getWidth(), rectangle2D.getHeight()); } modelArea = rectangle2D; } else { modelArea.add(rectangle2D); } } Rectangle2D modelBounds = modelArea.getBounds2D(); modelBounds.setFrame(modelBounds.getX() - 2, modelBounds.getY() - 2, modelBounds.getWidth() + 4, modelBounds.getHeight() + 4); modelBounds = cropToMaxModelBounds(modelBounds); viewport.zoom(modelBounds); fireScrolled(); }
@Override public void mouseWheelMoved(MouseWheelEvent e) { if (!isEnabled()) { return; } double oldFactor = layerCanvas.getViewport().getZoomFactor(); final int wheelRotation = e.getWheelRotation(); final double newZoomFactor = layerCanvas.getViewport().getZoomFactor() * Math.pow(1.1, wheelRotation); final Rectangle viewBounds = layerCanvas.getViewport().getViewBounds(); final Rectangle2D modelBounds = worldMapLayer.getModelBounds(); final double minZoomFactor = Math.min(viewBounds.getWidth() / modelBounds.getWidth(), viewBounds.getHeight() / modelBounds.getHeight()); layerCanvas.getViewport().setZoomFactor(Math.max(newZoomFactor, minZoomFactor)); if (layerCanvas.getViewport().getZoomFactor() > oldFactor || viewportIsInWorldMapBounds(0, 0, layerCanvas)) { fireScrolled(); return; } layerCanvas.getViewport().setZoomFactor(oldFactor); } }