public void writeLineStringZone2ZoneOdPairsFromZones2Shapefile(String shapeFilename) { List<SimpleFeature> featureCollection = new ArrayList<SimpleFeature>(); SimpleFeatureTypeBuilder b = new SimpleFeatureTypeBuilder(); b.setCRS(crs); b.setName("zone2destOdPairs"); b.add("location", LineString.class); b.add("from_zone", String.class); b.add("to_dest", String.class); b.add("no trips", Double.class); SimpleFeatureBuilder builder = new SimpleFeatureBuilder(b.buildFeatureType()); int featureId = 1; for (DgZone zone : this.zones.values()) { for (DgDestination destination : zone.getDestinations()) { Coordinate startCoordinate = zone.getCoordinate(); Coordinate endCoordinate = destination.getCoordinate(); Coordinate[] coordinates = {startCoordinate, endCoordinate}; LineString lineString = geoFac.createLineString(coordinates); Object[] atts = { lineString, zone.getId(), destination.getId(), destination.getNumberOfTrips() }; SimpleFeature feature = builder.buildFeature(Integer.toString(featureId), atts); featureId++; featureCollection.add(feature); } } ShapeFileWriter.writeGeometries(featureCollection, shapeFilename); }
public void writePolygonZones2Shapefile(String shapeFilename) { Collection<SimpleFeature> featureCollection = new ArrayList<SimpleFeature>(); SimpleFeatureTypeBuilder b = new SimpleFeatureTypeBuilder(); b.setCRS(crs); b.setName("grid_cell"); b.add("location", Polygon.class); b.add("zone_id", String.class); SimpleFeatureBuilder builder = new SimpleFeatureBuilder(b.buildFeatureType()); try { for (DgZone cell : zones.values()) { log.info("writing cell: " + cell.getId()); List<Object> attributes = new ArrayList<Object>(); Polygon p = cell.getPolygon(); attributes.add(p); attributes.add(cell.getId()); Object[] atts = attributes.toArray(); SimpleFeature feature = builder.buildFeature(cell.getId().toString(), atts); attributes.clear(); featureCollection.add(feature); } ShapeFileWriter.writeGeometries(featureCollection, shapeFilename); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } }