Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSHWSLinesArtifact.java @ 5779:ebec12def170
Datacage: Add a pool of builders to make it multi threadable.
XML DOM is not thread safe. Therefore the old implementation only allowed one thread
to use the builder at a time. As the complexity of the configuration
has increased over time this has become a bottleneck of the whole application
because it took quiet some time to build a result. Furthermore the builder code path
is visited very frequent. So many concurrent requests were piled up
resulting in long waits for the users.
To mitigate this problem a round robin pool of builders is used now.
Each of the pooled builders has an independent copy of the XML template
and can be run in parallel.
The number of builders is determined by the system property
'flys.datacage.pool.size'. It defaults to 4.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Sun, 21 Apr 2013 12:48:09 +0200 |
parents | 0b5c0c15b13f |
children |
rev | line source |
---|---|
1855
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.artifacts; |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
2 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
3 import java.util.List; |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
4 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
5 import org.w3c.dom.Document; |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
6 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
7 import org.apache.log4j.Logger; |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
8 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
9 import com.vividsolutions.jts.geom.Envelope; |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
10 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
11 import de.intevation.artifacts.ArtifactFactory; |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
12 import de.intevation.artifacts.CallMeta; |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
13 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
14 import de.intevation.artifactdatabase.state.DefaultOutput; |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
15 import de.intevation.artifactdatabase.state.Facet; |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
16 import de.intevation.artifactdatabase.state.State; |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
17 |
5094
6da542572ab1
Use HWSLines data for HWS and Lines.
Andre Heinecke <aheinecke@intevation.de>
parents:
4497
diff
changeset
|
18 import de.intevation.flys.model.HWSLine; |
1855
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
19 import de.intevation.flys.model.River; |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
20 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
21 import de.intevation.flys.artifacts.model.FacetTypes; |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
22 import de.intevation.flys.artifacts.model.RiverFactory; |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
23 import de.intevation.flys.utils.FLYSUtils; |
3301
c8f670ae96e8
Create extent of a map layer in the correct coordinate reference system.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
2699
diff
changeset
|
24 import de.intevation.flys.utils.GeometryUtils; |
1855
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
25 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
26 |
5347
0b5c0c15b13f
Split HWSArtifact into HWSPoints and HWSLines
Andre Heinecke <aheinecke@intevation.de>
parents:
5094
diff
changeset
|
27 public class WMSHWSLinesArtifact extends WMSDBArtifact { |
1855
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
28 |
5347
0b5c0c15b13f
Split HWSArtifact into HWSPoints and HWSLines
Andre Heinecke <aheinecke@intevation.de>
parents:
5094
diff
changeset
|
29 public static final String NAME = "hws_lines"; |
1855
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
30 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
31 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
32 private static final Logger logger = |
5347
0b5c0c15b13f
Split HWSArtifact into HWSPoints and HWSLines
Andre Heinecke <aheinecke@intevation.de>
parents:
5094
diff
changeset
|
33 Logger.getLogger(WMSHWSLinesArtifact.class); |
1855
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
34 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
35 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
36 @Override |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
37 public void setup( |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
38 String identifier, |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
39 ArtifactFactory factory, |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
40 Object context, |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
41 CallMeta callMeta, |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
42 Document data) |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
43 { |
5347
0b5c0c15b13f
Split HWSArtifact into HWSPoints and HWSLines
Andre Heinecke <aheinecke@intevation.de>
parents:
5094
diff
changeset
|
44 logger.debug("WMSHWSLinesArtifact.setup"); |
1855
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
45 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
46 super.setup(identifier, factory, context, callMeta, data); |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
47 } |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
48 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
49 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
50 @Override |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
51 public String getName() { |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
52 return NAME; |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
53 } |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
54 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
55 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
56 @Override |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
57 public State getCurrentState(Object cc) { |
5347
0b5c0c15b13f
Split HWSArtifact into HWSPoints and HWSLines
Andre Heinecke <aheinecke@intevation.de>
parents:
5094
diff
changeset
|
58 State s = new HWSLinesState(this); |
1855
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
59 |
4497
a2735a4bf75e
Change facets member variable to private
Björn Ricks <bjoern.ricks@intevation.de>
parents:
3918
diff
changeset
|
60 List<Facet> fs = getFacets(getCurrentStateId()); |
1855
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
61 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
62 DefaultOutput o = new DefaultOutput( |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
63 "floodmap", |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
64 "floodmap", |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
65 "image/png", |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
66 fs, |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
67 "map"); |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
68 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
69 s.getOutputs().add(o); |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
70 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
71 return s; |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
72 } |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
73 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
74 |
5347
0b5c0c15b13f
Split HWSArtifact into HWSPoints and HWSLines
Andre Heinecke <aheinecke@intevation.de>
parents:
5094
diff
changeset
|
75 public static class HWSLinesState extends WMSDBState implements FacetTypes |
1855
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
76 { |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
77 private static final Logger logger = |
5347
0b5c0c15b13f
Split HWSArtifact into HWSPoints and HWSLines
Andre Heinecke <aheinecke@intevation.de>
parents:
5094
diff
changeset
|
78 Logger.getLogger(HWSLinesState.class); |
1855
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
79 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
80 protected int riverId; |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
81 |
5347
0b5c0c15b13f
Split HWSArtifact into HWSPoints and HWSLines
Andre Heinecke <aheinecke@intevation.de>
parents:
5094
diff
changeset
|
82 public HWSLinesState(WMSDBArtifact artifact) { |
1855
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
83 super(artifact); |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
84 riverId = 0; |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
85 } |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
86 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
87 public int getRiverId() { |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
88 if (riverId == 0) { |
2672
5afccab9aac1
Modified floodmap specific datacage configuration and improved WMS hws layer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1855
diff
changeset
|
89 String ids = artifact.getDataAsString("ids"); |
5afccab9aac1
Modified floodmap specific datacage configuration and improved WMS hws layer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1855
diff
changeset
|
90 String[] parts = ids.split(";"); |
1855
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
91 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
92 try { |
3405
b0ba96bbf01d
Use Integer.parseInt() instead of Integer.valueOf() + Autounboxing.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3301
diff
changeset
|
93 riverId = Integer.parseInt(parts[0]); |
1855
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
94 } |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
95 catch (NumberFormatException nfe) { |
2672
5afccab9aac1
Modified floodmap specific datacage configuration and improved WMS hws layer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1855
diff
changeset
|
96 logger.error("Cannot parse river id from '" + parts[0] + "'"); |
1855
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
97 } |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
98 } |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
99 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
100 return riverId; |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
101 } |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
102 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
103 @Override |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
104 protected String getFacetType() { |
5347
0b5c0c15b13f
Split HWSArtifact into HWSPoints and HWSLines
Andre Heinecke <aheinecke@intevation.de>
parents:
5094
diff
changeset
|
105 return FLOODMAP_HWS_LINES; |
1855
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
106 } |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
107 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
108 @Override |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
109 protected String getUrl() { |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
110 return FLYSUtils.getUserWMSUrl(artifact.identifier()); |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
111 } |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
112 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
113 @Override |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
114 protected String getSrid() { |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
115 River river = RiverFactory.getRiver(getRiverId()); |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
116 return FLYSUtils.getRiverSrid(river.getName()); |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
117 } |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
118 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
119 @Override |
3918
2fdbe78a8fc2
Fixed various projection issues during map creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3405
diff
changeset
|
120 protected Envelope getExtent(boolean reproject) { |
5094
6da542572ab1
Use HWSLines data for HWS and Lines.
Andre Heinecke <aheinecke@intevation.de>
parents:
4497
diff
changeset
|
121 List<HWSLine> hws = HWSLine.getLines(getRiverId(), getName()); |
1855
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
122 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
123 Envelope max = null; |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
124 |
5094
6da542572ab1
Use HWSLines data for HWS and Lines.
Andre Heinecke <aheinecke@intevation.de>
parents:
4497
diff
changeset
|
125 for (HWSLine h: hws) { |
1855
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
126 Envelope env = h.getGeom().getEnvelopeInternal(); |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
127 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
128 if (max == null) { |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
129 max = env; |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
130 continue; |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
131 } |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
132 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
133 max.expandToInclude(env); |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
134 } |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
135 |
3918
2fdbe78a8fc2
Fixed various projection issues during map creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3405
diff
changeset
|
136 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
|
137 ? 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
|
138 : max; |
1855
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
139 } |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
140 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
141 @Override |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
142 protected String getFilter() { |
2672
5afccab9aac1
Modified floodmap specific datacage configuration and improved WMS hws layer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1855
diff
changeset
|
143 return "river_id=" + String.valueOf(getRiverId()) |
5afccab9aac1
Modified floodmap specific datacage configuration and improved WMS hws layer.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
1855
diff
changeset
|
144 + " AND name='" + getName() + "'"; |
1855
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
145 } |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
146 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
147 @Override |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
148 protected String getDataString() { |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
149 String srid = getSrid(); |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
150 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
151 if (FLYSUtils.isUsingOracle()) { |
5347
0b5c0c15b13f
Split HWSArtifact into HWSPoints and HWSLines
Andre Heinecke <aheinecke@intevation.de>
parents:
5094
diff
changeset
|
152 return "geom FROM hws_lines USING SRID " + srid; |
1855
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
153 } |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
154 else { |
5347
0b5c0c15b13f
Split HWSArtifact into HWSPoints and HWSLines
Andre Heinecke <aheinecke@intevation.de>
parents:
5094
diff
changeset
|
155 return "geom FROM hws_lines USING UNIQUE id USING SRID " + srid; |
1855
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
156 } |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
157 } |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
158 |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
159 @Override |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
160 protected String getGeometryType() { |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
161 return "LINE"; |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
162 } |
5347
0b5c0c15b13f
Split HWSArtifact into HWSPoints and HWSLines
Andre Heinecke <aheinecke@intevation.de>
parents:
5094
diff
changeset
|
163 } |
1855
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
164 } |
b4798f15edc7
Added new WMSHwsArtifact for displaying flood protection works.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
165 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |