Skip to content

Commit f133194

Browse files
committed
fix loading of TileJSON in viewer
1 parent 2caeba9 commit f133194

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

app/src/MapViewComponent.tsx

+8-6
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ const FeaturesProperties = (props: { features: MapGeoJSONFeature[] }) => {
6666
);
6767
};
6868

69-
export const isValidTiles = (tiles?: string): boolean => {
69+
export const isValidPMTiles = (tiles?: string): boolean => {
7070
if (!tiles) return false;
7171
if (!tiles.startsWith("http") && tiles.endsWith(".pmtiles")) return true;
7272
if (tiles.startsWith("http") && new URL(tiles).pathname.endsWith(".pmtiles"))
@@ -82,16 +82,18 @@ function getMaplibreStyle(
8282
minZoom?: number,
8383
maxZoom?: number,
8484
): StyleSpecification {
85-
let tilesWithProtocol = tiles;
86-
if (isValidTiles(tiles)) {
87-
tilesWithProtocol = `pmtiles://${tiles}`;
88-
}
8985
const style = {
9086
version: 8 as unknown,
9187
sources: {},
9288
layers: [],
9389
} as StyleSpecification;
94-
if (!tilesWithProtocol) return style;
90+
if (!tiles) return style;
91+
let tilesWithProtocol: string;
92+
if (isValidPMTiles(tiles)) {
93+
tilesWithProtocol = `pmtiles://${tiles}`;
94+
} else {
95+
tilesWithProtocol = tiles;
96+
}
9597
style.layers = [];
9698
style.glyphs =
9799
"https://protomaps.github.io/basemaps-assets/fonts/{fontstack}/{range}.pbf";

app/test/MapViewComponent.test.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { isValidTiles } from "src/MapViewComponent";
1+
import { isValidPMTiles } from "src/MapViewComponent";
22
import { expect, test } from "vitest";
33

44
test("checks valid tiles value", () => {
5-
expect(isValidTiles("local.pmtiles")).toBe(true);
6-
expect(isValidTiles("http://example.com/remote.pmtiles")).toBe(true);
7-
expect(isValidTiles("http://example.com/remote.pmtiles?abc=def")).toBe(true);
8-
expect(isValidTiles("invalid")).toBe(false);
9-
expect(isValidTiles("invalid.pmtiles?abc=def")).toBe(false);
5+
expect(isValidPMTiles("local.pmtiles")).toBe(true);
6+
expect(isValidPMTiles("http://example.com/remote.pmtiles")).toBe(true);
7+
expect(isValidPMTiles("http://example.com/remote.pmtiles?abc=def")).toBe(true);
8+
expect(isValidPMTiles("invalid")).toBe(false);
9+
expect(isValidPMTiles("invalid.pmtiles?abc=def")).toBe(false);
1010
});

0 commit comments

Comments
 (0)