use of org.polymap.core.style.model.feature.PolygonStyle in project polymap4-core by Polymap4.
the class PolygonStyleSerializer method serialize.
@Override
public void serialize(PolygonStyle style, Style result) {
// default symbolizer
PolygonSymbolizer polygon = sf.createPolygonSymbolizer();
polygon.setFill(sf.getDefaultFill());
polygon.setStroke(sf.getDefaultStroke());
FeatureTypeStyle fts = defaultFeatureTypeStyle(result, style, polygon);
fts.setName(style.title.opt().orElse("PolygonStyle"));
fts.getDescription().setTitle(style.title.opt().orElse("PolygonStyle"));
accessor.set(rule -> (PolygonSymbolizer) rule.symbolizers().get(0));
// fill
style.fill.opt().ifPresent(fill -> {
new FillCompositeSerializer(context).accessor.put(rule -> accessor.get().apply(rule).getFill()).serialize(fill, fts);
});
// stroke
style.stroke.opt().ifPresent(stroke -> {
new StrokeCompositeSerializer(context).accessor.put(rule -> accessor.get().apply(rule).getStroke()).serialize(stroke, fts);
});
}
use of org.polymap.core.style.model.feature.PolygonStyle in project polymap4-core by Polymap4.
the class SLDSerializer2 method serialize.
@Override
public org.geotools.styling.Style serialize(Context context) {
FeatureStyle featureStyle = context.featureStyle.get();
List<Style> sorted = featureStyle.members().stream().sorted((s1, s2) -> s1.zPriority.get().compareTo(s2.zPriority.get())).collect(Collectors.toList());
org.geotools.styling.Style result = sf.createStyle();
for (Style style : sorted) {
if (style.active.get()) {
StyleSerializer serializer = null;
if (style instanceof PointStyle) {
serializer = new PointStyleSerializer(context);
} else if (style instanceof PolygonStyle) {
serializer = new PolygonStyleSerializer(context);
} else if (style instanceof TextStyle) {
serializer = new TextStyleSerializer(context);
} else if (style instanceof LineStyle) {
serializer = new LineStyleSerializer(context);
} else if (style instanceof RasterGrayStyle) {
serializer = new RasterSerializer.GraySerializer(context);
} else if (style instanceof RasterRGBStyle) {
serializer = new RasterSerializer.RGBSerializer(context);
} else if (style instanceof RasterColorMapStyle) {
serializer = new RasterSerializer.ColorMapSerializer(context);
} else {
throw new RuntimeException("Unhandled Style type: " + style.getClass().getName());
}
serializer.serialize(style, result);
}
}
return result;
}
use of org.polymap.core.style.model.feature.PolygonStyle in project polymap4-core by Polymap4.
the class StyleModelTest method testPolygon.
@Ignore
@Test
public void testPolygon() throws Exception {
FeatureStyle fs = repo.newFeatureStyle();
// point
PolygonStyle polygon = fs.members().createElement(PolygonStyle.defaults);
assertTrue(polygon.visibleIf.get() instanceof ConstantFilter);
polygon.fill.get().color.createValue(ConstantColor.defaults(1, 2, 3));
polygon.stroke.get().color.createValue(ConstantColor.defaults(100, 100, 100));
polygon.stroke.get().width.createValue(ConstantNumber.defaults(5.0));
polygon.stroke.get().opacity.createValue(FilterMappedPrimitives.defaults()).add(ff.equals(ff.literal(1), ff.literal(1)), 0.1).add(ff.equals(ff.literal(2), ff.literal(2)), 0.2);
polygon.stroke.get().strokeStyle.get().capStyle.createValue(ConstantStrokeCapStyle.defaults());
polygon.stroke.get().strokeStyle.get().dashStyle.createValue(ConstantStrokeDashStyle.defaults());
polygon.stroke.get().strokeStyle.get().joinStyle.createValue(ConstantStrokeJoinStyle.defaults());
fs.store();
log.info("SLD: " + repo.serializedFeatureStyle(fs.id(), String.class));
}
use of org.polymap.core.style.model.feature.PolygonStyle in project polymap4-core by Polymap4.
the class StyleModelTest method testSimplePolygon.
@Test
public void testSimplePolygon() throws Exception {
FeatureStyle fs = repo.newFeatureStyle();
PolygonStyle style = fs.members().createElement(PolygonStyle.defaults);
assertTrue(style.visibleIf.get() instanceof ConstantFilter);
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());
PolygonSymbolizer polygon = (PolygonSymbolizer) rule.symbolizers().get(0);
assertEqualsLiteral(0.5, polygon.getStroke().getOpacity());
assertEqualsLiteral(5.0, polygon.getStroke().getWidth());
assertEqualsLiteral(0.0, polygon.getFill().getOpacity());
}
use of org.polymap.core.style.model.feature.PolygonStyle in project polymap4-core by Polymap4.
the class DefaultStyle method fillPolygonStyle.
public static PolygonStyle fillPolygonStyle(FeatureStyle fs) {
PolygonStyle polygon = fs.members().createElement(PolygonStyle.defaults);
polygon.fill.get().color.createValue(ConstantColor.defaults(randomColor()));
polygon.fill.get().opacity.createValue(ConstantNumber.defaults(0.5));
polygon.stroke.get().color.createValue(ConstantColor.defaults(randomColor()));
polygon.stroke.get().width.createValue(ConstantNumber.defaults(1.0));
polygon.stroke.get().opacity.createValue(ConstantNumber.defaults(1.0));
polygon.stroke.get().strokeStyle.get().capStyle.createValue(ConstantStrokeCapStyle.defaults());
polygon.stroke.get().strokeStyle.get().dashStyle.createValue(ConstantStrokeDashStyle.defaults());
polygon.stroke.get().strokeStyle.get().joinStyle.createValue(ConstantStrokeJoinStyle.defaults());
return polygon;
}
Aggregations