diff --git a/config.js b/config.js index 4d80fe4734a63b01dcaf4b517bbdcc79882ad42b..39df3e1f0c9a01db5fc0f65c470a5f15c3923550 100644 --- a/config.js +++ b/config.js @@ -8,6 +8,7 @@ module.exports = { SHARED: "sharedResource.json.gz", FEATURES: ".json.gz", GEOMETRIES: ".bin.gz", - ATTRIBUTES: ".bin.gz" + ATTRIBUTES: ".bin.gz", + TEXTURES: ".bin.dds.gz" } }; \ No newline at end of file diff --git a/src/handler.js b/src/handler.js index 26edda600edad9c9a7ce12981b03a7fa01e64ea3..25a3b5d7cd1c90da088e8c0f424e265adfdd1d71 100644 --- a/src/handler.js +++ b/src/handler.js @@ -5,6 +5,7 @@ const shared = require('./shared'); const features = require('./features'); const geometries = require('./geometries'); const attributes = require('./attributes'); +const textures = require('./textures'); const layer = require('./layer'); const layers = require('./layers'); @@ -16,6 +17,7 @@ const handlers = { features: features, geometries: geometries, attributes: attributes, + textures: textures, layer: layer, layers: layers } diff --git a/src/textures.js b/src/textures.js new file mode 100644 index 0000000000000000000000000000000000000000..7293ef25ab8fd4de3a9d776b6f9becd69618e9db --- /dev/null +++ b/src/textures.js @@ -0,0 +1,18 @@ +const config = require('../config'); +const fs = require('fs'); + +const handle = (req, res) => { + + let baseUrl = req.baseUrl.replace(/^\/?|\/?$/g, ""); + let resourse = `${config.BASE_DIR}/${baseUrl}/${req.params.nodeid}/${req.params.resource}/${req.params.resourceid}${config.FOLDER_INDEX.TEXTURES}`; + if (!fs.existsSync(resourse)) throw new Error("not found"); + + res.set({ + 'Content-Type': 'application/octet-stream', + 'Content-Encoding': 'gzip' + }); + res.sendFile(resourse); + +}; + +module.exports = handle; \ No newline at end of file