public void visit(Style style) { Style copy = null; FeatureTypeStyle[] fts = style.getFeatureTypeStyles(); final int length = fts.length; FeatureTypeStyle[] ftsCopy = new FeatureTypeStyle[length]; for (int i = 0; i < length; i++) { if (fts[i] != null) { fts[i].accept(this); ftsCopy[i] = (FeatureTypeStyle) pages.pop(); } } copy = sf.createStyle(); copy.setAbstract(style.getAbstract()); copy.setName(style.getName()); copy.setTitle(style.getTitle()); copy.setFeatureTypeStyles(ftsCopy); if (STRICT && !copy.equals(style)) { throw new IllegalStateException("Was unable to duplicate provided Style:" + style); } pages.push(copy); }
if (rule.getFilter() != null) { Filter filter = rule.getFilter(); filterCopy = copy(filter); Symbolizer[] symsCopy = rule.getSymbolizers(); for (int i = 0; i < symsCopy.length; i++) { symsCopy[i] = copy(symsCopy[i]); descCopy = copy(descCopy); copy = sf.createRule(); copy.setSymbolizers(symsCopy); copy.setDescription(descCopy); throw new IllegalStateException("Was unable to duplicate provided Rule:" + rule); pages.push(copy);
LineSymbolizer ls = styleFactory.createLineSymbolizer(); ls.setStroke( styleFactory.createStroke( filterFactory.literal(color), filterFactory.literal(2))); PolygonSymbolizer ps = styleFactory.createPolygonSymbolizer(); ps.setFill(styleFactory.createFill(filterFactory.literal(color))); RasterSymbolizer rs = styleFactory.createRasterSymbolizer(); sym = rs; } else { Mark mark = styleFactory.createMark(); mark.setFill(styleFactory.createFill(filterFactory.literal(color))); PointSymbolizer ps = styleFactory.createPointSymbolizer(); ps.setGraphic(styleFactory.createDefaultGraphic()); ps.getGraphic().graphicalSymbols().add(mark); Rule r = styleFactory.createRule(); r.symbolizers().add(sym); FeatureTypeStyle fts = styleFactory.createFeatureTypeStyle(); fts.rules().add(r); Style s = styleFactory.createStyle(); s.featureTypeStyles().add(fts); UserLayer l = styleFactory.createUserLayer(); l.userStyles().add(s);
/** * Convenience method to wrap a UserStyle in a StyledLayerDescriptor object. * * <p>This method wraps the UserStyle in a NamedLayer, and wraps the result in a * StyledLayerDescriptor. * * @param style The UserStyle. * @return The StyledLayerDescriptor. */ public static StyledLayerDescriptor sld(Style style) { StyledLayerDescriptor sld = styleFactory.createStyledLayerDescriptor(); NamedLayer layer = styleFactory.createNamedLayer(); layer.setName(style.getName()); sld.addStyledLayer(layer); layer.addStyle(style); return sld; }
private static Style createStyle() { StyleFactory factory = CommonFactoryFinder.getStyleFactory(null); RasterSymbolizer symbolizer = factory.createRasterSymbolizer(); Rule rule = factory.createRule(); rule.symbolizers().add(symbolizer); final FeatureTypeStyle type = factory.createFeatureTypeStyle(); type.rules().add(rule); Style style = factory.createStyle(); style.featureTypeStyles().add(type); return style; }
@Test public void testFTSVendorOption() throws Exception { PointSymbolizer p = CommonFactoryFinder.getStyleFactory().createPointSymbolizer(); FeatureTypeStyle fts = fts(p); fts.getOptions().put("foo", "bar"); StringWriter out = new StringWriter(); Ysld.encode(sld(fts), out); System.out.append(out.toString()); YamlMap obj = new YamlMap(YamlUtil.getSafeYaml().load(out.toString())); YamlMap result = obj.seq("feature-styles").map(0); assertThat(result.str("x-foo"), equalTo("bar")); }
StyledLayerDescriptor sld = styleFactory.createStyledLayerDescriptor(); UserLayer layer = styleFactory.createUserLayer(); sld.layers().add(layer); Style style = styleFactory.createStyle(); layer.userStyles().add(style); FeatureTypeStyle featureStyle = styleFactory.createFeatureTypeStyle(); style.featureTypeStyles().add(featureStyle); Function rt = filterFactory.function("vec:Heatmap", p1, p2, p3, p4, p5, p6, p7); featureStyle.setTransformation(rt); Rule rule = styleFactory.createRule(); rule.setName("Za'Ha'Dum"); featureStyle.rules().add(rule); StringWriter out = new StringWriter(); Ysld.encode(sld, out); YamlMap obj = new YamlMap(YamlUtil.getSafeYaml().load(out.toString())); YamlMap tx = obj.seq("feature-styles").map(0).map("transform"); assertEquals("vec:Heatmap", tx.get("name")); assertThat(params, yHasEntry("pixelsPerCell", lexEqualTo(10)));
StyledLayerDescriptor sld = sf.createStyledLayerDescriptor(); UserLayer layer = sf.createUserLayer(); sld.layers().add(layer); Style style = sf.createStyle(); layer.userStyles().add(style); FeatureTypeStyle featureStyle = sf.createFeatureTypeStyle(); style.featureTypeStyles().add(featureStyle); Rule rule = sf.createRule(); featureStyle.rules().add(rule); LabelPlacement place = sf.createLinePlacement(ff.literal(10)); sf.textSymbolizer( null, ff.property("geom"), null, null, ff.property("name"), null, place, null, null); rule.symbolizers().add(text); YamlMap yaml = new YamlMap(YamlUtil.getSafeYaml().load(out.toString()));
@Test public void testRenderingTransformation() throws IOException { StyleFactory styleFactory = CommonFactoryFinder.getStyleFactory(); FilterFactory filterFactory = CommonFactoryFinder.getFilterFactory(); StyledLayerDescriptor sld = styleFactory.createStyledLayerDescriptor(); UserLayer layer = styleFactory.createUserLayer(); sld.layers().add(layer); Style style = styleFactory.createStyle(); layer.userStyles().add(style); FeatureTypeStyle featureStyle = styleFactory.createFeatureTypeStyle(); style.featureTypeStyles().add(featureStyle); Function p1 = filterFactory.function("parameter", filterFactory.literal("data")); Function p2 = filterFactory.function( featureStyle.setTransformation(rt); StringWriter out = new StringWriter(); Ysld.encode(sld, out);
@Test public void testFilter() throws Exception { FilterFactory2 filterFactory = CommonFactoryFinder.getFilterFactory2(); StyleFactory styleFactory = CommonFactoryFinder.getStyleFactory(); StyledLayerDescriptor sld = styleFactory.createStyledLayerDescriptor(); UserLayer layer = styleFactory.createUserLayer(); sld.layers().add(layer); Style style = styleFactory.createStyle(); layer.userStyles().add(style); Rule rule = styleFactory.createRule(); rule.setFilter(filterFactory.less(filterFactory.property("foo"), filterFactory.literal(2))); style.featureTypeStyles().add(styleFactory.createFeatureTypeStyle()); style.featureTypeStyles().get(0).rules().add(rule); PointSymbolizer p = styleFactory.createPointSymbolizer(); rule.symbolizers().add((Symbolizer) p); StringWriter out = new StringWriter(); Ysld.encode(sld, out); YamlMap obj = new YamlMap(YamlUtil.getSafeYaml().load(out.toString())); YamlMap result = obj.seq("feature-styles").map(0).seq("rules").map(0); assertThat(result, yHasEntry("filter", equalTo("${foo < 2}"))); }
StyledLayerDescriptor sld = sf.createStyledLayerDescriptor(); UserLayer layer = sf.createUserLayer(); sld.layers().add(layer); Style style = sf.createStyle(); layer.userStyles().add(style); FeatureTypeStyle featureStyle = sf.createFeatureTypeStyle(); style.featureTypeStyles().add(featureStyle); Rule rule = sf.createRule(); featureStyle.rules().add(rule); Stroke stroke = sf.stroke(ff.literal("#555555"), null, null, null, null, null, null); rule.symbolizers().add(sf.lineSymbolizer("line", null, null, null, stroke, null)); Mark mark = sf.mark(ff.literal("circle"), sf.fill(null, ff.literal("#995555"), null), null); List<GraphicalSymbol> symbols = new ArrayList<GraphicalSymbol>(); symbols.add(mark); TextSymbolizer2 text = (TextSymbolizer2) sf.textSymbolizer( null, null); text.setGraphic(sf.graphic(symbols, null, null, null, null, null)); rule.symbolizers().add(text); StringWriter out = new StringWriter(); Ysld.encode(sld, out); YamlMap yaml = new YamlMap(YamlUtil.getSafeYaml().load(out.toString()));
@Test public void testFunction() throws Exception { StyleFactory styleFactory = CommonFactoryFinder.getStyleFactory(); FilterFactory filterFactory = CommonFactoryFinder.getFilterFactory(); StyledLayerDescriptor sld = styleFactory.createStyledLayerDescriptor(); UserLayer layer = styleFactory.createUserLayer(); sld.layers().add(layer); Style style = styleFactory.createStyle(); layer.userStyles().add(style); Rule rule = styleFactory.createRule(); style.featureTypeStyles().add(styleFactory.createFeatureTypeStyle()); style.featureTypeStyles().get(0).rules().add(rule); Function func = filterFactory.function( "strEndsWith", filterFactory.property("foo"), filterFactory.literal("bar")); rule.setFilter(filterFactory.equal(func, filterFactory.literal(true), false)); StringWriter out = new StringWriter(); Ysld.encode(sld, out); YamlMap obj = new YamlMap(YamlUtil.getSafeYaml().load(out.toString())); String filter = obj.seq("feature-styles").map(0).seq("rules").map(0).str("filter"); assertEquals("${strEndsWith(foo,'bar') = true}", filter); }
@Test public void testExpressionNil() throws Exception { PointSymbolizer p = CommonFactoryFinder.getStyleFactory().createPointSymbolizer(); p.getGraphic().setSize(Expression.NIL); StringWriter out = new StringWriter(); Ysld.encode(sld(p), out); // System.out.println(out.toString()); }
public void visit(NamedLayer layer) { NamedLayer copy = null; Style[] style = layer.getStyles(); Style[] styleCopy = new Style[style.length]; int length = style.length; for (int i = 0; i < length; i++) { if (style[i] != null) { style[i].accept(this); styleCopy[i] = (Style) pages.pop(); } } FeatureTypeConstraint[] lfc = layer.getLayerFeatureConstraints(); FeatureTypeConstraint[] lfcCopy = new FeatureTypeConstraint[lfc.length]; length = lfc.length; for (int i = 0; i < length; i++) { if (lfc[i] != null) { lfc[i].accept(this); lfcCopy[i] = (FeatureTypeConstraint) pages.pop(); } } copy = sf.createNamedLayer(); copy.setName(layer.getName()); length = styleCopy.length; for (int i = 0; i < length; i++) { copy.addStyle(styleCopy[i]); } copy.setLayerFeatureConstraints(lfcCopy); pages.push(copy); }
public void visit(StyledLayerDescriptor sld) { StyledLayerDescriptor copy = null; StyledLayer[] layers = sld.getStyledLayers(); StyledLayer[] layersCopy = new StyledLayer[layers.length]; final int length = layers.length; for (int i = 0; i < length; i++) { if (layers[i] instanceof UserLayer) { ((UserLayer) layers[i]).accept(this); layersCopy[i] = (UserLayer) pages.pop(); } else if (layers[i] instanceof NamedLayer) { ((NamedLayer) layers[i]).accept(this); layersCopy[i] = (NamedLayer) pages.pop(); } } copy = sf.createStyledLayerDescriptor(); copy.setAbstract(sld.getAbstract()); copy.setName(sld.getName()); copy.setTitle(sld.getTitle()); copy.setStyledLayers(layersCopy); if (STRICT && !copy.equals(sld)) { throw new IllegalStateException("Was unable to duplicate provided SLD:" + sld); } pages.push(copy); }
public void visit(PolygonSymbolizer poly) { PolygonSymbolizer copy = sf.createPolygonSymbolizer(); copy.setFill(copy(poly.getFill())); copy.setGeometry(copy(poly.getGeometry())); copy.setUnitOfMeasure(poly.getUnitOfMeasure()); copy.setStroke(copy(poly.getStroke())); copy.getOptions().putAll(poly.getOptions()); if (STRICT && !copy.equals(poly)) { throw new IllegalStateException( "Was unable to duplicate provided PolygonSymbolizer:" + poly); } pages.push(copy); }
@Override public void visit(LineSymbolizer line) { String name = line.getGeometryPropertyName(); Stroke stroke = update(line.getStroke()); LineSymbolizer copy = sf.createLineSymbolizer(stroke, name); pages.push(copy); }
private static Style createPointStyle() { StyleFactory sf = CommonFactoryFinder.getStyleFactory(); URL iconUrl = ScreenMapShapefileTest.class.getResource("icon.png"); ExternalGraphic icon = sf.createExternalGraphic(iconUrl, "image/png"); Graphic graphic = sf.createGraphic(new ExternalGraphic[] {icon}, null, null, null, null, null); PointSymbolizer symbolizer = sf.createPointSymbolizer(graphic, "the_geom"); Rule rule = sf.createRule(); rule.symbolizers().add(symbolizer); FeatureTypeStyle fts = sf.createFeatureTypeStyle(); fts.rules().add(rule); Style style = sf.createStyle(); style.featureTypeStyles().add(fts); return style; }
private static Style createDefaultStyle() { Color foreground = Color.darkGray; int thick = 3; // create stroke org.geotools.styling.Stroke stroke = sf.stroke(ff.literal(foreground), null, ff.literal(thick), null, null, null, null); // create line symbolizer LineSymbolizer lineSym = sf.createLineSymbolizer(stroke, null); // create rule Rule r = sf.createRule(); r.symbolizers().add(lineSym); // add it to style Style style = sf.createStyle(); FeatureTypeStyle fts = sf.createFeatureTypeStyle(); fts.rules().add(r); style.featureTypeStyles().add(fts); return style; } }
private FeatureTypeStyle fts(Symbolizer sym) { StyleFactory styleFactory = CommonFactoryFinder.getStyleFactory(); Rule rule = styleFactory.createRule(); FeatureTypeStyle fts = styleFactory.createFeatureTypeStyle(); fts.rules().add(rule); rule.symbolizers().add((Symbolizer) sym); return fts; }