Revision 4507
org.gvsig.topology/trunk/org.gvsig.topology/org.gvsig.topology.lib/org.gvsig.topology.lib.impl/src/main/java/org/gvsig/topology/rule/PolygonMustNotOverlapPolygonRule.java | ||
---|---|---|
32 | 32 |
import org.gvsig.fmap.dal.feature.FeatureSet; |
33 | 33 |
import org.gvsig.fmap.geom.Geometry; |
34 | 34 |
import org.gvsig.fmap.geom.GeometryUtils; |
35 |
import org.gvsig.fmap.geom.aggregate.Aggregate; |
|
36 |
import org.gvsig.fmap.geom.complex.Complex; |
|
35 | 37 |
import org.gvsig.tools.ToolsLocator; |
36 | 38 |
import org.gvsig.tools.dynobject.DynObject; |
37 | 39 |
import org.gvsig.tools.i18n.I18nManager; |
... | ... | |
217 | 219 |
if (GeometryUtils.overlaps(polygon, otherPolygon, theTolerance)) { |
218 | 220 |
I18nManager i18n = ToolsLocator.getI18nManager(); |
219 | 221 |
Geometry error = polygon.intersection(otherPolygon); |
220 |
report.addLine(this, |
|
221 |
theDataSet, |
|
222 |
null, |
|
223 |
polygon, |
|
224 |
error, |
|
225 |
feature1.getReference(), |
|
226 |
otherReference, |
|
227 |
false, |
|
228 |
i18n.getTranslation("_The_polygon_overlay_with_other") |
|
229 |
); |
|
222 |
if(error != null){ |
|
223 |
if (error instanceof Complex) { |
|
224 |
error = ((Complex) error).createAggregate( |
|
225 |
Geometry.TYPES.MULTIPOLYGON, |
|
226 |
(Geometry g) -> GeometryUtils.isSubtype(Geometry.TYPES.MULTISURFACE, g.getGeometryType().getType()) || GeometryUtils.isSubtype(Geometry.TYPES.SURFACE, g.getGeometryType().getType()) |
|
227 |
); |
|
228 |
if(((Aggregate)error).getPrimitivesNumber() == 0){ |
|
229 |
continue; |
|
230 |
} |
|
231 |
} else if(!(GeometryUtils.isSubtype(Geometry.TYPES.MULTISURFACE, error.getGeometryType().getType()) || GeometryUtils.isSubtype(Geometry.TYPES.SURFACE, error.getGeometryType().getType()))) { |
|
232 |
continue; |
|
233 |
} |
|
234 |
|
|
235 |
report.addLine(this, |
|
236 |
theDataSet, |
|
237 |
null, |
|
238 |
polygon, |
|
239 |
error, |
|
240 |
feature1.getReference(), |
|
241 |
otherReference, |
|
242 |
false, |
|
243 |
i18n.getTranslation("_The_polygon_overlay_with_other") |
|
244 |
); |
|
245 |
} |
|
230 | 246 |
} |
231 | 247 |
} |
232 | 248 |
} |
... | ... | |
249 | 265 |
if (GeometryUtils.overlaps(polygon, otherPolygon, theTolerance)) { |
250 | 266 |
I18nManager i18n = ToolsLocator.getI18nManager(); |
251 | 267 |
Geometry error = polygon.intersection(otherPolygon); |
252 |
report.addLine(this, |
|
253 |
theDataSet, |
|
254 |
null, |
|
255 |
polygon, |
|
256 |
error, |
|
257 |
feature1.getReference(), |
|
258 |
feature.getReference(), |
|
259 |
false, |
|
260 |
i18n.getTranslation("_The_polygon_overlay_with_other") |
|
261 |
); |
|
268 |
if (error != null) { |
|
269 |
if (error instanceof Complex) { |
|
270 |
error = ((Complex) error).createAggregate( |
|
271 |
Geometry.TYPES.MULTIPOLYGON, |
|
272 |
(Geometry g) -> GeometryUtils.isSubtype(Geometry.TYPES.MULTISURFACE, g.getGeometryType().getType()) || GeometryUtils.isSubtype(Geometry.TYPES.SURFACE, g.getGeometryType().getType()) |
|
273 |
); |
|
274 |
if (((Aggregate) error).getPrimitivesNumber() == 0) { |
|
275 |
continue; |
|
276 |
} |
|
277 |
} else if (!(GeometryUtils.isSubtype(Geometry.TYPES.MULTISURFACE, error.getGeometryType().getType()) || GeometryUtils.isSubtype(Geometry.TYPES.SURFACE, error.getGeometryType().getType()))) { |
|
278 |
continue; |
|
279 |
} |
|
280 |
report.addLine(this, |
|
281 |
theDataSet, |
|
282 |
null, |
|
283 |
polygon, |
|
284 |
error, |
|
285 |
feature1.getReference(), |
|
286 |
feature.getReference(), |
|
287 |
false, |
|
288 |
i18n.getTranslation("_The_polygon_overlay_with_other") |
|
289 |
); |
|
290 |
} |
|
262 | 291 |
} |
263 | 292 |
} |
264 | 293 |
} |
org.gvsig.topology/trunk/org.gvsig.topology/org.gvsig.topology.lib/org.gvsig.topology.lib.impl/src/main/java/org/gvsig/topology/rule/PolygonMustNotOverlapWithPolygonRule.java | ||
---|---|---|
32 | 32 |
import org.gvsig.fmap.dal.feature.FeatureSet; |
33 | 33 |
import org.gvsig.fmap.geom.Geometry; |
34 | 34 |
import org.gvsig.fmap.geom.GeometryUtils; |
35 |
import org.gvsig.fmap.geom.aggregate.Aggregate; |
|
36 |
import org.gvsig.fmap.geom.complex.Complex; |
|
35 | 37 |
import org.gvsig.tools.ToolsLocator; |
36 | 38 |
import org.gvsig.tools.dynobject.DynObject; |
37 | 39 |
import org.gvsig.tools.i18n.I18nManager; |
... | ... | |
160 | 162 |
if (GeometryUtils.overlaps(polygon, otherPolygon, theTolerance)) { |
161 | 163 |
I18nManager i18n = ToolsLocator.getI18nManager(); |
162 | 164 |
Geometry error = polygon.intersection(otherPolygon); |
163 |
report.addLine(this, |
|
164 |
thisDataSet, |
|
165 |
otherDataSet, |
|
166 |
polygon, |
|
167 |
error, |
|
168 |
feature1.getReference(), |
|
169 |
otherFeature.getReference(), |
|
170 |
false, |
|
171 |
i18n.getTranslation("_The_polygon_overlay_with_other") |
|
172 |
); |
|
165 |
|
|
166 |
if (error != null) { |
|
167 |
if (error instanceof Complex) { |
|
168 |
error = ((Complex) error).createAggregate( |
|
169 |
Geometry.TYPES.MULTIPOLYGON, |
|
170 |
(Geometry g) -> GeometryUtils.isSubtype(Geometry.TYPES.MULTISURFACE, g.getGeometryType().getType()) || GeometryUtils.isSubtype(Geometry.TYPES.SURFACE, g.getGeometryType().getType()) |
|
171 |
); |
|
172 |
if (((Aggregate) error).getPrimitivesNumber() == 0) { |
|
173 |
continue; |
|
174 |
} |
|
175 |
} else if (!(GeometryUtils.isSubtype(Geometry.TYPES.MULTISURFACE, error.getGeometryType().getType()) || GeometryUtils.isSubtype(Geometry.TYPES.SURFACE, error.getGeometryType().getType()))) { |
|
176 |
continue; |
|
177 |
} |
|
178 |
|
|
179 |
report.addLine(this, |
|
180 |
thisDataSet, |
|
181 |
otherDataSet, |
|
182 |
polygon, |
|
183 |
error, |
|
184 |
feature1.getReference(), |
|
185 |
otherFeature.getReference(), |
|
186 |
false, |
|
187 |
i18n.getTranslation("_The_polygon_overlay_with_other") |
|
188 |
); |
|
189 |
} |
|
173 | 190 |
} |
174 | 191 |
} |
175 | 192 |
} |
... | ... | |
192 | 209 |
if (GeometryUtils.overlaps(polygon, otherPolygon, theTolerance)) { |
193 | 210 |
I18nManager i18n = ToolsLocator.getI18nManager(); |
194 | 211 |
Geometry error = polygon.intersection(otherPolygon); |
195 |
report.addLine(this, |
|
196 |
thisDataSet, |
|
197 |
otherDataSet, |
|
198 |
polygon, |
|
199 |
error, |
|
200 |
feature1.getReference(), |
|
201 |
otherFeature.getReference(), |
|
202 |
false, |
|
203 |
i18n.getTranslation("_The_polygon_overlay_with_other") |
|
204 |
); |
|
212 |
if (error != null) { |
|
213 |
if (error instanceof Complex) { |
|
214 |
error = ((Complex) error).createAggregate( |
|
215 |
Geometry.TYPES.MULTIPOLYGON, |
|
216 |
(Geometry g) -> GeometryUtils.isSubtype(Geometry.TYPES.MULTISURFACE, g.getGeometryType().getType()) || GeometryUtils.isSubtype(Geometry.TYPES.SURFACE, g.getGeometryType().getType()) |
|
217 |
); |
|
218 |
if (((Aggregate) error).getPrimitivesNumber() == 0) { |
|
219 |
continue; |
|
220 |
} |
|
221 |
} else if (!(GeometryUtils.isSubtype(Geometry.TYPES.MULTISURFACE, error.getGeometryType().getType()) || GeometryUtils.isSubtype(Geometry.TYPES.SURFACE, error.getGeometryType().getType()))) { |
|
222 |
continue; |
|
223 |
} |
|
224 |
report.addLine(this, |
|
225 |
thisDataSet, |
|
226 |
otherDataSet, |
|
227 |
polygon, |
|
228 |
error, |
|
229 |
feature1.getReference(), |
|
230 |
otherFeature.getReference(), |
|
231 |
false, |
|
232 |
i18n.getTranslation("_The_polygon_overlay_with_other") |
|
233 |
); |
|
234 |
} |
|
205 | 235 |
} |
206 | 236 |
} |
207 | 237 |
} |
Also available in: Unified diff