From ff4bf2597d74734af8f0b0ee7537d86c0913cc7b Mon Sep 17 00:00:00 2001 From: Martin Raifer Date: Mon, 6 Feb 2017 15:02:55 +0100 Subject: [PATCH] fix regression in background layer loading from URL fixes #3820 --- modules/svg/gpx.js | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/modules/svg/gpx.js b/modules/svg/gpx.js index a5f206d4b..e0a9b171f 100644 --- a/modules/svg/gpx.js +++ b/modules/svg/gpx.js @@ -106,29 +106,32 @@ export function svgGpx(projection, context, dispatch) { } - function getExtension(file) { - if (_.isUndefined(file)) { + function getExtension(fileName) { + if (_.isUndefined(fileName)) { return ''; } - var lastDotIndex = file.name.lastIndexOf('.'); + var lastDotIndex = fileName.lastIndexOf('.'); if (lastDotIndex < 0) { return ''; } - return file.name.substr(lastDotIndex); + return fileName.substr(lastDotIndex); } function parseSaveAndZoom(extension, data) { - if (extension === '.gpx') { - drawGpx.geojson(toGeoJSON.gpx(toDom(data))).fitZoom(); - } - else if (extension === '.kml') { - drawGpx.geojson(toGeoJSON.kml(toDom(data))).fitZoom(); - } - else if (extension === '.geojson' || extension === '.json') { - drawGpx.geojson(JSON.parse(data)).fitZoom(); + switch (extension) { + default: + drawGpx.geojson(toGeoJSON.gpx(toDom(data))).fitZoom(); + break; + case '.kml': + drawGpx.geojson(toGeoJSON.kml(toDom(data))).fitZoom(); + break; + case '.geojson': + case '.json': + drawGpx.geojson(JSON.parse(data)).fitZoom(); + break; } } @@ -180,7 +183,7 @@ export function svgGpx(projection, context, dispatch) { reader = new FileReader(); reader.onload = (function(file) { - var extension = getExtension(file); + var extension = getExtension(file.name); return function (e) { parseSaveAndZoom(extension, e.target.result);