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.***

Attachment: TextPositioningTest.java
Description: TextPositioningTest.java

------------------------------------------------------------------------------
_______________________________________________
Geotools-gt2-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to