/** * Returns the bounds of the viewport in pixels. This can be used to transform points into the world bitmap * coordinate space. * @return the bounds in <em>pixels</em> of the "view" of this map */ public Rectangle getViewportBounds() { return calculateViewportBounds(getCenter()); }
Point2D old = this.getCenter();
/** * Returns the bounds of the viewport in pixels. This can be used to transform points into the world bitmap * coordinate space. * @return the bounds in <em>pixels</em> of the "view" of this map */ public Rectangle getViewportBounds() { return calculateViewportBounds(getCenter()); }
Point2D old = this.getCenter();
/** * A property indicating the center position of the map * @return the current center position */ public GeoPosition getCenterPosition() { return getTileFactory().pixelToGeo(getCenter(), zoomLevel); }
/** * A property indicating the center position of the map * @return the current center position */ public GeoPosition getCenterPosition() { return getTileFactory().pixelToGeo(getCenter(), zoomLevel); }
@Override public void mouseWheelMoved(MouseWheelEvent evt) { Point current = evt.getPoint(); Rectangle bound = viewer.getViewportBounds(); double dx = current.x - bound.width / 2; double dy = current.y - bound.height / 2; Dimension oldMapSize = viewer.getTileFactory().getMapSize(viewer.getZoom()); viewer.setZoom(viewer.getZoom() + evt.getWheelRotation()); Dimension mapSize = viewer.getTileFactory().getMapSize(viewer.getZoom()); Point2D center = viewer.getCenter(); double dzw = (mapSize.getWidth() / oldMapSize.getWidth()); double dzh = (mapSize.getHeight() / oldMapSize.getHeight()); double x = center.getX() + dx * (dzw - 1); double y = center.getY() + dy * (dzh - 1); viewer.setCenter(new Point2D.Double(x, y)); } }
@Override public void mouseWheelMoved(MouseWheelEvent evt) { Point current = evt.getPoint(); Rectangle bound = viewer.getViewportBounds(); double dx = current.x - bound.width / 2; double dy = current.y - bound.height / 2; Dimension oldMapSize = viewer.getTileFactory().getMapSize(viewer.getZoom()); viewer.setZoom(viewer.getZoom() + evt.getWheelRotation()); Dimension mapSize = viewer.getTileFactory().getMapSize(viewer.getZoom()); Point2D center = viewer.getCenter(); double dzw = (mapSize.getWidth() / oldMapSize.getWidth()); double dzh = (mapSize.getHeight() / oldMapSize.getHeight()); double x = center.getX() + dx * (dzw - 1); double y = center.getY() + dy * (dzh - 1); viewer.setCenter(new Point2D.Double(x, y)); } }
@Override public void mouseDragged(MouseEvent evt) { if (!SwingUtilities.isLeftMouseButton(evt)) return; if (!viewer.isPanningEnabled()) return; Point current = evt.getPoint(); double x = viewer.getCenter().getX(); double y = viewer.getCenter().getY(); if(prev != null){ x += prev.x - current.x; y += prev.y - current.y; } int maxHeight = (int) (viewer.getTileFactory().getMapSize(viewer.getZoom()).getHeight() * viewer .getTileFactory().getTileSize(viewer.getZoom())); if (y > maxHeight) { y = maxHeight; } prev = current; viewer.setCenter(new Point2D.Double(x, y)); viewer.repaint(); }
@Override public void mouseDragged(MouseEvent evt) { if (!SwingUtilities.isLeftMouseButton(evt)) return; if (!viewer.isPanningEnabled()) return; Point current = evt.getPoint(); double x = viewer.getCenter().getX(); double y = viewer.getCenter().getY(); if(prev != null){ x += prev.x - current.x; y += prev.y - current.y; } int maxHeight = (int) (viewer.getTileFactory().getMapSize(viewer.getZoom()).getHeight() * viewer .getTileFactory().getTileSize(viewer.getZoom())); if (y > maxHeight) { y = maxHeight; } prev = current; viewer.setCenter(new Point2D.Double(x, y)); viewer.repaint(); }
/** * Set the current zoom level * @param zoom the new zoom level */ 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 * @param zoom the new zoom level */ 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(); }