Changeset 11089 in josm


Ignore:
Timestamp:
2016-10-07T19:55:15+02:00 (8 years ago)
Author:
simon04
Message:

fix #13717 - Enhance and allow customization of tag mapping when converting GPX markers to OSM data

Location:
trunk
Files:
1 added
1 edited

Legend:

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

    r10436 r11089  
    99import java.io.File;
    1010import java.util.ArrayList;
     11import java.util.Arrays;
     12import java.util.Collection;
     13import java.util.Iterator;
    1114import java.util.List;
     15import java.util.Optional;
    1216
    1317import javax.swing.AbstractAction;
     
    3337import org.openstreetmap.josm.tools.GBC;
    3438import org.openstreetmap.josm.tools.ImageProvider;
     39import org.openstreetmap.josm.tools.Logging;
    3540import org.openstreetmap.josm.tools.date.DateUtils;
    3641
     
    103108            for (Marker marker : layer.data) {
    104109                final Node node = new Node(marker.getCoor());
    105                 node.put("name", marker.getText());
     110                final Collection<String> mapping = Main.pref.getCollection("gpx.to-osm-mapping",
     111                        Arrays.asList("name", "name", "desc", "description", "cmt", "note", "sym", "gpxicon"));
     112                if (mapping.size() % 2 == 0) {
     113                    final Iterator<String> it = mapping.iterator();
     114                    while (it.hasNext()) {
     115                        final String gpxKey = it.next();
     116                        final String osmKey = it.next();
     117                        Optional.ofNullable(marker.getTemplateValue(gpxKey, false))
     118                                .map(String::valueOf)
     119                                .ifPresent(s -> node.put(osmKey, s));
     120                    }
     121                } else {
     122                    Logging.warn("Invalid gpx.to-osm-mapping Einstein setting: expecting even number of entries");
     123                }
    106124                ds.addPrimitive(node);
    107125            }
Note: See TracChangeset for help on using the changeset viewer.