remove logging statements. when getting tile urls, use the new keyName option
This commit is contained in:
parent
8519b3c5dd
commit
095c175572
5 changed files with 23 additions and 39 deletions
|
@ -172,7 +172,7 @@ module.exports = function(options, repo, params, id, styles) {
|
||||||
info.tiles = utils.getTileUrls(req, info.tiles,
|
info.tiles = utils.getTileUrls(req, info.tiles,
|
||||||
'data/' + id, info.format, {
|
'data/' + id, info.format, {
|
||||||
'pbf': options.pbfAlias
|
'pbf': options.pbfAlias
|
||||||
});
|
}, options);
|
||||||
return res.send(info);
|
return res.send(info);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -736,7 +736,7 @@ module.exports = function(options, repo, params, id, dataResolver) {
|
||||||
app.get('/' + id + '.json', function(req, res, next) {
|
app.get('/' + id + '.json', function(req, res, next) {
|
||||||
var info = clone(tileJSON);
|
var info = clone(tileJSON);
|
||||||
info.tiles = utils.getTileUrls(req, info.tiles,
|
info.tiles = utils.getTileUrls(req, info.tiles,
|
||||||
'styles/' + id, info.format);
|
'styles/' + id, info.format, null, options);
|
||||||
return res.send(info);
|
return res.send(info);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -85,8 +85,6 @@ module.exports = function (options, repo, params, id, reportTiles, reportFont) {
|
||||||
|
|
||||||
app.get('/' + id + '/style.json', function (req, res, next) {
|
app.get('/' + id + '/style.json', function (req, res, next) {
|
||||||
var fixUrl = function (url, opt_nokey, opt_nostyle) {
|
var fixUrl = function (url, opt_nokey, opt_nostyle) {
|
||||||
console.log("URL:", url);
|
|
||||||
console.log("current options:", options);
|
|
||||||
if (!url || (typeof url !== 'string') || (url.indexOf('local://') !== 0 && !isWhitelistedUrl(url))) {
|
if (!url || (typeof url !== 'string') || (url.indexOf('local://') !== 0 && !isWhitelistedUrl(url))) {
|
||||||
return url;
|
return url;
|
||||||
}
|
}
|
||||||
|
@ -99,33 +97,19 @@ module.exports = function (options, repo, params, id, reportTiles, reportFont) {
|
||||||
queryParams[options.auth.keyName] = req.query[options.auth.keyName];
|
queryParams[options.auth.keyName] = req.query[options.auth.keyName];
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("params:", queryParams);
|
|
||||||
if (url.indexOf('local://') === 0) {
|
if (url.indexOf('local://') === 0) {
|
||||||
var query = querystring.stringify(queryParams);
|
var query = querystring.stringify(queryParams);
|
||||||
if (query.length) {
|
if (query.length) {
|
||||||
query = '?' + query;
|
query = '?' + query;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(url.replace(
|
|
||||||
'local://', req.protocol + '://' + req.headers.host + '/') + query);
|
|
||||||
|
|
||||||
return url.replace(
|
return url.replace(
|
||||||
'local://', req.protocol + '://' + req.headers.host + '/') + query;
|
'local://', req.protocol + '://' + req.headers.host + '/') + query;
|
||||||
} else { // whitelisted url. might have existing parameters
|
} else { // whitelisted url. might have existing parameters
|
||||||
var parsedUrl = nodeUrl.parse(url);
|
var parsedUrl = nodeUrl.parse(url);
|
||||||
console.log("parsed url:", parsedUrl);
|
|
||||||
var parsedQS = querystring.parse(url.query);
|
var parsedQS = querystring.parse(url.query);
|
||||||
|
|
||||||
console.log("parsedQS:", parsedQS);
|
|
||||||
var newParams = Object.assign(parsedQS, queryParams);
|
var newParams = Object.assign(parsedQS, queryParams);
|
||||||
|
parsedUrl.search = querystring.unescape(querystring.stringify(parsedQS));
|
||||||
console.log("newParams:", newParams);
|
|
||||||
parsedUrl.search = querystring.stringify(parsedQS);
|
|
||||||
|
|
||||||
console.log("new parsed url:", parsedUrl);
|
|
||||||
|
|
||||||
console.log(nodeUrl.format(parsedUrl));
|
|
||||||
|
|
||||||
return nodeUrl.format(parsedUrl);
|
return nodeUrl.format(parsedUrl);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -219,7 +219,7 @@ function start(opts) {
|
||||||
}
|
}
|
||||||
info.tiles = utils.getTileUrls(req, info.tiles, path, info.format, {
|
info.tiles = utils.getTileUrls(req, info.tiles, path, info.format, {
|
||||||
'pbf': options.pbfAlias
|
'pbf': options.pbfAlias
|
||||||
});
|
}, options);
|
||||||
arr.push(info);
|
arr.push(info);
|
||||||
});
|
});
|
||||||
return arr;
|
return arr;
|
||||||
|
@ -305,7 +305,7 @@ function start(opts) {
|
||||||
|
|
||||||
var tiles = utils.getTileUrls(
|
var tiles = utils.getTileUrls(
|
||||||
req, style.serving_rendered.tiles,
|
req, style.serving_rendered.tiles,
|
||||||
'styles/' + id, style.serving_rendered.format);
|
'styles/' + id, style.serving_rendered.format, null, options);
|
||||||
style.xyz_link = tiles[0];
|
style.xyz_link = tiles[0];
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -335,7 +335,7 @@ function start(opts) {
|
||||||
var tiles = utils.getTileUrls(
|
var tiles = utils.getTileUrls(
|
||||||
req, data_.tiles, 'data/' + id, data_.format, {
|
req, data_.tiles, 'data/' + id, data_.format, {
|
||||||
'pbf': options.pbfAlias
|
'pbf': options.pbfAlias
|
||||||
});
|
}, options);
|
||||||
data_.xyz_link = tiles[0];
|
data_.xyz_link = tiles[0];
|
||||||
}
|
}
|
||||||
if (data_.filesize) {
|
if (data_.filesize) {
|
||||||
|
|
34
src/utils.js
34
src/utils.js
|
@ -1,12 +1,12 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var path = require('path'),
|
var path = require('path'),
|
||||||
fs = require('fs');
|
fs = require('fs');
|
||||||
|
|
||||||
var clone = require('clone'),
|
var clone = require('clone'),
|
||||||
glyphCompose = require('glyph-pbf-composite');
|
glyphCompose = require('glyph-pbf-composite');
|
||||||
|
|
||||||
module.exports.getTileUrls = function(req, domains, path, format, aliases) {
|
module.exports.getTileUrls = function (req, domains, path, format, aliases, options) {
|
||||||
|
|
||||||
if (domains) {
|
if (domains) {
|
||||||
if (domains.constructor === String && domains.length > 0) {
|
if (domains.constructor === String && domains.length > 0) {
|
||||||
|
@ -15,9 +15,9 @@ module.exports.getTileUrls = function(req, domains, path, format, aliases) {
|
||||||
var host = req.headers.host;
|
var host = req.headers.host;
|
||||||
var hostParts = host.split('.');
|
var hostParts = host.split('.');
|
||||||
var relativeSubdomainsUsable = hostParts.length > 1 &&
|
var relativeSubdomainsUsable = hostParts.length > 1 &&
|
||||||
!/^([0-9]{1,3}\.){3}[0-9]{1,3}(\:[0-9]+)?$/.test(host);
|
!/^([0-9]{1,3}\.){3}[0-9]{1,3}(\:[0-9]+)?$/.test(host);
|
||||||
var newDomains = [];
|
var newDomains = [];
|
||||||
domains.forEach(function(domain) {
|
domains.forEach(function (domain) {
|
||||||
if (domain.indexOf('*') !== -1) {
|
if (domain.indexOf('*') !== -1) {
|
||||||
if (relativeSubdomainsUsable) {
|
if (relativeSubdomainsUsable) {
|
||||||
var newParts = hostParts.slice(1);
|
var newParts = hostParts.slice(1);
|
||||||
|
@ -36,8 +36,8 @@ module.exports.getTileUrls = function(req, domains, path, format, aliases) {
|
||||||
|
|
||||||
var key = req.query.key;
|
var key = req.query.key;
|
||||||
var queryParams = [];
|
var queryParams = [];
|
||||||
if (req.query.key) {
|
if (req.query[options.auth.keyName]) {
|
||||||
queryParams.push('key=' + req.query.key);
|
queryParams.push(options.auth.keyName + '=' + req.query);
|
||||||
}
|
}
|
||||||
if (req.query.style) {
|
if (req.query.style) {
|
||||||
queryParams.push('style=' + req.query.style);
|
queryParams.push('style=' + req.query.style);
|
||||||
|
@ -49,15 +49,15 @@ module.exports.getTileUrls = function(req, domains, path, format, aliases) {
|
||||||
}
|
}
|
||||||
|
|
||||||
var uris = [];
|
var uris = [];
|
||||||
domains.forEach(function(domain) {
|
domains.forEach(function (domain) {
|
||||||
uris.push(req.protocol + '://' + domain + '/' + path +
|
uris.push(req.protocol + '://' + domain + '/' + path +
|
||||||
'/{z}/{x}/{y}.' + format + query);
|
'/{z}/{x}/{y}.' + format + query);
|
||||||
});
|
});
|
||||||
|
|
||||||
return uris;
|
return uris;
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports.fixTileJSONCenter = function(tileJSON) {
|
module.exports.fixTileJSONCenter = function (tileJSON) {
|
||||||
if (tileJSON.bounds && !tileJSON.center) {
|
if (tileJSON.bounds && !tileJSON.center) {
|
||||||
var fitWidth = 1024;
|
var fitWidth = 1024;
|
||||||
var tiles = fitWidth / 256;
|
var tiles = fitWidth / 256;
|
||||||
|
@ -72,15 +72,15 @@ module.exports.fixTileJSONCenter = function(tileJSON) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var getFontPbf = function(allowedFonts, fontPath, name, range, fallbacks) {
|
var getFontPbf = function (allowedFonts, fontPath, name, range, fallbacks) {
|
||||||
return new Promise(function(resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
if (!allowedFonts || (allowedFonts[name] && fallbacks)) {
|
if (!allowedFonts || (allowedFonts[name] && fallbacks)) {
|
||||||
var filename = path.join(fontPath, name, range + '.pbf');
|
var filename = path.join(fontPath, name, range + '.pbf');
|
||||||
if (!fallbacks) {
|
if (!fallbacks) {
|
||||||
fallbacks = clone(allowedFonts || {});
|
fallbacks = clone(allowedFonts || {});
|
||||||
}
|
}
|
||||||
delete fallbacks[name];
|
delete fallbacks[name];
|
||||||
fs.readFile(filename, function(err, data) {
|
fs.readFile(filename, function (err, data) {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.error('ERROR: Font not found:', name);
|
console.error('ERROR: Font not found:', name);
|
||||||
if (fallbacks && Object.keys(fallbacks).length) {
|
if (fallbacks && Object.keys(fallbacks).length) {
|
||||||
|
@ -101,17 +101,17 @@ var getFontPbf = function(allowedFonts, fontPath, name, range, fallbacks) {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports.getFontsPbf = function(allowedFonts, fontPath, names, range, fallbacks) {
|
module.exports.getFontsPbf = function (allowedFonts, fontPath, names, range, fallbacks) {
|
||||||
var fonts = names.split(',');
|
var fonts = names.split(',');
|
||||||
var queue = [];
|
var queue = [];
|
||||||
fonts.forEach(function(font) {
|
fonts.forEach(function (font) {
|
||||||
queue.push(
|
queue.push(
|
||||||
getFontPbf(allowedFonts, fontPath, font, range, clone(allowedFonts || fallbacks))
|
getFontPbf(allowedFonts, fontPath, font, range, clone(allowedFonts || fallbacks))
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
return new Promise(function(resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
Promise.all(queue).then(function(values) {
|
Promise.all(queue).then(function (values) {
|
||||||
return resolve(glyphCompose.combine(values));
|
return resolve(glyphCompose.combine(values));
|
||||||
}, reject);
|
}, reject);
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue