Package org.geotools.se.v1_1

Source Code of org.geotools.se.v1_1.SEExampleTest

/*
*    GeoTools - The Open Source Java GIS Toolkit
*    http://geotools.org
*
*    (C) 2002-2010, Open Source Geospatial Foundation (OSGeo)
*
*    This library is free software; you can redistribute it and/or
*    modify it under the terms of the GNU Lesser General Public
*    License as published by the Free Software Foundation;
*    version 2.1 of the License.
*
*    This library is distributed in the hope that it will be useful,
*    but WITHOUT ANY WARRANTY; without even the implied warranty of
*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
*    Lesser General Public License for more details.
*/
package org.geotools.se.v1_1;

import java.awt.Color;
import java.awt.image.BufferedImage;
import java.util.List;

import org.geotools.feature.simple.SimpleFeatureBuilder;
import org.geotools.feature.simple.SimpleFeatureTypeBuilder;
import org.geotools.styling.ColorMap;
import org.geotools.styling.ExternalGraphic;
import org.geotools.styling.ExternalMark;
import org.geotools.styling.FeatureTypeStyle;
import org.geotools.styling.Fill;
import org.geotools.styling.Font;
import org.geotools.styling.Graphic;
import org.geotools.styling.LineSymbolizer;
import org.geotools.styling.Mark;
import org.geotools.styling.PointSymbolizer;
import org.geotools.styling.PolygonSymbolizer;
import org.geotools.styling.RasterSymbolizer;
import org.geotools.styling.SLD;
import org.geotools.styling.SelectedChannelType;
import org.geotools.styling.Stroke;
import org.geotools.styling.TextSymbolizer;
import org.geotools.styling.UomOgcMapping;
import org.geotools.xml.Parser;
import org.opengis.feature.simple.SimpleFeature;
import org.opengis.filter.expression.Function;
import org.opengis.style.ContrastMethod;
import org.opengis.style.OverlapBehavior;
import org.opengis.style.Rule;

/**
*
*
* @source $URL$
*/
public class SEExampleTest extends SETestSupport {

    SimpleFeature f1;
   
    @Override
    protected void setUp() throws Exception {
        SimpleFeatureTypeBuilder tb = new SimpleFeatureTypeBuilder();
        tb.setName("test");
        tb.add("hospitalName", String.class);
        tb.add("numberOfBeds", Integer.class);
       
        SimpleFeatureBuilder b = new SimpleFeatureBuilder(tb.buildFeatureType());
        b.add("foobar");
        b.add(10);
        f1 = b.buildFeature(null);
    }
   
    public void testParsePointSymbolizer1() throws Exception {
        /*<PointSymbolizer version="1.1.0" xsi:schemaLocation="http://www.opengis.net/se/1.1.0/Symbolizer.xsd" xmlns="http://www.opengis.net/se" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" uom="http://www.opengeospatial.org/se/units/metre">
        <Name>MyPointSymbolizer</Name>
        <Description>
            <Title>Example Pointsymbolizer</Title>
            <Abstract>This is just a simple example of a point symbolizer.</Abstract>
        </Description>
        <Graphic>
            <Mark>
                <WellKnownName>star</WellKnownName>
                <Fill>
                    <SvgParameter name="fill">#ff0000</SvgParameter>
                </Fill>
            </Mark>
            <Size>8.0</Size>
        </Graphic>
       </PointSymbolizer>*/

        PointSymbolizer sym = (PointSymbolizer) parse("example-pointsymbolizer1.xml");
        assertEquals("Example Pointsymbolizer", sym.getDescription().getTitle().toString());
        assertEquals("This is just a simple example of a point symbolizer.",
                sym.getDescription().getAbstract().toString());
       
        Graphic g = sym.getGraphic();
        assertEquals(8.0, g.getSize().evaluate(null, Double.class));
        assertEquals(1, g.getMarks().length);
       
        Mark m = g.getMarks()[0];
        assertEquals("star", m.getWellKnownName().evaluate(null, String.class));
        Color c = m.getFill().getColor().evaluate(null, Color.class);
        assertEquals(255, c.getRed());
    }
   
    public void testParsePointSymbolizer2() throws Exception {
     /*<PointSymbolizer version="1.1.0" xsi:schemaLocation="http://www.opengis.net/se http://www.opengis.net/se/1.1.0/Symbolizer.xsd" xmlns="http://www.opengis.net/se" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" uom="http://www.opengeospatial.org/se/units/pixel">
        <Name>MyPointSymbolizer</Name>
        <Description>
            <Title>Example Pointsymbolizer</Title>
            <Abstract>This is just a simple example of a point symbolizer.</Abstract>
        </Description>
        <Graphic>
            <ExternalGraphic>
              <OnlineResource xlink:type="simple" xlink:href="http://www.vendor.com/geosym/2267.svg"/>
              <Format>image/svg+xml</Format>
            </ExternalGraphic>
            <ExternalGraphic>
              <OnlineResource xlink:type="simple" xlink:href="http://www.vendor.com/geosym/2267.png"/>
              <Format>image/png</Format>
            </ExternalGraphic>
            <Mark/>
            <Size>15.0</Size>
        </Graphic>
    </PointSymbolizer>*/
       
        PointSymbolizer sym = (PointSymbolizer) parse("example-pointsymbolizer2.xml");
        assertEquals("MyPointSymbolizer", sym.getName());
        assertEquals("Example Pointsymbolizer", sym.getDescription().getTitle().toString());
        assertEquals("This is just a simple example of a point symbolizer.",
                sym.getDescription().getAbstract().toString());
       
        Graphic g = sym.getGraphic();
        assertEquals(15.0, g.getSize().evaluate(null, Double.class));
        assertEquals(2, g.getExternalGraphics().length);
       
        ExternalGraphic eg = g.getExternalGraphics()[0];
        assertEquals("http://www.vendor.com/geosym/2267.svg", eg.getLocation().toString());
        assertEquals("image/svg+xml", eg.getFormat());
       
        eg = g.getExternalGraphics()[1];
        assertEquals("http://www.vendor.com/geosym/2267.png", eg.getLocation().toString());
        assertEquals("image/png", eg.getFormat());
    }

    public void testParsePointSymbolizer3() throws Exception {
        /*<PointSymbolizer version="1.1.0" xmlns="http://www.opengis.net/se" uom="http://www.opengeospatial.org/se/units/pixel">
              <Name>MyPointSymbolizer</Name>
              <Description>
                  <Title>Example Pointsymbolizer</Title>
                  <Abstract>This is just a simple example of a point symbolizer.</Abstract>
              </Description>
              <Graphic>
                  <ExternalGraphic>
                      <InlineContent encoding="base64"> iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAK3RFWHRDcmVhdGlvbiBUaW1lAFd0IDE0IHdyeiAyMDEwIDEyOjA2OjAyICswMTAweoAlkgAAAAd0SU1FB9oJDgo6HdmGt90AAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAEZ0FNQQAAsY8L/GEFAAABfklEQVR42mP8//8/AwYACn779o2bmxtTiokBG9iwboOfq9+1K9eI0vDp06cZk2e8ffp2zuQ5mPZj0bB963aGLwxTI6YdO3QMiyX/UcHz58/tLeyXZ674O+NfgVthWnTaz58/kRWg27B8yXKu31yeGp6MjIwpVimnjp86fvg4Tic9ffp0zfI1ZU7lfBx8QK6WpFasSdzMiTN//fqFRQPQusULFsvzyFsqWMIFw4zDHt5+uH/Xfiwarl27tnj+4nSzdDYWNrigtIB0iF5IZ1MnMOhQNACNnztjrq64roWiJQMqCDUO+/D6w/YN21E0XLp06fD+w3l2+cjGwy1Jt82YO3Pe+/fvoRqAfupq6bKVs7VQsMAa8REmEf8+/V04fSFUw/Hjxy+cvZBklgwMSqwagIGWYpm6cOEiYDCyAI2fPnG6mrD6n39/Lj25xIADAB325/vvVQtXsXz58uX7z+8vfr7I2ZrNgBew87HfvnebERg+X79+/ffvHwMRgJWVFQBa4Mt756r78AAAAABJRU5ErkJggg==</InlineContent>
                      <Format>image/png</Format>
                  </ExternalGraphic>
                  <Size>15.0</Size>
              </Graphic>
          </PointSymbolizer>*/
        BufferedImage referenceImage = getReferenceImage("inlineContent-image.png");

        PointSymbolizer sym = (PointSymbolizer) parse("example-pointsymbolizer3.xml");
        assertEquals("MyPointSymbolizer", sym.getName());
        assertEquals("Example Pointsymbolizer", sym.getDescription().getTitle().toString());
        assertEquals("This is just a simple example of a point symbolizer.",
                sym.getDescription().getAbstract().toString());

        Graphic g = sym.getGraphic();
        assertEquals(15.0, g.getSize().evaluate(null, Double.class));
        assertEquals(1, g.graphicalSymbols().size());

        ExternalGraphic eg = (ExternalGraphic) g.graphicalSymbols().get(0);
        assertNull(eg.getLocation());
        assertEquals("image/png", eg.getFormat());
        assertImagesEqual(referenceImage, eg.getInlineContent());
        assertNull(eg.getLocation());
    }

    public void testParsePointSymbolizer4() throws Exception {
        /*<PointSymbolizer version="1.1.0" xmlns="http://www.opengis.net/se" uom="http://www.opengeospatial.org/se/units/pixel">
              <Name>MyPointSymbolizer</Name>
              <Description>
                  <Title>Example Pointsymbolizer</Title>
                  <Abstract>This is just a simple example of a point symbolizer.</Abstract>
              </Description>
              <Graphic>
                  <Mark>
                      <InlineContent encoding="base64">iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAK3RFWHRDcmVhdGlvbiBUaW1lAFd0IDE0IHdyeiAyMDEwIDEyOjA2OjAyICswMTAweoAlkgAAAAd0SU1FB9oJDgo6HdmGt90AAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAEZ0FNQQAAsY8L/GEFAAABfklEQVR42mP8//8/AwYACn779o2bmxtTiokBG9iwboOfq9+1K9eI0vDp06cZk2e8ffp2zuQ5mPZj0bB963aGLwxTI6YdO3QMiyX/UcHz58/tLeyXZ674O+NfgVthWnTaz58/kRWg27B8yXKu31yeGp6MjIwpVimnjp86fvg4Tic9ffp0zfI1ZU7lfBx8QK6WpFasSdzMiTN//fqFRQPQusULFsvzyFsqWMIFw4zDHt5+uH/Xfiwarl27tnj+4nSzdDYWNrigtIB0iF5IZ1MnMOhQNACNnztjrq64roWiJQMqCDUO+/D6w/YN21E0XLp06fD+w3l2+cjGwy1Jt82YO3Pe+/fvoRqAfupq6bKVs7VQsMAa8REmEf8+/V04fSFUw/Hjxy+cvZBklgwMSqwagIGWYpm6cOEiYDCyAI2fPnG6mrD6n39/Lj25xIADAB325/vvVQtXsXz58uX7z+8vfr7I2ZrNgBew87HfvnebERg+X79+/ffvHwMRgJWVFQBa4Mt756r78AAAAABJRU5ErkJggg==</InlineContent>
                      <Format>image/png</Format>
                  </Mark>
                  <Size>15.0</Size>
              </Graphic>
          </PointSymbolizer>*/
        BufferedImage referenceImage = getReferenceImage("inlineContent-image.png");

        PointSymbolizer sym = (PointSymbolizer) parse("example-pointsymbolizer4.xml");
        assertEquals("MyPointSymbolizer", sym.getName());
        assertEquals("Example Pointsymbolizer", sym.getDescription().getTitle().toString());
        assertEquals("This is just a simple example of a point symbolizer.",
                sym.getDescription().getAbstract().toString());

        Graphic g = sym.getGraphic();
        assertEquals(15.0, g.getSize().evaluate(null, Double.class));
        assertEquals(1, g.graphicalSymbols().size());

        Mark mark = (Mark) g.graphicalSymbols().get(0);
        ExternalMark em = mark.getExternalMark();
        assertNotNull(em);
        assertEquals("image/png", em.getFormat());
        assertImagesEqual(referenceImage, em.getInlineContent());
        assertNull(em.getOnlineResource());
    }
   
    public void testParseLineSymbolizer() throws Exception {
        /*<LineSymbolizer version="1.1.0" xsi:schemaLocation="http://www.opengis.net/se http://www.opengis.net/se/1.1.0/Symbolizer.xsd" xmlns="http://www.opengis.net/se" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" uom="http://www.opengeospatial.org/se/units/metre">
            <Name>MyLineSymbolizer</Name>
            <Description>
                <Title>Example Symbol</Title>
                <Abstract>This is just a simple example of a line symbolizer.</Abstract>
            </Description>
            <Stroke>
                <SvgParameter name="stroke">#0000ff</SvgParameter>
                <SvgParameter name="stroke-width">2</SvgParameter>
            </Stroke>
        </LineSymbolizer>*/
        LineSymbolizer sym = (LineSymbolizer) parse("example-linesymbolizer.xml");
        assertEquals("MyLineSymbolizer", sym.getName());
        assertEquals("Example Symbol", sym.getDescription().getTitle().toString());
        assertEquals("This is just a simple example of a line symbolizer.",
            sym.getDescription().getAbstract().toString());
       
        Stroke s = sym.getStroke();
        assertEquals(255, s.getColor().evaluate(null, Color.class).getBlue());
        assertEquals(new Integer(2), s.getWidth().evaluate(null, Integer.class));
    }
   
    public void testParsePolygonSymbolizer() throws Exception {
      /*<PolygonSymbolizer version="1.1.0" xsi:schemaLocation="http://www.opengis.net/se http://www.opengis.net/se/1.1.0/Symbolizer.xsd" xmlns="http://www.opengis.net/se" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" uom="http://www.opengeospatial.org/se/units/pixel">
        <Name>MyPolygonSymbolizer</Name>
        <Description>
            <Title>Example PolygonSymbolizer</Title>
            <Abstract>This is just a simple example of a polygon symbolizer.</Abstract>
        </Description>
        <Fill>
            <SvgParameter name="fill">#aaaaff</SvgParameter>
        </Fill>
        <Stroke>
            <SvgParameter name="stroke">#0000aa</SvgParameter>
        </Stroke>
    </PolygonSymbolizer>*/
        PolygonSymbolizer sym = (PolygonSymbolizer) parse("example-polygonsymbolizer.xml");
        assertEquals("MyPolygonSymbolizer", sym.getName());
        assertEquals("Example PolygonSymbolizer", sym.getDescription().getTitle().toString());
        assertEquals("This is just a simple example of a polygon symbolizer.",
                sym.getDescription().getAbstract().toString());
       
        Fill f = sym.getFill();
        Color c = f.getColor().evaluate(null, Color.class);
        assertEquals(170, c.getRed());
        assertEquals(170, c.getGreen());
        assertEquals(255, c.getBlue());
       
        c = sym.getStroke().getColor().evaluate(null, Color.class);
        assertEquals(170, c.getBlue());
    }
   
    public void testParseTextSymbolizer() throws Exception {
        /*<TextSymbolizer version="1.1.0" xsi:schemaLocation="http://www.opengis.net/se/1.1.0/Symbolizer.xsd" xmlns="http://www.opengis.net/se" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" uom="http://www.opengeospatial.org/se/units/pixel">
        <Name>MyTextSymbolizer</Name>
        <Description>
            <Title>Example TextSymbolizer</Title>
            <Abstract>This is just an example of a text symbolizer using the FormatNumber function.</Abstract>
        </Description>
        <Geometry>
            <ogc:PropertyName>locatedAt</ogc:PropertyName>
        </Geometry>
        <Label>
            <ogc:PropertyName>hospitalName</ogc:PropertyName> (
            <FormatNumber fallbackValue="">
                <NumericValue>
                    <ogc:PropertyName>numberOfBeds</ogc:PropertyName>
                </NumericValue>
                <Pattern>#####</Pattern>
            </FormatNumber>)
        </Label>
        <Font>
            <SvgParameter name="font-family">Arial</SvgParameter>
            <SvgParameter name="font-family">Sans-Serif</SvgParameter>
            <SvgParameter name="font-style">italic</SvgParameter>
            <SvgParameter name="font-size">10</SvgParameter>
        </Font>
        <Halo/>
        <Fill>
            <SvgParameter name="fill">#000000</SvgParameter>
        </Fill>
    </TextSymbolizer>*/
       
        TextSymbolizer sym = (TextSymbolizer) parse("example-textsymbolizer.xml");
        assertEquals("MyTextSymbolizer", sym.getName());
        assertEquals("Example TextSymbolizer", sym.getDescription().getTitle().toString());
        assertEquals("This is just an example of a text symbolizer using the FormatNumber function.",
            sym.getDescription().getAbstract().toString());
       
        assertEquals("locatedAt", sym.getGeometryPropertyName());
       
        Function l = (Function) sym.getLabel();
        assertEquals("foobar (10)", l.evaluate(f1));
        //assertEquals("hospitalName", l);
       
        Font f = sym.getFont();
        assertEquals(2, f.getFamily().size());
        assertEquals("Arial", f.getFamily().get(0).evaluate(null, String.class));
        assertEquals("Sans-Serif", f.getFamily().get(1).evaluate(null, String.class));
        assertEquals("italic", f.getStyle().evaluate(null, String.class));
        assertEquals("10", f.getSize().evaluate(null, String.class));
       
        Fill fill = sym.getFill();
        assertEquals(Color.BLACK, fill.getColor().evaluate(null, Color.class));
    }
   
    public void testParseRasterSymbolizer1() throws Exception {
        /*<RasterSymbolizer version="1.1.0" xsi:schemaLocation="http://www.opengis.net/se http://www.opengis.net/se/1.1.0/Symbolizer.xsd" xmlns="http://www.opengis.net/se" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                <Opacity>1.0</Opacity>
                <OverlapBehavior>AVERAGE</OverlapBehavior>
                <ColorMap>
                        <Categorize fallbackValue="#78c818">
                        <LookupValue>Rasterdata</LookupValue>
                                <Value>#00ff00</Value>
                                <Threshold>-417</Threshold>
                                <Value>#00fa00</Value>
                                <Threshold>-333</Threshold>
                                <Value>#14f500</Value>
                                <Threshold>-250</Threshold>
                                <Value>#28f502</Value>
                                <Threshold>-167</Threshold>
                                <Value>#3cf505</Value>
                                <Threshold>-83</Threshold>
                                <Value>#50f50a</Value>
                                <Threshold>-1</Threshold>
                                <Value>#64f014</Value>
                                <Threshold>0</Threshold>
                                <Value>#7deb32</Value>
                                <Threshold>30</Threshold>
                                <Value>#78c818</Value>
                                <Threshold>105</Threshold>
                                <Value>#38840c</Value>
                                <Threshold>300</Threshold>
                                <Value>#2c4b04</Value>
                                <Threshold>400</Threshold>
                                <Value>#ffff00</Value>
                                <Threshold>700</Threshold>
                                <Value>#dcdc00</Value>
                                <Threshold>1200</Threshold>
                                <Value>#b47800</Value>
                                <Threshold>1400</Threshold>
                                <Value>#c85000</Value>
                                <Threshold>1600</Threshold>
                                <Value>#be4100</Value>
                                <Threshold>2000</Threshold>
                                <Value>#963000</Value>
                                <Threshold>3000</Threshold>
                                <Value>#3c0200</Value>
                                <Threshold>5000</Threshold>
                                <Value>#ffffff</Value>
                                <Threshold>13000</Threshold>
                                <Value>#ffffff</Value>
                        </Categorize>
                </ColorMap>
                <ShadedRelief/>
        </RasterSymbolizer>*/
        RasterSymbolizer sym = (RasterSymbolizer) parse("example-rastersymbolizer1.xml");
        assertEquals(1.0, sym.getOpacity().evaluate(null, Double.class));
        assertEquals(OverlapBehavior.AVERAGE, sym.getOverlapBehavior());
       
        ColorMap map = sym.getColorMap();
        assertNotNull(map);
        assertEquals(20, map.getColorMapEntries().length);
       
        //
        Color c = map.getColorMapEntry(0).getColor().evaluate(null, Color.class);
        assertEquals(0, c.getRed());
        assertEquals(255, c.getGreen());
        assertEquals(0, c.getBlue());
       
        c = map.getColorMapEntry(1).getColor().evaluate(null, Color.class);
        assertEquals(0, c.getRed());
        assertEquals(250, c.getGreen());
        assertEquals(0, c.getBlue());
        assertEquals(-417d, map.getColorMapEntry(1).getQuantity().evaluate(null, Double.class));
       
        c = map.getColorMapEntry(19).getColor().evaluate(null, Color.class);
        assertEquals(Color.WHITE, c);
        assertEquals(13000d, map.getColorMapEntry(19).getQuantity().evaluate(null, Double.class));
    }
   
    public void testParseRasterSymbolizer2() throws Exception {
        /*
        <RasterSymbolizer version="1.1.0" xsi:schemaLocation="http://www.opengis.net/se/1.1.0/Symbolizer.xsd" xmlns="http://www.opengis.net/se" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                <Opacity>1.0</Opacity>
                <ChannelSelection>
                        <RedChannel>
                                <SourceChannelName>1</SourceChannelName>
                                <ContrastEnhancement>
                                        <Histogram/>
                                </ContrastEnhancement>
                        </RedChannel>
                        <GreenChannel>
                                <SourceChannelName>2</SourceChannelName>
                                <ContrastEnhancement>
                                        <GammaValue>2.5</GammaValue>
                                </ContrastEnhancement>
                        </GreenChannel>
                        <BlueChannel>
                                <SourceChannelName>3</SourceChannelName>
                                <ContrastEnhancement>
                                        <Normalize/>
                                </ContrastEnhancement>
                        </BlueChannel>
                </ChannelSelection>
                <OverlapBehavior>LATEST_ON_TOP</OverlapBehavior>
                <ColorMap>
                        <Interpolate fallbackValue="#dddddd">
                                <LookupValue>Rasterdata</LookupValue>
                                <InterpolationPoint>
                                        <Data>0</Data>
                                        <Value>#000000</Value>
                                </InterpolationPoint>
                                <InterpolationPoint>
                                        <Data>255</Data>
                                        <Value>#ffffff</Value>
                                </InterpolationPoint>
                        </Interpolate>
                </ColorMap>
                <ContrastEnhancement>
                        <GammaValue>1.0</GammaValue>
                </ContrastEnhancement>
        </RasterSymbolizer>*/

        RasterSymbolizer sym = (RasterSymbolizer) parse("example-rastersymbolizer2.xml");
        assertEquals(1.0, sym.getOpacity().evaluate(null, Double.class));
        assertEquals(OverlapBehavior.LATEST_ON_TOP, sym.getOverlapBehavior());
       
        SelectedChannelType[] ch = sym.getChannelSelection().getRGBChannels();
        assertEquals("1", ch[0].getChannelName());
        assertEquals(ContrastMethod.HISTOGRAM, ch[0].getContrastEnhancement().getMethod());
        assertEquals("2", ch[1].getChannelName());
        assertEquals(2.5, ch[1].getContrastEnhancement().getGammaValue().evaluate(null, Double.class));
        assertEquals("3", ch[2].getChannelName());
        assertEquals(ContrastMethod.NORMALIZE, ch[2].getContrastEnhancement().getMethod());
       
        ColorMap map = sym.getColorMap();
        assertNotNull(map);
        assertEquals(2, map.getColorMapEntries().length);
       
        Color c = map.getColorMapEntry(0).getColor().evaluate(null, Color.class);
        assertEquals(Color.BLACK, c);
       
        c = map.getColorMapEntry(1).getColor().evaluate(null, Color.class);
        assertEquals(Color.WHITE, c);
       
        assertEquals(1.0, sym.getContrastEnhancement().getGammaValue().evaluate(null, Double.class));
    }
   
    public void testParseFeatureStyle() throws Exception {
        /*
        <FeatureTypeStyle version="1.1.0" xsi:schemaLocation="http://www.opengis.net/se/1.1.0/FeatureStyle.xsd" xmlns="http://www.opengis.net/se" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:oceansea="http://www.myurl.net/oceansea">
                <FeatureTypeName>oceansea:Foundation</FeatureTypeName>
                <Rule>
                        <Name>main</Name>
                        <PolygonSymbolizer uom="http://www.opengeospatial.org/sld/units/pixel">
                                <Fill>
                                        <SvgParameter name="fill">#96C3F5</SvgParameter>
                                </Fill>
                        </PolygonSymbolizer>
                </Rule>
        </FeatureTypeStyle>*/
       
        FeatureTypeStyle fts = (FeatureTypeStyle) parse("example-featurestyle.xml");
        assertEquals("oceansea:Foundation", fts.getFeatureTypeName());
        assertEquals(1, fts.rules().size());
   
        Rule rule = fts.rules().get(0);
        assertEquals("main", rule.getName());
       
        assertEquals(1, rule.symbolizers().size());
       
        PolygonSymbolizer sym = (PolygonSymbolizer) rule.symbolizers().get(0);
        assertEquals(UomOgcMapping.PIXEL.getUnit(), sym.getUnitOfMeasure());
        assertEquals(SLD.toColor("#96C3F5"), sym.getFill().getColor().evaluate(null, Color.class));
       
    }
   
    public void testParseCoverageStyle() throws Exception {
        /*
        <CoverageStyle version="1.1.0" xsi:schemaLocation="http://www.opengis.net/se http://www.opengis.net/se/1.1.0/FeatureStyle.xsd" xmlns="http://www.opengis.net/se" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <Rule>
            <Name>ChannelSelection</Name>
            <Description>
                <Title>Gray channel mapping</Title>
            </Description>
            <RasterSymbolizer>
                <ChannelSelection>
                    <GrayChannel>
                        <SourceChannelName>Band.band1</SourceChannelName>
                    </GrayChannel>
                </ChannelSelection>
                <ContrastEnhancement>
                    <Normalize/>
                </ContrastEnhancement>
            </RasterSymbolizer>
        </Rule>
        </CoverageStyle>
        */
       
        FeatureTypeStyle cs = (FeatureTypeStyle) parse("example-coveragestyle.xml");
        assertEquals(1, cs.rules().size());
        Rule rule = cs.rules().get(0);
       
        assertEquals("ChannelSelection", rule.getName());
        assertEquals("Gray channel mapping", rule.getDescription().getTitle().toString());
        assertEquals(1, rule.symbolizers().size());
       
        RasterSymbolizer sym = (RasterSymbolizer) rule.symbolizers().get(0);
        assertEquals("Band.band1", sym.getChannelSelection().getGrayChannel().getChannelName());
    }
   
    public void testParseValidatePointSymbolizerGeomTransform() throws Exception {
        PointSymbolizer ps = (PointSymbolizer) parse("example-pointsymbolizer-geotrans.xml");
        assertTrue(ps.getGeometry() instanceof Function);
       
        List errors = validate("example-pointsymbolizer-geotrans.xml");
        assertEquals(0, errors.size());
    }
   
}
TOP

Related Classes of org.geotools.se.v1_1.SEExampleTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.