annotate artifacts/src/main/java/org/dive4elements/river/artifacts/WMSQPSArtifact.java @ 8659:af415396d9ca

(issue1803) Use MD5 instead of a homegrown hashing algorithm For creating a digest of the parametrization we should use an algorithm that does not create collisions if there are small changes in the parametrization so that wrong results are returned.
author Andre Heinecke <andre.heinecke@intevation.de>
date Thu, 02 Apr 2015 17:40:18 +0200
parents e4606eae8ea5
children 0a5239a1e46e
rev   line source
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
2 * Software engineering by Intevation GmbH
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
3 *
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
5994
af13ceeba52a Removed trailing whitespace.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5865
diff changeset
6 * documentation coming with Dive4Elements River for details.
5863
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
7 */
4897a58c8746 River artifacts: Added new copyright headers.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5838
diff changeset
8
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5469
diff changeset
9 package org.dive4elements.river.artifacts;
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
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 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
12
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 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
14
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 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
16
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5469
diff changeset
17 import org.dive4elements.artifactdatabase.state.DefaultOutput;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5469
diff changeset
18 import org.dive4elements.artifactdatabase.state.Facet;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5469
diff changeset
19 import org.dive4elements.artifactdatabase.state.State;
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
20
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5469
diff changeset
21 import org.dive4elements.river.model.River;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5469
diff changeset
22 import org.dive4elements.river.model.CrossSectionTrack;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5469
diff changeset
23
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5469
diff changeset
24 import org.dive4elements.river.artifacts.model.FacetTypes;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5469
diff changeset
25 import org.dive4elements.river.artifacts.model.RiverFactory;
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
26 import org.dive4elements.river.utils.RiverUtils;
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5469
diff changeset
27 import org.dive4elements.river.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
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
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 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
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 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
33
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
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7842
diff changeset
35 private static final Logger log =
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
36 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
37
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
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 @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
40 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
41 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
42 }
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
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 @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
46 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
47 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
48
4497
a2735a4bf75e Change facets member variable to private
Björn Ricks <bjoern.ricks@intevation.de>
parents: 3918
diff changeset
49 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
50
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 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
52 "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
53 "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
54 "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
55 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
56 "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
57
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 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
59
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60 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
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
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
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 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
65
8202
e4606eae8ea5 sed src/**/*.java 's/logger/log/g'
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7842
diff changeset
66 private static final Logger log =
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
67 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
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 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
70 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
71 }
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 @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
74 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
75 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
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
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 @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
79 protected String getUrl() {
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
80 return RiverUtils.getUserWMSUrl(artifact.identifier());
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
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
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 @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
84 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
85 River river = RiverFactory.getRiver(getRiverId());
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
86 return RiverUtils.getRiverSrid(river.getName());
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
87 }
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
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 @Override
3918
2fdbe78a8fc2 Fixed various projection issues during map creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3405
diff changeset
90 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
91 River river = RiverFactory.getRiver(getRiverId());
5469
948a106bc4cd Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents: 5468
diff changeset
92 List<CrossSectionTrack> qps;
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
5469
948a106bc4cd Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents: 5468
diff changeset
94 String kind = getIdPart(2);
948a106bc4cd Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents: 5468
diff changeset
95
948a106bc4cd Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents: 5468
diff changeset
96 if (kind != null && kind.equals("1")) {
948a106bc4cd Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents: 5468
diff changeset
97 qps = CrossSectionTrack.getCrossSectionTrack(river.getName(),
948a106bc4cd Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents: 5468
diff changeset
98 Integer.parseInt(kind));
948a106bc4cd Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents: 5468
diff changeset
99 } else if (kind != null) {
948a106bc4cd Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents: 5468
diff changeset
100 qps = CrossSectionTrack.getCrossSectionTrack(river.getName(),
948a106bc4cd Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents: 5468
diff changeset
101 getName(), Integer.parseInt(kind));
948a106bc4cd Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents: 5468
diff changeset
102 } else {
948a106bc4cd Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents: 5468
diff changeset
103 qps = CrossSectionTrack.getCrossSectionTrack(river.getName(),
948a106bc4cd Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents: 5468
diff changeset
104 getName());
948a106bc4cd Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents: 5468
diff changeset
105 }
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
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 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
108
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 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
110 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
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 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
113 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
114 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
115 }
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 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
118 }
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
119
3918
2fdbe78a8fc2 Fixed various projection issues during map creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3405
diff changeset
120 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
121 ? 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
122 : 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
123 }
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 @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
126 protected String getFilter() {
5469
948a106bc4cd Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents: 5468
diff changeset
127 String kind = getIdPart(2);
948a106bc4cd Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents: 5468
diff changeset
128 if (kind != null && kind.equals("1")) {
948a106bc4cd Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents: 5468
diff changeset
129 // There can be several layers named qps that differ in kind
948a106bc4cd Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents: 5468
diff changeset
130 return "river_id=" + String.valueOf(getRiverId()) +
948a106bc4cd Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents: 5468
diff changeset
131 " AND kind_id=" + kind;
948a106bc4cd Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents: 5468
diff changeset
132 } else if (kind != null) {
948a106bc4cd Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents: 5468
diff changeset
133 return "river_id=" + String.valueOf(getRiverId()) +
948a106bc4cd Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents: 5468
diff changeset
134 " AND kind_id=" + kind +
948a106bc4cd Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents: 5468
diff changeset
135 " AND name='" + getName() + "'";
948a106bc4cd Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents: 5468
diff changeset
136 }
948a106bc4cd Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents: 5468
diff changeset
137 return "river_id=" + String.valueOf(getRiverId()) +
948a106bc4cd Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents: 5468
diff changeset
138 " AND name='" + getName() + "'";
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
139 }
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
140
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 @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
142 protected String getDataString() {
1845
06c157848c8f Made the floodmap compatible with an Oracle database.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1836
diff changeset
143 String srid = getSrid();
06c157848c8f Made the floodmap compatible with an Oracle database.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1836
diff changeset
144
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
145 if (RiverUtils.isUsingOracle()) {
1845
06c157848c8f Made the floodmap compatible with an Oracle database.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1836
diff changeset
146 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
147 }
06c157848c8f Made the floodmap compatible with an Oracle database.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1836
diff changeset
148 else {
06c157848c8f Made the floodmap compatible with an Oracle database.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 1836
diff changeset
149 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
150 "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
151 }
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
152 }
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
153
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
154 @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
155 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
156 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
157 }
729ba79e94a0 Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
158 } // 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
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 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org