Better check for file extension, default to .gpx if gpx= in url

(closes #5253)
This commit is contained in:
Bryan Housel
2018-08-29 00:43:42 -04:00
parent 742adaa0a8
commit 8c8054b785
2 changed files with 9 additions and 9 deletions
+1 -1
View File
@@ -452,7 +452,7 @@ export function rendererBackground(context) {
if (q.gpx) {
var gpx = context.layers().layer('data');
if (gpx) {
gpx.url(q.gpx);
gpx.url(q.gpx, '.gpx');
}
}
+8 -8
View File
@@ -316,10 +316,9 @@ export function svgData(projection, context, dispatch) {
function getExtension(fileName) {
if (!fileName) return;
var lastDotIndex = fileName.lastIndexOf('.');
if (lastDotIndex < 0) return;
return fileName.substr(lastDotIndex);
var re = /\.(gpx|kml|(geo)?json)$/i;
var match = fileName.match(re);
return match && match.length && match[0];
}
@@ -471,15 +470,16 @@ export function svgData(projection, context, dispatch) {
};
drawData.url = function(url) {
drawData.url = function(url, defaultExtension) {
_template = null;
_fileList = null;
_geojson = null;
_src = null;
var extension = getExtension(url);
var re = /\.(gpx|kml|(geo)?json)$/i;
if (re.test(extension)) {
// strip off any querystring/hash from the url before checking extension
var testUrl = url.split(/[?#]/)[0];
var extension = getExtension(testUrl) || defaultExtension;
if (extension) {
_template = null;
d3_text(url, function(err, data) {
if (err) return;