Mercurial > dive4elements > river
annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSLineArtifact.java @ 5818:a4ff4167be1e
Request feature info on all layers and show it as html if
the server does not return valid gml.
Non queryable layers produce an error message when the request
fails. This is good enough
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Wed, 24 Apr 2013 17:33:27 +0200 |
parents | 6da542572ab1 |
children |
rev | line source |
---|---|
1870
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.flys.artifacts; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
2 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
3 import java.util.List; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
4 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
5 import org.w3c.dom.Document; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
6 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
7 import org.apache.log4j.Logger; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
8 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
9 import com.vividsolutions.jts.geom.Envelope; |
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 de.intevation.artifacts.ArtifactFactory; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
12 import de.intevation.artifacts.CallMeta; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
13 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
14 import de.intevation.artifactdatabase.state.DefaultOutput; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
15 import de.intevation.artifactdatabase.state.Facet; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
16 import de.intevation.artifactdatabase.state.State; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
17 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
18 import de.intevation.flys.model.River; |
5094
6da542572ab1
Use HWSLines data for HWS and Lines.
Andre Heinecke <aheinecke@intevation.de>
parents:
4497
diff
changeset
|
19 import de.intevation.flys.model.HWSLine; |
1870
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
20 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
21 import de.intevation.flys.artifacts.model.FacetTypes; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
22 import de.intevation.flys.artifacts.model.RiverFactory; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
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; |
1870
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
25 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
26 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
27 public class WMSLineArtifact extends WMSDBArtifact { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
28 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
29 public static final String NAME = "lines"; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
30 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
31 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
32 private static final Logger logger = |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
33 Logger.getLogger(WMSLineArtifact.class); |
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 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
36 @Override |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
37 public void setup( |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
38 String identifier, |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
39 ArtifactFactory factory, |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
40 Object context, |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
41 CallMeta callMeta, |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
42 Document data) |
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 logger.debug("WMSLineArtifact.setup"); |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
45 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
46 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
|
47 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
48 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
49 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
50 @Override |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
51 public String getName() { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
52 return NAME; |
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 |
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 @Override |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
57 public State getCurrentState(Object cc) { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
58 State s = new LineState(this); |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
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()); |
1870
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 DefaultOutput o = new DefaultOutput( |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
63 "floodmap", |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
64 "floodmap", |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
65 "image/png", |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
66 fs, |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
67 "map"); |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
68 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
69 s.getOutputs().add(o); |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
70 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
71 return s; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
72 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
73 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
74 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
75 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
|
76 { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
77 private static final Logger logger = |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
78 Logger.getLogger(LineState.class); |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
79 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
80 protected int riverId; |
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 public LineState(WMSDBArtifact artifact) { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
83 super(artifact); |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
84 riverId = 0; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
85 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
86 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
87 public int getRiverId() { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
88 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
|
89 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
|
90 String[] parts = ids.split(";"); |
1870
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
91 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
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]); |
1870
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 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
|
96 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
|
97 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
98 } |
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 return riverId; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
101 } |
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 @Override |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
104 protected String getFacetType() { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
105 return FLOODMAP_LINES; |
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 @Override |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
109 protected String getUrl() { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
110 return FLYSUtils.getUserWMSUrl(artifact.identifier()); |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
111 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
112 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
113 @Override |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
114 protected String getSrid() { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
115 River river = RiverFactory.getRiver(getRiverId()); |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
116 return FLYSUtils.getRiverSrid(river.getName()); |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
117 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
118 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
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> lines = HWSLine.getLines(getRiverId(), getName()); |
1870
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
122 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
123 Envelope max = null; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
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 l: lines) { |
1870
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
126 Envelope env = l.getGeom().getEnvelopeInternal(); |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
127 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
128 if (max == null) { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
129 max = env; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
130 continue; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
131 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
132 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
133 max.expandToInclude(env); |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
134 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
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; |
1870
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 @Override |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
142 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
|
143 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
|
144 " AND name='" + getName() + "'"; |
1870
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
145 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
146 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
147 @Override |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
148 protected String getDataString() { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
149 String srid = getSrid(); |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
150 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
151 if (FLYSUtils.isUsingOracle()) { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
152 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
|
153 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
154 else { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
155 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
|
156 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
157 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
158 |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
159 @Override |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
160 protected String getGeometryType() { |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
161 return "LINE"; |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
162 } |
ec458853f560
Added new WMSLineArtifact for displaying lines in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
163 } // end of WMSKmState |
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 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |