@trailstash/ultra
Version:
A web based tool for making MapLibre GL maps with data from sources such as Overpass, GeoJSON, GPX, KML, TCX, etc
32 lines (30 loc) • 803 B
JavaScript
export class Protocol {
static name = "glyphs";
static makeURL = (url) => {
const params = new URLSearchParams();
if (url) {
params.set("url", url);
}
return `${Protocol.name}://origin/{fontstack}/{range}?${params.toString()}`;
};
tile = async (params) => {
const url = new URL(params.url);
let resp;
const [fontstack, range] = url.pathname.split("/").slice(-2);
if (url.searchParams.has("url")) {
resp = await fetch(
url.searchParams
.get("url")
.replace("{fontstack}", fontstack)
.replace("{range}", range),
);
}
if (!resp || !resp.ok) {
resp = await fetch(`./font/${range}.pbf`);
}
if (resp) {
return { data: await resp.arrayBuffer() };
}
};
}
export default Protocol;