if (LOGGER.isLoggable(Level.FINER)) {
LOGGER.finer("setting pointPlacement");
}
// compute anchor point and displacement
PointPlacement p = (PointPlacement) placement;
if (p.getAnchorPoint() != null) {
anchorX = evalToDouble(p.getAnchorPoint().getAnchorPointX(),
feature, 0);
anchorY = evalToDouble(p.getAnchorPoint().getAnchorPointY(),
feature, 0.5);
}
if (p.getDisplacement() != null) {
dispX = evalToDouble(p.getDisplacement().getDisplacementX(),
feature, 0);
dispY = evalToDouble(p.getDisplacement().getDisplacementY(),
feature, 0);
;
}
// rotation
if ((symbolizer instanceof TextSymbolizer2)
&& (((TextSymbolizer2) symbolizer).getGraphic() != null)) {
// don't rotate labels that are being placed on shields.
rotation = 0.0;
} else {
rotation = Math.toRadians( evalToDouble(p.getRotation(), feature, 0));
}
ts2d.setPointPlacement(true);
} else if (placement instanceof LinePlacement) {
// this code used to really really really really suck, so I removed
// it!
if (LOGGER.isLoggable(Level.FINER)) {
LOGGER.finer("setting pointPlacement");
}
ts2d.setPointPlacement(false);
LinePlacement p = (LinePlacement) placement;
int displace = evalToInt(p.getPerpendicularOffset(), feature, 0);
ts2d.setPerpendicularOffset(displace);
}
ts2d.setAnchorX(anchorX);
ts2d.setAnchorY(anchorY);