export function wait(t?: number, data?: any): Promise { return new Promise((resolve) => { setTimeout(() => { resolve(data); }, t || 1000); }) } export function getBasePath(): string { if (process.env.PUBLIC_URL.startsWith('http')) { return process.env.PUBLIC_URL; } else { return window.location.origin + process.env.PUBLIC_URL; } } export function parseGeoJSONFeature(data: any): any { if (typeof data.lgtd === 'number' && typeof data.lttd === 'number') { return { type: "Feature", properties: data, geometry: { type: "Point", coordinates: [data.lgtd, data.lttd] } }; } else if (data.geometry) { let geometryObj = data.geometry; if (typeof geometryObj === 'string') { try { geometryObj = JSON.parse(geometryObj); } catch (e) { geometryObj = null; } } if (geometryObj?.type) { return { type: "Feature", properties: data, geometry: geometryObj } } } else { return { type: "Feature", properties: data, }; } } export function parseGeoJSON(data: any): any { const ret: any = { type: "FeatureCollection", crs: { type: "name", properties: { name: "urn:ogc:def:crs:OGC:1.3:CRS84" } }, features: [] }; if (Array.isArray(data)) { ret.features = data.map(parseGeoJSONFeature); } return ret; }