Search in sources :

Example 1 with ConstantFilter

use of org.polymap.core.style.model.feature.ConstantFilter in project polymap4-core by Polymap4.

the class FilterTest method pointWithScale.

@Test
public void pointWithScale() throws Exception {
    FeatureStyle fs = repo.newFeatureStyle();
    // point
    PointStyle point = fs.members().createElement(PointStyle.defaults);
    assertTrue(point.visibleIf.get() instanceof ConstantFilter);
    point.visibleIf.createValue(ScaleRangeFilter.defaults(10000, 500000));
    point.diameter.createValue(ConstantNumber.defaults(23.0));
    fs.store();
    log.info("SLD: " + repo.serializedFeatureStyle(fs.id(), String.class));
    org.geotools.styling.Style style = repo.serializedFeatureStyle(fs.id(), org.geotools.styling.Style.class).get();
    Rule rule = style.featureTypeStyles().get(0).rules().get(0);
    assertEquals(10000.0d, rule.getMinScaleDenominator(), 0);
    assertEquals(500000.0d, rule.getMaxScaleDenominator(), 0);
    PointSymbolizer sym = (PointSymbolizer) rule.getSymbolizers()[0];
    assertEquals(SLDSerializer2.ff.literal(23.0), sym.getGraphic().getSize());
}
Also used : PointSymbolizer(org.geotools.styling.PointSymbolizer) PointStyle(org.polymap.core.style.model.feature.PointStyle) ConstantFilter(org.polymap.core.style.model.feature.ConstantFilter) FeatureStyle(org.polymap.core.style.model.FeatureStyle) PointStyle(org.polymap.core.style.model.feature.PointStyle) Rule(org.geotools.styling.Rule) FeatureStyle(org.polymap.core.style.model.FeatureStyle) Test(org.junit.Test)

Example 2 with ConstantFilter

use of org.polymap.core.style.model.feature.ConstantFilter in project polymap4-core by Polymap4.

the class StyleModelTest method testSimpleLine.

@Test
public void testSimpleLine() throws Exception {
    FeatureStyle fs = repo.newFeatureStyle();
    LineStyle style = fs.members().createElement(LineStyle.defaults);
    assertTrue(style.visibleIf.get() instanceof ConstantFilter);
    style.fill.get().color.createValue(ConstantColor.defaults(0, 0, 0));
    style.fill.get().width.createValue(ConstantNumber.defaults(5.0));
    style.fill.get().opacity.createValue(ConstantNumber.defaults(0.0));
    style.stroke.get().color.createValue(ConstantColor.defaults(100, 100, 100));
    style.stroke.get().width.createValue(ConstantNumber.defaults(5.0));
    style.stroke.get().opacity.createValue(ConstantNumber.defaults(0.5));
    fs.store();
    log.info("SLD: " + repo.serializedFeatureStyle(fs.id(), String.class));
    Style result = repo.serializedFeatureStyle(fs.id(), Style.class).get();
    assertEquals(1, result.featureTypeStyles().size());
    FeatureTypeStyle fts = result.featureTypeStyles().get(0);
    assertEquals(1, fts.rules().size());
    Rule rule = fts.rules().get(0);
    assertEquals(0, rule.getMinScaleDenominator(), 0);
    assertEquals(Double.POSITIVE_INFINITY, rule.getMaxScaleDenominator(), 0);
    assertEquals(2, rule.symbolizers().size());
    assertNull(rule.getFilter());
    LineSymbolizer strokeLine = (LineSymbolizer) rule.symbolizers().get(0);
    assertEqualsLiteral(0.5, strokeLine.getStroke().getOpacity());
    assertEqualsLiteral(15.0, strokeLine.getStroke().getWidth());
    LineSymbolizer fillLine = (LineSymbolizer) rule.symbolizers().get(1);
    assertEqualsLiteral(0.0, fillLine.getStroke().getOpacity());
    assertEqualsLiteral(5.0, fillLine.getStroke().getWidth());
}
Also used : LineStyle(org.polymap.core.style.model.feature.LineStyle) LineSymbolizer(org.geotools.styling.LineSymbolizer) ConstantFilter(org.polymap.core.style.model.feature.ConstantFilter) Style(org.geotools.styling.Style) ConstantStrokeDashStyle(org.polymap.core.style.model.feature.ConstantStrokeDashStyle) ConstantStrokeJoinStyle(org.polymap.core.style.model.feature.ConstantStrokeJoinStyle) FeatureStyle(org.polymap.core.style.model.FeatureStyle) PolygonStyle(org.polymap.core.style.model.feature.PolygonStyle) TextStyle(org.polymap.core.style.model.feature.TextStyle) ConstantStrokeCapStyle(org.polymap.core.style.model.feature.ConstantStrokeCapStyle) StrokeDashStyle(org.polymap.core.style.model.feature.StrokeDashStyle) FeatureTypeStyle(org.geotools.styling.FeatureTypeStyle) PointStyle(org.polymap.core.style.model.feature.PointStyle) LineStyle(org.polymap.core.style.model.feature.LineStyle) FeatureTypeStyle(org.geotools.styling.FeatureTypeStyle) Rule(org.geotools.styling.Rule) FeatureStyle(org.polymap.core.style.model.FeatureStyle) Test(org.junit.Test)

Example 3 with ConstantFilter

use of org.polymap.core.style.model.feature.ConstantFilter in project polymap4-core by Polymap4.

the class StyleModelTest method testSimplePoint.

@Test
public void testSimplePoint() throws Exception {
    FeatureStyle fs = repo.newFeatureStyle();
    PointStyle style = fs.members().createElement(PointStyle.defaults);
    assertTrue(style.visibleIf.get() instanceof ConstantFilter);
    style.diameter.createValue(ConstantNumber.defaults(100.0));
    style.rotation.createValue(ConstantNumber.defaults(45.0));
    style.fill.get().color.createValue(ConstantColor.defaults(0, 0, 0));
    style.fill.get().opacity.createValue(ConstantNumber.defaults(0.0));
    style.stroke.get().color.createValue(ConstantColor.defaults(100, 100, 100));
    style.stroke.get().width.createValue(ConstantNumber.defaults(5.0));
    style.stroke.get().opacity.createValue(ConstantNumber.defaults(0.5));
    fs.store();
    log.info("SLD: " + repo.serializedFeatureStyle(fs.id(), String.class));
    Style result = repo.serializedFeatureStyle(fs.id(), Style.class).get();
    assertEquals(1, result.featureTypeStyles().size());
    FeatureTypeStyle fts = result.featureTypeStyles().get(0);
    assertEquals(1, fts.rules().size());
    Rule rule = fts.rules().get(0);
    assertEquals(0, rule.getMinScaleDenominator(), 0);
    assertEquals(Double.POSITIVE_INFINITY, rule.getMaxScaleDenominator(), 0);
    assertEquals(1, rule.symbolizers().size());
    assertNull(rule.getFilter());
    PointSymbolizer sym = (PointSymbolizer) rule.symbolizers().get(0);
    assertEqualsLiteral(100.0, sym.getGraphic().getSize());
    assertEqualsLiteral(45.0, sym.getGraphic().getRotation());
    assertEquals(1, sym.getGraphic().graphicalSymbols().size());
    GraphicalSymbol symbol = sym.getGraphic().graphicalSymbols().get(0);
    Mark mark = (Mark) symbol;
    assertEqualsLiteral(0.0, mark.getFill().getOpacity());
    assertEqualsLiteral(0.5, mark.getStroke().getOpacity());
    assertEqualsLiteral(5.0, mark.getStroke().getWidth());
}
Also used : PointSymbolizer(org.geotools.styling.PointSymbolizer) PointStyle(org.polymap.core.style.model.feature.PointStyle) GraphicalSymbol(org.opengis.style.GraphicalSymbol) ConstantFilter(org.polymap.core.style.model.feature.ConstantFilter) Style(org.geotools.styling.Style) ConstantStrokeDashStyle(org.polymap.core.style.model.feature.ConstantStrokeDashStyle) ConstantStrokeJoinStyle(org.polymap.core.style.model.feature.ConstantStrokeJoinStyle) FeatureStyle(org.polymap.core.style.model.FeatureStyle) PolygonStyle(org.polymap.core.style.model.feature.PolygonStyle) TextStyle(org.polymap.core.style.model.feature.TextStyle) ConstantStrokeCapStyle(org.polymap.core.style.model.feature.ConstantStrokeCapStyle) StrokeDashStyle(org.polymap.core.style.model.feature.StrokeDashStyle) FeatureTypeStyle(org.geotools.styling.FeatureTypeStyle) PointStyle(org.polymap.core.style.model.feature.PointStyle) LineStyle(org.polymap.core.style.model.feature.LineStyle) Mark(org.geotools.styling.Mark) FeatureTypeStyle(org.geotools.styling.FeatureTypeStyle) Rule(org.geotools.styling.Rule) FeatureStyle(org.polymap.core.style.model.FeatureStyle) Test(org.junit.Test)

Example 4 with ConstantFilter

use of org.polymap.core.style.model.feature.ConstantFilter in project polymap4-core by Polymap4.

the class StyleModelTest method testFeatureBasedPoint.

@Ignore
@Test
public void testFeatureBasedPoint() throws Exception {
    FeatureStyle fs = repo.newFeatureStyle();
    // point
    PointStyle point = fs.members().createElement(PointStyle.defaults);
    assertTrue(point.visibleIf.get() instanceof ConstantFilter);
    point.diameter.createValue(ConstantNumber.defaults(23.0));
    fs.store();
    log.info("SLD: " + repo.serializedFeatureStyle(fs.id(), String.class));
    Style style = repo.serializedFeatureStyle(fs.id(), Style.class).get();
    PointSymbolizer sym = (PointSymbolizer) style.featureTypeStyles().get(0).rules().get(0).symbolizers().get(0);
    assertEquals(ff.literal(23.0), sym.getGraphic().getSize());
    point.diameter.createValue(AttributeValue.defaults("foo", null, null));
    fs.store();
    log.info("SLD: " + repo.serializedFeatureStyle(fs.id(), String.class));
    style = repo.serializedFeatureStyle(fs.id(), Style.class).get();
    sym = (PointSymbolizer) style.featureTypeStyles().get(0).rules().get(0).getSymbolizers()[0];
    assertEquals(ff.property("foo"), sym.getGraphic().getSize());
    point.diameter.createValue(ConstantNumber.defaults(42.0));
    fs.store();
    log.info("SLD: " + repo.serializedFeatureStyle(fs.id(), String.class));
    style = repo.serializedFeatureStyle(fs.id(), Style.class).get();
    sym = (PointSymbolizer) style.featureTypeStyles().get(0).rules().get(0).symbolizers().get(0);
    assertEquals(ff.literal(42.0), sym.getGraphic().getSize());
}
Also used : PointSymbolizer(org.geotools.styling.PointSymbolizer) PointStyle(org.polymap.core.style.model.feature.PointStyle) ConstantFilter(org.polymap.core.style.model.feature.ConstantFilter) Style(org.geotools.styling.Style) ConstantStrokeDashStyle(org.polymap.core.style.model.feature.ConstantStrokeDashStyle) ConstantStrokeJoinStyle(org.polymap.core.style.model.feature.ConstantStrokeJoinStyle) FeatureStyle(org.polymap.core.style.model.FeatureStyle) PolygonStyle(org.polymap.core.style.model.feature.PolygonStyle) TextStyle(org.polymap.core.style.model.feature.TextStyle) ConstantStrokeCapStyle(org.polymap.core.style.model.feature.ConstantStrokeCapStyle) StrokeDashStyle(org.polymap.core.style.model.feature.StrokeDashStyle) FeatureTypeStyle(org.geotools.styling.FeatureTypeStyle) PointStyle(org.polymap.core.style.model.feature.PointStyle) LineStyle(org.polymap.core.style.model.feature.LineStyle) FeatureStyle(org.polymap.core.style.model.FeatureStyle) Ignore(org.junit.Ignore) Test(org.junit.Test)

Example 5 with ConstantFilter

use of org.polymap.core.style.model.feature.ConstantFilter in project polymap4-core by Polymap4.

the class StyleCompositeSerializer method defaultFeatureTypeStyle.

protected FeatureTypeStyle defaultFeatureTypeStyle(org.geotools.styling.Style result, Style style, Symbolizer... symbolizers) {
    Rule rule = sf.createRule();
    // handle visibleIf
    FilterStyleProperty visibleIf = (FilterStyleProperty) style.visibleIf.get();
    if (visibleIf instanceof ScaleRangeFilter) {
        rule.setMinScaleDenominator(((ScaleRangeFilter) visibleIf).minScale.get());
        rule.setMaxScaleDenominator(((ScaleRangeFilter) visibleIf).maxScale.get());
    } else if (visibleIf instanceof ConstantFilter) {
        Filter filter = ((ConstantFilter) visibleIf).filter();
        if (!filter.equals(Filter.INCLUDE)) {
            rule.setFilter(filter);
        }
    } else {
        throw new RuntimeException("Unhandled Style.visibleIf type: " + visibleIf.getClass());
    }
    for (Symbolizer s : symbolizers) {
        rule.symbolizers().add(s);
    }
    ;
    FeatureTypeStyle fts = sf.createFeatureTypeStyle();
    fts.rules().add(rule);
    result.featureTypeStyles().add(fts);
    return fts;
}
Also used : ScaleRangeFilter(org.polymap.core.style.model.feature.ScaleRangeFilter) ConstantFilter(org.polymap.core.style.model.feature.ConstantFilter) Filter(org.opengis.filter.Filter) FilterStyleProperty(org.polymap.core.style.model.feature.FilterStyleProperty) ConstantFilter(org.polymap.core.style.model.feature.ConstantFilter) FeatureTypeStyle(org.geotools.styling.FeatureTypeStyle) Rule(org.geotools.styling.Rule) Symbolizer(org.geotools.styling.Symbolizer) ScaleRangeFilter(org.polymap.core.style.model.feature.ScaleRangeFilter)

Aggregations

ConstantFilter (org.polymap.core.style.model.feature.ConstantFilter)8 Test (org.junit.Test)7 FeatureStyle (org.polymap.core.style.model.FeatureStyle)7 Rule (org.geotools.styling.Rule)6 PointStyle (org.polymap.core.style.model.feature.PointStyle)6 FeatureTypeStyle (org.geotools.styling.FeatureTypeStyle)5 PolygonStyle (org.polymap.core.style.model.feature.PolygonStyle)5 PointSymbolizer (org.geotools.styling.PointSymbolizer)4 Style (org.geotools.styling.Style)4 ConstantStrokeCapStyle (org.polymap.core.style.model.feature.ConstantStrokeCapStyle)4 ConstantStrokeDashStyle (org.polymap.core.style.model.feature.ConstantStrokeDashStyle)4 ConstantStrokeJoinStyle (org.polymap.core.style.model.feature.ConstantStrokeJoinStyle)4 LineStyle (org.polymap.core.style.model.feature.LineStyle)4 StrokeDashStyle (org.polymap.core.style.model.feature.StrokeDashStyle)4 TextStyle (org.polymap.core.style.model.feature.TextStyle)4 Ignore (org.junit.Ignore)2 LineSymbolizer (org.geotools.styling.LineSymbolizer)1 Mark (org.geotools.styling.Mark)1 PolygonSymbolizer (org.geotools.styling.PolygonSymbolizer)1 Symbolizer (org.geotools.styling.Symbolizer)1