Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/WMSQPSArtifact.java @ 6693:88bb0c794833
issue1391: Enable GaugeDischarge artifact to directly load a table by its ID
This allows us to use the GaugeDischargeArtifact for any discharge
tables that we have in our database. The name of the created facet
is taken from the ids string as is also usual in the WMS artifacts.
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Mon, 29 Jul 2013 12:19:57 +0200 |
parents | af13ceeba52a |
children | 8d5ca5175038 |
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.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
|
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 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
|
16 |
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 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
|
18 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5469
diff
changeset
|
19 import org.dive4elements.artifacts.ArtifactFactory; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5469
diff
changeset
|
20 import org.dive4elements.artifacts.CallMeta; |
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
|
21 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5469
diff
changeset
|
22 import org.dive4elements.artifactdatabase.state.DefaultOutput; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5469
diff
changeset
|
23 import org.dive4elements.artifactdatabase.state.Facet; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5469
diff
changeset
|
24 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
|
25 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5469
diff
changeset
|
26 import org.dive4elements.river.model.River; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5469
diff
changeset
|
27 import org.dive4elements.river.model.CrossSectionTrack; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5469
diff
changeset
|
28 |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5469
diff
changeset
|
29 import org.dive4elements.river.artifacts.model.FacetTypes; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5469
diff
changeset
|
30 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
|
31 import org.dive4elements.river.utils.RiverUtils; |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5469
diff
changeset
|
32 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
|
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 |
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 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
|
36 |
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 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
|
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 |
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 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
|
41 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
|
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 @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
|
45 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
|
46 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
|
47 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
|
48 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
|
49 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
|
50 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
|
51 { |
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 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
|
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 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
|
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 |
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 @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
|
59 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
|
60 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
|
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 @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
|
65 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
|
66 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
|
67 |
4497
a2735a4bf75e
Change facets member variable to private
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3918
diff
changeset
|
68 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
|
69 |
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 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
|
71 "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
|
72 "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
|
73 "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
|
74 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
|
75 "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
|
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 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
|
78 |
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 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
|
80 } |
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 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
|
84 |
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 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
|
86 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
|
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 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
|
89 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
|
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 |
729ba79e94a0
Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
92 @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
|
93 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
|
94 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
|
95 } |
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 @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
|
98 protected String getUrl() { |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
99 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
|
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 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
|
104 River river = RiverFactory.getRiver(getRiverId()); |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
105 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
|
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 |
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 @Override |
3918
2fdbe78a8fc2
Fixed various projection issues during map creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3405
diff
changeset
|
109 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
|
110 River river = RiverFactory.getRiver(getRiverId()); |
5469
948a106bc4cd
Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5468
diff
changeset
|
111 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
|
112 |
5469
948a106bc4cd
Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5468
diff
changeset
|
113 String kind = getIdPart(2); |
948a106bc4cd
Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5468
diff
changeset
|
114 |
948a106bc4cd
Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5468
diff
changeset
|
115 if (kind != null && kind.equals("1")) { |
948a106bc4cd
Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5468
diff
changeset
|
116 qps = CrossSectionTrack.getCrossSectionTrack(river.getName(), |
948a106bc4cd
Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5468
diff
changeset
|
117 Integer.parseInt(kind)); |
948a106bc4cd
Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5468
diff
changeset
|
118 } else if (kind != null) { |
948a106bc4cd
Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5468
diff
changeset
|
119 qps = CrossSectionTrack.getCrossSectionTrack(river.getName(), |
948a106bc4cd
Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5468
diff
changeset
|
120 getName(), Integer.parseInt(kind)); |
948a106bc4cd
Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5468
diff
changeset
|
121 } else { |
948a106bc4cd
Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5468
diff
changeset
|
122 qps = CrossSectionTrack.getCrossSectionTrack(river.getName(), |
948a106bc4cd
Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5468
diff
changeset
|
123 getName()); |
948a106bc4cd
Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5468
diff
changeset
|
124 } |
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
|
125 |
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 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
|
127 |
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 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
|
129 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
|
130 |
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 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
|
132 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
|
133 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
|
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 |
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 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
|
137 } |
729ba79e94a0
Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
138 |
3918
2fdbe78a8fc2
Fixed various projection issues during map creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3405
diff
changeset
|
139 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
|
140 ? 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
|
141 : 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
|
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 |
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 @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
|
145 protected String getFilter() { |
5469
948a106bc4cd
Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5468
diff
changeset
|
146 String kind = getIdPart(2); |
948a106bc4cd
Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5468
diff
changeset
|
147 if (kind != null && kind.equals("1")) { |
948a106bc4cd
Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5468
diff
changeset
|
148 // 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
|
149 return "river_id=" + String.valueOf(getRiverId()) + |
948a106bc4cd
Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5468
diff
changeset
|
150 " AND kind_id=" + kind; |
948a106bc4cd
Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5468
diff
changeset
|
151 } else if (kind != null) { |
948a106bc4cd
Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5468
diff
changeset
|
152 return "river_id=" + String.valueOf(getRiverId()) + |
948a106bc4cd
Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5468
diff
changeset
|
153 " AND kind_id=" + kind + |
948a106bc4cd
Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5468
diff
changeset
|
154 " AND name='" + getName() + "'"; |
948a106bc4cd
Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5468
diff
changeset
|
155 } |
948a106bc4cd
Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5468
diff
changeset
|
156 return "river_id=" + String.valueOf(getRiverId()) + |
948a106bc4cd
Handle kind filtering in QPS WMS artifact
Andre Heinecke <aheinecke@intevation.de>
parents:
5468
diff
changeset
|
157 " 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
|
158 } |
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 @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
|
161 protected String getDataString() { |
1845
06c157848c8f
Made the floodmap compatible with an Oracle database.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1836
diff
changeset
|
162 String srid = getSrid(); |
06c157848c8f
Made the floodmap compatible with an Oracle database.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1836
diff
changeset
|
163 |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
164 if (RiverUtils.isUsingOracle()) { |
1845
06c157848c8f
Made the floodmap compatible with an Oracle database.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1836
diff
changeset
|
165 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
|
166 } |
06c157848c8f
Made the floodmap compatible with an Oracle database.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1836
diff
changeset
|
167 else { |
06c157848c8f
Made the floodmap compatible with an Oracle database.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1836
diff
changeset
|
168 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
|
169 "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
|
170 } |
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
|
171 } |
729ba79e94a0
Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
172 |
729ba79e94a0
Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
173 @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
|
174 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
|
175 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
|
176 } |
729ba79e94a0
Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
177 } // 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
|
178 } |
729ba79e94a0
Added datacage configuration, loader (Artifact and State) and a theme for cross section tracks.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
179 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |