@Test public void callSetScreenAreaWhenNonEditable() throws Exception { MapViewport vp = new MapViewport(); vp.setScreenArea(SCREEN_1_1); vp.setEditable(false); grabLogger(); vp.setScreenArea(SCREEN_2_1); String s = getLogOutput(); assertTrue(s.contains("Ignored call to setScreenArea")); assertEquals(SCREEN_1_1, vp.getScreenArea()); releaseLogger(); }
private void assertAspectCorrection(Rectangle screenArea, ReferencedEnvelope expectedBounds) { MapViewport vp = new MapViewport(WORLD_1_1, true); vp.setScreenArea(screenArea); assertTrue(expectedBounds.boundsEquals2D(vp.getBounds(), TOL)); }
private static BufferedImage renderImage( SimpleFeatureSource featureSource, int width, int height, Rectangle2D mapArea, Style style, Map renderingHints) { BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); Graphics2D g = (Graphics2D) image.getGraphics(); g.setColor(Color.WHITE); g.fillRect(0, 0, width, height); MapContent mapContent = new MapContent(); MapViewport viewport = mapContent.getViewport(); viewport.setBounds(new ReferencedEnvelope(mapArea, DefaultGeographicCRS.WGS84)); viewport.setScreenArea(new Rectangle(width, height)); mapContent.addLayer(new FeatureLayer(featureSource, style)); StreamingRenderer renderer = new StreamingRenderer(); renderer.setRendererHints(renderingHints); renderer.setMapContent(mapContent); renderer.paint(g, viewport.getScreenArea(), viewport.getBounds()); return image; }
mapContent.getViewport().setScreenArea(SCREEN);
mapContent.getViewport().setScreenArea(getVisibleRect());
@Test public void boundsChangeWithScreenArea() { MapViewport vp = new MapViewport(true); vp.setScreenArea(SCREEN_1_1); vp.setBounds(WORLD_1_1); vp.setScreenArea(SCREEN_2_1); ReferencedEnvelope expectedBounds = new ReferencedEnvelope( WORLD_1_1.getMinX(), WORLD_1_1.getMaxX() + WORLD_1_1.getWidth(), WORLD_1_1.getMinY(), WORLD_1_1.getMaxY(), WORLD_1_1.getCoordinateReferenceSystem()); assertTrue(expectedBounds.boundsEquals2D(vp.getBounds(), TOL)); }
@Test public void setBoundsNoAspectCorrection() { MapViewport vp = new MapViewport(); vp.setScreenArea(SCREEN_2_1); vp.setBounds(WORLD_1_1); assertTrue(WORLD_1_1.boundsEquals2D(vp.getBounds(), TOL)); }
@Test public void copyCtor() { MapViewport vp = new MapViewport(WORLD_1_1, true); vp.setScreenArea(SCREEN_1_1); vp.setEditable(false); MapViewport copy = new MapViewport(vp); assertTrue(copy.isEditable()); assertViewportsEqual(vp, copy); }
@Test public void newBoundsAreHonoured_NoAspectMatching() { MapViewport vp = new MapViewport(false); vp.setScreenArea(SCREEN_1_1); vp.setBounds(WORLD_1_1); vp.setBounds(BIG_WORLD_1_1); assertTrue(BIG_WORLD_1_1.boundsEquals2D(vp.getBounds(), TOL)); }
@Test public void newBoundsAreHonoured_AspectMatching() { MapViewport vp = new MapViewport(true); vp.setScreenArea(SCREEN_1_1); vp.setBounds(WORLD_1_1); vp.setBounds(BIG_WORLD_1_1); assertTrue(BIG_WORLD_1_1.boundsEquals2D(vp.getBounds(), TOL)); }
Rectangle rect = getVisibleRect(); if (!rect.isEmpty()) { viewport.setScreenArea(rect);
@Test public void coordinateTransform_MatchingAspectRatioDisabled() throws Exception { MapViewport vp = new MapViewport(false); // world and screen bounds with different aspect ratios final ReferencedEnvelope world = WORLD_1_1; final Rectangle screen = SCREEN_2_1; vp.setBounds(world); vp.setScreenArea(screen); double[] screenXY = { screen.getMinX(), screen.getMinY(), screen.getMaxX(), screen.getMaxY() }; double[] worldXY = new double[screenXY.length]; vp.getScreenToWorld().transform(screenXY, 0, worldXY, 0, screenXY.length / 2); assertEquals(world.getMinX(), worldXY[0], TOL); assertEquals(world.getMaxY(), worldXY[1], TOL); assertEquals(world.getMaxX(), worldXY[2], TOL); assertEquals(world.getMinY(), worldXY[3], TOL); }
@Test public void coordinateTransform_MatchingAspectRatioEnabled() throws Exception { MapViewport vp = new MapViewport(true); // world and screen bounds with different aspect ratios final Rectangle screen = SCREEN_2_1; vp.setBounds(WORLD_1_1); vp.setScreenArea(screen); ReferencedEnvelope actualWorld = vp.getBounds(); double[] screenXY = { screen.getMinX(), screen.getMinY(), screen.getMaxX(), screen.getMaxY() }; double[] worldXY = new double[screenXY.length]; vp.getScreenToWorld().transform(screenXY, 0, worldXY, 0, screenXY.length / 2); assertEquals(actualWorld.getMinX(), worldXY[0], TOL); assertEquals(actualWorld.getMaxY(), worldXY[1], TOL); assertEquals(actualWorld.getMaxX(), worldXY[2], TOL); assertEquals(actualWorld.getMinY(), worldXY[3], TOL); }
mapContent.getViewport().setScreenArea(getVisibleRect());
Rectangle rect = getVisibleRect(); if (!rect.isEmpty()) { viewport.setScreenArea(rect);