Ignore:
Timestamp:
2018-07-07T14:09:37+02:00 (6 weeks ago)
Author:
Don-vip
Message:

fix #16471 - Support NMEA files when correlating images to a GPX track

File:
1 edited

Legend:

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

    r12846 r14010  
    2424import org.openstreetmap.josm.io.nmea.NmeaReader;
    2525import org.openstreetmap.josm.spi.preferences.Config;
     26import org.xml.sax.SAXException;
    2627
    2728/**
     
    4849        final String fn = file.getName();
    4950        try (InputStream fis = Compression.getUncompressedFileInputStream(file)) {
    50             final NmeaReader r = new NmeaReader(fis);
     51            final NmeaReader r = buildAndParse(fis);
    5152            if (r.getNumberOfCoordinates() > 0) {
    52                 r.data.storageFile = file;
    53                 final GpxLayer gpxLayer = new GpxLayer(r.data, fn, true);
     53                r.getGpxData().storageFile = file;
     54                final GpxLayer gpxLayer = new GpxLayer(r.getGpxData(), fn, true);
    5455                final File fileFinal = file;
    5556
     
    5758                    MainApplication.getLayerManager().addLayer(gpxLayer);
    5859                    if (Config.getPref().getBoolean("marker.makeautomarkers", true)) {
    59                         MarkerLayer ml = new MarkerLayer(r.data, tr("Markers from {0}", fn), fileFinal, gpxLayer);
     60                        MarkerLayer ml = new MarkerLayer(r.getGpxData(), tr("Markers from {0}", fn), fileFinal, gpxLayer);
    6061                        if (!ml.data.isEmpty()) {
    6162                            MainApplication.getLayerManager().addLayer(ml);
     
    103104    public static GpxImporterData loadLayers(InputStream is, final File associatedFile,
    104105            final String gpxLayerName, String markerLayerName) throws IOException {
    105         final NmeaReader r = new NmeaReader(is);
     106        final NmeaReader r = buildAndParse(is);
    106107        final boolean parsedProperly = r.getNumberOfCoordinates() > 0;
    107         r.data.storageFile = associatedFile;
    108         return GpxImporter.loadLayers(r.data, parsedProperly, gpxLayerName, markerLayerName);
     108        r.getGpxData().storageFile = associatedFile;
     109        return GpxImporter.loadLayers(r.getGpxData(), parsedProperly, gpxLayerName, markerLayerName);
     110    }
     111
     112    static NmeaReader buildAndParse(InputStream fis) throws IOException {
     113        final NmeaReader r = new NmeaReader(fis);
     114        try {
     115            r.parse(true);
     116        } catch (SAXException e) {
     117            throw new IOException(e);
     118        }
     119        return r;
    109120    }
    110121}
Note: See TracChangeset for help on using the changeset viewer.