Ignore:
Timestamp:
2018-07-07T14:09:37+02:00 (4 months 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/io/nmea/NmeaReader.java

    r12620 r14010  
    1414import java.util.Date;
    1515import java.util.Locale;
     16import java.util.Objects;
    1617import java.util.Optional;
    1718
     
    2122import org.openstreetmap.josm.data.gpx.ImmutableGpxTrack;
    2223import org.openstreetmap.josm.data.gpx.WayPoint;
     24import org.openstreetmap.josm.io.IGpxReader;
    2325import org.openstreetmap.josm.io.IllegalDataException;
    2426import org.openstreetmap.josm.tools.Logging;
    2527import org.openstreetmap.josm.tools.date.DateUtils;
     28import org.xml.sax.SAXException;
    2629
    2730/**
     
    4043 * @author cbrill
    4144 */
    42 public class NmeaReader {
     45public class NmeaReader implements IGpxReader {
    4346
    4447    enum VTG {
     
    129132    }
    130133
    131     public GpxData data;
     134    private final InputStream source;
     135    GpxData data;
    132136
    133137    private final SimpleDateFormat rmcTimeFmt = new SimpleDateFormat("ddMMyyHHmmss.SSS", Locale.ENGLISH);
     
    171175     */
    172176    public NmeaReader(InputStream source) throws IOException {
     177        this.source = Objects.requireNonNull(source);
    173178        rmcTimeFmt.setTimeZone(DateUtils.UTC);
    174179        rmcTimeFmtStd.setTimeZone(DateUtils.UTC);
    175 
     180    }
     181
     182    @Override
     183    public boolean parse(boolean tryToFinish) throws SAXException, IOException {
    176184        // create the data tree
    177185        data = new GpxData();
     
    184192            if (loopstartChar == -1)
    185193                //TODO tell user about the problem?
    186                 return;
     194                return false;
    187195            sb.append((char) loopstartChar);
    188196            ps.pDate = "010100"; // TODO date problem
     
    210218        } catch (IllegalDataException e) {
    211219            Logging.warn(e);
    212         }
     220            return false;
     221        }
     222        return true;
    213223    }
    214224
     
    529539        return new LatLon(lat, lon);
    530540    }
     541
     542    @Override
     543    public GpxData getGpxData() {
     544        return data;
     545    }
    531546}
Note: See TracChangeset for help on using the changeset viewer.