Changeset 14075 in josm for trunk/src


Ignore:
Timestamp:
2018-08-02T22:48:59+02:00 (6 years ago)
Author:
Don-vip
Message:

fix #16550 - fix regressions in OSM -> GPX conversion

Location:
trunk/src/org/openstreetmap/josm
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java

    r14060 r14075  
    7373import org.openstreetmap.josm.data.osm.OsmPrimitiveComparator;
    7474import org.openstreetmap.josm.data.osm.Relation;
     75import org.openstreetmap.josm.data.osm.Tagged;
    7576import org.openstreetmap.josm.data.osm.UploadPolicy;
    7677import org.openstreetmap.josm.data.osm.Way;
     
    747748                    trk.add(trkseg);
    748749                }
    749                 if (!n.isTagged()) {
     750                if (!n.isTagged() || containsOnlyGpxTags(n)) {
    750751                    doneNodes.add(n);
    751752                }
     
    755756            gpxData.addTrack(new ImmutableGpxTrack(trk, trkAttr));
    756757        });
     758    }
     759
     760    private static boolean containsOnlyGpxTags(Tagged t) {
     761        for (String key : t.getKeys().keySet()) {
     762            if (!GpxConstants.WPT_KEYS.contains(key)) {
     763                return false;
     764            }
     765        }
     766        return true;
    757767    }
    758768
  • trunk/src/org/openstreetmap/josm/io/GpxWriter.java

    r12156 r14075  
    1010import java.nio.charset.StandardCharsets;
    1111import java.util.Collection;
     12import java.util.Date;
    1213import java.util.List;
    1314import java.util.Map;
     
    2829import org.openstreetmap.josm.data.gpx.WayPoint;
    2930import org.openstreetmap.josm.tools.JosmRuntimeException;
     31import org.openstreetmap.josm.tools.date.DateUtils;
    3032
    3133/**
     
    8183
    8284        out.println("<?xml version='1.0' encoding='UTF-8'?>");
    83         out.println("<gpx version=\"1.1\" creator=\"JOSM GPX export\" xmlns=\"http://www.topografix.com/GPX/1/1\"\n" +
    84                 (hasExtensions ? String.format("    xmlns:josm=\"%s\"%n", JOSM_EXTENSIONS_NAMESPACE_URI) : "") +
    85                 "    xmlns:xsi=\""+XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI+"\" \n" +
    86                 "    xsi:schemaLocation=\"http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd\">");
     85        out.println("<gpx version=\"1.1\" creator=\"JOSM GPX export\" xmlns=\"http://www.topografix.com/GPX/1/1\"");
     86        out.println((hasExtensions ? String.format("    xmlns:josm=\"%s\"%n", JOSM_EXTENSIONS_NAMESPACE_URI) : "") +
     87                    "    xmlns:xsi=\""+XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI+"\"");
     88        out.println("    xsi:schemaLocation=\"http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd\">");
    8789        indent = "  ";
    8890        writeMetaData();
     
    112114                if (value != null) {
    113115                    simpleTag(key, value);
     116                } else {
     117                    Object val = obj.get(key);
     118                    if (val instanceof Date) {
     119                        simpleTag(key, DateUtils.getGpxFormat().format(val));
     120                    }
    114121                }
    115122            }
Note: See TracChangeset for help on using the changeset viewer.