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

50 lines (41 loc) 1.1 kB
import EsriDump from "esri-dump"; import YAML from "yaml"; import { geoJsonLayers as layers } from "./common.js"; async function detect(query) { const url = new URL(query); return !!url.pathname.match(/\/(Map|Feature)Server\/\d+$/); } export default { source: function geojson(query, controller, { server }) { return new Promise((resolve, reject) => { let esri; if (server) { const params = YAML.parse(query); esri = new EsriDump(server, { params }); } else { esri = new EsriDump(query); } const data = { type: "FeatureCollection", features: [], }; esri.fetch(); esri.on("type", (type) => { //Emitted before any data events //emits one of // - `MapServer' // - `FeatureServer' }); esri.on("feature", (feature) => { data.features.push(feature); }); esri.on("done", () => { resolve({ type: "geojson", data, generateId: true }); }); esri.on("error", reject); }); }, fitBounds: true, layers, detect, };