/** * create a polygon symbolizer * * @param stroke - the stroke to use to outline the polygon * @param fill - the fill to use to color the polygon * @return the new polygon symbolizer */ public PolygonSymbolizer createPolygonSymbolizer(Stroke stroke, Fill fill) { return createPolygonSymbolizer(stroke, fill, null); }
/** * create a polygon symbolizer * * @param fillColor - the color to fill the polygon * @return the new polygon symbolizer */ public PolygonSymbolizer createPolygonSymbolizer(Color fillColor) { return createPolygonSymbolizer(null, createFill(fillColor)); }
/** * create a polygon symbolizer * * @param borderColor - the outline color of the polygon * @param borderWidth - the width of the outline * @return the new polygon symbolizer */ public PolygonSymbolizer createPolygonSymbolizer(Color borderColor, double borderWidth) { return createPolygonSymbolizer(createStroke(borderColor, borderWidth), null); }
/** * create a polygon symbolizer * * @param fillColor - the color to fill the polygon * @param borderColor - the outline color of the polygon * @param borderWidth - the width of the outline * @return the new polygon symbolizer */ public PolygonSymbolizer createPolygonSymbolizer( Color fillColor, Color borderColor, double borderWidth) { return createPolygonSymbolizer( createStroke(borderColor, borderWidth), createFill(fillColor)); }
public static Symbolizer[] getSymbolizers( Class<? extends Geometry> type, Color baseColor, boolean useTransparency) { StyleBuilder builder = new StyleBuilder(); Symbolizer[] syms = new Symbolizer[1]; if (LineString.class.isAssignableFrom(type) || MultiLineString.class.isAssignableFrom(type)) syms[0] = builder.createLineSymbolizer(baseColor, 2); if (Point.class.isAssignableFrom(type) || MultiPoint.class.isAssignableFrom(type)) { PointSymbolizer point = builder.createPointSymbolizer(builder.createGraphic()); // set graphic size to 10 by default point.getGraphic() .setSize( (Expression) CommonFactoryFinder.getFilterFactory(GeoTools.getDefaultHints()) .literal(10)); // danger assumes a Mark! point.getGraphic().getMarks()[0].setFill(builder.createFill(baseColor)); syms[0] = point; } if (Polygon.class.isAssignableFrom(type) || MultiPolygon.class.isAssignableFrom(type)) { syms[0] = builder.createPolygonSymbolizer( builder.createStroke(baseColor, 2), builder.createFill(baseColor, useTransparency ? .6 : 1.0)); } return syms; }
/** * * <!-- begin-user-doc --> * <!-- end-user-doc --> * * @generated modifiable */ public Object parse(ElementInstance instance, Node node, Object value) throws Exception { Color color = (Color) value; PolygonSymbolizer poly = sb.createPolygonSymbolizer(); Boolean fill = (Boolean) node.getChildValue("fill", Boolean.TRUE); Boolean outline = (Boolean) node.getChildValue("outline", Boolean.TRUE); if (fill) { poly.setFill(sb.createFill(color)); } else { poly.setFill(null); } if (outline) { poly.setStroke(sb.createStroke()); } else { poly.setStroke(null); } return poly; } }
@Test public void testSpatialDefaulter() throws Exception { // a spatial filter in the same SRS as the geometry StyleBuilder sb = new StyleBuilder(); PolygonSymbolizer ps = sb.createPolygonSymbolizer(); Style style = sb.createStyle(ps); Rule rule = style.featureTypeStyles().get(0).rules().get(0); rule.setFilter(ff.bbox("geom", 1, 1, 4, 4, null)); content.addLayer(new FeatureLayer(squareFS, style)); RendererBaseTest.showRender("Spatial without CRS", renderer, TIME, bounds); assertEquals(2, renderedIds.size()); }
@Test public void testSpatialNoReprojection() throws Exception { // a spatial filter in the same SRS as the geometry StyleBuilder sb = new StyleBuilder(); PolygonSymbolizer ps = sb.createPolygonSymbolizer(); Style style = sb.createStyle(ps); Rule rule = style.featureTypeStyles().get(0).rules().get(0); rule.setFilter(ff.bbox("geom", 1, 1, 4, 4, "EPSG:4326")); content.addLayer(new FeatureLayer(squareFS, style)); RendererBaseTest.showRender("Spatial with default CRS", renderer, TIME, bounds); assertEquals(2, renderedIds.size()); }
public void testRenderEmptyCollection() throws SchemaException, IllegalAttributeException { GeometryFactory gf = new GeometryFactory(); StyleBuilder sb = new StyleBuilder(); SimpleFeatureType pointType = DataUtilities.createType("emptyPolygon", "geom:MultiPolygon,name:String"); SimpleFeature f = SimpleFeatureBuilder.build( pointType, new Object[] {gf.createMultiPolygon((Polygon[]) null), "name"}, null); Style style = sb.createStyle(sb.createPolygonSymbolizer()); renderEmptyGeometry(f, style); }
@Test public void testVisitPolygonSymbolizer_NullStroke() { try { UomRescaleStyleVisitor visitor = null; StyleBuilder styleBuilder = new StyleBuilder(); Fill fill = styleBuilder.createFill(Color.RED); PolygonSymbolizerImpl polySymb = (PolygonSymbolizerImpl) styleBuilder.createPolygonSymbolizer(null, fill); visitor = new UomRescaleStyleVisitor(10); polySymb.accept(visitor); PolygonSymbolizer rescaledPolySymb = (PolygonSymbolizer) visitor.getCopy(); assertEquals(polySymb.getFill(), rescaledPolySymb.getFill()); assertNull(rescaledPolySymb.getStroke()); assertNotSame(rescaledPolySymb, polySymb); } catch (Exception e2) { java.util.logging.Logger.getGlobal().log(java.util.logging.Level.INFO, "", e2); fail(e2.getClass().getSimpleName() + " should not be thrown."); } }
(PolygonSymbolizerImpl) styleBuilder.createPolygonSymbolizer(); polySymb.setUnitOfMeasure(uom);
sb.createStyle(sb.createPolygonSymbolizer(null, sb.createFill(Color.GRAY, 0.5)));
@Test public void testMultiSymbolizers() { Symbolizer ls = sb.createLineSymbolizer(sb.createStroke(10.8)); Symbolizer ps = sb.createPolygonSymbolizer(sb.createStroke(12), sb.createFill()); Rule r = sb.createRule(new Symbolizer[] {ls, ps}); MetaBufferEstimator rbe = new MetaBufferEstimator(); rbe.visit(r); assertEquals(12, rbe.getBuffer()); assertTrue(rbe.isEstimateAccurate()); }
public void testMixedEmptyMultiLine() throws SchemaException, IllegalAttributeException { GeometryFactory gf = new GeometryFactory(); StyleBuilder sb = new StyleBuilder(); SimpleFeatureType pointType = DataUtilities.createType("emptyRings", "geom:MultiLineString,name:String"); LineString emptyLine = gf.createLineString((Coordinate[]) null); LineString realLine = gf.createLineString(new Coordinate[] {new Coordinate(0, 0), new Coordinate(1, 1)}); MultiLineString mls = gf.createMultiLineString(new LineString[] {emptyLine, realLine}); SimpleFeature f = SimpleFeatureBuilder.build(pointType, new Object[] {mls, "name"}, null); Style style = sb.createStyle(sb.createPolygonSymbolizer()); renderEmptyGeometry(f, style); }
@Test public void testRescalePolygonMargin() throws Exception { // create a graphic that needs rescaling StyleBuilder sb = new StyleBuilder(); // a graphic fill Fill fill = sb.createFill(); fill.setColor(null); fill.setGraphicFill( sb.createGraphic(null, sb.createMark("square", null, sb.createStroke(2)), null)); // a polygon and line symbolizer using them PolygonSymbolizer polygonSymbolizer = sb.createPolygonSymbolizer(sb.createStroke(), fill); polygonSymbolizer.getOptions().put(PolygonSymbolizer.GRAPHIC_MARGIN_KEY, "1 2 3 4"); // rescale it polygonSymbolizer.accept(visitor); PolygonSymbolizer rps = (PolygonSymbolizer) visitor.getCopy(); Mark rm = (Mark) rps.getFill().getGraphicFill().graphicalSymbols().get(0); assertEquals(4.0, rm.getStroke().getWidth().evaluate(null, Double.class), 0d); assertEquals("2 4 6 8", rps.getOptions().get(PolygonSymbolizer.GRAPHIC_MARGIN_KEY)); } }
|| (geometryAttrType.getType().getBinding() == Polygon.class)) { Fill fill = sb.createFill(color, opacity); symb = sb.createPolygonSymbolizer(defaultStroke, fill); } else if (geometryAttrType.getType().getBinding() == LineString.class) { symb = sb.createLineSymbolizer(color);
@Test public void testPropertyWidth() { Symbolizer ls = sb.createLineSymbolizer( sb.createStroke( sb.colorExpression(Color.BLACK), sb.attributeExpression("gimbo"))); Symbolizer ps = sb.createPolygonSymbolizer(sb.createStroke(12), sb.createFill()); Rule r = sb.createRule(new Symbolizer[] {ls, ps}); MetaBufferEstimator rbe = new MetaBufferEstimator(); rbe.visit(r); assertEquals(12, rbe.getBuffer()); assertTrue(!rbe.isEstimateAccurate()); }
public void testRenderPolygonEmptyRings() throws SchemaException, IllegalAttributeException { GeometryFactory gf = new GeometryFactory(); StyleBuilder sb = new StyleBuilder(); SimpleFeatureType pointType = DataUtilities.createType("emptyRings", "geom:MultiPolygon,name:String"); LinearRing emptyRing = gf.createLinearRing((Coordinate[]) null); LinearRing realRing = gf.createLinearRing( new Coordinate[] { new Coordinate(0, 0), new Coordinate(1, 1), new Coordinate(1, 0), new Coordinate(0, 0) }); Polygon p1 = gf.createPolygon(realRing, new LinearRing[] {emptyRing}); Polygon p2 = gf.createPolygon(emptyRing, new LinearRing[] {emptyRing}); MultiPolygon mp = gf.createMultiPolygon(new Polygon[] {p1, p2}); SimpleFeature f = SimpleFeatureBuilder.build(pointType, new Object[] {mp, "name"}, null); Style style = sb.createStyle(sb.createPolygonSymbolizer()); renderEmptyGeometry(f, style); }
public void testRenderCollectionWithEmptyItems() throws SchemaException, IllegalAttributeException { GeometryFactory gf = new GeometryFactory(); StyleBuilder sb = new StyleBuilder(); SimpleFeatureType pointType = DataUtilities.createType("emptyPolygon", "geom:MultiPolygon,name:String"); Polygon p1 = gf.createPolygon(gf.createLinearRing((Coordinate[]) null), null); Polygon p2 = gf.createPolygon( gf.createLinearRing( new Coordinate[] { new Coordinate(0, 0), new Coordinate(1, 1), new Coordinate(1, 0), new Coordinate(0, 0) }), null); MultiPolygon mp = gf.createMultiPolygon(new Polygon[] {p1, p2}); SimpleFeature f = SimpleFeatureBuilder.build(pointType, new Object[] {mp, "name"}, null); Style style = sb.createStyle(sb.createPolygonSymbolizer()); renderEmptyGeometry(f, style); }
PolygonSymbolizer ps = sb.createPolygonSymbolizer(stroke, fill); ps.setUnitOfMeasure(SI.METRE);