New "mbtiles://{name}" reference syntax (#27)
This commit is contained in:
parent
ee1cb21dfd
commit
e9cad399c9
5 changed files with 25 additions and 12 deletions
|
@ -34,7 +34,7 @@
|
||||||
"request": "2.74.0",
|
"request": "2.74.0",
|
||||||
"sharp": "0.15.1",
|
"sharp": "0.15.1",
|
||||||
"sphericalmercator": "1.0.5",
|
"sphericalmercator": "1.0.5",
|
||||||
"tileserver-gl-styles": "0.1.0"
|
"tileserver-gl-styles": "0.2.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"should": "^10.0.0",
|
"should": "^10.0.0",
|
||||||
|
|
|
@ -90,7 +90,7 @@ var startWithMBTiles = function(mbtilesFile) {
|
||||||
},
|
},
|
||||||
"styles": {},
|
"styles": {},
|
||||||
"data": {
|
"data": {
|
||||||
"data": {
|
"osm2vectortiles": {
|
||||||
"mbtiles": path.basename(mbtilesFile)
|
"mbtiles": path.basename(mbtilesFile)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -169,15 +169,21 @@ module.exports = function(options, repo, params, id, dataResolver) {
|
||||||
var source = styleJSON.sources[name];
|
var source = styleJSON.sources[name];
|
||||||
var url = source.url;
|
var url = source.url;
|
||||||
|
|
||||||
if (url.lastIndexOf('mbtiles', 0) === 0) {
|
if (url.lastIndexOf('mbtiles:', 0) === 0) {
|
||||||
// found mbtiles source, replace with info from local file
|
// found mbtiles source, replace with info from local file
|
||||||
delete source.url;
|
delete source.url;
|
||||||
|
|
||||||
var fromData = url.lastIndexOf('mbtiles_data:', 0) === 0;
|
var mbtilesFile = url.substring('mbtiles://'.length);
|
||||||
var mbtilesFile = url.substring(
|
var fromData = mbtilesFile[0] == '{' &&
|
||||||
(fromData ? 'mbtiles_data://' : 'mbtiles://').length);
|
mbtilesFile[mbtilesFile.length - 1] == '}';
|
||||||
|
|
||||||
if (fromData) {
|
if (fromData) {
|
||||||
mbtilesFile = dataResolver(mbtilesFile);
|
mbtilesFile = dataResolver(
|
||||||
|
mbtilesFile.substr(1, mbtilesFile.length - 2));
|
||||||
|
if (!mbtilesFile) {
|
||||||
|
console.log('ERROR: data "' + mbtilesFile + '" not found!');
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
queue.push(function(callback) {
|
queue.push(function(callback) {
|
||||||
|
|
|
@ -16,11 +16,15 @@ module.exports = function(options, repo, params, id, reportTiles, reportFont) {
|
||||||
Object.keys(styleJSON.sources).forEach(function(name) {
|
Object.keys(styleJSON.sources).forEach(function(name) {
|
||||||
var source = styleJSON.sources[name];
|
var source = styleJSON.sources[name];
|
||||||
var url = source.url;
|
var url = source.url;
|
||||||
if (url.lastIndexOf('mbtiles', 0) === 0) {
|
if (url.lastIndexOf('mbtiles:', 0) === 0) {
|
||||||
var fromData = url.lastIndexOf('mbtiles_data:', 0) === 0;
|
var mbtilesFile = url.substring('mbtiles://'.length);
|
||||||
var mbtiles = url.substring(
|
var fromData = mbtilesFile[0] == '{' &&
|
||||||
(fromData ? 'mbtiles_data://' : 'mbtiles://').length);
|
mbtilesFile[mbtilesFile.length - 1] == '}';
|
||||||
var identifier = reportTiles(mbtiles, fromData);
|
|
||||||
|
if (fromData) {
|
||||||
|
mbtilesFile = mbtilesFile.substr(1, mbtilesFile.length - 2);
|
||||||
|
}
|
||||||
|
var identifier = reportTiles(mbtilesFile, fromData);
|
||||||
source.url = 'local://data/' + identifier + '.json';
|
source.url = 'local://data/' + identifier + '.json';
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -106,6 +106,9 @@ module.exports = function(opts, callback) {
|
||||||
});
|
});
|
||||||
if (dataItemId) { // mbtiles exist in the data config
|
if (dataItemId) { // mbtiles exist in the data config
|
||||||
return dataItemId;
|
return dataItemId;
|
||||||
|
} else if (fromData) {
|
||||||
|
console.log('ERROR: data "' + mbtiles + '" not found!');
|
||||||
|
process.exit(1);
|
||||||
} else {
|
} else {
|
||||||
var id = mbtiles.substr(0, mbtiles.lastIndexOf('.')) || mbtiles;
|
var id = mbtiles.substr(0, mbtiles.lastIndexOf('.')) || mbtiles;
|
||||||
while (data[id]) id += '_';
|
while (data[id]) id += '_';
|
||||||
|
|
Loading…
Reference in a new issue