Hi List

Playing around with GTRenderer and trying to output an SVG document
with texts NOT rendered as shapes. "new SVGGraphics2D()" parameter
textAsShapes set to FALSE and also hint TEXT_RENDERING_KEY set to
TEXT_RENDERING_STRING. Vector data being outputted is SHP files with
SLD styles.

any help would be appreciated

thanks,
Udo

========= sld snip.

      <sld:TextSymbolizer>
        <sld:Geometry>
          <ogc:PropertyName>the_geom</ogc:PropertyName>
        </sld:Geometry>
        <sld:Label>
          <ogc:PropertyName>NUMBER</ogc:PropertyName>
        </sld:Label>
        <sld:Font>
          <sld:CssParameter name="font-family">Arial</sld:CssParameter>
          <sld:CssParameter name="font-size">6.0</sld:CssParameter>
          <sld:CssParameter name="font-style">normal</sld:CssParameter>
          <sld:CssParameter name="font-weight">normal</sld:CssParameter>
        </sld:Font>
        <sld:LabelPlacement>
          <sld:PointPlacement>
            <sld:AnchorPoint>
              <sld:AnchorPointX>
                <ogc:Literal>0.0</ogc:Literal>
              </sld:AnchorPointX>
              <sld:AnchorPointY>
                <ogc:Literal>0.5</ogc:Literal>
              </sld:AnchorPointY>
            </sld:AnchorPoint>
            <sld:Displacement>
              <sld:DisplacementX>
                <ogc:Literal>0.0</ogc:Literal>
              </sld:DisplacementX>
              <sld:DisplacementY>
                <ogc:Literal>0.0</ogc:Literal>
              </sld:DisplacementY>
            </sld:Displacement>
            <sld:Rotation>
              <ogc:Literal>0</ogc:Literal>
            </sld:Rotation>
          </sld:PointPlacement>
        </sld:LabelPlacement>
        <sld:Fill>
          <sld:CssParameter name="fill">#FF0033</sld:CssParameter>
        </sld:Fill>
      </sld:TextSymbolizer>


==== java

        private void exportSVG(MapContent map, ReferencedEnvelope env,
OutputStream out,
                Dimension canvasSize) throws ParserConfigurationException,
IOException {
            if (canvasSize == null) {
                canvasSize = new Dimension(500, 500); // default of 300x300
            }

            System.out.println("SVG start");
        
            Document document = null;
        
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
        
            // Create an instance of org.w3c.dom.Document
            document = db.getDOMImplementation().createDocument(null, "svg", 
null);
        
            // Set up the map
            SVGGeneratorContext ctx = 
SVGGeneratorContext.createDefault(document);
            ctx.setComment("Generated by GeoTools2 with Batik SVG Generator");
        
            SVGGraphics2D g2d = new SVGGraphics2D(ctx, false);
            ctx.setEmbeddedFontsOn(false);
            g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_OFF);
            g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
            g2d.setSVGCanvasSize(canvasSize);
        
            StreamingRenderer renderer = new StreamingRenderer();
            renderer.setMapContent(map);
        
            HashMap rendererParams = new HashMap();
            rendererParams.put(StreamingRenderer.TEXT_RENDERING_KEY,
StreamingRenderer.TEXT_RENDERING_STRING);
            renderer.setRendererHints(rendererParams);  
        
            Rectangle outputArea = new Rectangle(g2d.getSVGCanvasSize());
            ReferencedEnvelope dataArea = map.getMaxBounds();
        
            renderer.paint(g2d, outputArea, dataArea);
            OutputStreamWriter osw = null;
            try {
                osw = new OutputStreamWriter(out, "UTF-8");
                g2d.stream(osw);
            } finally {
                if (osw != null)
                    osw.close();
            }
        
        }

------------------------------------------------------------------------------
WatchGuard Dimension instantly turns raw network data into actionable 
security intelligence. It gives you real-time visual feedback on key
security issues and trends.  Skip the complicated setup - simply import
a virtual appliance and go from zero to informed in seconds.
http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk
_______________________________________________
GeoTools-GT2-Users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to