001 // License: GPL. For details, see LICENSE file.
002 package org.openstreetmap.josm.io;
003
004 import java.io.File;
005 import java.io.FileWriter;
006 import java.io.IOException;
007 import org.openstreetmap.josm.actions.ExtensionFileFilter;
008 import org.openstreetmap.josm.gui.layer.Layer;
009 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
010 import static org.openstreetmap.josm.tools.I18n.tr;
011
012 public class GeoJSONExporter extends FileExporter {
013
014 public static final ExtensionFileFilter FILE_FILTER = new ExtensionFileFilter(
015 "json,geojson", "json", tr("GeoJSON Files") + " (*.json *.geojson)");
016
017 public GeoJSONExporter() {
018 super(FILE_FILTER);
019 }
020
021 @Override
022 public void exportData(File file, Layer layer) throws IOException {
023 if (layer instanceof OsmDataLayer) {
024 String json = new GeoJSONWriter((OsmDataLayer) layer).write();
025 FileWriter out = new FileWriter(file);
026 out.write(json);
027 out.close();
028 } else {
029 throw new IllegalArgumentException(tr("Layer ''{0}'' not supported", layer.getClass().toString()));
030 }
031 }
032 }