Revision 25027 trunk/libraries/libTopology/src/org/gvsig/topology/topologyrules/MustBeLargerThanClusterTolerance.java
MustBeLargerThanClusterTolerance.java | ||
---|---|---|
170 | 170 |
public void validateFeature(IFeature feature) { |
171 | 171 |
IGeometry geometry = feature.getGeometry(); |
172 | 172 |
Geometry jtsGeometry = NewFConverter.toJtsGeometry(geometry); |
173 |
try{ |
|
174 |
geometrySnapper.snap(jtsGeometry); |
|
173 |
try { |
|
174 |
if(FGeometryUtil.getDimensions(originLyr.getShapeType()) == 2){ |
|
175 |
//for polygons we dont try to collapse and use isValid |
|
176 |
//because self intersecting polygons will return false |
|
177 |
double area = jtsGeometry.getArea(); |
|
178 |
double minArea = clusterTolerance * clusterTolerance; |
|
179 |
if(area < minArea){ |
|
180 |
TopologyError topologyError = new TopologyError(geometry, this, feature, topology); |
|
181 |
topologyError.setID(errorContainer.getErrorFid()); |
|
182 |
addTopologyError(topologyError); |
|
183 |
} |
|
184 |
}else{ |
|
185 |
geometrySnapper.snap(jtsGeometry); |
|
186 |
|
|
187 |
} |
|
188 |
} catch (ReadDriverException e) { |
|
189 |
// TODO Auto-generated catch block |
|
190 |
e.printStackTrace(); |
|
175 | 191 |
}catch(GeometryCollapsedException e){ |
176 | 192 |
//use an ErrorFactory |
177 | 193 |
TopologyError topologyError = new TopologyError(geometry, this, feature, topology); |
178 | 194 |
topologyError.setID(errorContainer.getErrorFid()); |
179 | 195 |
addTopologyError(topologyError); |
180 | 196 |
} |
197 |
|
|
181 | 198 |
} |
182 | 199 |
|
183 | 200 |
public double getClusterTolerance() { |
Also available in: Unified diff