Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/WMSLineArtifact.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:
5094
diff
changeset
|
9 package org.dive4elements.river.artifacts; |
1870
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
10 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
11 import java.util.List; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
12 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
13 import org.w3c.dom.Document; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
14 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
15 import org.apache.log4j.Logger; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
16 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
17 import com.vividsolutions.jts.geom.Envelope; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
18 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5094
diff
changeset
|
19 import org.dive4elements.artifacts.ArtifactFactory; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5094
diff
changeset
|
20 import org.dive4elements.artifacts.CallMeta; |
1870
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
21 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5094
diff
changeset
|
22 import org.dive4elements.artifactdatabase.state.DefaultOutput; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5094
diff
changeset
|
23 import org.dive4elements.artifactdatabase.state.Facet; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5094
diff
changeset
|
24 import org.dive4elements.artifactdatabase.state.State; |
1870
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
25 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5094
diff
changeset
|
26 import org.dive4elements.river.model.River; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5094
diff
changeset
|
27 import org.dive4elements.river.model.HWSLine; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5094
diff
changeset
|
28 |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5094
diff
changeset
|
29 import org.dive4elements.river.artifacts.model.FacetTypes; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5094
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:
5094
diff
changeset
|
32 import org.dive4elements.river.utils.GeometryUtils; |
1870
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
33 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
34 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
35 public class WMSLineArtifact extends WMSDBArtifact { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
36 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
37 public static final String NAME = "lines"; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
38 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
39 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
40 private static final Logger logger = |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
41 Logger.getLogger(WMSLineArtifact.class); |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
42 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
43 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
44 @Override |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
45 public void setup( |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
46 String identifier, |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
47 ArtifactFactory factory, |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
48 Object context, |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
49 CallMeta callMeta, |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
50 Document data) |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
51 { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
52 logger.debug("WMSLineArtifact.setup"); |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
53 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
54 super.setup(identifier, factory, context, callMeta, data); |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
55 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
56 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
57 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
58 @Override |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
59 public String getName() { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
60 return NAME; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
61 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
62 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
63 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
64 @Override |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
65 public State getCurrentState(Object cc) { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
66 State s = new LineState(this); |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
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()); |
1870
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
69 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
70 DefaultOutput o = new DefaultOutput( |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
71 "floodmap", |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
72 "floodmap", |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
73 "image/png", |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
74 fs, |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
75 "map"); |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
76 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
77 s.getOutputs().add(o); |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
78 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
79 return s; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
80 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
81 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
82 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
83 public static class LineState extends WMSDBState implements FacetTypes |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
84 { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
85 private static final Logger logger = |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
86 Logger.getLogger(LineState.class); |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
87 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
88 protected int riverId; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
89 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
90 public LineState(WMSDBArtifact artifact) { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
91 super(artifact); |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
92 riverId = 0; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
93 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
94 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
95 public int getRiverId() { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
96 if (riverId == 0) { |
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:
1870
diff
changeset
|
97 String ids = artifact.getDataAsString("ids"); |
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:
1870
diff
changeset
|
98 String[] parts = ids.split(";"); |
1870
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
99 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
100 try { |
3405
b0ba96bbf01d
Use Integer.parseInt() instead of Integer.valueOf() + Autounboxing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3301
diff
changeset
|
101 riverId = Integer.parseInt(parts[0]); |
1870
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
102 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
103 catch (NumberFormatException nfe) { |
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:
1870
diff
changeset
|
104 logger.error("Cannot parse river id from '" + parts[0] + "'"); |
1870
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
105 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
106 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
107 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
108 return riverId; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
109 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
110 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
111 @Override |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
112 protected String getFacetType() { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
113 return FLOODMAP_LINES; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
114 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
115 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
116 @Override |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
117 protected String getUrl() { |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
118 return RiverUtils.getUserWMSUrl(artifact.identifier()); |
1870
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
119 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
120 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
121 @Override |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
122 protected String getSrid() { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
123 River river = RiverFactory.getRiver(getRiverId()); |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
124 return RiverUtils.getRiverSrid(river.getName()); |
1870
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
125 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
126 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
127 @Override |
3918
2fdbe78a8fc2
Fixed various projection issues during map creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3405
diff
changeset
|
128 protected Envelope getExtent(boolean reproject) { |
5094
6da542572ab1
Use HWSLines data for HWS and Lines.
Andre Heinecke <aheinecke@intevation.de>
parents:
4497
diff
changeset
|
129 List<HWSLine> lines = HWSLine.getLines(getRiverId(), getName()); |
1870
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
130 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
131 Envelope max = null; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
132 |
5094
6da542572ab1
Use HWSLines data for HWS and Lines.
Andre Heinecke <aheinecke@intevation.de>
parents:
4497
diff
changeset
|
133 for (HWSLine l: lines) { |
1870
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
134 Envelope env = l.getGeom().getEnvelopeInternal(); |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
135 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
136 if (max == null) { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
137 max = env; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
138 continue; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
139 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
140 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
141 max.expandToInclude(env); |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
142 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
143 |
3918
2fdbe78a8fc2
Fixed various projection issues during map creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3405
diff
changeset
|
144 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
|
145 ? 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
|
146 : max; |
1870
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
147 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
148 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
149 @Override |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
150 protected String getFilter() { |
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:
1870
diff
changeset
|
151 return "river_id=" + String.valueOf(getRiverId()) + |
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:
1870
diff
changeset
|
152 " AND name='" + getName() + "'"; |
1870
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
153 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
154 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
155 @Override |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
156 protected String getDataString() { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
157 String srid = getSrid(); |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
158 |
5865
73da40528cf2
River artifacts: Renamed FLYSUtils to RiverUtils.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5863
diff
changeset
|
159 if (RiverUtils.isUsingOracle()) { |
1870
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
160 return "geom FROM lines USING SRID " + srid; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
161 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
162 else { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
163 return "geom FROM lines USING UNIQUE id USING SRID " + srid; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
164 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
165 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
166 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
167 @Override |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
168 protected String getGeometryType() { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
169 return "LINE"; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
170 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
171 } // end of WMSKmState |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
172 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
173 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |