public static void save(final Iterable<? extends Iterable<Location>> geometries, final WritableResource destination) { final GeoJsonObject object = new GeoJsonBuilder().create(Iterables.translate(geometries, polyLine -> new GeoJsonBuilder.LocationIterableProperties(polyLine, Maps.hashMap()))); save(object, destination); }
public static void saveMultipolygon(final Iterable<MultiPolygon> geometries, final WritableResource destination) { final Iterable<Polygon> outers = Iterables.translateMulti(geometries, multiPolygon -> multiPolygon.outers()); final Iterable<Polygon> inners = Iterables.translateMulti(geometries, multiPolygon -> multiPolygon.inners()); final Iterable<Polygon> multi = new MultiIterable<>(outers, inners); save(multi, destination); }
@Override protected int onRun(final CommandMap command) { final Atlas atlas = (Atlas) command.get(ATLAS_FOLDER); final File output = (File) command.get(OUTPUT); final Iterable<Polygon> shapes = Iterables.translateMulti( new ComplexBuildingFinder().find(atlas), building -> building.getOutline().outers()); GeoJsonSaver.save(shapes, output); return 0; }