rtree.query(envelope, item -> { GeometryWithPosition geometryWithPosition = (GeometryWithPosition) item; OGCGeometry buildGeometry = geometryWithPosition.getGeometry();
/** @see org.geotools.data.FeatureResults#reader() */ public FeatureReader<SimpleFeatureType, SimpleFeature> reader(Envelope envelope) throws IOException { List results = index.query(envelope); final Iterator resultsIterator = results.iterator(); return new FeatureReader<SimpleFeatureType, SimpleFeature>() { /** @see org.geotools.data.FeatureReader#getFeatureType() */ public SimpleFeatureType getFeatureType() { return getSchema(); } /** @see org.geotools.data.FeatureReader#next() */ public SimpleFeature next() throws IOException, IllegalAttributeException, NoSuchElementException { return (SimpleFeature) resultsIterator.next(); } /** @see org.geotools.data.FeatureReader#hasNext() */ public boolean hasNext() throws IOException { return resultsIterator.hasNext(); } /** @see org.geotools.data.FeatureReader#close() */ public void close() throws IOException {} }; }
@SuppressWarnings("unchecked") public Iterator<SimpleFeature> iterator() { Envelope everything = new Envelope( Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY); final List<SimpleFeature> list = (List<SimpleFeature>) index.query(everything); return (Iterator<SimpleFeature>) list.iterator(); }
/** @see org.geotools.data.FeatureResults#collection() */ public SimpleFeatureCollection collection() throws IOException { DefaultFeatureCollection fc = new DefaultFeatureCollection(); List<SimpleFeature> results = index.query(bounds); for (Iterator<SimpleFeature> it = results.iterator(); it.hasNext(); ) { fc.add(it.next()); } return fc; }
@SuppressWarnings("unchecked") public SimpleFeatureIterator features() { Envelope everything = new Envelope( Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY); final List<SimpleFeature> list = (List<SimpleFeature>) index.query(everything); final Iterator<SimpleFeature> iterator = list.iterator(); return new SimpleFeatureIterator() { public SimpleFeature next() throws NoSuchElementException { return iterator.next(); } public boolean hasNext() { return iterator.hasNext(); } public void close() {} }; }
@SuppressWarnings("unchecked") public boolean contains(Object obj) { if (obj instanceof SimpleFeature) { SimpleFeature feature = (SimpleFeature) obj; ReferencedEnvelope bounds = ReferencedEnvelope.reference(feature.getBounds()); for (Iterator<SimpleFeature> iter = (Iterator<SimpleFeature>) index.query(bounds); iter.hasNext(); ) { SimpleFeature sample = iter.next(); if (sample == feature) { return true; } } } return false; }
@SuppressWarnings("unchecked") public List<GranuleDescriptor> getGranules(final BoundingBox envelope) throws IOException { Utilities.ensureNonNull("envelope", envelope); final Lock lock = rwLock.readLock(); try { lock.lock(); checkStore(); checkIndex(lock); return index.query(ReferencedEnvelope.reference(envelope)); } finally { lock.unlock(); } }
public SimpleFeatureCollection subCollection(Filter filter) { // split out the spatial part of the filter SpatialIndexFeatureCollection ret = new SpatialIndexFeatureCollection(schema); Envelope env = new Envelope(); env = (Envelope) filter.accept(ExtractBoundsFilterVisitor.BOUNDS_VISITOR, env); if (LOGGER.isLoggable(Level.FINEST) && Double.isInfinite(env.getWidth())) { LOGGER.fine("Found no spatial element in " + filter); LOGGER.fine("Just going to iterate"); } for (Iterator<SimpleFeature> iter = (Iterator<SimpleFeature>) index.query(env).iterator(); iter.hasNext(); ) { SimpleFeature sample = iter.next(); if (LOGGER.isLoggable(Level.FINEST)) { LOGGER.finest("Looking at " + sample); } if (filter.evaluate(sample)) { if (LOGGER.isLoggable(Level.FINEST)) { LOGGER.finest("accepting " + sample); } ret.add(sample); } } return ret; }
public void getGranules(final BoundingBox envelope, final GranuleCatalogVisitor visitor) throws IOException { Utilities.ensureNonNull("envelope", envelope); Utilities.ensureNonNull("visitor", visitor); final Lock lock = rwLock.readLock(); try { lock.lock(); checkStore(); checkIndex(lock); index.query( ReferencedEnvelope.reference(envelope), new JTSIndexVisitorAdapter(visitor)); } finally { lock.unlock(); } }
public List<T> contains(Rectangle r) { List<T> intersection = si.query(new Envelope(r.getLeft(), r.getRight(), r.getTop(), r.getBottom())); List<T> rv = new ArrayList<T>(); for (T ir: intersection) { if (r.contains(ir)) { rv.add(ir); } } Utils.sort(rv, Rectangle.ILL_DEFINED_ORDER); return rv; }
@Override protected Iterator openIterator() { List features; synchronized (CachingFeatureSource.this) { try { if (index == null || dirty || !isSubQuery(query)) { fillCache(query); } if (queryBounds != null) { features = index.query(queryBounds); } else { features = index.query((Envelope) index.getRoot().getBounds()); } } catch (Exception e) { throw new RuntimeException("Failed to get data", e); } } Iterator it = features.iterator(); if (query.getFilter() != null && Filter.INCLUDE.equals(query.getFilter())) { it = new FilteringIterator<Feature>(it, query.getFilter()); } if (targetSchema != sourceSchema) { it = new ReTypingIterator(it, sourceSchema, targetSchema); } return it; }
q.getSortBy() == null ? null : SortedFeatureReader.getComparator(q.getSortBy()); if (comparator == null) { index.query(requestedBBox, new JTSIndexVisitorAdapter(visitor, q)); } else { final List<GranuleDescriptor> unfilteredGranules = index.query(requestedBBox); List<GranuleDescriptor> granules = unfilteredGranules
public List<T> intersects(Rectangle r) { List rv = si.query(new Envelope(r.getLeft(), r.getRight(), r.getTop(), r.getBottom())); return rv; }
final List<GranuleDescriptor> features = index.query(requestedBBox); List<SimpleFeature> filtered = new ArrayList<>(); final int maxGranules = q.getMaxFeatures();
final float size = (float) size(); final IOException problem[] = new IOException[1]; index.query( everything, new ItemVisitor() {
public List query(Envelope searchEnv) { return index.query(searchEnv); } public void finishInserting()
public static Geometry strTreeQuery(Geometry geoms, Geometry queryEnv) { STRtree index = buildSTRtree(geoms); // if no query env provided query everything inserted if (queryEnv == null) queryEnv = geoms; List result = index.query(queryEnv.getEnvelopeInternal()); return geoms.getFactory().buildGeometry(result); }
public void testEmptyTreeUsingItemVisitorQuery() { STRtree tree = new STRtree(); tree.query(new Envelope(0,0,1,1), new ItemVisitor() { public void visitItem(Object item) { assertTrue("Should never reach here", true); } }); }
public void testEmptyTreeUsingListQuery() { STRtree tree = new STRtree(); List list = tree.query(new Envelope(0, 0, 1, 1)); assertTrue(list.isEmpty()); }
public void testDisallowedInserts() { STRtree t = new STRtree(5); t.insert(new Envelope(0, 0, 0, 0), new Object()); t.insert(new Envelope(0, 0, 0, 0), new Object()); t.query(new Envelope()); try { t.insert(new Envelope(0, 0, 0, 0), new Object()); assertTrue(false); } catch (AssertionFailedException e) { assertTrue(true); } }