diff --git a/package.json b/package.json index e32af1b..e9658fc 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "request": "2.74.0", "sharp": "0.15.1", "sphericalmercator": "1.0.5", - "tileserver-gl-styles": "0.1.0" + "tileserver-gl-styles": "0.2.0" }, "devDependencies": { "should": "^10.0.0", diff --git a/src/main.js b/src/main.js index 4e12742..1f93ece 100644 --- a/src/main.js +++ b/src/main.js @@ -90,7 +90,7 @@ var startWithMBTiles = function(mbtilesFile) { }, "styles": {}, "data": { - "data": { + "osm2vectortiles": { "mbtiles": path.basename(mbtilesFile) } } diff --git a/src/serve_rendered.js b/src/serve_rendered.js index 9400d0b..3cde59d 100644 --- a/src/serve_rendered.js +++ b/src/serve_rendered.js @@ -169,15 +169,21 @@ module.exports = function(options, repo, params, id, dataResolver) { var source = styleJSON.sources[name]; 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 delete source.url; - var fromData = url.lastIndexOf('mbtiles_data:', 0) === 0; - var mbtilesFile = url.substring( - (fromData ? 'mbtiles_data://' : 'mbtiles://').length); + var mbtilesFile = url.substring('mbtiles://'.length); + var fromData = mbtilesFile[0] == '{' && + mbtilesFile[mbtilesFile.length - 1] == '}'; + 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) { diff --git a/src/serve_style.js b/src/serve_style.js index c4d265a..6b5c390 100644 --- a/src/serve_style.js +++ b/src/serve_style.js @@ -16,11 +16,15 @@ module.exports = function(options, repo, params, id, reportTiles, reportFont) { Object.keys(styleJSON.sources).forEach(function(name) { var source = styleJSON.sources[name]; var url = source.url; - if (url.lastIndexOf('mbtiles', 0) === 0) { - var fromData = url.lastIndexOf('mbtiles_data:', 0) === 0; - var mbtiles = url.substring( - (fromData ? 'mbtiles_data://' : 'mbtiles://').length); - var identifier = reportTiles(mbtiles, fromData); + if (url.lastIndexOf('mbtiles:', 0) === 0) { + var mbtilesFile = url.substring('mbtiles://'.length); + var fromData = mbtilesFile[0] == '{' && + mbtilesFile[mbtilesFile.length - 1] == '}'; + + if (fromData) { + mbtilesFile = mbtilesFile.substr(1, mbtilesFile.length - 2); + } + var identifier = reportTiles(mbtilesFile, fromData); source.url = 'local://data/' + identifier + '.json'; } }); diff --git a/src/server.js b/src/server.js index 121745c..af50191 100644 --- a/src/server.js +++ b/src/server.js @@ -106,6 +106,9 @@ module.exports = function(opts, callback) { }); if (dataItemId) { // mbtiles exist in the data config return dataItemId; + } else if (fromData) { + console.log('ERROR: data "' + mbtiles + '" not found!'); + process.exit(1); } else { var id = mbtiles.substr(0, mbtiles.lastIndexOf('.')) || mbtiles; while (data[id]) id += '_';