nakarte

Source code of https://map.sikmir.ru (fork)
git clone git://git.sikmir.ru/nakarte
Log | Files | Refs | LICENSE

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:
Msrc/lib/leaflet.control.track-list/lib/geo_file_formats.js | 12+++++++++---
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;