@Deprecated public MapContent(CoordinateReferenceSystem crs) { this(); getViewport().setCoordinateReferenceSystem(crs); }
/** * Register interest in receiving {@link MapBoundsEvent}s. * * @param listener The object to notify when the area of interest has changed. */ public void addMapBoundsListener(MapBoundsListener listener) { monitor.writeLock().lock(); try { getViewport().addMapBoundsListener(listener); } finally { monitor.writeLock().unlock(); } }
/** * Remove interest in receiving a {@link BoundingBoxEvent}s. * * @param listener The object to stop sending change events. */ public void removeMapBoundsListener(MapBoundsListener listener) { monitor.writeLock().lock(); try { getViewport().removeMapBoundsListener(listener); } finally { monitor.writeLock().unlock(); } }
/** {@inheritDoc} */ @Override public AffineTransform getWorldToScreenTransform() { paramsLock.readLock().lock(); try { if (mapContent != null) { return mapContent.getViewport().getWorldToScreen(); } else { return null; } } finally { paramsLock.readLock().unlock(); } }
/** {@inheritDoc} */ @Override public AffineTransform getScreenToWorldTransform() { paramsLock.readLock().lock(); try { if (mapContent != null) { return mapContent.getViewport().getScreenToWorld(); } else { return null; } } finally { paramsLock.readLock().unlock(); } }
/** * Set the <code>CoordinateReferenceSystem</code> for this map's internal viewport. * * @param crs * @throws FactoryException * @throws TransformException */ void setCoordinateReferenceSystem(CoordinateReferenceSystem crs) { monitor.writeLock().lock(); try { getViewport().setCoordinateReferenceSystem(crs); } finally { monitor.writeLock().unlock(); } }
/** * The extent of the map currently (sometimes called the map "viewport". * * <p>Note Well: The bounds should match your screen aspect ratio (or the map will appear * squashed). Please note this only covers spatial extent; you may wish to use the user data map * to record the current viewport time or elevation. */ ReferencedEnvelope getBounds() { monitor.readLock().lock(); try { return getViewport().getBounds(); } finally { monitor.readLock().unlock(); } }
/** {@inheritDoc} */ @Override public ReferencedEnvelope getDisplayArea() { paramsLock.readLock().lock(); try { if (mapContent != null) { return mapContent.getViewport().getBounds(); } else if (pendingDisplayArea != null) { return new ReferencedEnvelope(pendingDisplayArea); } else { return new ReferencedEnvelope(); } } finally { paramsLock.readLock().unlock(); } }
/** * The coordinate reference system used for rendering the map. * * <p>The coordinate reference system used for rendering is often considered to be the "world" * coordinate reference system; this is distinct from the coordinate reference system used for * each layer (which is often data dependent). * * @return coordinate reference system used for rendering the map. */ public CoordinateReferenceSystem getCoordinateReferenceSystem() { monitor.readLock().lock(); try { return getViewport().getCoordinateReferenceSystem(); } finally { monitor.readLock().unlock(); } }
@Override protected void drawLayers(boolean recreate) { drawingLock.lock(); try { if (mapContent != null && !mapContent.layers().isEmpty() && !mapContent.getViewport().isEmpty() && acceptRepaintRequests.get()) { getRenderingExecutor().submit(mapContent, getOperands(recreate), this); } } finally { drawingLock.unlock(); } }
/** Called after the base image has been dragged. Sets the new map area and transforms */ protected void afterImageMoved() { paramsLock.writeLock().lock(); try { int dx = imageOrigin.x; int dy = imageOrigin.y; DirectPosition2D newPos = new DirectPosition2D(dx, dy); mapContent.getViewport().getScreenToWorld().transform(newPos, newPos); ReferencedEnvelope env = new ReferencedEnvelope(mapContent.getViewport().getBounds()); env.translate(env.getMinimum(0) - newPos.x, env.getMaximum(1) - newPos.y); doSetDisplayArea(env); imageOrigin.setLocation(0, 0); baseImageMoved.set(false); } finally { paramsLock.writeLock().unlock(); } }
/** * Creates a context from the provided map content. * * <p>This method is used to prevent duplication in classes supporting deprecated * getMapContext() methods. * * @param content MapContent to be represented */ public MapContext(MapContent content) { this(content.getCoordinateReferenceSystem()); for (Layer layer : content.layers()) { addLayer(layer); } this.setAreaOfInterest(content.getViewport().getBounds()); } /**
private BufferedImage renderLabels(SimpleFeatureSource fs, Style style, String title) throws Exception { MapContent mc = new MapContent(); mc.getViewport().setCoordinateReferenceSystem(DefaultGeographicCRS.WGS84); mc.addLayer(new FeatureLayer(fs, style)); StreamingRenderer renderer = new StreamingRenderer(); renderer.setJava2DHints(new RenderingHints(KEY_ANTIALIASING, VALUE_ANTIALIAS_ON)); renderer.setMapContent(mc); return RendererBaseTest.showRender(title, renderer, TIME, bounds); } }
private BufferedImage renderLabels(SimpleFeatureSource fs, Style style, String title) throws Exception { MapContent mc = new MapContent(); mc.getViewport().setCoordinateReferenceSystem(DefaultGeographicCRS.WGS84); mc.addLayer(new FeatureLayer(fs, style)); StreamingRenderer renderer = new StreamingRenderer(); renderer.setJava2DHints(new RenderingHints(KEY_ANTIALIASING, VALUE_ANTIALIAS_ON)); renderer.setMapContent(mc); return RendererBaseTest.showRender(title, renderer, TIME, bounds); }
private BufferedImage renderLabels(SimpleFeatureSource fs, Style style, String title) throws Exception { MapContent mc = new MapContent(); mc.getViewport().setCoordinateReferenceSystem(DefaultGeographicCRS.WGS84); mc.addLayer(new FeatureLayer(fs, style)); StreamingRenderer renderer = new StreamingRenderer(); renderer.setJava2DHints(new RenderingHints(KEY_ANTIALIASING, VALUE_ANTIALIAS_ON)); renderer.setMapContent(mc); return RendererBaseTest.showRender(title, renderer, TIME, bounds); }
private BufferedImage renderLabels(SimpleFeatureSource[] fs, Style[] style, String title) throws Exception { MapContent mc = new MapContent(); mc.getViewport().setCoordinateReferenceSystem(DefaultGeographicCRS.WGS84); for (int i = 0; i < fs.length; i++) { mc.addLayer(new FeatureLayer(fs[i], style[i])); } StreamingRenderer renderer = new StreamingRenderer(); renderer.setJava2DHints(new RenderingHints(KEY_ANTIALIASING, VALUE_ANTIALIAS_ON)); renderer.setMapContent(mc); return RendererBaseTest.showRender(title, renderer, TIME, bounds); } }
/** * Calling {@link MapContent#getViewport()} initially creates a new viewport instance with * default settings. */ @Test public void getDefaultViewport() throws Exception { mapContent.addLayer(new MockLayer(WORLD)); MapViewport viewport = mapContent.getViewport(); assertNotNull(viewport); assertTrue(WORLD.boundsEquals2D(viewport.getBounds(), TOL)); }
private void checkRepeatedLabels(String styleName) throws Exception { Style style = RendererBaseTest.loadStyle(this, styleName + ".sld"); MapContent mc = new MapContent(); mc.addLayer(new FeatureLayer(fs_line, style)); mc.getViewport().setBounds(bounds); StreamingRenderer renderer = new StreamingRenderer(); renderer.setMapContent(mc); renderer.setJava2DHints(new RenderingHints(KEY_ANTIALIASING, VALUE_ANTIALIAS_ON)); renderer.setMapContent(mc); BufferedImage image = RendererBaseTest.renderImage(renderer, bounds, null, 500, 500); File expected = new File( "src/test/resources/org/geotools/renderer/lite/test-data/" + styleName + ".png"); int tolerance = 2000; ImageAssert.assertEquals(expected, image, tolerance); }
@Test public void crsIsAutoSetWhenGetViewportCalledBeforeAddingLayers() { MapViewport viewport = mapContent.getViewport(); assertNull(viewport.getCoordinateReferenceSystem()); ReferencedEnvelope envNoCRS = new ReferencedEnvelope(WORLD, null); Layer layerNoCRS = new MockLayer(envNoCRS); mapContent.addLayer(layerNoCRS); assertNull(mapContent.getCoordinateReferenceSystem()); Layer layerWithCRS = new MockLayer(WORLD); mapContent.addLayer(layerWithCRS); assertEquals(WORLD.getCoordinateReferenceSystem(), viewport.getCoordinateReferenceSystem()); }
@Test public void testLineDoubleDash() throws Exception { StreamingRenderer renderer = setupLineMap("lineDoubleDash.sld"); MapViewport viewport = renderer.getMapContent().getViewport(); ReferencedEnvelope re = viewport.getBounds(); ReferencedEnvelope shifted = new ReferencedEnvelope( re.getMinX() + 2, re.getMaxX() - 3, re.getMinY() + 2, re.getMaxY() - 3, re.getCoordinateReferenceSystem()); viewport.setBounds(shifted); BufferedImage image = RendererBaseTest.showRender( "Lines with double dash array (2 fts)", renderer, TIME, shifted); ImageAssert.assertEquals(file("doubleDash"), image, 10); }