Changeset 3758 for print

Show
Ignore:
Timestamp:
04/01/11 06:46:59 (14 months ago)
Author:
jeichar
Message:

labelling for all geometries. r=jeichar closes #618

Location:
print/trunk/src/main/java/org/mapfish/print/map/renderers/vector
Files:
1 added
2 modified

Legend:

Unmodified
Added
Removed
  • print/trunk/src/main/java/org/mapfish/print/map/renderers/vector/GeometriesRenderer.java

    r3397 r3758  
    2020package org.mapfish.print.map.renderers.vector; 
    2121 
    22 import com.vividsolutions.jts.geom.*; 
     22import java.util.HashMap; 
     23import java.util.Map; 
     24 
     25import org.mapfish.print.RenderingContext; 
     26import org.mapfish.print.utils.PJsonObject; 
     27 
    2328import com.lowagie.text.pdf.PdfContentByte; 
    24  
    25 import java.util.Map; 
    26 import java.util.HashMap; 
    27 import java.awt.geom.AffineTransform; 
    28 import java.awt.geom.Point2D; 
    29  
    30 import org.mapfish.print.utils.PJsonObject; 
    31 import org.mapfish.print.RenderingContext; 
     29import com.vividsolutions.jts.geom.Geometry; 
     30import com.vividsolutions.jts.geom.GeometryCollection; 
     31import com.vividsolutions.jts.geom.LineString; 
     32import com.vividsolutions.jts.geom.LinearRing; 
     33import com.vividsolutions.jts.geom.MultiLineString; 
     34import com.vividsolutions.jts.geom.MultiPoint; 
     35import com.vividsolutions.jts.geom.MultiPolygon; 
     36import com.vividsolutions.jts.geom.Point; 
     37import com.vividsolutions.jts.geom.Polygon; 
    3238 
    3339/** 
     
    5864        try { 
    5965            renderer.renderImpl(context, dc, style, geometry); 
     66            LabelRenderer.applyStyle(context, dc, style, geometry); 
    6067        } finally { 
    6168            dc.restoreState(); 
  • print/trunk/src/main/java/org/mapfish/print/map/renderers/vector/PointRenderer.java

    r3433 r3758  
    2020package org.mapfish.print.map.renderers.vector; 
    2121 
    22 import com.vividsolutions.jts.geom.Point; 
    23 import com.vividsolutions.jts.geom.Coordinate; 
    24 import com.lowagie.text.pdf.BaseFont; 
     22import java.net.URI; 
     23import java.net.URISyntaxException; 
     24import java.util.HashMap; 
     25import java.util.Map; 
     26 
     27import org.mapfish.print.InvalidValueException; 
     28import org.mapfish.print.PDFUtils; 
     29import org.mapfish.print.RenderingContext; 
     30import org.mapfish.print.utils.PJsonObject; 
     31 
     32import com.lowagie.text.BadElementException; 
     33import com.lowagie.text.DocumentException; 
     34import com.lowagie.text.Image; 
    2535import com.lowagie.text.pdf.PdfContentByte; 
    2636import com.lowagie.text.pdf.PdfGState; 
    27 import com.lowagie.text.BadElementException; 
    28 import com.lowagie.text.Image; 
    29 import com.lowagie.text.DocumentException; 
    30 import org.mapfish.print.RenderingContext; 
    31 import org.mapfish.print.PDFUtils; 
    32 import org.mapfish.print.InvalidValueException; 
    33 import org.mapfish.print.config.ColorWrapper; 
    34 import org.mapfish.print.utils.PJsonObject; 
    35  
    36 import java.net.URI; 
    37 import java.net.URISyntaxException; 
    38 import java.util.Map; 
    39 import java.util.HashMap; 
     37import com.vividsolutions.jts.geom.Coordinate; 
     38import com.vividsolutions.jts.geom.Point; 
    4039 
    4140/** 
     
    9291        float offsetX = style.optFloat("graphicXOffset", -width / 2.0f); 
    9392        float offsetY = style.optFloat("graphicYOffset", -height / 2.0f); 
    94                 // See Feature/Vector.js for more information about labels 
    95                 String label = style.optString("label"); 
    96                 String labelAlign = style.optString("labelAlign", "lb"); 
    97                 /* 
    98                  * Valid values for horizontal alignment: "l"=left, "c"=center, "r"=right.  
    99                  * Valid values for vertical alignment: "t"=top, "m"=middle, "b"=bottom. 
    100                  */ 
    101                 float labelXOffset = style.optFloat("labelXOffset", (float) 0.0); 
    102                 float labelYOffset = style.optFloat("labelYOffset", (float) 0.0); 
    103                 String fontColor = style.optString("fontColor", "#000000"); 
    104                 /* Supported itext fonts: COURIER, HELVETICA, TIMES_ROMAN */ 
    105                 String fontFamily = style.optString("fontFamily", "HELVETICA"); 
    106                 String fontSize = style.optString("fontSize", "12"); 
    107                 String fontWeight = style.optString("fontWeight", "normal"); 
    10893 
    10994        if (style.optString("externalGraphic") != null) { 
     
    124109            } 
    125110 
    126         } else 
    127         if (graphicName != null && !graphicName.equalsIgnoreCase("circle")) { 
     111        } else if (graphicName != null && !graphicName.equalsIgnoreCase("circle")) { 
    128112            PolygonRenderer.applyStyle(context, dc, style, state); 
    129113            float[] symbol = SYMBOLS.get(graphicName); 
     
    135119            for (int i = 2; i < symbol.length - 2; i += 2) { 
    136120                dc.lineTo((float) coordinate.x + symbol[i] * width * f + offsetX * f, (float) coordinate.y + symbol[i + 1] * height * f + offsetY * f); 
    137  
    138121            } 
    139122            dc.closePath(); 
    140123            dc.fillStroke(); 
    141124 
    142         } else if (label != null && label.length() > 0) { 
    143                         BaseFont bf = PDFUtils.getBaseFont(fontFamily, fontSize, fontWeight); 
    144                         float fontHeight = (float) Double.parseDouble(fontSize.toLowerCase().replaceAll("px", "")) * f; 
    145                         dc.setFontAndSize(bf, fontHeight); 
    146                         dc.setColorFill(ColorWrapper.convertColor(fontColor)); 
    147                         state.setFillOpacity((float) 1.0); 
    148                         dc.setGState(state); 
    149                         dc.beginText(); 
    150                         dc.setTextMatrix((float) coordinate.x + labelXOffset * f, (float) coordinate.y + labelYOffset * f); 
    151                         dc.setGState(state); 
    152                         dc.showTextAligned(PDFUtils.getHorizontalAlignment(labelAlign), label, (float) coordinate.x + labelXOffset * f, (float) coordinate.y + labelYOffset * f - PDFUtils.getVerticalOffset(labelAlign, fontHeight), 0); 
    153                         dc.endText(); 
    154125                } else { 
    155126            PolygonRenderer.applyStyle(context, dc, style, state);