Ignore:
Timestamp:
2018-07-28T01:03:54+02:00 (6 years ago)
Author:
Don-vip
Message:

fix #14103 - GPX → OSM: convert additional tags

Location:
trunk/src/org/openstreetmap/josm/gui/layer
Files:
3 edited

Legend:

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

    r14037 r14055  
    773773
    774774        if (time > 0) {
     775            wpt.put(GpxConstants.PT_TIME, DateUtils.fromTimestamp(time));
    775776            wpt.setTime(time);
     777        } else if (n.hasKey(GpxConstants.PT_TIME)) {
     778            wpt.put(GpxConstants.PT_TIME, DateUtils.fromString(n.get(GpxConstants.PT_TIME)));
     779            wpt.setTime();
    776780        } else if (!n.isTimestampEmpty()) {
    777             wpt.put("time", DateUtils.fromTimestamp(n.getRawTimestamp()));
     781            wpt.put(GpxConstants.PT_TIME, DateUtils.fromTimestamp(n.getRawTimestamp()));
    778782            wpt.setTime();
    779783        }
  • trunk/src/org/openstreetmap/josm/gui/layer/gpx/ConvertToDataLayerAction.java

    r14051 r14055  
    88import java.awt.event.ActionEvent;
    99import java.io.File;
     10import java.text.DateFormat;
    1011import java.util.ArrayList;
    1112import java.util.Arrays;
    1213import java.util.Collection;
     14import java.util.Date;
    1315import java.util.Iterator;
    1416import java.util.List;
     17import java.util.Map.Entry;
    1518import java.util.Optional;
    1619
     
    6770    public static class FromGpxLayer extends ConvertToDataLayerAction<GpxLayer> {
    6871
     72        private final DateFormat timeFormatter = DateUtils.getGpxFormat();
     73
    6974        /**
    7075         * Creates a new {@code FromGpxLayer}.
     
    8388                    for (WayPoint p : segment.getWayPoints()) {
    8489                        Node n = new Node(p.getCoor());
    85                         String timestr = p.getString(GpxConstants.PT_TIME);
    86                         if (timestr != null) {
    87                             try {
    88                                 n.setTimestamp(DateUtils.fromString(timestr));
    89                             } catch (UncheckedParseException e) {
    90                                 Logging.log(Logging.LEVEL_WARN, e);
     90                        for (Entry<String, Object> entry : p.attr.entrySet()) {
     91                            String key = entry.getKey();
     92                            String str = p.getString(key);
     93                            if (str != null) {
     94                                n.put(key, str);
     95                                if (GpxConstants.PT_TIME.equals(key)) {
     96                                    try {
     97                                        n.setTimestamp(DateUtils.fromString(str));
     98                                    } catch (UncheckedParseException e) {
     99                                        Logging.log(Logging.LEVEL_WARN, e);
     100                                    }
     101                                }
     102                            } else {
     103                                Object obj = p.get(key);
     104                                if (obj instanceof Date && GpxConstants.PT_TIME.equals(key)) {
     105                                    Date date = (Date) obj;
     106                                    n.put(key, timeFormatter.format(date));
     107                                    n.setTimestamp(date);
     108                                }
    91109                            }
    92                         }
    93                         String elestr = p.getString(GpxConstants.PT_ELE);
    94                         if (elestr != null) {
    95                             n.put("ele", elestr);
    96110                        }
    97111                        ds.addPrimitive(n);
  • trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/Marker.java

    r13192 r14055  
    1111import java.io.File;
    1212import java.text.DateFormat;
    13 import java.text.SimpleDateFormat;
    1413import java.util.ArrayList;
    1514import java.util.Collection;
     
    3534import org.openstreetmap.josm.tools.ImageProvider;
    3635import org.openstreetmap.josm.tools.Logging;
     36import org.openstreetmap.josm.tools.date.DateUtils;
    3737import org.openstreetmap.josm.tools.template_engine.ParseError;
    3838import org.openstreetmap.josm.tools.template_engine.TemplateEngineDataProvider;
     
    209209    public static final String LABEL_PATTERN_DESC = "{desc}";
    210210
    211     private final DateFormat timeFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
     211    private final DateFormat timeFormatter = DateUtils.getGpxFormat();
    212212    private final TemplateEngineDataProvider dataProvider;
    213213    private final String text;
     
    262262    public WayPoint convertToWayPoint() {
    263263        WayPoint wpt = new WayPoint(getCoor());
    264         wpt.put("time", timeFormatter.format(new Date(Math.round(time * 1000))));
     264        wpt.put(GpxConstants.PT_TIME, timeFormatter.format(new Date(Math.round(time * 1000))));
    265265        if (text != null) {
    266266            wpt.addExtension("text", text);
Note: See TracChangeset for help on using the changeset viewer.