Rule r = styleFactory.createRule(); r.symbolizers().add(sym);
public Rule newRule() { Rule rule = factory.style.createRule(); newFeatureTypeStyle().rules().add(rule); return rule; }
/** * Wrap one or more symbolizers into a Rule / FeatureTypeStyle / Style * * @param symbolizers one or more symbolizer objects * @return a new Style instance or null if no symbolizers are provided */ public static Style wrapSymbolizers(Symbolizer... symbolizers) { if (symbolizers == null || symbolizers.length == 0) { return null; } Rule rule = sf.createRule(); for (Symbolizer sym : symbolizers) { rule.symbolizers().add(sym); } FeatureTypeStyle fts = sf.createFeatureTypeStyle(new Rule[] {rule}); Style style = sf.createStyle(); style.featureTypeStyles().add(fts); return style; } }
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; }
/** * create a simple styling rule, see the SLD Spec for more details of scaleDenominators * * @param symbolizers - an array of symbolizers to use * @param minScaleDenominator - the minimim scale to draw the feature at * @param maxScaleDenominator - the maximum scale to draw the feature at * @return the new rule */ public Rule createRule( Symbolizer[] symbolizers, double minScaleDenominator, double maxScaleDenominator) { Rule r = sf.createRule(); r.setSymbolizers(symbolizers); if (!Double.isNaN(maxScaleDenominator)) { r.setMaxScaleDenominator(maxScaleDenominator); } else { r.setMaxScaleDenominator(Double.POSITIVE_INFINITY); } if (!Double.isNaN(minScaleDenominator)) { r.setMinScaleDenominator(minScaleDenominator); } else { r.setMinScaleDenominator(0.0); } return r; }
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; }
private FeatureTypeStyle fts2() { FeatureTypeStyle fts2 = sf.createFeatureTypeStyle(); Rule rule = sf.createRule(); fts2.addRule(rule); fts2.setFeatureTypeName("feature-type-2"); return fts2; }
private FeatureTypeStyle fts2() { FeatureTypeStyle fts2 = styleFactory.createFeatureTypeStyle(); Rule rule = styleFactory.createRule(); fts2.addRule(rule); fts2.setFeatureTypeName("feature-type-2"); return fts2; }
private FeatureTypeStyle fts2() { FeatureTypeStyle fts2 = sf.createFeatureTypeStyle(); Rule rule = sf.createRule(); fts2.addRule(rule); fts2.setFeatureTypeName("feature-type-2"); return fts2; }
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; } }
descCopy = copy(descCopy); copy = sf.createRule(); copy.setSymbolizers(symsCopy); copy.setDescription(descCopy);
@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}"))); }
@Test public void testFilterEscape() 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("}$"))); 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 < '\\}\\$'}"))); }
public void testFeatureTypeStyle() throws Exception { FeatureTypeStyle fts = styleFactory.createFeatureTypeStyle(); fts.setFeatureTypeName("feature-type"); Rule rule1; rule1 = styleFactory.createRule(); rule1.setName("rule1"); rule1.setFilter(filterFactory.id(Collections.singleton(filterFactory.featureId("FID")))); Rule rule2 = styleFactory.createRule(); rule2.setIsElseFilter(true); rule2.setName("rule2"); fts.addRule(rule1); fts.addRule(rule2); FeatureTypeStyle clone = (FeatureTypeStyle) ((Cloneable) fts).clone(); assertClone(fts, clone); rule1 = styleFactory.createRule(); rule1.setName("rule1"); rule1.setFilter(filterFactory.id(Collections.singleton(filterFactory.featureId("FID")))); FeatureTypeStyle notEq = styleFactory.createFeatureTypeStyle(); notEq.setName("fts-not-equal"); notEq.addRule(rule1); assertEqualsContract(clone, notEq, fts); }
@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); }
public void testRule() throws Exception { Symbolizer symb1 = styleFactory.createLineSymbolizer(styleFactory.getDefaultStroke(), "geometry"); Symbolizer symb2 = styleFactory.createPolygonSymbolizer( styleFactory.getDefaultStroke(), styleFactory.getDefaultFill(), "shape"); Rule rule = styleFactory.createRule(); rule.setSymbolizers(new Symbolizer[] {symb1, symb2}); Rule clone = (Rule) ((Cloneable) rule).clone(); assertClone(rule, clone); symb2 = styleFactory.createPolygonSymbolizer( styleFactory.getDefaultStroke(), styleFactory.getDefaultFill(), "shape"); Rule notEq = styleFactory.createRule(); notEq.setSymbolizers(new Symbolizer[] {symb2}); assertEqualsContract(clone, notEq, rule); symb1 = styleFactory.createLineSymbolizer(styleFactory.getDefaultStroke(), "geometry"); clone.setSymbolizers(new Symbolizer[] {symb1}); assertTrue(!rule.equals(clone)); }
public void testRule() throws Exception { Symbolizer symb1 = sf.createLineSymbolizer(sf.getDefaultStroke(), "geometry"); Symbolizer symb2 = sf.createPolygonSymbolizer(sf.getDefaultStroke(), sf.getDefaultFill(), "shape"); Rule rule = sf.createRule(); rule.setSymbolizers(new Symbolizer[] {symb1, symb2}); rule.accept(visitor); Rule clone = (Rule) visitor.getCopy(); assertCopy(rule, clone); assertEqualsContract(rule, clone); symb2 = sf.createPolygonSymbolizer(sf.getDefaultStroke(), sf.getDefaultFill(), "shape"); Rule notEq = sf.createRule(); notEq.setSymbolizers(new Symbolizer[] {symb2}); assertEqualsContract(clone, notEq, rule); symb1 = sf.createLineSymbolizer(sf.getDefaultStroke(), "geometry"); clone.setSymbolizers(new Symbolizer[] {symb1}); assertTrue(!rule.equals(clone)); }
@Test public void testRule() throws Exception { Symbolizer symb1 = sf.createLineSymbolizer(sf.getDefaultStroke(), "geometry"); Symbolizer symb2 = sf.createPolygonSymbolizer(sf.getDefaultStroke(), sf.getDefaultFill(), "shape"); RasterSymbolizer symb3 = sf.createRasterSymbolizer(); Rule rule = sf.createRule(); rule.setSymbolizers(new Symbolizer[] {symb1, symb2, symb3}); rule.accept(visitor); Rule clone = (Rule) visitor.getCopy(); assertNotNull(clone); }
@Test public void testLegend() throws Exception { StyleFactory sf = CommonFactoryFinder.getStyleFactory(); FilterFactory2 ff = CommonFactoryFinder.getFilterFactory2(); PointSymbolizer p = sf.createPointSymbolizer(); Mark mark = sf.mark(ff.literal("circle"), sf.fill(null, ff.literal("#FF0000"), null), null); p.setGraphic(sf.createGraphic(null, new Mark[] {mark}, null, null, null, null)); Rule rule = sf.createRule(); rule.symbolizers().add(p); ExternalGraphic eg = sf.createExternalGraphic("smileyface.png", "image/png"); rule.setLegend(sf.createGraphic(new ExternalGraphic[] {eg}, null, null, null, null, null)); StringWriter out = new StringWriter(); Ysld.encode(sld(sf.createFeatureTypeStyle(new Rule[] {rule})), out); // System.out.append(out.toString()); YamlMap obj = new YamlMap(YamlUtil.getSafeYaml().load(out.toString())); YamlMap result = obj.seq("feature-styles") .map(0) .seq("rules") .map(0) .map("legend") .seq("symbols") .map(0) .map("external"); assertEquals("smileyface.png", result.str("url")); assertEquals("image/png", result.str("format")); }