/** * Retrieve the width of a Stroke object. * * @param stroke the Stroke object. * @return width or {@linkplain #NOTFOUND} if not available. */ public static int width(Stroke stroke) { if (stroke == null) { return NOTFOUND; } return Filters.asInt(stroke.getWidth()); }
/** * Retrieves the outline width from a PolygonSymbolizer * * <p>If you are using something fun like rules you will need to do your own thing. * * @param symbolizer Polygon symbolizer information. * @return outline width or {@linkplain #NOTFOUND} if unavailable. */ public static int polyWidth(PolygonSymbolizer symbolizer) { if (symbolizer == null) { return NOTFOUND; } Stroke stroke = symbolizer.getStroke(); if (stroke != null) { return Filters.asInt(stroke.getWidth()); } return NOTFOUND; }
/** * Retrieves the size of the point's graphic, if found. * * <p>If you are using something fun like symbols you will need to do your own thing. * * @param symbolizer Point symbolizer information. * @return size of the graphic or {@linkplain #NOTFOUND} */ public static int pointSize(PointSymbolizer symbolizer) { if (symbolizer == null) { return NOTFOUND; } Graphic g = symbolizer.getGraphic(); if (g == null) { return NOTFOUND; } Expression exp = g.getSize(); return Filters.asInt(exp); }
Expression exp = stroke.getWidth(); if (exp != null) { int width = Filters.asInt(exp); if (width != NOTFOUND) { return width;
@Test public void testPointWithGraphic() throws Exception { // <UserStyle> // <Title>GeoServer SLD Cook Book: Point as graphic</Title> // <FeatureTypeStyle> // <Rule> // <PointSymbolizer> // <Graphic> // <ExternalGraphic> // <OnlineResource // xlink:type="simple" // xlink:href="smileyface.png" /> // <Format>image/png</Format> // </ExternalGraphic> // <Size>32</Size> // </Graphic> // </PointSymbolizer> // </Rule> // </FeatureTypeStyle> // </UserStyle> Style style = parse("point", "graphic.sld"); Graphic graphic = SLD.graphic(SLD.pointSymbolizer(style)); assertEquals(32, Filters.asInt(graphic.getSize())); ExternalGraphic external = (ExternalGraphic) graphic.graphicalSymbols().get(0); assertEquals("smileyface.png", external.getLocation().getPath()); assertEquals("image/png", external.getFormat()); }
@Test public void testRasterWithAlphaChannel() throws Exception { // <UserStyle> // <Title>SLD Cook Book: Alpha channel</Title> // <FeatureTypeStyle> // <Rule> // <RasterSymbolizer> // <ColorMap> // <ColorMapEntry color="#008000" quantity="70" /> // <ColorMapEntry color="#008000" quantity="256" opacity="0"/> // </ColorMap> // </RasterSymbolizer> // </Rule> // </FeatureTypeStyle> // </UserStyle> Style style = parse("raster", "alpha-channel.sld"); RasterSymbolizer raster = SLD.rasterSymbolizer(style); ColorMapEntry e = raster.getColorMap().getColorMapEntry(0); assertEquals("#008000", Filters.asString(e.getColor())); assertEquals(70, Filters.asInt(e.getQuantity())); e = raster.getColorMap().getColorMapEntry(1); assertEquals("#008000", Filters.asString(e.getColor())); assertEquals(256, Filters.asInt(e.getQuantity())); assertEquals(0, Filters.asInt(e.getOpacity())); }
assertEquals("file:colorblocks.png", external.getLocation().toString()); assertEquals("image/png", external.getFormat()); assertEquals(93, Filters.asInt(g.getSize()));
@Test public void testRasterWithDiscreteColors() throws Exception { // <UserStyle> // <Title>SLD Cook Book: Discrete colors</Title> // <FeatureTypeStyle> // <Rule> // <RasterSymbolizer> // <ColorMap type="intervals"> // <ColorMapEntry color="#008000" quantity="150" /> // <ColorMapEntry color="#663333" quantity="256" /> // </ColorMap> // </RasterSymbolizer> // </Rule> // </FeatureTypeStyle> // </UserStyle> Style style = parse("raster", "discrete-colors.sld"); RasterSymbolizer raster = SLD.rasterSymbolizer(style); ColorMapEntry e = raster.getColorMap().getColorMapEntry(0); assertEquals("#008000", Filters.asString(e.getColor())); assertEquals(150, Filters.asInt(e.getQuantity())); e = raster.getColorMap().getColorMapEntry(1); assertEquals("#663333", Filters.asString(e.getColor())); assertEquals(256, Filters.asInt(e.getQuantity())); }
@Test public void testRasterWithThreeColorGradient() throws Exception { // <UserStyle> // <Title>SLD Cook Book: Three color gradient</Title> // <FeatureTypeStyle> // <Rule> // <RasterSymbolizer> // <ColorMap> // <ColorMapEntry color="#0000FF" quantity="150" /> // <ColorMapEntry color="#FFFF00" quantity="200" /> // <ColorMapEntry color="#FF0000" quantity="250" /> // </ColorMap> // </RasterSymbolizer> // </Rule> // </FeatureTypeStyle> // </UserStyle> Style style = parse("raster", "three-color-gradient.sld"); RasterSymbolizer raster = SLD.rasterSymbolizer(style); ColorMapEntry e = raster.getColorMap().getColorMapEntry(0); assertEquals("#0000FF", Filters.asString(e.getColor())); assertEquals(150, Filters.asInt(e.getQuantity())); e = raster.getColorMap().getColorMapEntry(1); assertEquals("#FFFF00", Filters.asString(e.getColor())); assertEquals(200, Filters.asInt(e.getQuantity())); e = raster.getColorMap().getColorMapEntry(2); assertEquals("#FF0000", Filters.asString(e.getColor())); assertEquals(250, Filters.asInt(e.getQuantity())); }
@Test public void testRasterWithTwoColorGradient() throws Exception { // <UserStyle> // <Title>SLD Cook Book: Two color gradient</Title> // <FeatureTypeStyle> // <Rule> // <RasterSymbolizer> // <ColorMap> // <ColorMapEntry color="#008000" quantity="70" /> // <ColorMapEntry color="#663333" quantity="256" /> // </ColorMap> // </RasterSymbolizer> // </Rule> // </FeatureTypeStyle> // </UserStyle> Style style = parse("raster", "two-color-gradient.sld"); RasterSymbolizer raster = SLD.rasterSymbolizer(style); ColorMapEntry e = raster.getColorMap().getColorMapEntry(0); assertEquals("#008000", Filters.asString(e.getColor())); assertEquals(70, Filters.asInt(e.getQuantity())); e = raster.getColorMap().getColorMapEntry(1); assertEquals("#663333", Filters.asString(e.getColor())); assertEquals(256, Filters.asInt(e.getQuantity())); }
assertEquals(95, Filters.asInt(e.getQuantity())); assertEquals(110, Filters.asInt(e.getQuantity())); assertEquals(135, Filters.asInt(e.getQuantity())); assertEquals(160, Filters.asInt(e.getQuantity())); assertEquals(185, Filters.asInt(e.getQuantity())); assertEquals(210, Filters.asInt(e.getQuantity())); assertEquals(235, Filters.asInt(e.getQuantity())); assertEquals(256, Filters.asInt(e.getQuantity()));
@Test public void testRasterWithTransparentGradient() throws Exception { // <UserStyle> // <Title>SLD Cook Book: Transparent gradient</Title> // <FeatureTypeStyle> // <Rule> // <RasterSymbolizer> // <Opacity>0.3</Opacity> // <ColorMap> // <ColorMapEntry color="#008000" quantity="70" /> // <ColorMapEntry color="#663333" quantity="256" /> // </ColorMap> // </RasterSymbolizer> // </Rule> // </FeatureTypeStyle> // </UserStyle> Style style = parse("raster", "transparent-gradient.sld"); RasterSymbolizer raster = SLD.rasterSymbolizer(style); assertEquals(0.3, Filters.asDouble(raster.getOpacity()), 0.1); ColorMapEntry e = raster.getColorMap().getColorMapEntry(0); assertEquals("#008000", Filters.asString(e.getColor())); assertEquals(70, Filters.asInt(e.getQuantity())); e = raster.getColorMap().getColorMapEntry(1); assertEquals("#663333", Filters.asString(e.getColor())); assertEquals(256, Filters.asInt(e.getQuantity())); }
assertEquals(32, Filters.asInt(legend.getSize()));
assertEquals(10, Filters.asInt(font.getSize())); assertEquals("normal", Filters.asString(font.getStyle())); assertEquals("bold", Filters.asString(font.getWeight()));
assertEquals(1, SLD.width(mark.getStroke())); assertEquals(12, Filters.asInt(g.getSize()));
@Test public void testPointWithRotation() throws Exception { // <UserStyle> // <Title>GeoServer SLD Cook Book: Rotated square</Title> // <FeatureTypeStyle> // <Rule> // <PointSymbolizer> // <Graphic> // <Mark> // <WellKnownName>square</WellKnownName> // <Fill> // <CssParameter name="fill">#009900</CssParameter> // </Fill> // </Mark> // <Size>12</Size> // <Rotation>45</Rotation> // </Graphic> // </PointSymbolizer> // </Rule> // </FeatureTypeStyle> // </UserStyle> Style style = parse("point", "rotated-square.sld"); PointSymbolizer point = SLD.pointSymbolizer(style); assertEquals("square", SLD.wellKnownName(SLD.mark(point))); assertEquals(color("009900"), SLD.color(SLD.fill(point))); assertEquals(12, SLD.pointSize(point)); assertEquals(45, Filters.asInt(SLD.graphic(point).getRotation())); }
assertEquals(1, SLD.width(mark.getStroke())); assertEquals(16, Filters.asInt(poly.getFill().getGraphicFill().getSize()));