Changeset 12439 in josm


Ignore:
Timestamp:
2017-06-28T01:00:20+02:00 (4 months ago)
Author:
Don-vip
Message:

fix #14974 - geojson export: use Polygon only for closed ways

Location:
trunk
Files:
2 edited

Legend:

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

    r12092 r12439  
    107107            if (w != null) {
    108108                final JsonArrayBuilder array = getCoorsArray(w.getNodes());
    109                 if (ElemStyles.hasAreaElemStyle(w, false)) {
     109                if (w.isClosed() && ElemStyles.hasAreaElemStyle(w, false)) {
    110110                    final JsonArrayBuilder container = Json.createArrayBuilder().add(array);
    111111                    geomObj.add("type", "Polygon");
  • trunk/test/unit/org/openstreetmap/josm/io/GeoJSONWriterTest.java

    r11166 r12439  
    66
    77import java.io.FileInputStream;
     8import java.util.Arrays;
    89
    910import org.junit.BeforeClass;
     
    1415import org.openstreetmap.josm.data.osm.DataSet;
    1516import org.openstreetmap.josm.data.osm.Node;
     17import org.openstreetmap.josm.data.osm.Way;
    1618import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    1719
     
    3032
    3133    /**
    32      * Unit test
     34     * Unit test for Point
    3335     */
    3436    @Test
     
    5759                "                    4.56000000000,\n" +
    5860                "                    12.30000000000\n" +
     61                "                ]\n" +
     62                "            }\n" +
     63                "        }\n" +
     64                "    ]\n" +
     65                "}").replace("'", "\""), writer.write().trim());
     66    }
     67
     68    /**
     69     * Unit test for LineString
     70     */
     71    @Test
     72    public void testLineString() {
     73        final DataSet ds = new DataSet();
     74        final Node n1 = new Node(new LatLon(12.3, 4.56));
     75        final Node n2 = new Node(new LatLon(12.4, 4.57));
     76        ds.addPrimitive(n1);
     77        ds.addPrimitive(n2);
     78        final Way way = new Way();
     79        way.put("highway", "footway");
     80        way.setNodes(Arrays.asList(n1, n2));
     81        ds.addPrimitive(way);
     82        final OsmDataLayer layer = new OsmDataLayer(ds, "foo", null);
     83        final GeoJSONWriter writer = new GeoJSONWriter(layer);
     84        assertEquals(("" +
     85                "{\n" +
     86                "    'type':'FeatureCollection',\n" +
     87                "    'generator':'JOSM',\n" +
     88                "    'features':[\n" +
     89                "        {\n" +
     90                "            'type':'Feature',\n" +
     91                "            'properties':{\n" +
     92                "                'highway':'footway'\n" +
     93                "            },\n" +
     94                "            'geometry':{\n" +
     95                "                'type':'LineString',\n" +
     96                "                'coordinates':[\n" +
     97                "                    [\n" +
     98                "                        4.56000000000,\n" +
     99                "                        12.30000000000\n" +
     100                "                    ],\n" +
     101                "                    [\n" +
     102                "                        4.57000000000,\n" +
     103                "                        12.40000000000\n" +
     104                "                    ]\n" +
    59105                "                ]\n" +
    60106                "            }\n" +
Note: See TracChangeset for help on using the changeset viewer.