commit 31e250143e6ae832a2d5c4cc60132808dba3b01a
parent a9f1308954f0cb9765681cbb8c4bdb57da043309
Author: Sergej Orlov <wladimirych@gmail.com>
Date: Thu, 19 Jul 2018 10:37:00 +0300
[tracks] handle gpx waypoints without name, better handling of invalid waypoint names #98
Diffstat:
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/lib/leaflet.control.track-list/lib/geo_file_formats.js b/src/lib/leaflet.control.track-list/lib/geo_file_formats.js
@@ -94,12 +94,14 @@ function parseGpx(txt, name, preferNameFromFile) {
error = 'CORRUPT';
continue;
}
+ let wptName = xmlGetNodeText(waypoint_element.getElementsByTagName('name')[0]) || '';
try {
- waypoint.name = utf8_decode(xmlGetNodeText(waypoint_element.getElementsByTagName('name')[0]));
+ wptName = utf8_decode((wptName));
} catch (e) {
error = 'CORRUPT';
- continue;
+ wptName = '__invalid point name__';
}
+ waypoint.name = wptName;
waypoint.symbol_name = xmlGetNodeText(waypoint_element.getElementsByTagName('sym')[0]);
waypoints.push(waypoint);
}
@@ -124,7 +126,11 @@ function parseGpx(txt, name, preferNameFromFile) {
for (let trk of [...dom.getElementsByTagName('trk')]) {
let trkName = trk.getElementsByTagName('name')[0];
if (trkName) {
- trkName = utf8_decode(xmlGetNodeText(trkName));
+ try {
+ trkName = utf8_decode(xmlGetNodeText(trkName));
+ } catch (e) {
+ error = 'CORRUPT';
+ }
if (trkName.length) {
name = trkName;
break;