add path.resolve to tiles

This commit is contained in:
HF 2023-12-29 14:09:34 +01:00
parent 4ece98f7e9
commit 8b85528b8a

View File

@ -9,8 +9,9 @@
// Tile creation is allowed to be slow // Tile creation is allowed to be slow
/* eslint-disable no-await-in-loop */ /* eslint-disable no-await-in-loop */
import sharp from 'sharp';
import fs from 'fs'; import fs from 'fs';
import path from 'path';
import sharp from 'sharp';
import RedisCanvas from '../data/redis/RedisCanvas'; import RedisCanvas from '../data/redis/RedisCanvas';
import Palette from './Palette'; import Palette from './Palette';
@ -241,7 +242,7 @@ function addIndexedSubtiletoTile(
*/ */
function tileFileName(canvasTileFolder, cell) { function tileFileName(canvasTileFolder, cell) {
const [z, x, y] = cell; const [z, x, y] = cell;
const filename = `${canvasTileFolder}/${z}/${x}/${y}.webp`; const filename = path.resolve(`${canvasTileFolder}/${z}/${x}/${y}.webp`);
try { try {
const mtime = new Date(fs.statSync(filename).mtime).getTime(); const mtime = new Date(fs.statSync(filename).mtime).getTime();
if (Date.now() - mtime < 120000) { if (Date.now() - mtime < 120000) {
@ -470,7 +471,7 @@ async function createEmptyTile(
// eslint-disable-next-line prefer-destructuring // eslint-disable-next-line prefer-destructuring
tileRGBBuffer[i++] = palette.rgb[2]; tileRGBBuffer[i++] = palette.rgb[2];
} }
const filename = `${canvasTileFolder}/emptytile.webp`; const filename = path.resolve(`${canvasTileFolder}/emptytile.webp`);
try { try {
await sharp(tileRGBBuffer, { await sharp(tileRGBBuffer, {
raw: { raw: {
@ -507,7 +508,7 @@ export async function createTexture(
// dont create textures larger than 4096 // dont create textures larger than 4096
const targetSize = Math.min(canvasSize, 4096); const targetSize = Math.min(canvasSize, 4096);
const amount = targetSize / TILE_SIZE; const amount = targetSize / TILE_SIZE;
const zoom = Math.log2(amount) * 2 / TILE_ZOOM_LEVEL; const zoom = Math.log2(amount) * Math.log2(TILE_ZOOM_LEVEL);
const textureBuffer = new Uint8Array(targetSize * targetSize * 3); const textureBuffer = new Uint8Array(targetSize * targetSize * 3);
const startTime = Date.now(); const startTime = Date.now();
@ -571,7 +572,7 @@ export async function createTexture(
deleteSubtilefromTile(TILE_SIZE, palette, amount, element, textureBuffer); deleteSubtilefromTile(TILE_SIZE, palette, amount, element, textureBuffer);
}); });
const filename = `${canvasTileFolder}/texture.webp`; const filename = path.resolve(`${canvasTileFolder}/texture.webp`);
try { try {
await sharp(textureBuffer, { await sharp(textureBuffer, {
raw: { raw: {
@ -627,7 +628,9 @@ export async function initializeTiles(
fs.mkdirSync(tileDir); fs.mkdirSync(tileDir);
} }
for (let cy = 0; cy < maxBase; cy += 1) { for (let cy = 0; cy < maxBase; cy += 1) {
const filename = `${canvasTileFolder}/${zoom}/${cx}/${cy}.webp`; const filename = path.resolve(
`${canvasTileFolder}/${zoom}/${cx}/${cy}.webp`,
);
if (force || !fs.existsSync(filename)) { if (force || !fs.existsSync(filename)) {
const ret = await createZoomTileFromChunk( const ret = await createZoomTileFromChunk(
canvasId, canvasId,
@ -658,7 +661,9 @@ export async function initializeTiles(
fs.mkdirSync(tileDir); fs.mkdirSync(tileDir);
} }
for (let cy = 0; cy < maxZ; cy += 1) { for (let cy = 0; cy < maxZ; cy += 1) {
const filename = `${canvasTileFolder}/${zoom}/${cx}/${cy}.webp`; const filename = path.resolve(
`${canvasTileFolder}/${zoom}/${cx}/${cy}.webp`,
);
if (force || !fs.existsSync(filename)) { if (force || !fs.existsSync(filename)) {
const ret = await createZoomedTile( const ret = await createZoomedTile(
canvas, canvas,