@Deprecated public MapContent(CoordinateReferenceSystem crs) { this(); getViewport().setCoordinateReferenceSystem(crs); }
/** * Set or change the coordinate reference system for this context. This will trigger a * MapBoundsEvent to be published to listeners. * * @param crs * @throws FactoryException * @throws TransformException */ public void setCoordinateReferenceSystem(final CoordinateReferenceSystem crs) { getViewport().setCoordinateReferenceSystem(crs); }
/** * 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(); } }
getViewport().setCoordinateReferenceSystem(crs);
@Override public synchronized MapViewport getViewport() { if (viewport == null) { viewport = new MapViewport(); try { ReferencedEnvelope layerBounds = getLayerBounds(); if (layerBounds != null) { viewport.setBounds(layerBounds); viewport.setCoordinateReferenceSystem( layerBounds.getCoordinateReferenceSystem()); } } catch (IOException e) { } } return viewport; } }
/** * Sets the CRS of the viewport, if one exists, based on the first Layer with a non-null CRS. * This is called when a new Layer is added to the Layer list. Does nothing if the viewport * already has a CRS set or if it has been set as non-editable. */ private void checkViewportCRS() { if (viewport != null && getCoordinateReferenceSystem() == null && viewport.isEditable()) { for (Layer layer : layerList) { ReferencedEnvelope bounds = layer.getBounds(); if (bounds != null) { CoordinateReferenceSystem crs = bounds.getCoordinateReferenceSystem(); if (crs != null) { viewport.setCoordinateReferenceSystem(crs); return; } } } } }
public void testFollowLineWithLocalTransform() throws Exception { Style style = RendererBaseTest.loadStyle(this, "multiscript/textMultiScriptLine.sld"); MapContent mc = new MapContent(); mc.getViewport().setCoordinateReferenceSystem(DefaultGeographicCRS.WGS84); mc.addLayer(new FeatureLayer(lines, style));
public void testAutoWrapLocalTransform() throws Exception { Style style = RendererBaseTest.loadStyle(this, "textWrapEnabled.sld"); 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); int SIZE = 300; final BufferedImage image = new BufferedImage(SIZE, SIZE, BufferedImage.TYPE_INT_ARGB); Graphics2D g = (Graphics2D) image.getGraphics(); g.setColor(Color.white); g.fillRect(0, 0, SIZE, SIZE); g.setTransform( new AffineTransform( 1.1, Math.sin(Math.toRadians(15)), -Math.sin(Math.toRadians(15)), 1.1, 15, 20)); renderer.paint(g, new Rectangle(SIZE, SIZE), bounds); mc.dispose(); renderer.getMapContent().dispose(); String refPath = "./src/test/resources/org/geotools/renderer/lite/test-data/textWrapEnabledLocalTransform.png"; ImageAssert.assertEquals(new File(refPath), image, 3000); }
@Test public void callSetCoordinateReferenceSystemWhenNonEditable() throws Exception { final CoordinateReferenceSystem crs = WORLD_1_1.getCoordinateReferenceSystem(); MapViewport vp = new MapViewport(); vp.setCoordinateReferenceSystem(crs); vp.setEditable(false); grabLogger(); vp.setCoordinateReferenceSystem(null); String s = getLogOutput(); assertTrue(s.contains("Ignored call to setCoordinateReferenceSystem")); assertTrue(CRS.equalsIgnoreMetadata(crs, vp.getCoordinateReferenceSystem())); releaseLogger(); }
/** Sets the CRS. */ private void setCRS() { if (mapPane != null && mapPane.getMapContent() != null) { String initial = null; CoordinateReferenceSystem crs = mapPane.getMapContent().getCoordinateReferenceSystem(); if (crs != null) { try { initial = CRS.lookupIdentifier(Citations.EPSG, crs, false); } catch (Exception ex) { // do nothing } } CoordinateReferenceSystem newCRS = JCRSChooser.showDialog(null, initial, "EPSG"); if (newCRS != null && (crs == null || !CRS.equalsIgnoreMetadata(crs, newCRS))) { try { mapPane.getMapContent().getViewport().setCoordinateReferenceSystem(newCRS); } catch (Exception ex) { JExceptionReporter.showDialog(ex, "Failed to set the requested CRS"); } } } }
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); } }
@Before public void setUp() throws Exception { // setup data File property = new File(TestData.getResource(this, "square.properties").toURI()); PropertyDataStore ds = new PropertyDataStore(property.getParentFile()); squareFS = ds.getFeatureSource("square"); pointFS = ds.getFeatureSource("point"); bounds = new ReferencedEnvelope(0, 10, 0, 10, DefaultGeographicCRS.WGS84); // prepare the renderer renderer = new StreamingRenderer(); content = new MapContent(); content.getViewport().setCoordinateReferenceSystem(DefaultGeographicCRS.WGS84); renderer.setMapContent(content); renderer.addRenderListener( new RenderListener() { public void featureRenderer(SimpleFeature feature) { renderedIds.add(feature.getID()); } public void errorOccurred(Exception e) { errorCount++; } }); // System.setProperty("org.geotools.test.interactive", "true"); }
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); } }
public void testDirectLayerLabelInteraction() throws Exception { Style style = RendererBaseTest.loadStyle(this, "textWrapEnabled.sld"); MapContent mc = new MapContent(); mc.getViewport().setCoordinateReferenceSystem(DefaultGeographicCRS.WGS84); mc.addLayer(new FeatureLayer(fs, style)); mc.addLayer( new DirectLayer() { @Override public ReferencedEnvelope getBounds() { // no dice return null; } @Override public void draw(Graphics2D graphics, MapContent map, MapViewport viewport) { // nothing to do, just want to check labels are painted anyways } }); StreamingRenderer renderer = new StreamingRenderer(); renderer.setJava2DHints(new RenderingHints(KEY_ANTIALIASING, VALUE_ANTIALIAS_ON)); renderer.setMapContent(mc); BufferedImage image = RendererBaseTest.showRender("Label and direct layers", renderer, TIME, bounds); String refPath = "./src/test/resources/org/geotools/renderer/lite/test-data/textWrapEnabled.png"; ImageAssert.assertEquals(new File(refPath), image, 3000); }
@Test public void crsIsNotAutoSetIfViewportHasExplicitCRS() { final CoordinateReferenceSystem crs = DefaultEngineeringCRS.GENERIC_2D; MapViewport viewport = new MapViewport(); viewport.setCoordinateReferenceSystem(crs); mapContent.setViewport(viewport); Layer layerWithCRS = new MockLayer(WORLD); mapContent.addLayer(layerWithCRS); assertTrue(viewport.isEditable()); assertEquals(crs, mapContent.getCoordinateReferenceSystem()); assertFalse( WORLD.getCoordinateReferenceSystem() .equals(mapContent.getCoordinateReferenceSystem())); }
public void testLetterConflictEnabled2Lines() throws Exception { LabelCacheImpl.DISABLE_LETTER_LEVEL_CONFLICT = true; Style style = RendererBaseTest.loadStyle(this, "letterConflict20.sld"); MapContent mc = new MapContent(); mc.getViewport().setCoordinateReferenceSystem(DefaultGeographicCRS.WGS84); mc.addLayer(new FeatureLayer(fs_line2, style)); StreamingRenderer renderer = getNewRenderer(mc); final BufferedImage image1 = RendererBaseTest.renderImage(renderer, bounds1, null); mc.dispose(); LabelCacheImpl.DISABLE_LETTER_LEVEL_CONFLICT = false; style = RendererBaseTest.loadStyle(this, "letterConflict20.sld"); mc = new MapContent(); mc.getViewport().setCoordinateReferenceSystem(DefaultGeographicCRS.WGS84); mc.addLayer(new FeatureLayer(fs_line2, style)); renderer = getNewRenderer(mc); final BufferedImage image2 = RendererBaseTest.renderImage(renderer, bounds1, null); assertTrue( "More labels in image2 than image1", countPixels(image2, Color.BLACK) > countPixels(image1, Color.BLACK)); writeImage("letterConflictEnabled2False", image1); writeImage("letterConflictEnabled2True", image2); showImage("letterConflictEnabled2 false", TIME, image1); showImage("letterConflictEnabled2 true", TIME, image2); mc.dispose(); }
public void testLetterConflictEnabled() throws Exception { LabelCacheImpl.DISABLE_LETTER_LEVEL_CONFLICT = true; Style style = RendererBaseTest.loadStyle(this, "letterConflict20.sld"); MapContent mc = new MapContent(); mc.getViewport().setCoordinateReferenceSystem(DefaultGeographicCRS.WGS84); mc.addLayer(new FeatureLayer(fs_line1, style)); StreamingRenderer renderer = getNewRenderer(mc); final BufferedImage image1 = RendererBaseTest.renderImage(renderer, bounds1, null); mc.dispose(); LabelCacheImpl.DISABLE_LETTER_LEVEL_CONFLICT = false; style = RendererBaseTest.loadStyle(this, "letterConflict20.sld"); mc = new MapContent(); mc.getViewport().setCoordinateReferenceSystem(DefaultGeographicCRS.WGS84); mc.addLayer(new FeatureLayer(fs_line1, style)); renderer = getNewRenderer(mc); final BufferedImage image2 = RendererBaseTest.renderImage(renderer, bounds1, null); mc.dispose(); assertTrue( "More labels in image2 than image1", countPixels(image2, Color.BLACK) >= countPixels(image1, Color.BLACK)); writeImage("letterConflictEnabledFalse", image1); writeImage("letterConflictEnabledTrue", image2); showImage("letterConflictEnabled false", TIME, image1); showImage("letterConflictEnabled true", TIME, image2); }
public void testLetterConflictEnabledCurvedLine() throws Exception { LabelCacheImpl.DISABLE_LETTER_LEVEL_CONFLICT = true; Style style = RendererBaseTest.loadStyle(this, "letterConflict20.sld"); MapContent mc = new MapContent(); mc.getViewport().setCoordinateReferenceSystem(DefaultGeographicCRS.WGS84); mc.addLayer(new FeatureLayer(fs_line3, style)); StreamingRenderer renderer = getNewRenderer(mc); final BufferedImage image1 = RendererBaseTest.renderImage(renderer, bounds1, null); mc.dispose(); LabelCacheImpl.DISABLE_LETTER_LEVEL_CONFLICT = false; style = RendererBaseTest.loadStyle(this, "letterConflict20.sld"); mc = new MapContent(); mc.getViewport().setCoordinateReferenceSystem(DefaultGeographicCRS.WGS84); mc.addLayer(new FeatureLayer(fs_line3, style)); renderer = getNewRenderer(mc); final BufferedImage image2 = RendererBaseTest.renderImage(renderer, bounds1, null); mc.dispose(); assertTrue( "More labels in image2 than image1", countPixels(image2, Color.BLACK) > countPixels(image1, Color.BLACK)); writeImage("letterConflictEnabledCurvedLineFalse", image1); writeImage("letterConflictEnabledCurvedLineTrue", image2); showImage("letterConflictEnabledCurvedLine false", TIME, image1); showImage("letterConflictEnabledCurvedLine true", TIME, image2); }