add tiles api to get the tile image

pull/210/head
dennis chen 2023-12-22 11:47:48 +08:00 zatwierdzone przez GitHub
rodzic 5cf8e65e56
commit e1760e0dc4
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
1 zmienionych plików z 64 dodań i 0 usunięć

Wyświetl plik

@ -515,6 +515,70 @@ app.get('/task/:uuid/download/:asset', authCheck, getTaskFromUuid, (req, res) =>
}
});
/** @swagger
* /task/{uuid}/tiles/{z}/{x}/{y}:
* get:
* description: Get the tile images via api , ASAP to use in your project
* tags: [task]
* produces: [application/zip]
* parameters:
* - name: uuid
* in: path
* type: string
* description: UUID of the task
* required: true
* - name: z
* in: path
* type: int
* description: z
* required: true
* - name: x
* in: path
* type: int
* description: x
* required: true
* - name: y
* in: path
* type: int
* description: y
* required: true
* responses:
* 200:
* description: tile image
* schema:
* type: file
* default:
* description: Error message
* schema:
* $ref: '#/definitions/Error'
*/
app.get('/task/:uuid/tiles/:z/:x/:y', authCheck, getTaskFromUuid, (req, res) => {
// let asset = req.params.asset !== undefined ? req.params.asset : "all.zip";
logger.info('titles services ' +req.params.z + '/'+req.params.x + '/' + req.params.y );
let filePath = req.task.getTilePath(req.params.z,req.params.x,req.params.y);
logger.info('titles services path ' +filePath );
if (filePath) {
logger.info('titles services path 1');
if (fs.existsSync(filePath)) {
logger.info('titles services path 2');
// res.setHeader('Content-Disposition', `attachment; filename=${asset}`);
res.setHeader('Content-Type', mime.getType(filePath));
res.setHeader('Content-Length', fs.statSync(filePath).size);
const filestream = fs.createReadStream(filePath);
logger.info('titles services path 3');
filestream.pipe(res);
} else {
logger.info('titles services path 4');
res.json({ error: "Asset not ready" });
}
} else {
logger.info('titles services path 5');
res.json({ error: "Invalid asset" });
}
});
/** @swagger
* definition:
* Error: