/** * @param filter * @param crs * @return null if empty constraint (infinite not supported) */ public static ExtractGeometryFilterVisitorResult getConstraints( final Filter filter, final CoordinateReferenceSystem crs, final String attributeOfInterest) { final ExtractGeometryFilterVisitorResult geoAndCompareOpData = (ExtractGeometryFilterVisitorResult) filter.accept( new ExtractGeometryFilterVisitor(crs, attributeOfInterest), null); final Geometry geo = geoAndCompareOpData.getGeometry(); // empty or infinite geometry simply return null as we can't create // linear constraints from if ((geo == null) || geo.isEmpty()) { return null; } final double area = geo.getArea(); if (Double.isInfinite(area) || Double.isNaN(area)) { return null; } return geoAndCompareOpData; }
new ExtractGeometryFilterVisitor( GeometryUtils.getDefaultCRS(), geometryAttribute),
final ExtractGeometryFilterVisitorResult geoAndCompareOpData = (ExtractGeometryFilterVisitorResult) filter.accept( new ExtractGeometryFilterVisitor(GeometryUtils.getDefaultCRS(), geometryAttribute), null); bbox = geoAndCompareOpData.getGeometry();