Mercurial > dive4elements > gnv-client
view gnv-artifacts/src/main/java/de/intevation/gnv/exports/ShapeDataCollector.java @ 1052:b30361464775
The pdf format depends on the chart's aspect ratio (issue290).
gnv-artifacts/trunk@1126 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Wed, 26 May 2010 06:45:03 +0000 |
parents | 22c18083225e |
children | f953c9a559d8 |
line wrap: on
line source
package de.intevation.gnv.exports; import com.vividsolutions.jts.geom.Point; import com.vividsolutions.jts.io.ParseException; import com.vividsolutions.jts.io.WKTReader; import de.intevation.gnv.geobackend.base.Result; import de.intevation.gnv.state.exception.StateException; import org.apache.log4j.Logger; /** * This class is a specialization of <code>DefaultDataCollector</code>. The * difference between these classes is, that this class extracts points served * by a wkt string. * * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> */ public class ShapeDataCollector extends DefaultDataCollector { /** * Logger used for logging with log4j. */ private Logger log = Logger.getLogger(ShapeDataCollector.class); /** * WKTReader to parse points from wkt strings. */ protected WKTReader wktReader = new WKTReader(); /** * Constructor * * @param names Attributes used to be extracted. */ public ShapeDataCollector(String[] names) { super(names); } /** * This method takes point from wkt strings as well and split them into x * and y coordinate. * * @see de.intevation.gnv.exports.Export.DataCollector#getData(Result) */ public String[] getData(Result result) throws StateException { if (rd == null) init(result); try { String [] entries = new String[names.length+1]; int j = 0; for (int i = 0; i < names.length; i++) { if (names[i].equals("SHAPE")) { Point p = (Point)wktReader.read(result.getString("SHAPE")); entries[j++] = ""+p.getX(); entries[j++] = ""+p.getY(); } else { entries[j++] = result.getString(names[i]); } } return entries; } catch (ParseException pe) { log.error(pe, pe); throw new StateException( "Error occured while parsing a Point from WKT."); } } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :