Esempio n. 1
0
        async public Task <IFeatureCursor> GetFeatures(IQueryFilter filter)
        {
            _lastException = null;
            if (filter is IBufferQueryFilter)
            {
                ISpatialFilter sFilter = await BufferQueryFilter.ConvertToSpatialFilter(filter as IBufferQueryFilter);

                if (sFilter == null)
                {
                    return(null);
                }

                return(await GetFeatures(sFilter));
            }

            return(await OgcSpatialFeatureCursor.Create(this, filter));
        }
Esempio n. 2
0
        async public Task <ISelectionSet> Select(IQueryFilter filter)
        {
            filter.SubFields = this.IDFieldName;
            if (filter is ISpatialFilter)
            {
                filter.AddField(this.ShapeFieldName);
            }

            using (IFeatureCursor cursor = await OgcSpatialFeatureCursor.Create(this, filter))
            {
                IFeature feat;

                SpatialIndexedIDSelectionSet selSet = new SpatialIndexedIDSelectionSet(this.Envelope);
                while ((feat = await cursor.NextFeature()) != null)
                {
                    selSet.AddID(feat.OID, feat.Shape);
                }
                return(selSet);
            }
        }