private Boolean inGeometryFilter(FeatureDataRow feature) { if (_viewDefinition == null || _viewDefinition.SpatialPredicate == null) { return(true); } SpatialBinaryExpression spatialQueryExpression = _viewDefinition.SpatialPredicate; SpatialOperation op = spatialQueryExpression.Op; GeometryExpression geometryExpression = spatialQueryExpression.SpatialExpression as GeometryExpression; ExtentsExpression extentsExpression = spatialQueryExpression.SpatialExpression as ExtentsExpression; if (!SpatialExpression.IsNullOrEmpty(geometryExpression)) { return(SpatialBinaryExpression.IsMatch(op, spatialQueryExpression.IsSpatialExpressionLeft, geometryExpression.Geometry, feature.Geometry)); } if (!SpatialExpression.IsNullOrEmpty(extentsExpression)) { return(SpatialBinaryExpression.IsMatch(op, spatialQueryExpression.IsSpatialExpressionLeft, extentsExpression.Extents, feature.Extents)); } return(true); }
private Boolean isGeometryAtIndexAMatch(Int32 index, SpatialOperation op, Boolean isLeft, IGeometry filterGeometry) { IGeometry current = _geometries[index]; return(SpatialBinaryExpression.IsMatch(op, isLeft, filterGeometry, current)); }