Changeset 737 in josm for trunk


Ignore:
Timestamp:
2008-07-28T09:31:34+02:00 (16 years ago)
Author:
framm
Message:
  • added NMEA suport, patch by egore@… and jennergruhle. closes #675. Note, NMEA is read but not internally converted into GPX structures yet.
Location:
trunk/src/org/openstreetmap/josm/actions
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/actions/ExtensionFileFilter.java

    r627 r737  
    2121        public static final int OSM = 0;
    2222        public static final int GPX = 1;
     23        public static final int NMEA = 2;
    2324       
    2425        public static ExtensionFileFilter[] filters = {
    2526                new ExtensionFileFilter("osm,xml", "osm", tr("OSM Server Files (.osm .xml)")),
    2627                new ExtensionFileFilter("gpx,gpx.gz", "gpx", tr("GPX Files (.gpx .gpx.gz)")),
     28                new ExtensionFileFilter("nmea", "nmea", tr("NMEA-0183 Files (.nmea)")),
    2729        };
    2830
  • trunk/src/org/openstreetmap/josm/actions/OpenAction.java

    r733 r737  
    1818import org.openstreetmap.josm.Main;
    1919import org.openstreetmap.josm.data.osm.DataSet;
     20import org.openstreetmap.josm.gui.layer.GpxLayer;
    2021import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    21 import org.openstreetmap.josm.gui.layer.GpxLayer;
    2222import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
     23import org.openstreetmap.josm.io.GpxReader;
     24import org.openstreetmap.josm.io.NmeaReader;
    2325import org.openstreetmap.josm.io.OsmReader;
    24 import org.openstreetmap.josm.io.GpxReader;
    2526import org.xml.sax.SAXException;
    2627
     
    5657                        if (asGpxData(file.getName()))
    5758                                openFileAsGpx(file);
     59                        else if (asNmeaData(file.getName()))
     60                                openFileAsNmea(file);
    5861                        else
    5962                                openAsData(file);
     
    103106    }
    104107
     108        private void openFileAsNmea(File file) throws IOException, FileNotFoundException {
     109                String fn = file.getName();
     110                if (ExtensionFileFilter.filters[ExtensionFileFilter.NMEA].acceptName(fn)) {
     111                        NmeaReader r = new NmeaReader(new FileInputStream(file), file.getAbsoluteFile().getParentFile());
     112                        r.data.storageFile = file;
     113                        GpxLayer gpxLayer = new GpxLayer(r.data, fn);
     114                        Main.main.addLayer(gpxLayer);
     115                        if (Main.pref.getBoolean("marker.makeautomarkers", true)) {
     116                                MarkerLayer ml = new MarkerLayer(r.data, tr("Markers from {0}", fn), file, gpxLayer);
     117                                if (ml.data.size() > 0) {
     118                                        Main.main.addLayer(ml);
     119                                }
     120                        }
     121
     122                } else {
     123                        throw new IllegalStateException();
     124                }
     125    }
    105126
    106127        private boolean asGpxData(String fn) {
     
    108129        }
    109130
     131        private boolean asNmeaData(String fn) {
     132                return ExtensionFileFilter.filters[ExtensionFileFilter.NMEA].acceptName(fn);
     133        }
     134
    110135
    111136}
Note: See TracChangeset for help on using the changeset viewer.