# HG changeset patch # User Tim Englich # Date 1268393316 0 # Node ID 22dc921cd8b1bd130a742c26892d2b85a8dcfb8f # Parent 8d475151b2c15d6771be7550d4121e7361f30839 Added generic Export for all Columns which are in an ResultValue. gnv-artifacts/trunk@763 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 8d475151b2c1 -r 22dc921cd8b1 gnv-artifacts/ChangeLog --- a/gnv-artifacts/ChangeLog Wed Mar 10 15:04:30 2010 +0000 +++ b/gnv-artifacts/ChangeLog Fri Mar 12 11:28:36 2010 +0000 @@ -1,3 +1,10 @@ +2010-03-12 Tim Englich + + * src/main/java/de/intevation/gnv/utils/ShapeFileWriter.java (writeDataToFile): + Added generic Export for all Columns which are in an ResultValue. + The first Column must be the Geometryvalue. all other Columns will be added + to the Shapefile using the defined Attribute-Class. + 2010-03-10 Ingo Weinzierl Issue201 diff -r 8d475151b2c1 -r 22dc921cd8b1 gnv-artifacts/src/main/java/de/intevation/gnv/utils/ShapeFileWriter.java --- a/gnv-artifacts/src/main/java/de/intevation/gnv/utils/ShapeFileWriter.java Wed Mar 10 15:04:30 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/utils/ShapeFileWriter.java Fri Mar 12 11:28:36 2010 +0000 @@ -33,6 +33,7 @@ import com.vividsolutions.jts.io.WKTReader; import de.intevation.gnv.geobackend.base.Result; +import de.intevation.gnv.geobackend.base.ResultDescriptor; /** * @author Sascha L. Teichmann (sascha.teichmann@intevation.de) @@ -206,17 +207,22 @@ SimpleFeatureBuilder featureBuilder = null; FeatureCollection collection = FeatureCollections.newCollection(); - + int j = 0; for (Result result: data) { + j++; try { Geometry g = wktReader.read(result.getString(0)); + ResultDescriptor rd = result.getResultDescriptor(); + int columns = rd.getColumnCount(); if (type == null){ try { geomType = g.getGeometryType().toUpperCase(); - type = DataUtilities.createType( - name, - "geom:"+g.getGeometryType()+":srid=4326"); - // TODO add other AttributeTypes + String schema = "geom:"+g.getGeometryType()+":srid=4326"; + for (int i = 1; i < columns; i++){ + schema+=","+rd.getColumnName(i)+ + ":"+rd.getColumnClassName(i); + } + type = DataUtilities.createType(name, schema); } catch (SchemaException se) { log.error(se.getLocalizedMessage(), se); @@ -225,10 +231,13 @@ featureBuilder = new SimpleFeatureBuilder(type); } featureBuilder.add(g); + for (int i = 1; i < columns; i++){ + featureBuilder.add(result.getObject(i)); + } SimpleFeature feature = featureBuilder.buildFeature(null); collection.add(feature); } catch (ParseException e) { - log.error(e,e); + log.error("cannot create geometry "+j+" for "+result.getString(0)); } catch (java.lang.IllegalArgumentException e){ log.error("cannot create geometry for "+result.getString(0)); }