001: /*
002: * GeoTools - OpenSource mapping toolkit
003: * http://geotools.org
004: * (C) 2002-2006, GeoTools Project Managment Committee (PMC)
005: * (C) 2002, Center 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: import org.opengis.filter.expression.Expression;
023:
024: /**
025: * A PointPlacement specifies how a text label is positioned relative to a
026: * geometric point.
027: *
028: * <p>
029: * The details of this object are taken from the <a
030: * href="https://portal.opengeospatial.org/files/?artifact_id=1188"> OGC
031: * Styled-Layer Descriptor Report (OGC 02-070) version 1.0.0.</a>:
032: * <pre><code>
033: * <xsd:element name="PointPlacement">
034: * <xsd:annotation>
035: * <xsd:documentation>
036: * A "PointPlacement" specifies how a text label should be rendered
037: * relative to a geometric point.
038: * </xsd:documentation>
039: * </xsd:annotation>
040: * <xsd:complexType>
041: * <xsd:sequence>
042: * <xsd:element ref="sld:AnchorPoint" minOccurs="0"/>
043: * <xsd:element ref="sld:Displacement" minOccurs="0"/>
044: * <xsd:element ref="sld:Rotation" minOccurs="0"/>
045: * </xsd:sequence>
046: * </xsd:complexType>
047: * </xsd:element>
048: * </code></pre>
049: * </p>
050: *
051: * <p>
052: * $Id: PointPlacement.java 25459 2007-05-08 05:19:25Z jgarnett $
053: * </p>
054: *
055: * @author Ian Turton
056: * @source $URL: http://svn.geotools.org/geotools/tags/2.4.1/modules/library/api/src/main/java/org/geotools/styling/PointPlacement.java $
057: */
058: public interface PointPlacement extends LabelPlacement {
059: /**
060: * Returns the AnchorPoint which identifies the location inside a textlabel
061: * to use as an "anchor" for positioning it relative to a point geometry.
062: *
063: * @return DOCUMENT ME!
064: */
065: AnchorPoint getAnchorPoint();
066:
067: /**
068: * sets the AnchorPoint which identifies the location inside a textlabel to
069: * use as an "anchor" for positioning it relative to a point geometry.
070: *
071: * @param anchorPoint DOCUMENT ME!
072: */
073: void setAnchorPoint(AnchorPoint anchorPoint);
074:
075: /**
076: * Returns the Displacement which gives X and Y offset displacements to use
077: * for rendering a text label near a point.
078: *
079: * @return DOCUMENT ME!
080: */
081: Displacement getDisplacement();
082:
083: /**
084: * sets the Displacement which gives X and Y offset displacements to use
085: * for rendering a text label near a point.
086: *
087: * @param displacement DOCUMENT ME!
088: */
089: void setDisplacement(Displacement displacement);
090:
091: /**
092: * Returns the rotation of the label.
093: *
094: * @return DOCUMENT ME!
095: */
096: Expression getRotation();
097:
098: /**
099: * sets the rotation of the label.
100: *
101: * @param rotation DOCUMENT ME!
102: */
103: void setRotation(Expression rotation);
104: }
|