001: /*
002: * GeoTools - OpenSource mapping toolkit
003: * http://geotools.org
004: * (C) 2002-2006, GeoTools Project Managment Committee (PMC)
005: * (C) 2002, Centre for Computational Geography
006: *
007: * This library is free software; you can redistribute it and/or
008: * modify it under the terms of the GNU Lesser General Public
009: * License as published by the Free Software Foundation;
010: * version 2.1 of the License.
011: *
012: * This library is distributed in the hope that it will be useful,
013: * but WITHOUT ANY WARRANTY; without even the implied warranty of
014: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015: * Lesser General Public License for more details.
016: *
017: * Contacts:
018: * UNITED KINGDOM: James Macgill. j.macgill@geog.leeds.ac.uk
019: */
020: package org.geotools.styling;
021:
022: /**
023: * A symbolizer describes how a feature should appear on a map.
024: *
025: * <p>
026: * The symbolizer defines not just the shape that should appear but also such
027: * graphical properties as color and opacity.
028: * </p>
029: *
030: * <p>
031: * A symbolizer is obtained by specifying one of a small number of different
032: * types of symbolizer and then supplying parameters to overide its default
033: * behaviour.
034: * </p>
035: *
036: * <p>
037: * The details of this object are taken from the <a
038: * href="https://portal.opengeospatial.org/files/?artifact_id=1188"> OGC
039: * Styled-Layer Descriptor Report (OGC 02-070) version 1.0.0.</a>:
040: * <pre><code>
041: * <xsd:element name="PointSymbolizer" substitutionGroup="sld:Symbolizer">
042: * <xsd:annotation>
043: * <xsd:documentation>
044: * A "PointSymbolizer" specifies the rendering of a "graphic symbol"
045: * at a point.
046: * </xsd:documentation>
047: * </xsd:annotation>
048: * <xsd:complexType>
049: * <xsd:complexContent>
050: * <xsd:extension base="sld:SymbolizerType">
051: * <xsd:sequence>
052: * <xsd:element ref="sld:Geometry" minOccurs="0"/>
053: * <xsd:element ref="sld:Graphic" minOccurs="0"/>
054: * </xsd:sequence>
055: * </xsd:extension>
056: * </xsd:complexContent>
057: * </xsd:complexType>
058: * </xsd:element>
059: * </code></pre>
060: * </p>
061: *
062: * <p>
063: * Renderers can use this information when displaying styled features, though
064: * it must be remembered that not all renderers will be able to fully
065: * represent strokes as set out by this interface. For example, opacity may
066: * not be supported.
067: * </p>
068: *
069: * <p>
070: * Notes:
071: *
072: * <ul>
073: * <li>
074: * The graphical parameters and their values are derived from SVG/CSS2
075: * standards with names and semantics which are as close as possible.
076: * </li>
077: * </ul>
078: * </p>
079: *
080: * @author James Macgill
081: * @source $URL: http://svn.geotools.org/geotools/tags/2.4.1/modules/library/api/src/main/java/org/geotools/styling/PointSymbolizer.java $
082: * @version $Id: PointSymbolizer.java 20562 2006-07-16 14:54:53Z jgarnett $
083: */
084: public interface PointSymbolizer extends Symbolizer {
085: /**
086: * Provides the graphical-symbolization parameter to use for the point
087: * geometry.
088: *
089: * @return The Graphic to be used when drawing a point.
090: */
091: Graphic getGraphic();
092:
093: /**
094: * Provides the graphical-symbolization parameter to use for the point
095: * geometry.
096: *
097: * @param graphic DOCUMENT ME!
098: */
099: void setGraphic(Graphic graphic);
100:
101: /**
102: * This property defines the geometry to be used for styling.<br>
103: * The property is optional and if it is absent (null) then the "default"
104: * geometry property of the feature should be used. Geometry types other
105: * than inherently point types can be used. The geometryPropertyName is
106: * the name of a geometry property in the Feature being styled.
107: * Typically, features only have one geometry so, in general, the need to
108: * select one is not required. Note: this moves a little away from the SLD
109: * spec which provides an XPath reference to a Geometry object, but does
110: * follow it in spirit.
111: *
112: * @return String The name of the attribute in the feature being styled
113: * that should be used. If null then the default geometry should
114: * be used.
115: */
116: String getGeometryPropertyName();
117:
118: /**
119: * This property defines the geometry to be used for styling.<br>
120: * The property is optional and if it is absent (null) then the "default"
121: * geometry property of the feature should be used. Geometry types other
122: * than inherently point types can be used. The geometryPropertyName is
123: * the name of a geometry property in the Feature being styled.
124: * Typically, features only have one geometry so, in general, the need to
125: * select one is not required. Note: this moves a little away from the SLD
126: * spec which provides an XPath reference to a Geometry object, but does
127: * follow it in spirit.
128: *
129: * @param geometryPropertyName DOCUMENT ME!
130: */
131: void setGeometryPropertyName(String geometryPropertyName);
132: }
|