comparison gnv-artifacts/src/main/java/de/intevation/gnv/utils/ShapeFileWriter.java @ 760:f82e57a60124

Added a further column in the isolines shapefile to store a description used to be displayed as labels in a wms layer (issue209). gnv-artifacts/trunk@814 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 22 Mar 2010 10:57:35 +0000
parents 22dc921cd8b1
children 0b1de7e38907
comparison
equal deleted inserted replaced
759:93489a0c1328 760:f82e57a60124
2 2
3 import java.io.File; 3 import java.io.File;
4 import java.io.IOException; 4 import java.io.IOException;
5 import java.io.Serializable; 5 import java.io.Serializable;
6 import java.net.MalformedURLException; 6 import java.net.MalformedURLException;
7 import java.text.NumberFormat;
7 import java.util.Collection; 8 import java.util.Collection;
8 import java.util.Date; 9 import java.util.Date;
9 import java.util.HashMap; 10 import java.util.HashMap;
10 import java.util.List; 11 import java.util.List;
11 import java.util.Map; 12 import java.util.Map;
41 public final class ShapeFileWriter 42 public final class ShapeFileWriter
42 { 43 {
43 private static Logger log = Logger.getLogger( 44 private static Logger log = Logger.getLogger(
44 ShapeFileWriter.class); 45 ShapeFileWriter.class);
45 46
47 private static NumberFormat format = NumberFormat.getInstance();
48
49 public static final int DOUBLE_PRECISION = 3;
50
46 private ShapeFileWriter() { 51 private ShapeFileWriter() {
47 } 52 }
48 53
49 public static boolean writeMultiLineStringsToFile( 54 public static boolean writeMultiLineStringsToFile(
50 File shapeFile, 55 File shapeFile,
94 name, 99 name,
95 "geom:MultiLineString:srid=4326," + 100 "geom:MultiLineString:srid=4326," +
96 "PARAMETER:Integer," + 101 "PARAMETER:Integer," +
97 "LAYER:Integer," + 102 "LAYER:Integer," +
98 "DATE:Date," + 103 "DATE:Date," +
99 "VALUE:Double"); 104 "VALUE:Double," +
105 "DESC:String");
100 } 106 }
101 catch (SchemaException se) { 107 catch (SchemaException se) {
102 log.error(se.getLocalizedMessage(), se); 108 log.error(se.getLocalizedMessage(), se);
103 return false; 109 return false;
104 } 110 }
113 featureBuilder.add(pair.getB()); 119 featureBuilder.add(pair.getB());
114 featureBuilder.add(parameterId); 120 featureBuilder.add(parameterId);
115 featureBuilder.add(layer); 121 featureBuilder.add(layer);
116 featureBuilder.add(date); 122 featureBuilder.add(date);
117 featureBuilder.add(pair.getA()); 123 featureBuilder.add(pair.getA());
124 featureBuilder.add(value2description(asDouble(pair.getA())));
118 SimpleFeature feature = featureBuilder.buildFeature(null); 125 SimpleFeature feature = featureBuilder.buildFeature(null);
119 collection.add(feature); 126 collection.add(feature);
120 } 127 }
121 128
122 DataStoreFactorySpi dataStoreFactory = new ShapefileDataStoreFactory(); 129 DataStoreFactorySpi dataStoreFactory = new ShapefileDataStoreFactory();
396 if (a instanceof Number) { 403 if (a instanceof Number) {
397 return Double.valueOf(((Number)a).doubleValue()); 404 return Double.valueOf(((Number)a).doubleValue());
398 } 405 }
399 return 0d; 406 return 0d;
400 } 407 }
408
409 private static final String value2description(Double value) {
410 format.setMaximumFractionDigits(DOUBLE_PRECISION);
411
412 return format.format(value);
413 }
401 } 414 }
402 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 415 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org