public static void main(final String[] args) { new ConcatenateGeoJsonCommand().run(args); }
private Iterable<PropertiesLocated> readGeoJsonItems(final String line) { return readGeoJsonItems(new StringResource(line)); } }
@Test public void testConcatenateGeoJsonFiles() throws IOException { final String inputPath = new File(this.getClass().getResource("test1.geojson").getPath()) .getParent(); final String outputPath = this.tempFolder.newFile().getAbsolutePath(); new ConcatenateGeoJsonCommand().runWithoutQuitting("-path=" + inputPath, "-mode=FILE", "-output=" + outputPath); final File outputFile = new File(outputPath); Assert.assertTrue(outputFile.exists()); Assert.assertTrue(FileUtils .readFileToString(new File(this.getClass() .getResource("concatenated_geojson_files_expected").getPath()), Charset.defaultCharset()) .equals(FileUtils.readFileToString(outputFile, Charset.defaultCharset()))); }
@Test public void testConcatenateGeoJsonLines() throws IOException { final String inputPath = new File(this.getClass().getResource("test1.geojson").getPath()) .getParent(); final String outputPath = this.tempFolder.newFile().getAbsolutePath(); new ConcatenateGeoJsonCommand().runWithoutQuitting("-path=" + inputPath, "-mode=LINE", "-output=" + outputPath, "-filePrefix=" + "test"); final File outputFile = new File(outputPath); Assert.assertTrue(outputFile.exists()); Assert.assertTrue(FileUtils .readFileToString(new File(this.getClass() .getResource("concatenated_geojson_files_expected").getPath()), Charset.defaultCharset()) .equals(FileUtils.readFileToString(outputFile, Charset.defaultCharset()))); }
@Override protected int onRun(final CommandMap command) { final File folder = (File) command.get(PATH); final File output = (File) command.get(OUTPUT); final Mode mode = (Mode) command.get(MODE); final String filePrefix = (String) command.get(FILE_PREFIX); // processing the files in sorted order makes testing easier final List<File> files = folder.listFilesRecursively(); Collections.sort(files); final Iterable<PropertiesLocated> jsonItems = readGeoJsonItems(mode, files, filePrefix); final GeoJsonObject result = new GeoJsonBuilder() .createFeatureCollectionFromPropertiesLocated(jsonItems); final JsonWriter writer = new JsonWriter(output); writer.write(result.jsonObject()); writer.close(); return 0; }