SimpleFeatureCollection featureCollection = featureSource.getFeatures(query); SimpleFeatureIterator it = featureCollection.features(); int i = 0; while (it.hasNext()) { SimpleFeature feature = it.next(); Geometry geom = (Geometry) feature.getDefaultGeometry(); Point point = null; it.close(); } catch (Exception ex) { LOG.error("Error loading population from shapefile: {}", ex.getMessage());
SimpleFeatureIterator it = featureCollection.features(); SimpleFeature protoFt = it.next(); if (propertyFields == null) { propertyFields = new ArrayList<String>(); it = featureCollection.features(); while (it.hasNext()) { SimpleFeature feature = it.next(); Geometry geom = (Geometry) feature.getDefaultGeometry();
@Test public void testModify() throws Exception { final Query queryAll = new Query(RENAMED); SimpleFeatureStore store; store = (SimpleFeatureStore) rts.getFeatureSource(RENAMED); SimpleFeature original = store.getFeatures(fidFilter).features().next(); String newAddress = ((String) original.getAttribute("ADDRESS")) + " xxx"; store.modifyFeatures( original.getFeatureType().getDescriptor("ADDRESS"), newAddress, fidFilter); SimpleFeature modified = store.getFeatures(fidFilter).features().next(); assertEquals(newAddress, modified.getAttribute("ADDRESS")); }
@Test public void testSimpleRename() throws IOException { SimpleFeatureSource fs = store.getFeatureSource(BUILDINGS.getLocalPart()); SimpleFeatureTypeBuilder tb = new SimpleFeatureTypeBuilder(); tb.init(fs.getSchema()); tb.setName("houses"); SimpleFeatureType target = tb.buildFeatureType(); SimpleFeatureSource retyped = RetypingFeatureSource.getRetypingSource(fs, target); assertTrue(retyped instanceof SimpleFeatureLocking); assertEquals(target, retyped.getSchema()); assertEquals(target, ((DataStore) retyped.getDataStore()).getSchema("houses")); assertEquals(target, retyped.getFeatures().getSchema()); SimpleFeatureIterator it = retyped.getFeatures().features(); SimpleFeature f = it.next(); it.close(); assertEquals(target, f.getType()); }
/** Helper method that crestes a lsit of features from a collection (iterator) of features. */ private List<SimpleFeature> getFeatures(SimpleFeatureCollection collection) { List<SimpleFeature> features = new ArrayList<>(); try (SimpleFeatureIterator iterator = collection.features()) { while (iterator.hasNext()) { features.add(iterator.next()); } } return features; }
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(); } }
@Test public void testModify() throws Exception { final Query queryAll = new Query(RENAMED); SimpleFeatureStore store; store = (SimpleFeatureStore) rts.getFeatureSource(RENAMED); SimpleFeature original = store.getFeatures(fidFilter).features().next(); // test a non mapped attribute String newDescription = ((String) original.getAttribute("description")) + " xxx"; store.modifyFeatures( original.getFeatureType().getDescriptor("description"), newDescription, fidFilter); SimpleFeature modified = store.getFeatures(fidFilter).features().next(); assertEquals(newDescription, modified.getAttribute("description")); // test a mapped attribute MultiPoint mpo = (MultiPoint) original.getAttribute("pointProperty"); MultiPoint mpm = mpo.getFactory().createMultiPoint(new Coordinate[] {new Coordinate(10, 12)}); store.modifyFeatures( original.getFeatureType().getDescriptor("pointProperty"), mpm, fidFilter); modified = store.getFeatures(fidFilter).features().next(); assertTrue(mpm.equalsExact((Geometry) modified.getAttribute("pointProperty"))); }
public void testFeatureMembers() throws Exception { Element featureCollection = GML3MockData.element(TEST.TestFeatureCollection, document, document); Element featureMember = GML3MockData.element(GML.featureMembers, document, featureCollection); Element feature = GML3MockData.feature(document, featureMember); feature.setAttributeNS(GML.NAMESPACE, "id", "fid.1"); feature = GML3MockData.feature(document, featureMember); feature.setAttributeNS(GML.NAMESPACE, "id", "fid.2"); SimpleFeatureCollection fc = (SimpleFeatureCollection) parse(); assertNotNull(fc); assertEquals(2, fc.size()); SimpleFeatureIterator i = fc.features(); try { SimpleFeature f = (SimpleFeature) i.next(); assertEquals("fid.1", f.getID()); f = (SimpleFeature) i.next(); assertEquals("fid.2", f.getID()); } finally { i.close(); } } }
@Test public void iterator() { createPointFeaturesAtCorners(WORLD); SimpleFeatureIterator iter = featureCollection.features(); assertNotNull(iter); assertTrue(iter.hasNext()); List<SimpleFeature> copy = new ArrayList<SimpleFeature>(featureList); while (iter.hasNext()) { SimpleFeature f = iter.next(); assertTrue(copy.remove(f)); } assertTrue(copy.isEmpty()); }
static void accept(SimpleFeatureCollection collection, FeatureVisitor[] visitors) { SimpleFeatureIterator iterator = collection.features(); try { while (iterator.hasNext()) { SimpleFeature feature = (SimpleFeature) iterator.next(); for (int i = 0; i < visitors.length; i++) { FeatureVisitor visitor = visitors[i]; visitor.visit(feature); } } } finally { iterator.close(); } }
protected Set<String> collectFeatureIds(SimpleFeatureCollection fc) { Set<String> identifiers = new TreeSet<>(String.CASE_INSENSITIVE_ORDER); try (SimpleFeatureIterator fi = fc.features()) { while (fi.hasNext()) { SimpleFeature sf = fi.next(); identifiers.add(sf.getID()); } } return identifiers; } }
public void testFeatureMember() throws Exception { Element featureCollection = GML3MockData.element(TEST.TestFeatureCollection, document, document); Element featureMember = GML3MockData.element(GML.featureMember, document, featureCollection); Element feature = GML3MockData.feature(document, featureMember); feature.setAttributeNS(GML.NAMESPACE, "id", "fid.1"); featureMember = GML3MockData.element(GML.featureMember, document, featureCollection); feature = GML3MockData.feature(document, featureMember); feature.setAttributeNS(GML.NAMESPACE, "id", "fid.2"); SimpleFeatureCollection fc = (SimpleFeatureCollection) parse(); assertNotNull(fc); assertEquals(2, fc.size()); SimpleFeatureIterator i = fc.features(); try { SimpleFeature f = (SimpleFeature) i.next(); assertEquals("fid.1", f.getID()); f = (SimpleFeature) i.next(); assertEquals("fid.2", f.getID()); } finally { i.close(); } }
public void testNaturalSortingAsc() throws Exception { Query q = new Query(featureSource.getSchema().getTypeName()); q.setSortBy(new SortBy[] {SortBy.NATURAL_ORDER}); try (SimpleFeatureIterator features = featureSource.getFeatures(q).features()) { String prevId = null; while (features.hasNext()) { String currId = features.next().getID(); if (prevId != null) assertTrue(prevId.compareTo(currId) <= 0); prevId = currId; } } }
/** * Navigate the collection and call vistor.visit( Feature ) for each element in the collection. * * @param collection the SimpleFeatureCollection containing the features we want to visit * @param visitor the visitor which already knows which attributes it wants to meet */ static void accept(SimpleFeatureCollection collection, FeatureVisitor visitor) { SimpleFeatureIterator iterator = collection.features(); try { while (iterator.hasNext()) { SimpleFeature feature = (SimpleFeature) iterator.next(); visitor.visit(feature); } } finally { iterator.close(); } }
private void count(SimpleFeatureStore store, int expected) throws IOException, IllegalAttributeException { int i = 0; for (SimpleFeatureIterator reader = store.getFeatures().features(); reader.hasNext(); ) { reader.next(); i++; } assertEquals("Number of known feature as obtained from reader", expected, i); } }