org.deegree_impl.graphics.sld
Class PointPlacement_Impl

java.lang.Object
  extended byorg.deegree_impl.graphics.sld.PointPlacement_Impl
All Implemented Interfaces:
Marshallable, PointPlacement

public class PointPlacement_Impl
extends java.lang.Object
implements PointPlacement, Marshallable

Incarnation of a sld:PointPlacement-element. For a PointPlacement, the anchor point of the label and a linear displacement from the point can be specified, to allow a graphic symbol to be plotted directly at the point. This might be useful to label a city, for example. For a LinePlacement, a perpendicular offset can be specified, to allow the line itself to be plotted also. This might be useful for labelling a road or a river, for example.

Version:
$Revision: 1.8 $ $Date: 2004/03/15 07:34:38 $
Author:
Markus Schneider

Field Summary
private  ParameterValueType[] anchorPoint
           
private  boolean auto
           
private  ParameterValueType[] displacement
           
private  ParameterValueType rotation
           
 
Constructor Summary
(package private) PointPlacement_Impl()
           
  PointPlacement_Impl(ParameterValueType[] anchorPoint, ParameterValueType[] displacement, ParameterValueType rotation, boolean auto)
          Creates a new PointPlacement_Impl object.
 
Method Summary
 java.lang.String exportAsXML()
          exports the content of the PointPlacement as XML formated String
 double[] getAnchorPoint(Feature feature)
          The AnchorPoint element of a PointPlacement gives the location inside of a label to use for anchoring the label to the main-geometry point.
 double[] getDisplacement(Feature feature)
          The Displacement element of a PointPlacement gives the X and Y displacements from the main-geometry point to render a text label.
 double getRotation(Feature feature)
          The Rotation of a PointPlacement gives the clockwise rotation of the label in degrees from the normal direction for a font (left-to-right for Latin- derived human languages at least).
 boolean isAuto()
          Returns whether the placement should be optimized or not.
 void setAnchorPoint(double[] anchorPoint)
           
 void setAuto(boolean auto)
          
 void setDisplacement(double[] displacement)
           
 void setRotation(double rotation)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

rotation

private ParameterValueType rotation

anchorPoint

private ParameterValueType[] anchorPoint

displacement

private ParameterValueType[] displacement

auto

private boolean auto
Constructor Detail

PointPlacement_Impl

PointPlacement_Impl()

PointPlacement_Impl

public PointPlacement_Impl(ParameterValueType[] anchorPoint,
                           ParameterValueType[] displacement,
                           ParameterValueType rotation,
                           boolean auto)
Creates a new PointPlacement_Impl object.

Parameters:
anchorPoint -
displacement -
rotation -
Method Detail

getAnchorPoint

public double[] getAnchorPoint(Feature feature)
                        throws FilterEvaluationException
The AnchorPoint element of a PointPlacement gives the location inside of a label to use for anchoring the label to the main-geometry point.

The coordinates are given as two floating-point numbers in the AnchorPointX and AnchorPointY elements each with values between 0.0 and 1.0 inclusive. The bounding box of the label to be rendered is considered to be in a coorindate space from 0.0 (lower-left corner) to 1.0 (upper-right corner), and the anchor position is specified as a point in this space. The default point is X=0, Y=0.5, which is at the middle height of the left-hand side of the label. A system may choose different anchor points to de-conflict labels.

Specified by:
getAnchorPoint in interface PointPlacement
Parameters:
feature - specifies the Feature to be used for evaluation of the underlying 'sld:ParameterValueType'
Returns:
2 double values: x ([0]) and y ([0])
Throws:
FilterEvaluationException - if the evaluation fails

setAnchorPoint

public void setAnchorPoint(double[] anchorPoint)
Specified by:
setAnchorPoint in interface PointPlacement
Parameters:
anchorPoint - anchorPoint for the PointPlacement
See Also:


getDisplacement

public double[] getDisplacement(Feature feature)
                         throws FilterEvaluationException
The Displacement element of a PointPlacement gives the X and Y displacements from the main-geometry point to render a text label.

This will often be used to avoid over-plotting a graphic symbol marking a city or some such feature. The displacements are in units of pixels above and to the right of the point. A system may reflect this displacement about the X and/or Y axes to de-conflict labels. The default displacement is X=0, Y=0.

Specified by:
getDisplacement in interface PointPlacement
Parameters:
feature - specifies the Feature to be used for evaluation of the underlying 'sld:ParameterValueType'
Returns:
2 double values: x ([0]) and y ([0])
Throws:
FilterEvaluationException - if the evaluation fails*

setDisplacement

public void setDisplacement(double[] displacement)
Specified by:
setDisplacement in interface PointPlacement
Parameters:
displacement -
See Also:


getRotation

public double getRotation(Feature feature)
                   throws FilterEvaluationException
The Rotation of a PointPlacement gives the clockwise rotation of the label in degrees from the normal direction for a font (left-to-right for Latin- derived human languages at least).

Specified by:
getRotation in interface PointPlacement
Parameters:
feature - specifies the Feature to be used for evaluation of the underlying 'sld:ParameterValueType'
Returns:
double value describing the rotation parameter
Throws:
FilterEvaluationException - if the evaluation fails*

setRotation

public void setRotation(double rotation)
Specified by:
setRotation in interface PointPlacement
Parameters:
rotation - the rotation to be set for the PointPlacement
See Also:
PointPlacement.getRotation(Feature)

isAuto

public boolean isAuto()
Returns whether the placement should be optimized or not.

Specified by:
isAuto in interface PointPlacement
Returns:
true, if it should be optimized

setAuto

public void setAuto(boolean auto)

Specified by:
setAuto in interface PointPlacement
Parameters:
auto -

exportAsXML

public java.lang.String exportAsXML()
exports the content of the PointPlacement as XML formated String

Specified by:
exportAsXML in interface Marshallable
Returns:
xml representation of the PointPlacement