Example #1
0
 public IGeometryReader ExecuteGeometryReader(SpatialPredicate predicate, Envelope envelope)
 {
     if (predicate != SpatialPredicate.Intersects)
         throw new NotSupportedException();
     
     return new ProviderGeometryReader(_provider.GetGeometriesInView(envelope));
 }
Example #2
0
        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]);
        }
Example #3
0
        public IGeometryReader ExecuteGeometryReader(SpatialPredicate predicate, Envelope envelope)
        {
            if (predicate != SpatialPredicate.Intersects)
            {
                throw new NotSupportedException();
            }

            return(new ProviderGeometryReader(_provider.GetGeometriesInView(envelope)));
        }
Example #4
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);
        }
Example #6
0
        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]));
        }
Example #7
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;
        }