From 5b582386566ee79b36130609fa126b85df1aef1a Mon Sep 17 00:00:00 2001 From: Athanasios <ath.kouk.oid@gmail.com> Date: Sat, 24 Apr 2021 09:57:29 +0200 Subject: [PATCH] Support textures --- config.js | 3 ++- src/handler.js | 2 ++ src/textures.js | 18 ++++++++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 src/textures.js diff --git a/config.js b/config.js index 4d80fe4..39df3e1 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 26edda6..25a3b5d 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 0000000..7293ef2 --- /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 -- GitLab