comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSHydrBoundaryPolyArtifact.java @ 5515:87dab419b924

Properly handle hydr_boundaries and hydr_boundaries_poly in datacage This also fixes hydr_boundaries_poly which refered to the wrong table
author Andre Heinecke <aheinecke@intevation.de>
date Thu, 28 Mar 2013 17:13:53 +0100
parents a2735a4bf75e
children
comparison
equal deleted inserted replaced
5514:4c4fed23693f 5515:87dab419b924
100 return FLYSUtils.getRiverSrid(river.getName()); 100 return FLYSUtils.getRiverSrid(river.getName());
101 } 101 }
102 102
103 @Override 103 @Override
104 protected Envelope getExtent(boolean reproject) { 104 protected Envelope getExtent(boolean reproject) {
105 List<HydrBoundaryPoly> boundaries = HydrBoundaryPoly.getHydrBoundaries( 105 String kind = getIdPart(2);
106 getRiverId(), getName()); 106 String sectie = getIdPart(3);
107 String sobek = getIdPart(4);
108 int kindId = -1;
109 int sectieId = -1;
110 int sobekId = -1;
111
112 if (kind != null) {
113 kindId = Integer.parseInt(kind);
114 }
115 if (sectie != null && !sectie.equals("-1")) {
116 sectieId = Integer.parseInt(sectie);
117 }
118 if (sobek != null && !sobek.equals("-1")) {
119 sobekId = Integer.parseInt(sobek);
120 }
121
122 List<HydrBoundaryPoly> boundaries;
123 if (kindId == -1 && sobekId == -1 && sectieId == -1) {
124 boundaries = HydrBoundaryPoly.getHydrBoundaries(
125 getRiverId(), getName());
126 } else {
127 boundaries = HydrBoundaryPoly.getHydrBoundaries(
128 getRiverId(), kindId, sectieId, sobekId);
129 }
107 130
108 Envelope max = null; 131 Envelope max = null;
109 132
110 for (HydrBoundaryPoly b: boundaries) { 133 for (HydrBoundaryPoly b: boundaries) {
111 Envelope env = b.getGeom().getEnvelopeInternal(); 134 Envelope env = b.getGeom().getEnvelopeInternal();
123 : max; 146 : max;
124 } 147 }
125 148
126 @Override 149 @Override
127 protected String getFilter() { 150 protected String getFilter() {
151 // Expected id string:
152 // river_id;layer_name;kind;sectie;sobek
153 String kind = getIdPart(2);
154 String sectie = getIdPart(3);
155 String sobek = getIdPart(4);
156
157 String filter = "";
158 if (kind != null && !kind.equals("-1")) {
159 filter += " AND kind = " + kind;
160 }
161 if (sectie != null && !sectie.equals("-1")) {
162 filter += " AND sectie = " + sectie;
163 }
164 if (sobek != null && !sobek.equals("-1")) {
165 filter += " AND sobek = " + sobek;
166 }
167
168 if (filter.isEmpty()) {
169 filter = " AND name='" + getName() + "'";
170 }
171
128 return "river_id=" + String.valueOf(getRiverId()) 172 return "river_id=" + String.valueOf(getRiverId())
129 + " AND name='" + getName() + "'"; 173 + filter;
130 } 174 }
131 175
132 @Override 176 @Override
133 protected String getDataString() { 177 protected String getDataString() {
134 String srid = getSrid(); 178 String srid = getSrid();
135 179
136 if (FLYSUtils.isUsingOracle()) { 180 if (FLYSUtils.isUsingOracle()) {
137 return "geom FROM hydr_boundaries USING SRID " + srid; 181 return "geom FROM hydr_boundaries_poly USING SRID " + srid;
138 } 182 }
139 else { 183 else {
140 return "geom FROM hydr_boundaries USING UNIQUE id USING SRID " + srid; 184 return "geom FROM hydr_boundaries_poly USING UNIQUE id USING SRID " + srid;
141 } 185 }
142 } 186 }
143 187
144 @Override 188 @Override
145 protected String getGeometryType() { 189 protected String getGeometryType() {

http://dive4elements.wald.intevation.org