Changeset 6485 in josm


Ignore:
Timestamp:
2013-12-17T19:13:35+01:00 (10 years ago)
Author:
Don-vip
Message:

see #7307 - GeoJSON export: add generator:JOSM and bbox

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/io/GeoJSONWriter.java

    r6484 r6485  
    22package org.openstreetmap.josm.io;
    33
     4import java.util.Iterator;
    45import java.util.Map;
    56import java.util.Map.Entry;
    67
    78import org.json.JSONStringer;
     9import org.openstreetmap.josm.data.Bounds;
    810import org.openstreetmap.josm.data.coor.LatLon;
    911import org.openstreetmap.josm.data.osm.Changeset;
     
    2830        out = new JSONStringer();
    2931        out.object().key("type").value("FeatureCollection");
     32        out.key("generator").value("JOSM");
     33        appendLayerBounds();
    3034        out.key("features").array();
    3135        for (Node n : layer.data.getNodes()) {
     
    6266    }
    6367
    64     protected String escape(String s) {
    65         return s.replace("\"", "\\\"").replace("\\", "\\\\").replace("\n", "\\n");
    66     }
    67 
    6868    protected void appendPrimitive(OsmPrimitive p) {
    6969        if (p.isIncomplete()) {
     
    9191        }
    9292    }
     93
     94    protected void appendLayerBounds() {
     95        Iterator<Bounds> it = layer.data.getDataSourceBounds().iterator();
     96        if (it.hasNext()) {
     97            Bounds b = new Bounds(it.next());
     98            while (it.hasNext()) {
     99                b.extend(it.next());
     100            }
     101            appendBounds(b);
     102        }
     103    }
     104
     105    protected void appendBounds(Bounds b) {
     106        if (b != null) {
     107            out.key("bbox").array()
     108            .value(b.getMinLon()).value(b.getMinLat())
     109            .value(b.getMaxLon()).value(b.getMaxLat()).endArray();
     110        }
     111    }
    93112}
Note: See TracChangeset for help on using the changeset viewer.