@trailstash/ultra
Version:
A web based tool for making MapLibre GL maps with data from sources such as Overpass, GeoJSON, GPX, KML, TCX, etc
25 lines (24 loc) • 753 B
JavaScript
const fetchedImages = {};
export const handleStyleImageMissing = async (ev) => {
const builtin = ev.id.match(/\/icons\/(maki|temaki)\/(.*)\.png/);
if (ev.id.startsWith("https://") || ev.id.startsWith("data:")) {
if (!fetchedImages[ev.id]) {
fetchedImages[ev.id] = true;
const image = new Image();
image.crossOrigin = "anonymous";
image.src = ev.id;
await image.decode();
ev.target.addImage(
ev.id,
image,
Object.fromEntries(new URLSearchParams(new URL(ev.id).hash.slice(1))),
);
}
}
if (builtin) {
const { data, pixelRatio, sdf } = ev.target.getImage(
builtin.slice(1, 3).join(":"),
);
ev.target.addImage(ev.id, data, { data, pixelRatio, sdf });
}
};