Mercurial > dive4elements > river
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 : |