add AVIF enum in JS client [#116]

This commit is contained in:
Brandon Liu
2023-06-22 10:08:34 +08:00
parent 07f8fd8a09
commit 10021809dc
6 changed files with 11 additions and 1 deletions

View File

@@ -27,6 +27,8 @@ export const leafletRasterLayer = (source: PMTiles, options: any) => {
mimeType = "image/jpeg"; mimeType = "image/jpeg";
} else if (header.tileType == 4) { } else if (header.tileType == 4) {
mimeType = "image/webp"; mimeType = "image/webp";
} else if (header.tileType == 5) {
mimeType = "image/avif";
} }
}); });
loaded = true; loaded = true;

View File

@@ -177,6 +177,7 @@ export enum TileType {
Png = 2, Png = 2,
Jpeg = 3, Jpeg = 3,
Webp = 4, Webp = 4,
Avif = 5,
} }
const HEADER_SIZE_BYTES = 127; const HEADER_SIZE_BYTES = 127;

View File

@@ -163,6 +163,7 @@ export const handlerRaw = async (
[TileType.Png, "png"], [TileType.Png, "png"],
[TileType.Jpeg, "jpg"], [TileType.Jpeg, "jpg"],
[TileType.Webp, "webp"], [TileType.Webp, "webp"],
[TileType.Avif, "avif"],
]) { ]) {
if (header.tileType === pair[0] && ext !== pair[1]) { if (header.tileType === pair[0] && ext !== pair[1]) {
if (header.tileType == TileType.Mvt && ext === "pbf") { if (header.tileType == TileType.Mvt && ext === "pbf") {
@@ -194,6 +195,9 @@ export const handlerRaw = async (
case TileType.Webp: case TileType.Webp:
headers["Content-Type"] = "image/webp"; headers["Content-Type"] = "image/webp";
break; break;
case TileType.Avif:
headers["Content-Type"] = "image/avif";
break;
} }
let data = tile_result.data; let data = tile_result.data;

View File

@@ -146,6 +146,7 @@ export default {
[TileType.Png, "png"], [TileType.Png, "png"],
[TileType.Jpeg, "jpg"], [TileType.Jpeg, "jpg"],
[TileType.Webp, "webp"], [TileType.Webp, "webp"],
[TileType.Avif, "avif"],
]) { ]) {
if (p_header.tileType === pair[0] && ext !== pair[1]) { if (p_header.tileType === pair[0] && ext !== pair[1]) {
if (p_header.tileType == TileType.Mvt && ext === "pbf") { if (p_header.tileType == TileType.Mvt && ext === "pbf") {

View File

@@ -52,6 +52,8 @@ export const tileJSON = (
ext = ".jpg"; ext = ".jpg";
} else if (header.tileType === TileType.Webp) { } else if (header.tileType === TileType.Webp) {
ext = ".webp"; ext = ".webp";
} else if (header.tileType === TileType.Avif) {
ext = ".avif";
} }
return { return {

View File

@@ -91,7 +91,7 @@ The `Header` is 127 bytes, with little-endian integer values:
* **tile type**: A hint as to the tile contents. Clients and proxies may use this to: * **tile type**: A hint as to the tile contents. Clients and proxies may use this to:
* Automatically determine a visualization method * Automatically determine a visualization method
* provide a conventional MIME type `Content-Type` HTTP header * provide a conventional MIME type `Content-Type` HTTP header
* Enforce a canonical extension e.g. `.mvt`, `png`, `jpeg`, `.webp` to prevent duplication in caches * Enforce a canonical extension e.g. `.mvt`, `png`, `jpeg`, `.webp`, `.avif` to prevent duplication in caches
### Metadata ### Metadata