/** * Effectively zoom to the bounds that the user drew on the map. * * @param worldBounds * The result of the user's dragging on the map, expressed in world space. */ public void execute(Bbox worldBounds) { mapPresenter.getViewPort().applyBounds(worldBounds); } }
private void zoomTo(double scale, boolean isGestureEnded) { if (midPoint != null) { if (isGestureEnded) { mapPresenter.getViewPort().applyScale(scale * lastScale, midPoint); } else { mapPresenter.getViewPort().dragToScale(scale * lastScale, midPoint); } } else { if (isGestureEnded) { mapPresenter.getViewPort().applyScale(scale * lastScale); } else { mapPresenter.getViewPort().dragToScale(scale * lastScale); } } }
public void onClick(ClickEvent event) { Bbox bounds = mapPresenter.getViewPort().getBounds(); double deltaY = -bounds.getHeight() / 5; PanAnimation animation = new PanAnimation(mapPresenter.getViewPort()); animation.panTo(0, deltaY, 300); event.stopPropagation(); } }, ClickEvent.getType());
public void onClick(ClickEvent event) { Bbox bounds = mapPresenter.getViewPort().getBounds(); double deltaY = bounds.getHeight() / 5; PanAnimation animation = new PanAnimation(mapPresenter.getViewPort()); animation.panTo(0, deltaY, 300); event.stopPropagation(); } }, ClickEvent.getType());
public void onClick(ClickEvent event) { Bbox bounds = mapPresenter.getViewPort().getBounds(); double deltaX = bounds.getWidth() / 5; PanAnimation animation = new PanAnimation(mapPresenter.getViewPort()); animation.panTo(deltaX, 0, 300); event.stopPropagation(); } }, ClickEvent.getType());
public void onClick(ClickEvent event) { Bbox bounds = mapPresenter.getViewPort().getBounds(); double deltaX = -bounds.getWidth() / 5; PanAnimation animation = new PanAnimation(mapPresenter.getViewPort()); animation.panTo(deltaX, 0, 300); event.stopPropagation(); } }, ClickEvent.getType());
@Override public Bbox transform(Bbox bounds, Space from, Space to) { return mapPresenter.getViewPort().transform(bounds, convert(from), convert(to)); }
protected void updateView(HumanInputEvent<?> event) { Coordinate end = getLocation(event, RenderSpace.SCREEN); Coordinate beginWorld = mapPresenter.getViewPort().transform(dragOrigin, RenderSpace.SCREEN, RenderSpace.WORLD); Coordinate endWorld = mapPresenter.getViewPort().transform(end, RenderSpace.SCREEN, RenderSpace.WORLD); double x = mapPresenter.getViewPort().getPosition().getX() + beginWorld.getX() - endWorld.getX(); double y = mapPresenter.getViewPort().getPosition().getY() + beginWorld.getY() - endWorld.getY(); if (dragging) { mapPresenter.getViewPort().dragToPosition(new Coordinate(x, y)); } else { mapPresenter.getViewPort().applyPosition(new Coordinate(x, y)); } dragOrigin = end; } }
@Override public Coordinate transform(Coordinate coordinate, Space from, Space to) { return mapPresenter.getViewPort().transform(coordinate, convert(from), convert(to)); }
@Override public void onTouchMove(TouchMoveEvent event) { event.preventDefault(); midPoint = mapPresenter.getViewPort().transform(getMidPoint(event), RenderSpace.SCREEN, RenderSpace.WORLD); updateView(event, true); // TODO second argument should be false but onTouchEnd is not fired }
@Override public void onGestureStart(GestureStartEvent event) { event.preventDefault(); lastScale = mapPresenter.getViewPort().getScale(); zoomTo(event.getScale(), false); }
@Override public void onDoubleClick(DoubleClickEvent event) { // Zoom in on the event location: Bbox bounds = mapPresenter.getViewPort().getBounds(); double x = lastClickPosition.getX() - (bounds.getWidth() / 4); double y = lastClickPosition.getY() - (bounds.getHeight() / 4); Bbox newBounds = new Bbox(x, y, bounds.getWidth() / 2, bounds.getHeight() / 2); mapPresenter.getViewPort().applyBounds(newBounds); }
private void redrawScale() { calculateBestFit(mapPresenter.getViewPort().getScale()); scaleBarElement.setInnerText(formatUnits(widthInUnits)); scaleBarElement.getStyle().setWidth(widthInPixels, Unit.PX); getElement().getStyle().setWidth(widthInPixels + 10, Unit.PX); }
private Shape createEdge(GeometryEditService editService, GeometryIndex index) throws GeometryIndexNotFoundException { Geometry geometry = editService.getGeometry(); Coordinate[] e = editService.getIndexService().getEdge(geometry, index); if (!targetSpace.equals(RenderSpace.WORLD)) { e[0] = mapPresenter.getViewPort().transform(e[0], RenderSpace.WORLD, targetSpace); e[1] = mapPresenter.getViewPort().transform(e[1], RenderSpace.WORLD, targetSpace); } Path edge = new Path(e[0].getX(), e[0].getY()); edge.lineTo(e[1].getX(), e[1].getY()); return edge; }
private VectorObject createGeometry(GeometryEditService editService, GeometryIndex index) throws GeometryIndexNotFoundException { Geometry geometry = editService.getGeometry(); if (index != null) { geometry = editService.getIndexService().getGeometry(geometry, index); } Geometry g = geometry; if (!targetSpace.equals(RenderSpace.WORLD)) { g = mapPresenter.getViewPort().transform(g, RenderSpace.WORLD, targetSpace); } return gfxUtil.toShape(g); }
private Shape createVertex(GeometryEditService editService, GeometryIndex index) throws GeometryIndexNotFoundException { Geometry geometry = editService.getGeometry(); Coordinate v = editService.getIndexService().getVertex(geometry, index); if (!targetSpace.equals(RenderSpace.WORLD)) { v = mapPresenter.getViewPort().transform(v, RenderSpace.WORLD, targetSpace); } return new Rectangle(v.getX() - VERTEX_HALF_SIZE, v.getY() - VERTEX_HALF_SIZE, VERTEX_SIZE, VERTEX_SIZE); }
private void updateVertex(Shape shape, GeometryEditService editService, GeometryIndex index) throws GeometryIndexNotFoundException { if (shape instanceof Rectangle) { Rectangle rectangle = (Rectangle) shape; Geometry geometry = editService.getGeometry(); Coordinate v = editService.getIndexService().getVertex(geometry, index); if (!targetSpace.equals(RenderSpace.WORLD)) { v = mapPresenter.getViewPort().transform(v, RenderSpace.WORLD, targetSpace); } rectangle.setUserX(v.getX() - VERTEX_HALF_SIZE); rectangle.setUserY(v.getY() - VERTEX_HALF_SIZE); } }
@Override public void onTouchStart(TouchStartEvent event) { zoomOutElement.addStyleName(resource.css().zoomControlZoomOutTouch()); ViewPort viewPort = mapPresenter.getViewPort(); int index = viewPort.getZoomStrategy().getZoomStepIndex(viewPort.getScale()); try { viewPort.applyScale(viewPort.getZoomStrategy().getZoomStepScale(index + 1)); } catch (IllegalArgumentException e) { } event.stopPropagation(); } }, TouchStartEvent.getType());
@Override public void onUp(HumanInputEvent<?> event) { // Assure dragging or clicking started inside this widget if (dragging) { shift |= event.isShiftKeyDown(); // shift is used when depressed either at beginning or end updateRectangle(event); Bbox bounds = new Bbox(rectangle.getX(), rectangle.getY(), rectangle.getWidth(), rectangle.getHeight()); execute(mapPresenter.getViewPort().transform(bounds, RenderSpace.SCREEN, RenderSpace.WORLD)); stopDragging(); dragging = false; } }
@Override public void onTouchStart(TouchStartEvent event) { zoomInElement.addStyleName(resource.css().zoomControlZoomInTouch()); ViewPort viewPort = mapPresenter.getViewPort(); int index = viewPort.getZoomStrategy().getZoomStepIndex(viewPort.getScale()); try { viewPort.applyScale(viewPort.getZoomStrategy().getZoomStepScale(index - 1)); } catch (IllegalArgumentException e) { } event.stopPropagation(); } }, TouchStartEvent.getType());