Java Code Examples for org.geotools.data.DataUtilities#collection()
The following examples show how to use
org.geotools.data.DataUtilities#collection() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: MultiPolygons.java From amodeus with GNU General Public License v2.0 | 6 votes |
private static Set<MultiPolygon> initializeFrom(File shapeFile) throws IOException { URL shapeFileURL = shapeFile.toURI().toURL(); Map<String, URL> inputMap = new HashMap<>(); inputMap.put("url", shapeFileURL); DataStore dataStore = DataStoreFinder.getDataStore(inputMap); SimpleFeatureSource featureSource = dataStore.getFeatureSource(dataStore.getTypeNames()[0]); SimpleFeatureCollection collection = DataUtilities.collection(featureSource.getFeatures()); dataStore.dispose(); Set<MultiPolygon> polygons = new HashSet<>(); SimpleFeatureIterator iterator = collection.features(); while (iterator.hasNext()) polygons.add((MultiPolygon) iterator.next().getDefaultGeometry()); return polygons; }
Example 2
Source File: geoUtils.java From Knowage-Server with GNU Affero General Public License v3.0 | 6 votes |
public static String getFileLayerAction(String layerUrl) throws JSONException, IOException, EMFUserError { IFeaturesProviderFileDAO featuresProvider = DAOFactory.getFeaturesProviderFileDAO(); FeatureCollection outputFeatureCollection = featuresProvider.getAllFeatures(layerUrl); FeatureIterator it = outputFeatureCollection.features(); List<SimpleFeature> list = new ArrayList<SimpleFeature>(); while (it.hasNext()) { SimpleFeature f = (SimpleFeature) it.next(); list.add(f); } FeatureCollection<SimpleFeatureType, SimpleFeature> filteredOutputFeatureCollection = DataUtilities.collection(list); Monitor.start("GetTargetLayerAction.flushResponse"); FeatureJSON featureJSON = new FeatureJSON(); String responseFeature = featureJSON.toString(filteredOutputFeatureCollection); return responseFeature; }
Example 3
Source File: GeoJsonQueryOutputFormat.java From geowave with Apache License 2.0 | 4 votes |
@Override public void output(ResultSet results) { int geometryColumn = -1; for (int i = 0; i < results.columnCount(); i++) { if (Geometry.class.isAssignableFrom(results.columnType(i))) { geometryColumn = i; break; } } if (geometryColumn < 0) { throw new RuntimeException( "Unable to output results to a geojson without a geometry column."); } SimpleFeatureTypeBuilder ftb = new SimpleFeatureTypeBuilder(); ftb.setName(typeName); ftb.setCRS(results.getCRS()); for (int i = 0; i < results.columnCount(); i++) { AttributeTypeBuilder atb = new AttributeTypeBuilder(); atb.setBinding(results.columnType(i)); atb.nillable(true); ftb.add(atb.buildDescriptor(results.columnName(i))); } SimpleFeatureType sft = ftb.buildFeatureType(); final SimpleFeatureBuilder sfb = new SimpleFeatureBuilder(sft); final AtomicLong nextId = new AtomicLong(0L); Iterator<SimpleFeature> features = Iterators.transform(results, r -> { sfb.reset(); for (int i = 0; i < results.columnCount(); i++) { sfb.add(r.columnValue(i)); } SimpleFeature feature = sfb.buildFeature(Long.toString(nextId.incrementAndGet())); return feature; }); try { SimpleFeatureCollection featureCollection = DataUtilities.collection(new SimpleFeatureIterator() { @Override public boolean hasNext() { return features.hasNext(); } @Override public SimpleFeature next() throws NoSuchElementException { return features.next(); } @Override public void close() {} }); FeatureJSON io = new FeatureJSON(); io.writeFeatureCollection(featureCollection, outputFile); } catch (IOException e) { throw new RuntimeException( "Encountered exception when writing geojson file: " + e.getMessage(), e); } }
Example 4
Source File: ShapefileQueryOutputFormat.java From geowave with Apache License 2.0 | 4 votes |
@Override public void output(final ResultSet results) { int geometryColumn = -1; for (int i = 0; i < results.columnCount(); i++) { if (Geometry.class.isAssignableFrom(results.columnType(i))) { geometryColumn = i; break; } } if (geometryColumn < 0) { throw new RuntimeException( "Unable to output results to a shapefile without a geometry column."); } final SimpleFeatureTypeBuilder ftb = new SimpleFeatureTypeBuilder(); ftb.setCRS(results.getCRS()); ftb.setName(typeName); for (int i = 0; i < results.columnCount(); i++) { final AttributeTypeBuilder atb = new AttributeTypeBuilder(); atb.setBinding(results.columnType(i)); atb.nillable(true); if (i == geometryColumn) { ftb.add(atb.buildDescriptor("the_geom")); } else { ftb.add(atb.buildDescriptor(results.columnName(i))); } } final SimpleFeatureType sft = ftb.buildFeatureType(); final SimpleFeatureBuilder sfb = new SimpleFeatureBuilder(sft); final AtomicLong nextId = new AtomicLong(0L); final Iterator<SimpleFeature> features = Iterators.transform(results, r -> { sfb.reset(); for (int i = 0; i < results.columnCount(); i++) { sfb.add(r.columnValue(i)); } final SimpleFeature feature = sfb.buildFeature(Long.toString(nextId.incrementAndGet())); return feature; }); final FileDataStoreFactorySpi factory = FileDataStoreFinder.getDataStoreFactory("shp"); final File file = new File(outputFile); final Map<String, Serializable> params = Maps.newHashMap(); final Transaction transaction = new DefaultTransaction("Write Results"); try { params.put("url", file.toURI().toURL()); final DataStore dataStore = factory.createNewDataStore(params); dataStore.createSchema(sft); final SimpleFeatureStore store = (SimpleFeatureStore) dataStore.getFeatureSource(dataStore.getTypeNames()[0]); store.setTransaction(transaction); final SimpleFeatureCollection featureCollection = DataUtilities.collection(new SimpleFeatureIterator() { @Override public boolean hasNext() { return features.hasNext(); } @Override public SimpleFeature next() throws NoSuchElementException { return features.next(); } @Override public void close() {} }); store.addFeatures(featureCollection); transaction.commit(); } catch (final Exception e) { try { transaction.rollback(); } catch (final IOException ioe) { throw new RuntimeException("Encountered an error when rolling back transaction", ioe); } throw new RuntimeException( "Encountered an error when writing the features to the file: " + e.getMessage(), e); } }