public IGeometryReader ExecuteGeometryReader(SpatialPredicate predicate, Envelope envelope) { if (predicate != SpatialPredicate.Intersects) throw new NotSupportedException(); return new ProviderGeometryReader(_provider.GetGeometriesInView(envelope)); }
public IFeatureReader ExecuteFeatureReader(SpatialPredicate predicate, IGeometry geometry) { if (predicate != SpatialPredicate.Intersects) throw new NotSupportedException(); var fds = new FeatureDataSet(); _provider.ExecuteIntersectionQuery(geometry, fds); return new ProviderFeatureDataRowReader(fds.Tables[0]); }
public IGeometryReader ExecuteGeometryReader(SpatialPredicate predicate, Envelope envelope) { if (predicate != SpatialPredicate.Intersects) { throw new NotSupportedException(); } return(new ProviderGeometryReader(_provider.GetGeometriesInView(envelope))); }
public IGeometryReader ExecuteGeometryReader(SpatialPredicate predicate, IGeometry geometry) { if (predicate != SpatialPredicate.Intersects) throw new NotSupportedException(); var envelope = geometry.EnvelopeInternal; var geometries = _provider.GetGeometriesInView(envelope); //ToDo Prepared geometries! return new ProviderGeometryReader(Filter(geometries, geometry.Intersects)); }
public static List <IFeature> Select(this IFeatureSet self, Shape shape, SpatialPredicate predicate = SpatialPredicate.Intersects) { var result = new List <IFeature>(); var pg = new NetTopologySuite.Geometries.Prepared.PreparedGeometryFactory().Create(shape.ToGeoAPI()); foreach (var feat in self.Features) { var valid = false; var tryShape = feat.ToShape().ToGeoAPI(); switch (predicate) { case SpatialPredicate.Intersects: valid = pg.Intersects(tryShape); break; case SpatialPredicate.Overlaps: valid = pg.Overlaps(tryShape); break; case SpatialPredicate.Touches: valid = pg.Touches(tryShape); break; case SpatialPredicate.Within: valid = pg.Within(tryShape); break; case SpatialPredicate.Contains: valid = pg.Contains(tryShape); break; case SpatialPredicate.ContainsProperly: valid = pg.ContainsProperly(tryShape); break; case SpatialPredicate.Covers: valid = pg.Covers(tryShape); break; case SpatialPredicate.CoveredBy: valid = pg.CoveredBy(tryShape); break; case SpatialPredicate.Disjoint: valid = pg.Disjoint(tryShape); break; } if (valid) { result.Add(feat); } } return(result); }
public IFeatureReader ExecuteFeatureReader(SpatialPredicate predicate, IGeometry geometry) { if (predicate != SpatialPredicate.Intersects) { throw new NotSupportedException(); } var fds = new FeatureDataSet(); _provider.ExecuteIntersectionQuery(geometry, fds); return(new ProviderFeatureDataRowReader(fds.Tables[0])); }
public IGeometryReader ExecuteGeometryReader(SpatialPredicate predicate, IGeometry geometry) { if (predicate != SpatialPredicate.Intersects) { throw new NotSupportedException(); } var envelope = geometry.EnvelopeInternal; var geometries = _provider.GetGeometriesInView(envelope); //ToDo Prepared geometries! return(new ProviderGeometryReader(Filter(geometries, geometry.Intersects))); }
public static List<IFeature> Select(this IFeatureSet self, Shape shape, SpatialPredicate predicate = SpatialPredicate.Intersects) { var result = new List<IFeature>(); var pg = new NetTopologySuite.Geometries.Prepared.PreparedGeometryFactory().Create(shape.ToGeoAPI()); foreach (var feat in self.Features) { var valid = false; var tryShape = feat.ToShape().ToGeoAPI(); switch (predicate) { case SpatialPredicate.Intersects: valid = pg.Intersects(tryShape); break; case SpatialPredicate.Overlaps: valid = pg.Overlaps(tryShape); break; case SpatialPredicate.Touches: valid = pg.Touches(tryShape); break; case SpatialPredicate.Within: valid = pg.Within(tryShape); break; case SpatialPredicate.Contains: valid = pg.Contains(tryShape); break; case SpatialPredicate.ContainsProperly: valid = pg.ContainsProperly(tryShape); break; case SpatialPredicate.Covers: valid = pg.Covers(tryShape); break; case SpatialPredicate.CoveredBy: valid = pg.CoveredBy(tryShape); break; case SpatialPredicate.Disjoint: valid = pg.Disjoint(tryShape); break; } if (valid) result.Add(feat); } return result; }