UNPKG

@trailstash/ultra

Version:

A web based tool for making MapLibre GL maps with data from sources such as Overpass, GeoJSON, GPX, KML, TCX, etc

42 lines (40 loc) 896 B
import { fetchIfHTTP } from "./util.js"; const layers = (source) => [ { id: `${source}-raster`, type: "raster", source, }, ]; const IMAGE_FORMATS = new Set(["webp", "png", "jpg"]); const detect = async (query) => { query = query.trim(); if (query.includes("{bbox-epsg-3857}")) { return true; } if (query.match(/{(x|y|z)}.*\.(png|webp|jpe?g)$/)) { return true; } query = await fetchIfHTTP(query); try { const json = JSON.parse(query); return json.tilejson && IMAGE_FORMATS.has(json.formati); } catch {} }; export default { source: (query) => { const source = { type: "raster", layers, }; if (query.match(/{(x|y|z|bbox-epsg-3857)}/)) { source.tiles = query.split("\n").filter((x) => !!x); source.tileSize = 256; } else { source.url = query.trim(); } return source; }, layers, detect, };