diff --git a/lib/gpx-parse.js b/lib/gpx-parse.js index 22a2927..36e077b 100644 --- a/lib/gpx-parse.js +++ b/lib/gpx-parse.js @@ -88,12 +88,19 @@ var _getTracks = function(gpxTracks) { var tracks = []; if (gpxTracks && gpxTracks.length) { - + gpxTracks.forEach(function(currentTrack) { - + if (!currentTrack.trkseg) { + return; + } + var trackSegments = []; currentTrack.trkseg.forEach(function(currentSegment) { + if (!currentSegment.trkpt) { + return; + } + var trackSegement = []; currentSegment.trkpt.forEach(function(trackPoint) { @@ -130,7 +137,7 @@ var _ParseV10 = function(gpx) { */ var _ParseV11 = function(gpx) { var metadata; - + if (gpx.metadata && gpx.metadata.length > 0) { metadata = new GpxMetaData(gpx.$.creator, getString(gpx.metadata[0].time)); } else { @@ -161,7 +168,7 @@ exports.parseGpx = function(gpxString, callback) { if (!data.gpx) return callback(new Error("version not specified"), null); version = data.gpx.$.version; - + switch (version) { case "1.0": gpxResult = _ParseV10(data.gpx); @@ -174,7 +181,7 @@ exports.parseGpx = function(gpxString, callback) { } callback(null, gpxResult); - + } catch (error) { return callback(error); }