Ignore:
Timestamp:
2020-08-10T23:19:05+02:00 (4 years ago)
Author:
simon04
Message:

fix #15441 - Separate GpxRouteLayer

Location:
trunk/src/org/openstreetmap/josm/gui
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/io/importexport/GpxImporter.java

    r16625 r16864  
    1515import org.openstreetmap.josm.gui.Notification;
    1616import org.openstreetmap.josm.gui.layer.GpxLayer;
     17import org.openstreetmap.josm.gui.layer.GpxRouteLayer;
    1718import org.openstreetmap.josm.gui.layer.ImageryLayer;
    1819import org.openstreetmap.josm.gui.layer.OsmDataLayer;
     
    4142        private final GpxLayer gpxLayer;
    4243        /**
     44         * The imported GPX route layer. May be null if no marker.
     45         */
     46        private final GpxRouteLayer gpxRouteLayer;
     47        /**
    4348         * The imported marker layer. May be null if no marker.
    4449         */
     
    5560         * @param postLayerTask The task to run after GPX and/or marker layer has been added to MapView.
    5661         */
    57         public GpxImporterData(GpxLayer gpxLayer, MarkerLayer markerLayer, Runnable postLayerTask) {
     62        public GpxImporterData(GpxLayer gpxLayer, GpxRouteLayer gpxRouteLayer, MarkerLayer markerLayer, Runnable postLayerTask) {
    5863            this.gpxLayer = gpxLayer;
     64            this.gpxRouteLayer = gpxRouteLayer;
    5965            this.markerLayer = markerLayer;
    6066            this.postLayerTask = postLayerTask;
     
    6773        public GpxLayer getGpxLayer() {
    6874            return gpxLayer;
     75        }
     76
     77        /**
     78         * Returns the imported GPX route layer. May be null if no GPX data.
     79         * @return the imported GPX route layer. May be null if no GPX data.
     80         */
     81        public GpxRouteLayer getGpxRouteLayer() {
     82            return gpxRouteLayer;
    6983        }
    7084
     
    128142                MainApplication.getLayerManager().addLayer(data.markerLayer);
    129143            }
     144            if (data.gpxRouteLayer != null) {
     145                MainApplication.getLayerManager().addLayer(data.gpxRouteLayer);
     146            }
    130147            if (data.gpxLayer != null) {
    131148                MainApplication.getLayerManager().addLayer(data.gpxLayer);
     
    147164            final String gpxLayerName, String markerLayerName) {
    148165        MarkerLayer markerLayer = null;
     166        GpxRouteLayer gpxRouteLayer = null;
    149167        GpxLayer gpxLayer = new GpxLayer(data, gpxLayerName, data.storageFile != null);
    150168        if (Config.getPref().getBoolean("marker.makeautomarkers", true) && !data.waypoints.isEmpty()) {
     
    155173                gpxLayer.setLinkedMarkerLayer(markerLayer);
    156174            }
     175        }
     176        if (Config.getPref().getBoolean("gpx.makeautoroutes", true)) {
     177            gpxRouteLayer = new GpxRouteLayer(tr("Routes from {0}", gpxLayerName), gpxLayer);
    157178        }
    158179
     
    182203            }
    183204        };
    184         return new GpxImporterData(gpxLayer, markerLayer, postLayerTask);
     205        return new GpxImporterData(gpxLayer, gpxRouteLayer, markerLayer, postLayerTask);
    185206    }
    186207
  • trunk/src/org/openstreetmap/josm/gui/layer/gpx/GpxDrawHelper.java

    r16643 r16864  
    370370
    371371        ensureTrackVisibilityLength();
    372         for (Line segment : data.getLinesIterable(layer.trackVisibility)) {
     372        for (Line segment : getLinesIterable(layer.trackVisibility)) {
    373373
    374374            for (WayPoint pt : segment) {
     
    396396    }
    397397
     398    protected Iterable<Line> getLinesIterable(final boolean[] trackVisibility) {
     399        return data.getLinesIterable(trackVisibility);
     400    }
     401
    398402    /** ensures the trackVisibility array has the correct length without losing data.
    399403     * TODO: Make this nicer by syncing the trackVisibility automatically.
     
    508512            if (colored == ColorMode.VELOCITY) {
    509513                final List<Double> velocities = new ArrayList<>();
    510                 for (Line segment : data.getLinesIterable(null)) {
     514                for (Line segment : getLinesIterable(null)) {
    511515                    if (!forceLines) {
    512516                        oldWp = null;
     
    533537                }
    534538            } else if (colored == ColorMode.HDOP) {
    535                 for (Line segment : data.getLinesIterable(null)) {
     539                for (Line segment : getLinesIterable(null)) {
    536540                    for (WayPoint trkPnt : segment) {
    537541                        Object val = trkPnt.get(GpxConstants.PT_HDOP);
     
    573577
    574578        // Now the colors for all the points will be assigned
    575         for (Line segment : data.getLinesIterable(null)) {
     579        for (Line segment : getLinesIterable(null)) {
    576580            if (!forceLines) { // don't draw lines between segments, unless forced to
    577581                oldWp = null;
Note: See TracChangeset for help on using the changeset viewer.