annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSBuildingsArtifact.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 08262e0ce57a
children
rev   line source
1871
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.artifacts;
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
3 import java.util.List;
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
4
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
5 import org.w3c.dom.Document;
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
6
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
7 import org.apache.log4j.Logger;
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
8
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
9 import com.vividsolutions.jts.geom.Envelope;
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 de.intevation.artifacts.ArtifactFactory;
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12 import de.intevation.artifacts.CallMeta;
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14 import de.intevation.artifactdatabase.state.DefaultOutput;
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15 import de.intevation.artifactdatabase.state.Facet;
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16 import de.intevation.artifactdatabase.state.State;
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
18 import de.intevation.flys.model.River;
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 import de.intevation.flys.model.Building;
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 import de.intevation.flys.artifacts.model.FacetTypes;
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22 import de.intevation.flys.artifacts.model.RiverFactory;
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings 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;
1871
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27 public class WMSBuildingsArtifact extends WMSDBArtifact {
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29 public static final String NAME = "buildings";
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 private static final Logger logger =
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 Logger.getLogger(WMSBuildingsArtifact.class);
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
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36 @Override
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37 public void setup(
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38 String identifier,
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39 ArtifactFactory factory,
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 Object context,
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 CallMeta callMeta,
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42 Document data)
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 logger.debug("WMSBuildingsArtifact.setup");
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
45
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 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
47 }
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50 @Override
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51 public String getName() {
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52 return NAME;
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
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 @Override
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57 public State getCurrentState(Object cc) {
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58 State s = new BuildingsState(this);
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings 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());
1871
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 DefaultOutput o = new DefaultOutput(
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63 "floodmap",
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64 "floodmap",
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 "image/png",
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 fs,
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
67 "map");
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69 s.getOutputs().add(o);
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71 return s;
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72 }
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75 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
76 {
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77 private static final Logger logger =
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78 Logger.getLogger(BuildingsState.class);
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 protected int riverId;
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 public BuildingsState(WMSDBArtifact artifact) {
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 super(artifact);
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 riverId = 0;
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85 }
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87 @Override
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
88 protected String getFacetType() {
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
89 return FLOODMAP_BUILDINGS;
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
90 }
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
91
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
92 @Override
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
93 protected String getUrl() {
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
94 return FLYSUtils.getUserWMSUrl(artifact.identifier());
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
95 }
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
96
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
97 @Override
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
98 protected String getSrid() {
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
99 River river = RiverFactory.getRiver(getRiverId());
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
100 return FLYSUtils.getRiverSrid(river.getName());
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
101 }
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
102
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
103 @Override
3918
2fdbe78a8fc2 Fixed various projection issues during map creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3305
diff changeset
104 protected Envelope getExtent(boolean reproject) {
5404
08262e0ce57a Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents: 4497
diff changeset
105 List<Building> buildings;
08262e0ce57a Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents: 4497
diff changeset
106 String kind = getIdPart(2);
08262e0ce57a Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents: 4497
diff changeset
107
08262e0ce57a Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents: 4497
diff changeset
108 if (kind != null) {
08262e0ce57a Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents: 4497
diff changeset
109 buildings = Building.getBuildings(getRiverId(), Integer.parseInt(kind));
08262e0ce57a Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents: 4497
diff changeset
110 } else {
08262e0ce57a Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents: 4497
diff changeset
111 buildings = Building.getBuildings(getRiverId(), name);
08262e0ce57a Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents: 4497
diff changeset
112 }
1871
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
113
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
114 Envelope max = null;
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
115
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
116 for (Building b: buildings) {
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
117 Envelope env = b.getGeom().getEnvelopeInternal();
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
118
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
119 if (max == null) {
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
120 max = env;
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
121 continue;
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
122 }
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 max.expandToInclude(env);
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
125 }
3305
b24920235944 Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3301
diff changeset
126
3918
2fdbe78a8fc2 Fixed various projection issues during map creation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 3305
diff changeset
127 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
128 ? 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
129 : max;
1871
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 @Override
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
133 protected String getFilter() {
5404
08262e0ce57a Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents: 4497
diff changeset
134 // The expected id string is:
08262e0ce57a Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents: 4497
diff changeset
135 // river_id;layer-name;kind
08262e0ce57a Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents: 4497
diff changeset
136
08262e0ce57a Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents: 4497
diff changeset
137 String kind = getIdPart(2);
08262e0ce57a Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents: 4497
diff changeset
138 if (kind != null) {
08262e0ce57a Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents: 4497
diff changeset
139 // If kind is provided we filter by kind
08262e0ce57a Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents: 4497
diff changeset
140 return "river_id=" + String.valueOf(getRiverId()) +
08262e0ce57a Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents: 4497
diff changeset
141 " AND kind_id=" + kind;
08262e0ce57a Add buildings with kinds to datacage
Andre Heinecke <aheinecke@intevation.de>
parents: 4497
diff changeset
142 }
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
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: 1871
diff changeset
144 " AND name='" + getName() + "'";
1871
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
145 }
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
146
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
147 @Override
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
148 protected String getDataString() {
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
149 String srid = getSrid();
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
150
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
151 if (FLYSUtils.isUsingOracle()) {
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
152 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
153 }
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
154 else {
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
155 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
156 }
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
157 }
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
158
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
159 @Override
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
160 protected String getGeometryType() {
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
161 return "LINE";
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
162 }
257f7b54a943 Added new WMSBuildingsArtifact for displaying buildings in maps.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
163 } // end of WMSKmState
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 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org