Changeset 18320 in josm for trunk/src/org


Ignore:
Timestamp:
2021-11-09T09:12:23+01:00 (3 years ago)
Author:
Don-vip
Message:

fix #21538 - Fixed GPS traces no longer being browsable (patch by ygramul, modified)

File:
1 edited

Legend:

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

    r16553 r18320  
    1212import org.openstreetmap.josm.data.DataSource;
    1313import org.openstreetmap.josm.data.gpx.GpxData;
     14import org.openstreetmap.josm.data.gpx.IGpxTrack;
    1415import org.openstreetmap.josm.data.notes.Note;
    1516import org.openstreetmap.josm.data.osm.DataSet;
    1617import org.openstreetmap.josm.gui.progress.ProgressMonitor;
     18import org.openstreetmap.josm.spi.preferences.Config;
    1719import org.openstreetmap.josm.tools.CheckParameterUtil;
    1820import org.openstreetmap.josm.tools.JosmRuntimeException;
    1921import org.openstreetmap.josm.tools.Logging;
     22import org.openstreetmap.josm.tools.Utils;
    2023import org.xml.sax.SAXException;
    2124
     
    5255        GpxData result = null;
    5356        final int pointsPerPage = 5000; // see https://wiki.openstreetmap.org/wiki/API_v0.6#GPS_traces
    54         String url = "trackpoints?bbox="+b.getMinLon()+','+b.getMinLat()+','+b.getMaxLon()+','+b.getMaxLat()+"&page=";
     57        final String url = getBaseUrl() + "trackpoints?bbox="+b.getMinLon()+','+b.getMinLat()+','+b.getMaxLon()+','+b.getMaxLat()+"&page=";
    5558        for (int i = 0; !done && !isCanceled(); ++i) {
    5659            progressMonitor.subTask(tr("Downloading points {0} to {1}...", i * pointsPerPage, (i + 1) * pointsPerPage));
     
    6366                gpxParsedProperly = reader.parse(false);
    6467                GpxData currentGpx = reader.getGpxData();
     68
     69                // #21538 - Apparently track URLs are no longer complete URLs, but only paths
     70                // We'll prefix the browse URL to get something to navigate to again.
     71                final String browseUrl = Config.getUrls().getBaseBrowseUrl();
     72                for (IGpxTrack track : currentGpx.tracks) {
     73                    Object trackUrl = track.get("url");
     74                    if (trackUrl instanceof String) {
     75                        String sTrackUrl = (String) trackUrl;
     76                        if (!Utils.isBlank(sTrackUrl) && !sTrackUrl.startsWith("http")) {
     77                            track.put("url", browseUrl + sTrackUrl);
     78                        }
     79                    }
     80                }
     81
    6582                long count = 0;
    6683                if (currentGpx.hasTrackPoints()) {
Note: See TracChangeset for help on using the changeset viewer.