annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSQPSArtifact.java @ 4655:cd44d28d0fbc

Move the access to artifact data to the Access object Use BedHeightAccess class to receive the data from the artifact. This abstracts the data access from the actual artifact.
author Björn Ricks <bjoern.ricks@intevation.de>
date Tue, 11 Dec 2012 09:44:04 +0100
parents a2735a4bf75e
children 84da5ed67e93
rev   line source
1836
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.artifacts;
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
3 import java.util.List;
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
4
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
5 import org.w3c.dom.Document;
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
6
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
7 import org.apache.log4j.Logger;
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
8
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
9 import com.vividsolutions.jts.geom.Envelope;
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import de.intevation.artifacts.ArtifactFactory;
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12 import de.intevation.artifacts.CallMeta;
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14 import de.intevation.artifactdatabase.state.DefaultOutput;
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 import de.intevation.artifactdatabase.state.Facet;
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16 import de.intevation.artifactdatabase.state.State;
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18 import de.intevation.flys.model.River;
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 import de.intevation.flys.model.CrossSectionTrack;
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 import de.intevation.flys.artifacts.model.FacetTypes;
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22 import de.intevation.flys.artifacts.model.RiverFactory;
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
23 import de.intevation.flys.utils.FLYSUtils;
3301
c8f670ae96e8 Create extent of a map layer in the correct coordinate reference system.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2699
diff changeset
24 import de.intevation.flys.utils.GeometryUtils;
1836
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27 public class WMSQPSArtifact extends WMSDBArtifact {
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29 public static final String NAME = "qps";
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 private static final Logger logger =
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 Logger.getLogger(WMSQPSArtifact.class);
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36 @Override
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37 public void setup(
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38 String identifier,
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39 ArtifactFactory factory,
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 Object context,
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 CallMeta callMeta,
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42 Document data)
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43 {
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44 logger.debug("WMSQPSArtifact.setup");
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 super.setup(identifier, factory, context, callMeta, data);
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 }
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50 @Override
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51 public String getName() {
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 return NAME;
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53 }
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
54
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56 @Override
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57 public State getCurrentState(Object cc) {
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58 State s = new WMSQPSState(this);
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
59
4497
a2735a4bf75e Change facets member variable to private
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3918
diff changeset
60 List<Facet> fs = getFacets(getCurrentStateId());
1836
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62 DefaultOutput o = new DefaultOutput(
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63 "floodmap",
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64 "floodmap",
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 "image/png",
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 fs,
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67 "map");
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69 s.getOutputs().add(o);
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71 return s;
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72 }
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75 public static class WMSQPSState extends WMSDBState implements FacetTypes {
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77 private static final Logger logger =
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78 Logger.getLogger(WMSQPSState.class);
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 protected int riverId;
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82 public WMSQPSState(WMSDBArtifact artifact) {
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 super(artifact);
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 riverId = 0;
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85 }
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87 public int getRiverId() {
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
88 if (riverId == 0) {
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
89 String ids = artifact.getDataAsString("ids");
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
90
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
91 try {
3405
b0ba96bbf01d Use Integer.parseInt() instead of Integer.valueOf() + Autounboxing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3301
diff changeset
92 riverId = Integer.parseInt(ids);
1836
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
93 }
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
94 catch (NumberFormatException nfe) {
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
95 logger.error("Cannot parse river id from '" + ids + "'");
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
96 }
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
97 }
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
98
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
99 return riverId;
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
100 }
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
101
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
102 @Override
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
103 protected String getFacetType() {
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
104 return FLOODMAP_QPS;
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
105 }
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
107 @Override
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
108 protected String getUrl() {
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
109 return FLYSUtils.getUserWMSUrl(artifact.identifier());
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
110 }
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
111
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
112 @Override
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
113 protected String getSrid() {
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
114 River river = RiverFactory.getRiver(getRiverId());
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
115 return FLYSUtils.getRiverSrid(river.getName());
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
116 }
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
117
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
118 @Override
3918
2fdbe78a8fc2 Fixed various projection issues during map creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3405
diff changeset
119 protected Envelope getExtent(boolean reproject) {
1836
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
120 River river = RiverFactory.getRiver(getRiverId());
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
121
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
122 List<CrossSectionTrack> qps =
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
123 CrossSectionTrack.getCrossSectionTrack(river.getName());
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
124
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
125 Envelope max = null;
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
126
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
127 for (CrossSectionTrack qp: qps) {
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
128 Envelope env = qp.getGeom().getEnvelopeInternal();
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
129
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
130 if (max == null) {
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
131 max = env;
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
132 continue;
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
133 }
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
134
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
135 max.expandToInclude(env);
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
136 }
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
137
3918
2fdbe78a8fc2 Fixed various projection issues during map creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3405
diff changeset
138 return max != null && reproject
3301
c8f670ae96e8 Create extent of a map layer in the correct coordinate reference system.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2699
diff changeset
139 ? GeometryUtils.transform(max, getSrid())
c8f670ae96e8 Create extent of a map layer in the correct coordinate reference system.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2699
diff changeset
140 : max;
1836
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
141 }
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
142
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
143 @Override
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
144 protected String getFilter() {
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
145 return "river_id=" + String.valueOf(getRiverId());
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
146 }
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
147
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
148 @Override
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
149 protected String getDataString() {
1845
06c157848c8f Made the floodmap compatible with an Oracle database.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1836
diff changeset
150 String srid = getSrid();
06c157848c8f Made the floodmap compatible with an Oracle database.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1836
diff changeset
151
06c157848c8f Made the floodmap compatible with an Oracle database.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1836
diff changeset
152 if (FLYSUtils.isUsingOracle()) {
06c157848c8f Made the floodmap compatible with an Oracle database.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1836
diff changeset
153 return "geom FROM cross_section_tracks USING SRID " + srid;
06c157848c8f Made the floodmap compatible with an Oracle database.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1836
diff changeset
154 }
06c157848c8f Made the floodmap compatible with an Oracle database.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1836
diff changeset
155 else {
06c157848c8f Made the floodmap compatible with an Oracle database.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1836
diff changeset
156 return "geom FROM cross_section_tracks " +
06c157848c8f Made the floodmap compatible with an Oracle database.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1836
diff changeset
157 "USING UNIQUE id USING SRID " + srid;
06c157848c8f Made the floodmap compatible with an Oracle database.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1836
diff changeset
158 }
1836
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
159 }
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
160
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
161 @Override
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
162 protected String getGeometryType() {
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
163 return "LINE";
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
164 }
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
165 } // end of WMSQPSState
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
166 }
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
167 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org