annotate artifacts/src/main/java/org/dive4elements/river/artifacts/WMSFloodmapsArtifact.java @ 7471:fff862f4ef76

Experimental caching of datacage recommendations. The respective hook is called a lot and running the datacage over and over again when loading data can be expensive. So the generated recommendations are cached for some time. Hopefully this improves the overall speed of loading data from the datacage.
author Sascha L. Teichmann <teichmann@intevation.de>
date Wed, 30 Oct 2013 15:26:21 +0100
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: 4497
diff changeset
9 package org.dive4elements.river.artifacts;
2581
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11 import java.util.List;
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13 import org.w3c.dom.Document;
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 import org.apache.log4j.Logger;
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17 import com.vividsolutions.jts.geom.Envelope;
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4497
diff changeset
19 import org.dive4elements.artifacts.ArtifactFactory;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4497
diff changeset
20 import org.dive4elements.artifacts.CallMeta;
2581
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4497
diff changeset
22 import org.dive4elements.artifactdatabase.state.DefaultOutput;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4497
diff changeset
23 import org.dive4elements.artifactdatabase.state.Facet;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4497
diff changeset
24 import org.dive4elements.artifactdatabase.state.State;
2581
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4497
diff changeset
26 import org.dive4elements.river.model.River;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4497
diff changeset
27 import org.dive4elements.river.model.Floodmaps;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4497
diff changeset
28
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4497
diff changeset
29 import org.dive4elements.river.artifacts.model.FacetTypes;
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 4497
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: 4497
diff changeset
32 import org.dive4elements.river.utils.GeometryUtils;
2581
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35 public class WMSFloodmapsArtifact extends WMSDBArtifact {
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37 public static final String NAME = "floodmaps";
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 private static final Logger logger =
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 Logger.getLogger(WMSFloodmapsArtifact.class);
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44 @Override
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45 public void setup(
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 String identifier,
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 ArtifactFactory factory,
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 Object context,
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49 CallMeta callMeta,
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50 Document data)
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51 {
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 logger.debug("WMSFloodmapsArtifact.setup");
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
54 super.setup(identifier, factory, context, callMeta, data);
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55 }
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58 @Override
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
59 public String getName() {
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60 return NAME;
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61 }
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64 @Override
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 public State getCurrentState(Object cc) {
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 State s = new FloodmapsState(this);
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
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());
2581
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70 DefaultOutput o = new DefaultOutput(
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71 "floodmap",
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72 "floodmap",
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73 "image/png",
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74 fs,
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75 "map");
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77 s.getOutputs().add(o);
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79 return s;
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 }
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 public static class FloodmapsState extends WMSDBState implements FacetTypes
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 {
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85 private static final Logger logger =
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86 Logger.getLogger(FloodmapsState.class);
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
88 protected int riverId;
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
89
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
90 public FloodmapsState(WMSDBArtifact artifact) {
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
91 super(artifact);
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
92 riverId = 0;
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
93 }
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
94
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
95 @Override
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
96 protected String getFacetType() {
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
97 return FLOODMAP_FLOODMAPS;
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
98 }
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
99
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
100 @Override
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
101 protected String getUrl() {
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
102 return RiverUtils.getUserWMSUrl(artifact.identifier());
2581
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
103 }
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
104
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
105 @Override
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
106 protected String getSrid() {
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
107 River river = RiverFactory.getRiver(getRiverId());
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
108 return RiverUtils.getRiverSrid(river.getName());
2581
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
109 }
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
110
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
111 @Override
3918
2fdbe78a8fc2 Fixed various projection issues during map creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3301
diff changeset
112 protected Envelope getExtent(boolean reproject) {
2581
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
113 List<Floodmaps> floodmaps =
2683
f5af3adb3b95 Improved datacage configuration for floodmaps and maps and modified the WMS layer artifacts to support names for layers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2595
diff changeset
114 Floodmaps.getFloodmaps(getRiverId(), getName());
2581
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
115
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
116 Envelope max = null;
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
117
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
118 for (Floodmaps f: floodmaps) {
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
119 Envelope env = f.getGeom().getEnvelopeInternal();
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
120
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
121 if (max == null) {
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
122 max = env;
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
123 continue;
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
124 }
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
125
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
126 max.expandToInclude(env);
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
127 }
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
128
3918
2fdbe78a8fc2 Fixed various projection issues during map creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3301
diff changeset
129 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
130 ? 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
131 : max;
2581
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
132 }
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
133
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
134 @Override
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
135 protected String getFilter() {
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
136 return "river_id=" + String.valueOf(getRiverId())
2683
f5af3adb3b95 Improved datacage configuration for floodmaps and maps and modified the WMS layer artifacts to support names for layers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2595
diff changeset
137 + " AND name='" + getName() + "'";
2581
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
138 }
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
139
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
140 @Override
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
141 protected String getDataString() {
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
142 String srid = getSrid();
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
143
5865
73da40528cf2 River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 5863
diff changeset
144 if (RiverUtils.isUsingOracle()) {
2581
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
145 return "geom FROM floodmaps USING SRID " + srid;
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
146 }
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
147 else {
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
148 return "geom FROM floodmaps USING UNIQUE id USING SRID " + srid;
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
149 }
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
150 }
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
151
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
152 @Override
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
153 protected String getGeometryType() {
2595
b23c956c5aa2 Fixed broken Floodmaps in datacage for floodmap output.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 2581
diff changeset
154 return "POLYGON";
2581
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
155 }
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
156 } // end of WMSKmState
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
157 }
afebbe9c2fce Added a new Artifact for loading existing 'floodmaps' via datacage.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
158 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org