Mercurial > dive4elements > gnv-client
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 : |