Mercurial > dive4elements > gnv-client
comparison gnv-artifacts/src/main/java/de/intevation/gnv/statistics/HorizontalProfileVectorStatistics.java @ 1078:5659b5c5e4b5
Added statistics for vectorial horizontalprofiles.
gnv-artifacts/trunk@1180 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Wed, 09 Jun 2010 07:29:55 +0000 |
parents | |
children | f953c9a559d8 |
comparison
equal
deleted
inserted
replaced
1077:1728aac87717 | 1078:5659b5c5e4b5 |
---|---|
1 package de.intevation.gnv.statistics; | |
2 | |
3 import com.vividsolutions.jts.geom.Point; | |
4 import com.vividsolutions.jts.io.ParseException; | |
5 import com.vividsolutions.jts.io.WKTReader; | |
6 | |
7 import de.intevation.gnv.geobackend.base.Result; | |
8 import de.intevation.gnv.geobackend.base.ResultDescriptor; | |
9 | |
10 import de.intevation.gnv.utils.DistanceCalculator; | |
11 | |
12 import java.sql.SQLException; | |
13 | |
14 import org.apache.log4j.Logger; | |
15 | |
16 /** | |
17 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> | |
18 */ | |
19 public class HorizontalProfileVectorStatistics | |
20 extends VectorStatistics | |
21 { | |
22 | |
23 private static Logger logger = | |
24 Logger.getLogger(HorizontalProfileVectorStatistics.class); | |
25 | |
26 private WKTReader wktReader = new WKTReader(); | |
27 | |
28 private double distance; | |
29 | |
30 | |
31 public HorizontalProfileVectorStatistics() { | |
32 distance = 0; | |
33 } | |
34 | |
35 | |
36 protected void clear() { | |
37 distance = 0; | |
38 } | |
39 | |
40 | |
41 protected int getValueIdx(ResultDescriptor rd) { | |
42 return rd.getColumnIndex("YORDINATE"); | |
43 } | |
44 | |
45 | |
46 protected double calculateXOrdinateValue(Result prev, Result row) | |
47 throws SQLException | |
48 { | |
49 try { | |
50 Point start = (Point) wktReader.read(prev.getString("SHAPE")); | |
51 Point current = (Point) wktReader.read(row.getString("SHAPE")); | |
52 | |
53 double delta = DistanceCalculator.calculateDistance(start, current); | |
54 | |
55 distance = !Double.isNaN(delta) ? distance + delta : distance; | |
56 } | |
57 catch (ParseException e) { | |
58 logger.error(e,e); | |
59 } | |
60 return distance; | |
61 } | |
62 } | |
63 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |