public ReferencedEnvelope getBounds() { ReferencedEnvelope bounds = null; SimpleFeatureIterator i = features(); try { if (!i.hasNext()) { bounds = new ReferencedEnvelope(); bounds.setToNull(); } else { SimpleFeature first = (SimpleFeature) i.next(); bounds = new ReferencedEnvelope(first.getBounds()); } while (i.hasNext()) { SimpleFeature f = (SimpleFeature) i.next(); bounds.include(f.getBounds()); } return bounds; } finally { i.close(); } }
public BoundingBox getBounds() { return delegate.getBounds(); }
public BoundingBox getBounds() { return delegate.getBounds(); }
public BoundingBox getBounds() { return feature.getBounds(); }
/** @param feature */ public CoverageSlice(final SimpleFeature feature) { this.granuleBBOX = ReferencedEnvelope.reference(feature.getBounds()); this.originator = feature; }
public void remove(String fid) { synchronized (mutex) { SimpleFeature old = null; if (addedFeatures.containsKey(fid)) { old = (SimpleFeature) addedFeatures.get(fid); addedFeatures.remove(fid); addedFidList.remove(fid); } else { old = (SimpleFeature) modifiedFeatures.get(fid); modifiedFeatures.put(fid, Diff.NULL); } if (old != null) { spatialIndex.remove(ReferencedEnvelope.reference(old.getBounds()), old); } } }
@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; }
public boolean add(SimpleFeature feature) { ReferencedEnvelope bounds = ReferencedEnvelope.reference(feature.getBounds()); index.insert(bounds, feature); return false; }
public boolean addAll(Collection<? extends SimpleFeature> collection) { for (SimpleFeature feature : collection) { try { ReferencedEnvelope bounds = ReferencedEnvelope.reference(feature.getBounds()); index.insert(bounds, feature); } catch (Throwable t) { } } return false; }
protected void addToSpatialIndex(SimpleFeature f) { if (f.getDefaultGeometry() != null) { BoundingBox bounds = f.getBounds(); if (!bounds.isEmpty()) spatialIndex.insert(ReferencedEnvelope.reference(bounds), f); } }
@Override protected ReferencedEnvelope getBoundsInternal(Query query) throws IOException { // TODO: crs? FeatureReader<SimpleFeatureType, SimpleFeature> r = getReader(query); try { ReferencedEnvelope e = new ReferencedEnvelope(); if (r.hasNext()) { e.init(r.next().getBounds()); } while (r.hasNext()) { e.include(r.next().getBounds()); } return e; } finally { r.close(); } }
/** @see org.geotools.data.FeatureWriter#remove() */ public void remove() throws IOException { if (live != null) { // mark live as removed diff.remove(live.getID()); fireNotification( FeatureEvent.FEATURES_REMOVED, ReferencedEnvelope.reference(live.getBounds())); live = null; current = null; } else if (current != null) { // cancel additional content current = null; } }
private void fireRemoved(final SimpleFeature removedFeature) { String typeName = featureType.getTypeName(); BoundingBox bounds = removedFeature.getBounds(); ReferencedEnvelope referencedEnvelope = ReferencedEnvelope.reference(bounds); String fid = removedFeature.getID(); FilterFactory2 ff = CommonFactoryFinder.getFilterFactory2(null); Filter filter = ff.id(Collections.singleton(ff.featureId(fid))); doFireFeaturesRemoved(typeName, referencedEnvelope, filter); }
private void fireAdded(final SimpleFeature addedFeature) { final String typeName = featureType.getTypeName(); final BoundingBox bounds = addedFeature.getBounds(); ReferencedEnvelope referencedEnvelope = ReferencedEnvelope.reference(bounds); String fid = addedFeature.getID(); FilterFactory2 ff = CommonFactoryFinder.getFilterFactory2(null); Filter filter = ff.id(Collections.singleton(ff.featureId(fid))); doFireFeaturesAdded(typeName, referencedEnvelope, filter); }
private void fireChanged(final SimpleFeature changedFeature) { final String typeName = featureType.getTypeName(); final BoundingBox bounds = changedFeature.getBounds(); ReferencedEnvelope referencedEnvelope = ReferencedEnvelope.reference(bounds); String fid = changedFeature.getID(); FilterFactory2 ff = CommonFactoryFinder.getFilterFactory2(null); Filter filter = ff.id(Collections.singleton(ff.featureId(fid))); doFireFeaturesChanged(typeName, referencedEnvelope, filter); }
public boolean addAll( FeatureCollection<? extends SimpleFeatureType, ? extends SimpleFeature> collection) { FeatureIterator<? extends SimpleFeature> iter = collection.features(); try { while (iter.hasNext()) { try { SimpleFeature feature = iter.next(); ReferencedEnvelope bounds = ReferencedEnvelope.reference(feature.getBounds()); index.insert(bounds, feature); } catch (Throwable t) { } } } finally { iter.close(); } return false; }
protected void setUp() throws Exception { super.setUp(); data = new MemoryDataStore(); data.addFeatures(roadFeatures); SimpleFeatureType riverTypeWithCrs = SimpleFeatureTypeBuilder.retype(riverType, CRS.decode("EPSG:4326")); data.addFeature(SimpleFeatureBuilder.retype(riverFeatures[0], riverTypeWithCrs)); riverBounds = new ReferencedEnvelope(riverFeatures[0].getBounds()); }
public void testGetBoundsFilter() throws Exception { // the Bounds of the queried features should be equal to the bounding // box of the road2 feature, because of the road2 FID filter Query query = new Query("road", rd2Filter); assertEquals( roadFeatures[1].getBounds(), data.getFeatureSource("road").getFeatures(query).getBounds()); }
public void testBounds() { MemoryFeatureCollection rivers = new MemoryFeatureCollection(riverType); ReferencedEnvelope expected = new ReferencedEnvelope(); for (int i = 0; i < riverFeatures.length; i++) { rivers.add(riverFeatures[i]); expected.include(riverFeatures[i].getBounds()); } assertEquals(riverFeatures.length, rivers.size()); // Should not throw an UnsupportedOperationException assertNotNull(rivers.getBounds()); assertEquals(expected, rivers.getBounds()); }
public void testGetFeaturesWithMax() throws Exception { Query q = new Query(featureSource.getSchema().getTypeName()); q.setMaxFeatures(2); SimpleFeatureCollection features = featureSource.getFeatures(q); // check size assertEquals(2, features.size()); // check actual iteration try (SimpleFeatureIterator it = features.features()) { int count = 0; ReferencedEnvelope env = new ReferencedEnvelope(features.getSchema().getCoordinateReferenceSystem()); while (it.hasNext()) { SimpleFeature f = it.next(); env.expandToInclude(ReferencedEnvelope.reference(f.getBounds())); count++; } assertEquals(2, count); assertTrue(areReferencedEnvelopesEqual(env, features.getBounds())); } }