Mercurial > dive4elements > gnv-client
comparison gnv-artifacts/src/main/java/de/intevation/gnv/transition/CoordinateSelectionTransition.java @ 180:72bd41ba548d
Added Transformation from WKT-Coordinate Reperesentation to BSH-Coordinate Representation. issue38
gnv-artifacts/trunk@224 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Fri, 16 Oct 2009 08:01:47 +0000 |
parents | 1b2fc94766c9 |
children | 6e7952fd1744 |
comparison
equal
deleted
inserted
replaced
179:f2c76f35da5a | 180:72bd41ba548d |
---|---|
3 */ | 3 */ |
4 package de.intevation.gnv.transition; | 4 package de.intevation.gnv.transition; |
5 | 5 |
6 import java.util.ArrayList; | 6 import java.util.ArrayList; |
7 import java.util.Collection; | 7 import java.util.Collection; |
8 import java.util.Iterator; | |
8 | 9 |
9 import org.apache.log4j.Logger; | 10 import org.apache.log4j.Logger; |
10 | 11 |
11 import com.vividsolutions.jts.geom.Point; | 12 import com.vividsolutions.jts.geom.Point; |
13 import com.vividsolutions.jts.io.ParseException; | |
14 import com.vividsolutions.jts.io.WKTReader; | |
12 | 15 |
13 import de.intevation.gnv.geobackend.base.Result; | 16 import de.intevation.gnv.geobackend.base.Result; |
17 import de.intevation.gnv.transition.describedata.DefaultKeyValueDescribeData; | |
14 import de.intevation.gnv.transition.describedata.KeyValueDescibeData; | 18 import de.intevation.gnv.transition.describedata.KeyValueDescibeData; |
19 import de.intevation.gnv.transition.describedata.NamedArrayList; | |
15 import de.intevation.gnv.transition.describedata.NamedCollection; | 20 import de.intevation.gnv.transition.describedata.NamedCollection; |
16 import de.intevation.gnv.utils.InputValidator; | 21 import de.intevation.gnv.utils.InputValidator; |
17 import de.intevation.gnv.utils.exception.ValidationException; | 22 import de.intevation.gnv.utils.exception.ValidationException; |
18 | 23 |
19 /** | 24 /** |
83 log.error(e,e); | 88 log.error(e,e); |
84 } | 89 } |
85 return returnValue; | 90 return returnValue; |
86 | 91 |
87 } | 92 } |
93 | |
94 /** | |
95 * @see de.intevation.gnv.transition.TransitionBase#extractKVP(java.util.Collection, java.lang.String, java.lang.String) | |
96 */ | |
97 @Override | |
98 protected NamedCollection<KeyValueDescibeData> extractKVP( | |
99 Collection<Result> result, | |
100 String keyid, | |
101 String valueid) { | |
102 Iterator<Result> rit = result.iterator(); | |
103 NamedCollection<KeyValueDescibeData> keyValueDescibeData = new NamedArrayList<KeyValueDescibeData>( | |
104 this.dataName, result.size()); | |
105 keyValueDescibeData.setMultiSelect(this.dataMultiSelect); | |
106 while (rit.hasNext()) { | |
107 Result resultValue = rit.next(); | |
108 keyValueDescibeData.add(new DefaultKeyValueDescribeData(resultValue | |
109 .getString(keyid), this.convert2DisplayCoordinate(resultValue.getString(valueid)))); | |
110 } | |
111 return keyValueDescibeData; | |
112 } | |
113 | |
114 protected String convert2DisplayCoordinate(String wkt){ | |
115 String formattedCoordinate = null; | |
116 try { | |
117 Point p = (Point)new WKTReader().read(wkt); | |
118 double lat = p.getY(); | |
119 double lon =p.getX(); | |
120 String nord="N"; | |
121 String ost="E"; | |
122 if (lat <0 ){nord="S"; lat=-lat;} | |
123 if (lon <0 ){ost="W"; lon=-lon;} | |
124 formattedCoordinate = String.format("%1$02d°%2$1S %3$05.2f' %4$03d°%5$1S %6$05.2f'", | |
125 (int)lat, nord,60.*(lat-((int)lat)),(int)lon,ost,60.*(lon-((int)lon))); | |
126 } catch (ParseException e) { | |
127 log.error(e,e); | |
128 } | |
129 | |
130 return formattedCoordinate; | |
131 } | |
88 } | 132 } |