In the code below, the 'O' character as far as I can work out should be rendered in the middle of the rendered square. This should be true since the AnchorPoint is defined as 0.5, 0.5. However this isn't what actually happens. The 'O' gets rendered higher than this. Is this a bug or is there something I'm doing wrong or misunderstanding?
Simon
public static void main(String[] args) throws IOException {
MapLayer layer = new DefaultMapLayer(createPointFeature(),
createPointStyle());
MapContext map = new DefaultMapContext(new MapLayer[] {layer},
DefaultGeographicCRS.WGS84);
map.setAreaOfInterest(new ReferencedEnvelope(-10, 10, -10, 10,
DefaultGeographicCRS.WGS84));
GTRenderer draw = new StreamingRenderer();
draw.setContext(map);
Rectangle paintArea = new Rectangle(60, 60);
BufferedImage bi = new BufferedImage(paintArea.width,
paintArea.height, BufferedImage.TYPE_INT_ARGB);
Graphics2D graphics = bi.createGraphics();
graphics.setColor(Color.WHITE);
graphics.fillRect(0, 0, bi.getWidth(), bi.getHeight());
draw.paint(graphics, paintArea, map.getAreaOfInterest());
graphics.dispose();
ImageIO.write(bi, "png", new File("", "output.png"));
}
private static FeatureCollection<SimpleFeatureType, SimpleFeature>
createPointFeature() {
SimpleFeatureTypeBuilder typeBuilder = new
SimpleFeatureTypeBuilder();
typeBuilder.setName("pointlabel");
typeBuilder.add("point", Point.class,
DefaultGeographicCRS.WGS84);
typeBuilder.add("label", String.class);
SimpleFeatureType featureType = typeBuilder.buildFeatureType();
double longitude = 0.0;
double latitude = 0.0;
Point point = JTSFactoryFinder.getGeometryFactory(null)
.createPoint( new Coordinate(longitude,
latitude) );
SimpleFeatureBuilder featureBuilder = new
SimpleFeatureBuilder(featureType);
featureBuilder.add(point);
featureBuilder.add("O");
SimpleFeature feature = featureBuilder.buildFeature(null);
return DataUtilities.collection(feature);
}
private static Style createPointStyle() {
StyleFactory sf =
CommonFactoryFinder.getStyleFactory(GeoTools.getDefaultHints());
FilterFactory ff =
CommonFactoryFinder.getFilterFactory(GeoTools.getDefaultHints());
Font font = sf.getDefaultFont();
font.setSize(ff.literal(40.0));
Displacement disp = sf.createDisplacement(ff.literal(0),
ff.literal(0));
AnchorPoint anchor = sf.createAnchorPoint(ff.literal(0.5),
ff.literal(0.5));
LabelPlacement placement = sf.createPointPlacement(anchor,
disp, ff.literal(0));
TextSymbolizer sym = sf.createTextSymbolizer(
sf.createFill(BLACK), new Font[]{font},
null, ff.property("label"), placement, null);
return SLD.wrapSymbolizers(sym);
}
*** This communication has been sent from World Fuel Services
Corporation or its subsidiaries or its affiliates for the intended recipient
only and may contain proprietary, confidential or privileged information.
If you are not the intended recipient, any review, disclosure, copying,
use, or distribution of the information included in this communication
and any attachments is strictly prohibited. If you have received this
communication in error, please notify us immediately by replying to this
communication and delete the communication, including any
attachments, from your computer. Electronic communications sent to or
from World Fuel Services Corporation or its subsidiaries or its affiliates
may be monitored for quality assurance and compliance purposes.***
TextPositioningTest.java
Description: TextPositioningTest.java
------------------------------------------------------------------------------
_______________________________________________ Geotools-gt2-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
