Mercurial > dive4elements > river
annotate artifacts/src/main/java/org/dive4elements/river/artifacts/WMSBuildingsArtifact.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:
5404
diff
changeset
|
9 package org.dive4elements.river.artifacts; |
1871
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
10 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
11 import java.util.List; |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
12 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
13 import org.w3c.dom.Document; |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
14 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
15 import org.apache.log4j.Logger; |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
16 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
17 import com.vividsolutions.jts.geom.Envelope; |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
18 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5404
diff
changeset
|
19 import org.dive4elements.artifacts.ArtifactFactory; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5404
diff
changeset
|
20 import org.dive4elements.artifacts.CallMeta; |
1871
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
21 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5404
diff
changeset
|
22 import org.dive4elements.artifactdatabase.state.DefaultOutput; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5404
diff
changeset
|
23 import org.dive4elements.artifactdatabase.state.Facet; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5404
diff
changeset
|
24 import org.dive4elements.artifactdatabase.state.State; |
1871
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
25 |
5831
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5404
diff
changeset
|
26 import org.dive4elements.river.model.River; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5404
diff
changeset
|
27 import org.dive4elements.river.model.Building; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5404
diff
changeset
|
28 |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5404
diff
changeset
|
29 import org.dive4elements.river.artifacts.model.FacetTypes; |
bd047b71ab37
Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents:
5404
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:
5404
diff
changeset
|
32 import org.dive4elements.river.utils.GeometryUtils; |
1871
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
33 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
34 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
35 public class WMSBuildingsArtifact extends WMSDBArtifact { |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
36 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
37 public static final String NAME = "buildings"; |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
38 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
39 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
40 private static final Logger logger = |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
41 Logger.getLogger(WMSBuildingsArtifact.class); |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
42 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
43 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
44 @Override |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
45 public void setup( |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
46 String identifier, |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
47 ArtifactFactory factory, |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
48 Object context, |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
49 CallMeta callMeta, |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
50 Document data) |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
51 { |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
52 logger.debug("WMSBuildingsArtifact.setup"); |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
53 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
54 super.setup(identifier, factory, context, callMeta, data); |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
55 } |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
56 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
57 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
58 @Override |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
59 public String getName() { |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
60 return NAME; |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
61 } |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
62 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
63 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
64 @Override |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
65 public State getCurrentState(Object cc) { |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
66 State s = new BuildingsState(this); |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings 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()); |
1871
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
69 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
70 DefaultOutput o = new DefaultOutput( |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
71 "floodmap", |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
72 "floodmap", |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
73 "image/png", |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
74 fs, |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
75 "map"); |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
76 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
77 s.getOutputs().add(o); |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
78 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
79 return s; |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
80 } |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
81 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
82 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
83 public static class BuildingsState extends WMSDBState implements FacetTypes |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
84 { |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
85 private static final Logger logger = |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
86 Logger.getLogger(BuildingsState.class); |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
87 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
88 protected int riverId; |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
89 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
90 public BuildingsState(WMSDBArtifact artifact) { |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
91 super(artifact); |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
92 riverId = 0; |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
93 } |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
94 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
95 @Override |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
96 protected String getFacetType() { |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
97 return FLOODMAP_BUILDINGS; |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
98 } |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
99 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
100 @Override |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
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()); |
1871
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
103 } |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
104 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
105 @Override |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
106 protected String getSrid() { |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
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()); |
1871
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
109 } |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
110 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
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:
3305
diff
changeset
|
112 protected Envelope getExtent(boolean reproject) { |
5404
08262e0ce57a
Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents:
4497
diff
changeset
|
113 List<Building> buildings; |
08262e0ce57a
Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents:
4497
diff
changeset
|
114 String kind = getIdPart(2); |
08262e0ce57a
Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents:
4497
diff
changeset
|
115 |
08262e0ce57a
Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents:
4497
diff
changeset
|
116 if (kind != null) { |
08262e0ce57a
Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents:
4497
diff
changeset
|
117 buildings = Building.getBuildings(getRiverId(), Integer.parseInt(kind)); |
08262e0ce57a
Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents:
4497
diff
changeset
|
118 } else { |
08262e0ce57a
Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents:
4497
diff
changeset
|
119 buildings = Building.getBuildings(getRiverId(), name); |
08262e0ce57a
Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents:
4497
diff
changeset
|
120 } |
1871
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
121 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
122 Envelope max = null; |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
123 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
124 for (Building b: buildings) { |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
125 Envelope env = b.getGeom().getEnvelopeInternal(); |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
126 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
127 if (max == null) { |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
128 max = env; |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
129 continue; |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
130 } |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
131 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
132 max.expandToInclude(env); |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
133 } |
3305
b24920235944
Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
3301
diff
changeset
|
134 |
3918
2fdbe78a8fc2
Fixed various projection issues during map creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
3305
diff
changeset
|
135 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
|
136 ? 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
|
137 : max; |
1871
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
138 } |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
139 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
140 @Override |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
141 protected String getFilter() { |
5404
08262e0ce57a
Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents:
4497
diff
changeset
|
142 // The expected id string is: |
08262e0ce57a
Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents:
4497
diff
changeset
|
143 // river_id;layer-name;kind |
08262e0ce57a
Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents:
4497
diff
changeset
|
144 |
08262e0ce57a
Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents:
4497
diff
changeset
|
145 String kind = getIdPart(2); |
08262e0ce57a
Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents:
4497
diff
changeset
|
146 if (kind != null) { |
08262e0ce57a
Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents:
4497
diff
changeset
|
147 // If kind is provided we filter by kind |
08262e0ce57a
Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents:
4497
diff
changeset
|
148 return "river_id=" + String.valueOf(getRiverId()) + |
08262e0ce57a
Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents:
4497
diff
changeset
|
149 " AND kind_id=" + kind; |
08262e0ce57a
Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents:
4497
diff
changeset
|
150 } |
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:
1871
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:
1871
diff
changeset
|
152 " AND name='" + getName() + "'"; |
1871
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
153 } |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
154 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
155 @Override |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
156 protected String getDataString() { |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
157 String srid = getSrid(); |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings 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()) { |
1871
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
160 return "geom FROM buildings USING SRID " + srid; |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
161 } |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
162 else { |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
163 return "geom FROM buildings USING UNIQUE id USING SRID " + srid; |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
164 } |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
165 } |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
166 |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
167 @Override |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
168 protected String getGeometryType() { |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
169 return "LINE"; |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
170 } |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
171 } // end of WMSKmState |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff
changeset
|
172 } |
257f7b54a943
Added new WMSBuildingsArtifact for displaying buildings 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 : |