Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/states/RiverAxisState.java @ 1052:eeebf8514c7f
The boundary (extent) for the river axis is determined based on its geometry - this extent is written into the wms facet.
flys-artifacts/trunk@2514 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Fri, 19 Aug 2011 15:52:03 +0000 |
parents | ae198bef4ba0 |
children | c37084f31c84 |
comparison
equal
deleted
inserted
replaced
1051:9a77a9adbb36 | 1052:eeebf8514c7f |
---|---|
1 package de.intevation.flys.artifacts.states; | 1 package de.intevation.flys.artifacts.states; |
2 | 2 |
3 import java.util.List; | 3 import java.util.List; |
4 import java.util.Map; | 4 import java.util.Map; |
5 | |
6 import com.vividsolutions.jts.geom.Geometry; | |
5 | 7 |
6 import org.apache.log4j.Logger; | 8 import org.apache.log4j.Logger; |
7 | 9 |
8 import de.intevation.artifacts.CallContext; | 10 import de.intevation.artifacts.CallContext; |
9 import de.intevation.artifacts.CallMeta; | 11 import de.intevation.artifacts.CallMeta; |
10 | 12 |
13 import de.intevation.artifacts.common.utils.Config; | |
14 | |
11 import de.intevation.artifactdatabase.state.Facet; | 15 import de.intevation.artifactdatabase.state.Facet; |
16 | |
17 import de.intevation.flys.model.RiverAxis; | |
12 | 18 |
13 import de.intevation.flys.artifacts.FLYSArtifact; | 19 import de.intevation.flys.artifacts.FLYSArtifact; |
14 import de.intevation.flys.artifacts.context.FLYSContext; | 20 import de.intevation.flys.artifacts.context.FLYSContext; |
15 import de.intevation.flys.artifacts.model.WMSLayerFacet; | 21 import de.intevation.flys.artifacts.model.WMSLayerFacet; |
16 import de.intevation.flys.artifacts.resources.Resources; | 22 import de.intevation.flys.artifacts.resources.Resources; |
17 import de.intevation.flys.artifacts.states.DefaultState.ComputeType; | 23 import de.intevation.flys.artifacts.states.DefaultState.ComputeType; |
24 import de.intevation.flys.utils.GeometryUtils; | |
18 | 25 |
19 | 26 |
20 public class RiverAxisState extends OutputState { | 27 public class RiverAxisState extends OutputState { |
21 | 28 |
22 public static final String I18N_DESCRIPTION = "floodmap.riveraxis"; | 29 public static final String I18N_DESCRIPTION = "floodmap.riveraxis"; |
23 | 30 |
24 public static final String WMS_LAYER_NAME = "riveraxis"; | 31 public static final String WMS_LAYER_NAME = "riveraxis"; |
32 | |
33 public static final String XPATH_RIVER_PROJECTION = | |
34 "/artifact-database/floodmap/river-wms[@river='%RIVER%']/@srid"; | |
25 | 35 |
26 | 36 |
27 private static final Logger logger = Logger.getLogger(RiverAxisState.class); | 37 private static final Logger logger = Logger.getLogger(RiverAxisState.class); |
28 | 38 |
29 | 39 |
67 getID(), hash, | 77 getID(), hash, |
68 url); | 78 url); |
69 | 79 |
70 facet.addLayer(WMS_LAYER_NAME); | 80 facet.addLayer(WMS_LAYER_NAME); |
71 | 81 |
72 // TODO determine extent based on the given geometry | 82 RiverAxis axis = RiverAxis.getRiverAxis(river); |
73 facet.setExtent("6.5 49.1 7.0 49.7"); | 83 if (axis != null) { |
84 // TODO Take the correct EPSG into account. Maybe, we need to | |
85 // reproject the geometry. | |
86 Geometry geom = axis.getGeom().getBoundary(); | |
87 String bounds = GeometryUtils.jtsBoundsToOLBounds(geom); | |
88 | |
89 logger.debug("River '" + river + "' bounds: " + bounds); | |
90 | |
91 facet.setExtent(bounds); | |
92 } | |
93 | |
94 String xpath = XPATH_RIVER_PROJECTION.replace("%RIVER%", river); | |
95 String srid = Config.getStringXPath(xpath); | |
96 facet.setSrid(srid); | |
74 | 97 |
75 facets.add(facet); | 98 facets.add(facet); |
76 | 99 |
77 return null; | 100 return null; |
78 } | 101 } |