Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions pmtiles/directory.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ const (
Jpeg = 3
Webp = 4
Avif = 5
Mlt = 6
)

// HeaderV3LenBytes is the fixed-size binary header size.
Expand Down Expand Up @@ -97,6 +98,8 @@ func headerContentType(header HeaderV3) (string, bool) {
return "image/webp", true
case Avif:
return "image/avif", true
case Mlt:
return "application/vnd.maplibre-vector-tile", true
default:
return "", false
}
Expand All @@ -114,6 +117,8 @@ func tileTypeToString(t TileType) string {
return "webp"
case Avif:
return "avif"
case Mlt:
return "mlt"
default:
return ""
}
Expand All @@ -131,6 +136,8 @@ func stringToTileType(t string) TileType {
return Webp
case "avif":
return Avif
case "mlt":
return Mlt
default:
return UnknownTileType
}
Expand Down
2 changes: 2 additions & 0 deletions pmtiles/directory_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,7 @@ func TestStringifiedExtension(t *testing.T) {
assert.Equal(t, ".jpg", headerExt(HeaderV3{TileType: Jpeg}))
assert.Equal(t, ".webp", headerExt(HeaderV3{TileType: Webp}))
assert.Equal(t, ".avif", headerExt(HeaderV3{TileType: Avif}))
assert.Equal(t, ".mlt", headerExt(HeaderV3{TileType: Mlt}))
}

func TestStringToTileType(t *testing.T) {
Expand All @@ -283,6 +284,7 @@ func TestStringToTileType(t *testing.T) {
assert.Equal(t, "jpg", tileTypeToString(stringToTileType("jpg")))
assert.Equal(t, "webp", tileTypeToString(stringToTileType("webp")))
assert.Equal(t, "avif", tileTypeToString(stringToTileType("avif")))
assert.Equal(t, "mlt", tileTypeToString(stringToTileType("mlt")))
assert.Equal(t, "", tileTypeToString(stringToTileType("")))
}

Expand Down
4 changes: 4 additions & 0 deletions pmtiles/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -364,6 +364,10 @@ func (server *Server) getTileAttempt(ctx context.Context, httpHeaders map[string
if ext != "avif" {
return 400, httpHeaders, []byte("path mismatch: archive is type AVIF (.avif)"), ""
}
case Mlt:
if ext != "mlt" {
return 400, httpHeaders, []byte("path mismatch: archive is type MLT (.mlt)"), ""
}
}

tileID := ZxyToID(z, x, y)
Expand Down
Loading