solid-map-gl 1.12.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +157 -30
- package/dist/index.d.ts +489 -0
- package/dist/index.js +11 -0
- package/dist/index.jsx +2320 -0
- package/package.json +46 -35
- package/dist/esm/index.js +0 -2
- package/dist/esm/index.js.map +0 -1
- package/dist/source/components/Atmosphere/index.jsx +0 -13
- package/dist/source/components/Camera/index.jsx +0 -108
- package/dist/source/components/Control/index.jsx +0 -33
- package/dist/source/components/Draw/drawingStyles.js +0 -225
- package/dist/source/components/Draw/index.jsx +0 -55
- package/dist/source/components/Draw/modes/index.js +0 -9
- package/dist/source/components/Draw/modes/line_string.js +0 -43
- package/dist/source/components/Draw/modes/measurements.js +0 -76
- package/dist/source/components/Draw/modes/multi_point.js +0 -37
- package/dist/source/components/Draw/modes/point.js +0 -25
- package/dist/source/components/Draw/modes/polygon.js +0 -25
- package/dist/source/components/Draw/modes/radius.js +0 -138
- package/dist/source/components/Draw/modes/rectangle.js +0 -118
- package/dist/source/components/Draw/modes/rectangle_assisted.js +0 -233
- package/dist/source/components/Image/index.jsx +0 -135
- package/dist/source/components/Layer/index.jsx +0 -125
- package/dist/source/components/Layer3D/index.jsx +0 -330
- package/dist/source/components/Light/index.jsx +0 -10
- package/dist/source/components/MapGL/index.jsx +0 -272
- package/dist/source/components/MapProvider/index.jsx +0 -9
- package/dist/source/components/Marker/index.jsx +0 -57
- package/dist/source/components/Popup/index.jsx +0 -38
- package/dist/source/components/Source/index.jsx +0 -89
- package/dist/source/components/Terrain/index.jsx +0 -30
- package/dist/source/events.js +0 -78
- package/dist/source/index.jsx +0 -14
- package/dist/source/mapStyles.js +0 -116
- package/dist/source/styles.js +0 -62
- package/dist/types/components/Atmosphere/index.d.ts +0 -8
- package/dist/types/components/Camera/index.d.ts +0 -54
- package/dist/types/components/Control/index.d.ts +0 -15
- package/dist/types/components/Draw/drawingStyles.d.ts +0 -20
- package/dist/types/components/Draw/index.d.ts +0 -16
- package/dist/types/components/Draw/modes/index.d.ts +0 -6
- package/dist/types/components/Draw/modes/line_string.d.ts +0 -2
- package/dist/types/components/Draw/modes/multi_point.d.ts +0 -2
- package/dist/types/components/Draw/modes/point.d.ts +0 -2
- package/dist/types/components/Draw/modes/polygon.d.ts +0 -2
- package/dist/types/components/Draw/modes/radius.d.ts +0 -2
- package/dist/types/components/Draw/modes/rectangle.d.ts +0 -2
- package/dist/types/components/Draw/modes/rectangle_assisted.d.ts +0 -18
- package/dist/types/components/Image/index.d.ts +0 -28
- package/dist/types/components/Layer/index.d.ts +0 -32
- package/dist/types/components/Layer3D/index.d.ts +0 -22
- package/dist/types/components/Light/index.d.ts +0 -8
- package/dist/types/components/MapGL/index.d.ts +0 -95
- package/dist/types/components/MapProvider/index.d.ts +0 -11
- package/dist/types/components/Marker/index.d.ts +0 -28
- package/dist/types/components/Popup/index.d.ts +0 -18
- package/dist/types/components/Source/index.d.ts +0 -13
- package/dist/types/components/Terrain/index.d.ts +0 -7
- package/dist/types/events.d.ts +0 -103
- package/dist/types/index.d.ts +0 -16
- package/dist/types/mapStyles.d.ts +0 -2
- package/dist/types/styles.d.ts +0 -2
package/dist/index.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { template, createComponent, use, insert, memo, effect, setAttribute, className, classList, style } from 'solid-js/web';
|
|
2
|
+
import { createContext, useContext, createSignal, onMount, createEffect, on, onCleanup, createUniqueId, createMemo, splitProps, untrack } from 'solid-js';
|
|
3
|
+
import { createStore } from 'solid-js/store';
|
|
4
|
+
import pe from '@turf/length';
|
|
5
|
+
import jt from '@turf/area';
|
|
6
|
+
import Ut from '@turf/midpoint';
|
|
7
|
+
import { centerOfMass } from '@turf/center-of-mass';
|
|
8
|
+
|
|
9
|
+
var q={map:null,mapLib:null,isMapLibre:false},W=createContext([q]),h=()=>useContext(W),R=e=>{let[t,o]=createStore({...q});return e.map&&o("map",e.map),e.mapLib&&o("mapLib",e.mapLib),o("isMapLibre",!!e.isMapLibre),createComponent(W.Provider,{value:[t],get children(){return e.children}})};var H=["onMouseDown","onMouseUp","onMouseOver","onMouseOut","onMouseMove","onMouseEnter","onMouseLeave","onPreClick","onClick","onDblClick","onContextMenu","onTouchStart","onTouchEnd","onTouchCancel","onWheel","onResize","onRemove","onTouchMove","onMoveStart","onMove","onMoveEnd","onDragStart","onDrag","onDragEnd","onZoomStart","onZoom","onZoomEnd","onRotateStart","onRotate","onRotatEnd","onPitchStart","onPitch","onPitchEnd","onBoxZoomStart","onBoxZoomEnd","onBoxZoomCancel","onWebglContextLost","onWebglContextRestored","onLoad","onRender","onIdle","onError","onData","onStyleData","onSourceData","onDataLoading","onStyleDataLoading","onSourceDataLoading","onStyleImageMissing"],J=["onMouseDown","onMouseUp","onMouseOver","onMouseOut","onMouseMove","onMouseEnter","onMouseLeave","onClick","onDblClick","onContextMenu","onTouchStart","onTouchEnd","onTouchCancel"],K=["onCreate","onDelete","onCombine","onUncombine","onUpdate","onSelectionchange","onModechange","onRender","onActionable"];var b="mapbox://styles/mapbox",k="https://raw.githubusercontent.com/",y="https://raw.githubusercontent.com/GIShub4/map-styles/main/",V="https://assets.vector.hereapi.com/styles/",Q={mb:{standard:`${b}/standard`,light:`${b}/light-v11`,dark:`${b}/dark-v11`,street:`${b}/streets-v12`,outdoor:`${b}/outdoors-v12`,sat:`${b}/satellite-v9`,sat_street:`${b}/satellite-streets-v12`,nav_base:`${b}/navigation-guidance-day-v4`,nav_base_night:`${b}/navigation-guidance-night-v4`,nav:`${b}/navigation-day-v1`,nav_night:`${b}/navigation-night-v1`,basic:`${b}/cjf4m44iw0uza2spb3q0a7s41`,monochrome:`${b}/cjv6rzz4j3m4b1fqcchuxclhb`,leshine:`${b}/cjcunv5ae262f2sm9tfwg8i0w`,icecream:`${b}/cj7t3i5yj0unt2rmt3y4b5e32`,cali:`${b}/cjerxnqt3cgvp2rmyuxbeqme7`,northstar:`${b}/cj44mfrt20f082snokim4ungi`,mineral:`${b}/cjtep62gq54l21frr1whf27ak`,moonlight:`${b}/cj3kbeqzo00022smj7akz3o1e`,frank:`${b}-map-design/ckshxkppe0gge18nz20i0nrwq`,minimo:`${b}-map-design/cksjc2nsq1bg117pnekb655h1`,decimal:`${b}-map-design/ck4014y110wt61ctt07egsel6`,stand:`${b}-map-design/ckr0svm3922ki18qntevm857n`,blueprint:`${b}-map-design/cks97e1e37nsd17nzg7p0308g`,bubble:`${b}-map-design/cksysy2nl62zp17quosctdtcc`,pencil:`${b}-map-design/cks9iema71es417mlrft4go2k`,swiss_ski:`${k}mapbox/mapbox-gl-swiss-ski-style/master/cij1zoclj002y8rkkdjl69psd.json`,vintage:`${k}mapbox/mapbox-gl-vintage-style/master/cif5p01n202nisaktvljx9mv3.json`,whaam:`${k}mapbox/mapbox-gl-whaam-style/master/cii8323c8004w0nlvtss3dbm2.json`,neon:`${k}NatEvatt/awesome-mapbox-gl-styles/master/styles/Neon/style.json`,camoflauge:`${k}jingsam/mapbox-gl-styles/master/Camouflage.json`,emerald:`${k}jingsam/mapbox-gl-styles/master/Emerald.json`,runner:`${k}jingsam/mapbox-gl-styles/master/Runner.json`,x_ray:`${k}jingsam/mapbox-gl-styles/master/X-ray.json`},here:{base:`${V}berlin/base/mapbox/tilezen?apikey={apikey}`,day:`${V}berlin/day/mapbox/tilezen?apikey={apikey}`,night:`${V}berlin/night/mapbox/tilezen?apikey={apikey}`},esri:{blueprint:`${y}esri:blueprint.json`,charted_territory:`${y}esri:charted-territory.json`,colored_pencil:`${y}esri:colored-pencil.json`,community:`${y}esri:community.json`,mid_century:`${y}esri:mid-century.json`,modern_antique:`${y}esri:modern-antique.json`,nat_geo:`${y}esri:national-geographic.json`,newspaper:`${y}esri:newspaper.json`,open_street_map:`${y}esri:open-street-map.json`,light_gray_canvas:`${y}esri:light-gray-canvas.json`,dark_gray_canvas:`${y}esri:dark-gray-canvas.json`,human_geo_light:`${y}esri:human-geography-light.json`,human_geo_dark:`${y}esri:human-geography-dark.json`,world_navigation:`${y}esri:world-navigation.json`,world_street:`${y}esri:world-street.json`,world_street_night:`${y}esri:world-street-night.json`,world_terrain:`${y}esri:world-terrain.json`,world_terrain_hybrid:`${y}esri:world-terrain-hybrid.json`,world_topographic:`${y}esri:world-topographic.json`,chromium:`${y}esri:chromium.json`,dreamcatcher:`${y}esri:dreamcatcher.json`,seahaven:`${y}esri:seahaven.json`,sangria:`${y}esri:sangria.json`,mercurial:`${y}esri:mercurial.json`,imagery:`${y}esri:imagery.json`,imagery_hybrid:`${y}esri:imagery-hybrid.json`,firefly:`${y}esri:firefly.json`,firefly_hybrid:`${y}esri:firefly-hybrid.json`,oceans:`${y}esri:oceans.json`}},j="https://{s}.basemaps.cartocdn.com/rastertiles/",D="https://stamen-tiles-{s}.a.ssl.fastly.net/",E="https://{s}.tile.thunderforest.com/",U={osm:{org:"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",human:"https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png",cycle:"https://{s}.tile-cyclosm.openstreetmap.fr/cyclosm/{z}/{x}/{y}.png",topo:"https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png",_copy:'<a href="https://www.openstreetmap.org/copyright" target="_blank">© OpenStreetMap</a>'},carto:{voyager:`${j}voyager_labels_under/{z}/{x}/{y}{r}.png`,positron:`${j}light_all/{z}/{x}/{y}{r}.png`,dark:`${j}dark_all/{z}/{x}/{y}{r}.png`,_copy:'<a href="https://carto.com/attribution" target="_blank">© Carto</a>'},stamen:{toner:`${D}toner/{z}/{x}/{y}{r}.png`,toner_lite:`${D}toner-lite/{z}/{x}/{y}{r}.png`,watercolor:`${D}watercolor/{z}/{x}/{y}.png`,terrain:`${D}terrain/{z}/{x}/{y}{r}.png`,_copy:'<a href="https://stamen.com/privacy-policy" target="_blank">© Stamen Design</a>'},tf:{cycle:`${E}cycle/{z}/{x}/{y}{r}.png?apikey={apikey}`,trans:`${E}transport/{z}/{x}/{y}{r}.png?apikey={apikey}`,trans_dark:`${E}transport-dark/{z}/{x}/{y}{r}.png?apikey={apikey}`,landscape:`${E}landscape/{z}/{x}/{y}{r}.png?apikey={apikey}`,outdoors:`${E}outdoors/{z}/{x}/{y}{r}.png?apikey={apikey}`,neighbourhood:`${E}neighbourhood/{z}/{x}/{y}{r}.png?apikey={apikey}`,spinal:`${E}spinal-map/{z}/{x}/{y}{r}.png?apikey={apikey}`,pioneer:`${E}pioneer/{z}/{x}/{y}{r}.png?apikey={apikey}`,atlas:`${E}atlas/{z}/{x}/{y}{r}.png?apikey={apikey}`,mobile:`${E}mobile-atlas/{z}/{x}/{y}{r}.png?apikey={apikey}`,_copy:'<a href="https://thunderforest.com/privacy" target="_blank">© Thunderforest</a>'}};var Ie=template("<div style=width:100%;height:100%>"),Te=template("<style>.overlay{position:relative;width:100%;height:100%;pointer-events:none}:where(.overlay>*){pointer-events:auto}"),De=template("<div class=overlay>"),Ae=e=>{let t,o,n,r,s,a=false,[i,d]=createSignal(null),[p,f]=createSignal(typeof window<"u"&&window.matchMedia("(prefers-color-scheme: dark)").matches||typeof document<"u"&&document.body.classList.contains("dark")),g=false,x=false,m=(l,c)=>(e.debug||e.debugEvents)&&console.debug("%c[MapGL]","color: #0ea5e9",l,c||""),v=(l,c)=>{let u=p()&&c?c:l;return (typeof u=="string"||u instanceof String)&&u?.split(":").reduce((M,C)=>M&&M[C],Q)?.replace("{apikey}",e.apikey||import.meta.env?.VITE_VECTOR_API_KEY)||u};onMount(async()=>{if(s=e.mapLib||await import('mapbox-gl'),s.Map||(s=window.maplibregl||window.mapboxgl),typeof s.supported=="function"&&!s.supported())throw new Error("Mapbox GL not supported");a=typeof s.Map?.prototype?.setConfigProperty!="function",m(`Map (v${s.version}) loading...`),t=new s.Map({accessToken:e.options?.accessToken||import.meta.env?.VITE_MAPBOX_ACCESS_TOKEN,interactive:e.options?.interactive||!!e.onViewportChange,...e.options,...e.viewport,projection:e.options?.projection,container:o,style:v(e.options?.style,e.darkStyle),fitBoundsOptions:{padding:e.viewport?.padding}}),t.debug=e.debug,t.debugEvents=e.debugEvents,t.sourceIdList=[],t.layerIdList=[],t.isMapLibre=a,H.forEach(l=>{let c=e[l];if(c){let u=l.slice(2).toLowerCase();typeof c=="function"?t.on(u,M=>{setTimeout(()=>{M.clickOnLayer||(c(M),e.debugEvents&&m(`Map '${u}' event:`,M));},0);}):Object.keys(c).forEach(M=>{t.on(u,M,C=>{setTimeout(()=>{C.clickOnLayer||(c[M](C),e.debugEvents&&m(`Map '${u}' event on '${M}':`,C));},0);});});}}),t.once("load",()=>{d(t),m("Map loaded"),["mousedown","touchstart","wheel"].forEach(c=>t.on(c,u=>!u.rotate&&e.onUserInteraction?.(true))),["moveend","mouseup","touchend"].forEach(c=>t.on(c,u=>!u.rotate&&e.onUserInteraction?.(false)));let l=typeof window<"u"&&window?.matchMedia("(prefers-color-scheme: dark)");l?.addEventListener("change",()=>{f(l.matches),m("Set dark theme to:",l.matches?.toString());}),r=new MutationObserver(()=>{let c=document.body.classList.contains("dark");f(c),m("Set theme to:",c);}),r.observe(document.body,{attributes:true}),e.disableResize||(n=new ResizeObserver(()=>{setTimeout(()=>{t?.resize();},0),m("Map resized");}),n.observe(o)),t.on("move",c=>{let u={...e.viewport,id:e.id,point:{x:c.originalEvent?.x,y:c.originalEvent?.y},center:e.viewport?.center?.lat?t.getCenter():[t.getCenter().lng,t.getCenter().lat],zoom:t.getZoom(),pitch:t.getPitch(),bearing:t.getBearing(),inTransit:true,bounds:null};!c.viewport&&e.onViewportChange&&(x=true,e.onViewportChange(u));}),t.on("moveend",c=>{if(g||c.rotate||!e.onViewportChange)return;let u={...e.viewport,inTransit:false};x=true,e.onViewportChange(u);});});}),createEffect(on(()=>e.viewport,l=>{if(e.id!==l?.id)return;if(x){x=false;return}let c={...l,...l.bounds?t.cameraForBounds(l.bounds,{bearing:l?.bearing,pitch:l?.pitch,padding:l?.padding}):null};g=true,t.stop(),g=false,t[e.transitionType||"flyTo"](c),m(`Update Viewport (${e.transitionType||"flyTo"}):`,c);},{defer:true})),createEffect(()=>{let l=i();if(typeof l?.setConfigProperty!="function"){l&&e.config&&Object.keys(e.config).length&&m("Config prop is set but this map library has no setConfigProperty (Mapbox Standard Style only) \u2014 skipping");return}for(let c in e.config){if(!c||c==="id")continue;let u=e.config?.id||"basemap",M=e.config[c];l.setConfigProperty(u,c,M),m(`Set Config (${u}:${c}) to:`,M);}}),createEffect(()=>{let l=e.options?.projection;!t||!l||(t.setProjection(l),m("Set Projection to:",l));}),createEffect(()=>{let l=e.cursorStyle;!t||!l||(t.getCanvas().style.cursor=l,m("Set Cursor to:",l));});let w=(l,c)=>(c.forEach(u=>{let M=l.findIndex(C=>u.metadata.smg.beforeType?C.type===u.metadata.smg.beforeType:C.id===u.metadata.smg.beforeId);l=M===-1?[...l,u]:[...l.slice(0,M),u,...l.slice(M)];}),l);return createEffect(l=>{let c=v(e.options?.style,e.darkStyle);if(t?.isStyleLoaded()&&l!==c){let u=t.getStyle(),M=u.layers.filter(L=>t.layerIdList.includes(L.id)),C=Object.keys(u.sources).filter(L=>t.sourceIdList.includes(L)).reduce((L,Y)=>({...L,[Y]:u.sources[Y]}),{}),A=e.shouldDiffStyle?e.shouldDiffStyle(l,c):true;t.setStyle(c,A?void 0:{diff:false}),t.once("styledata",()=>{if(!M)return;let L=t.getStyle();t.setStyle({...L,sources:{...L.sources,...C},layers:w(L.layers,M),fog:u.fog,terrain:u.terrain,light:u.light}),m("Set Mapstyle to:",c);});}return c},e.options?.style),["showTileBoundaries","showTerrainWireframe","showCollisionBoxes","showPadding","showOverdrawInspector"].forEach(l=>{createEffect(()=>{let c=e[l];!t||!c||(t[l]=c,m(`Set ${l} to:`,c));});}),onCleanup(()=>{n?.disconnect(),r?.disconnect(),t?.remove(),m("Map removed");}),(()=>{var l=Ie(),c=o;return typeof c=="function"?use(c,l):o=l,insert(l,(()=>{var u=memo(()=>!!i());return ()=>u()&&createComponent(R,{get map(){return i()},mapLib:s,isMapLibre:a,get children(){return [Te(),(()=>{var M=De();return insert(M,()=>e.children),M})()]}})})()),effect(u=>{var M=e.id,C=e?.class,A=e?.classList,L={...e.style};return M!==u.e&&setAttribute(l,"id",u.e=M),C!==u.t&&className(l,u.t=C),u.a=classList(l,A,u.a),u.o=style(l,L,u.o),u},{e:void 0,t:void 0,a:void 0,o:void 0}),l})()};var oe=createContext(),$=()=>useContext(oe),Ge=e=>{let[t]=h();e.id??=createUniqueId();let o=(s,a)=>{t.map.debug&&console.debug("%c[MapGL]","color: #ec4899",s,a||"");},n=()=>e.source,r=s=>{let a=s?.split(":").reduce((d,p)=>d&&d[p],U),i=a?{...n(),url:"",tiles:[a.replace("{apikey}",n().apikey||import.meta.env?.VITE_RASTER_API_KEY).replace("{r}",window.devicePixelRatio>1?"@2x":"")],attribution:U[s.split(":")[0]]._copy}:n();return i.tiles&&(i.tiles=["a","b","c"].map(d=>i.tiles[0].replace("{s}",d))),i};switch(t.map.addSource(e.id,r(n().url)),t.map.sourceIdList.push(e.id),o("Add Source:",e.id),n().type){case "geojson":createEffect(()=>{let s=n().data;t.map.getSource(e.id).setData(s||{}),o("Update GeoJSON Data:",e.id);});break;case "image":createEffect(()=>{let s=n().url,a=n().coordinates;t.map.getSource(e.id).updateImage(s,a),o("Update Image Data:",e.id);});break;case "vector":createEffect(()=>{let s=n().url,a=n().tiles,i=t.map.getSource(e.id);s?i.setUrl(s):i.setTiles(a),o("Update Vector Data:",e.id);});break;case "raster":createEffect(()=>{let s=r(n().url),a=t.map.getSource(e.id);s.url?a.setUrl(s.url):a.setTiles(s.tiles),o("Update Raster Data:",e.id);});break}return onCleanup(()=>{t.map?.getStyle().layers.forEach(s=>s.source===e.id&&t.map.removeLayer(s.id)),t.map?.getSource(e.id)&&t.map?.removeSource(e.id),o("Remove Source:",e.id);}),createComponent(oe.Provider,{get value(){return e.id},get children(){return e.children}})};var ne=["id","type","filter","source","source-layer","minzoom","metadata","maxzoom","paint","layout"],re=["visibility","line-join","line-cap","line-miter-limit","line-round-limit","line-sort-key","circle-sort-key","symbol-avoid-edges","symbol-placement","symbol-sort-key","symbol-spacing","symbol-z-order","icon-allow-overlap","icon-anchor","icon-ignore-placement","icon-image","icon-keep-upright","icon-offset","icon-optional","icon-padding","icon-pitch-alignment","icon-rotate","icon-rotation-alignment","icon-size","icon-text-fit","icon-text-fit-padding","text-allow-overlap","text-anchor","text-field","text-font","text-ignore-placement","text-justify","text-keep-upright","text-letter-spacing","text-line-height","text-max-angle","text-max-width","text-offset","text-optional","text-padding","text-pitch-alignment","text-radial-offset","text-rotate","text-rotation-alignment","text-size","text-transform","text-variable-anchor","text-writing-mode"];var ae=(e={},t={})=>[...new Set([...Object.keys(e),...Object.keys(t)])].reduce((n,r)=>{let s=e[r];return s!==t[r]&&n.push([r,s]),n},[]),G=(e,t)=>(e.startsWith(t)||e.startsWith("icon")||e.startsWith("text")?"":t+"-")+e.replace(/[A-Z]/g,o=>"-"+o.toLowerCase()),N=e=>{if(!e)return;let t={},o={},n={};return Object.entries(e).forEach(([r,s])=>{if(ne.includes(r))n[r]=s;else {let a=G(r,e.type);re.includes(a)?t[a]=s:o[a]=s;}}),e.paint&&Object.entries(e.paint).forEach(([r,s])=>o[G(r,e.type)]=s),e.layout&&Object.entries(e.layout).forEach(([r,s])=>t[G(r,e.type)]=s),{...n,paint:o,layout:t}},Ye=e=>{let[t]=h(),o=e.sourceId||e.style?.source||$(),n=e.id||e.customLayer?.id||createUniqueId(),r=(a,i)=>{(t.map.debug||t.map.debugEvents)&&console.debug("%c[MapGL]","color: #10b981",a,i||"");},s=createMemo(()=>e.beforeType?t.map.getStyle().layers.find(a=>a.type===e.beforeType)?.id:e.beforeId);return t.map.addLayer(e.customLayer||{...N(e.style),id:n,source:o,...t.isMapLibre?{}:{slot:e.slot||""},metadata:{smg:{beforeType:e.beforeType,beforeId:e.beforeId}}},s()),t.map.layerIdList.push(n),e.customLayer&&t.map.fire("load"),r("Add Layer:",n),J.forEach(a=>{if(e[a]){let i=a.slice(2).toLowerCase();t.map.on(i,n,d=>{d.clickOnLayer=true,e[a](d),t.map.debugEvents&&r(`Layer '${i}' event on '${n}':`,d);});}}),createEffect(a=>{let i=N(e.style);if(i!==a)return i.layout!==a?.layout&&ae(i.layout,a?.layout).forEach(([d,p])=>t.map.setLayoutProperty(n,d,p,{validate:false})),i.paint!==a?.paint&&ae(i.paint,a?.paint).forEach(([d,p])=>t.map.setPaintProperty(n,d,p,{validate:false})),(i.minzoom!==a?.minzoom||i.maxzoom!==a?.maxzoom)&&t.map.setLayerZoomRange(n,i.minzoom,i.maxzoom),i.filter!==a?.filter&&t.map.setFilter(n,i.filter,{validate:false}),r("Update Layer Style:",n),i},N(e.style)),createEffect(a=>{if(e.visible!==a)return t.map.setLayoutProperty(n,"visibility",e.visible?"visible":"none",{validate:false}),r(`Update Visibility (${n}):`,e.visible.toString()),e.visible},e.visible),createEffect(a=>s()===a?a:(t.map.moveLayer(n,s()),r(`Update Layer Z-Index (${n}):`,s()),s()),s()),createEffect(async()=>{e.filter&&(!t.map.isStyleLoaded()&&await t.map.once("styledata"),t.map.setFilter(n,e.filter),r(`Update Filter (${n}):`,e.filter));}),createEffect(async()=>{!e.featureState||e.featureState.id===null||(!t.map.isStyleLoaded()&&await t.map.once("styledata"),t.map.removeFeatureState({source:o,sourceLayer:e.style["source-layer"]}),t.map.setFeatureState({source:o,sourceLayer:e.style["source-layer"],id:e.featureState.id},e.featureState.state));}),onCleanup(()=>t.map?.getLayer(n)&&t.map?.removeLayer(n)),e.children};var ie=createContext(),ot=()=>useContext(ie),nt=e=>{let[t]=h(),[o,n]=createSignal(null);return onMount(async()=>{e.id=e.id||createUniqueId();let r=t.mapLib.MercatorCoordinate.fromLngLat([e.origin[0]||0,e.origin[1]||0],e.origin[2]||0),s=r.meterInMercatorCoordinateUnits(),{x:a,y:i,z:d}=r,p=null,f=null,g=null;e.babylon?(f=await import('@babylonjs/core'),p=f.Matrix.Compose(new f.Vector3(s,s,s),f.Quaternion.FromEulerAngles(Math.PI/2,0,0),new f.Vector3(a,i,d))):(g=await import('three'),p={translateX:a,translateY:i,translateZ:d,rotateX:Math.PI/2,rotateY:0,rotateZ:0,scale:s}),t.map.addLayer({id:e.id,type:"custom",renderingMode:"3d",onAdd(x,m){if(e.babylon){let v=new f.Engine(m,true,{useHighPrecisionMatrix:true},true);this.scene=new f.Scene(v),this.scene.autoClear=false,this.scene.preventDefaultOnPointerDown=false,this.scene.preventDefaultOnPointerUp=false;let w=new f.UniversalCamera("Camera",f.Vector3.Zero());w.mode=f.Camera.ORTHOGRAPHIC_CAMERA,w.inertia=0,this.scene.ambientColor=new f.Color3(1,1,1),e.defaultLight&&new f.HemisphericLight("Light",new f.Vector3(100,10,0),this.scene);}else this.camera=new g.Camera,this.scene=new g.Scene,e.defaultLight&&(this.light=new g.DirectionalLight(16777215),this.light.position.set(100,0,0).normalize(),this.scene.add(this.light)),this.renderer=new g.WebGLRenderer({canvas:x.getCanvas(),context:m,antialias:true}),this.renderer.autoClear=false;this.map=x,e.onAdd&&e.onAdd(this.scene,this.map,m),n(this.scene);},render(x,m){if(e.babylon){this.scene.activeCamera.freezeProjectionMatrix(p.multiply(f.Matrix.FromArray(m)));this.map.getPitch()*(Math.PI/180);this.map.getBearing()*(Math.PI/180);this.scene.render(false);}else {let v=new g.Matrix4().makeRotationAxis(new g.Vector3(1,0,0),p.rotateX),w=new g.Matrix4().makeRotationAxis(new g.Vector3(0,1,0),p.rotateY),l=new g.Matrix4().makeRotationAxis(new g.Vector3(0,0,1),p.rotateZ),c=new g.Matrix4().fromArray(m),u=new g.Matrix4().makeTranslation(p.translateX,p.translateY,p.translateZ).scale(new g.Vector3(p.scale,-p.scale,p.scale)).multiply(v).multiply(w).multiply(l);this.camera.projectionMatrix=c.multiply(u),this.renderer.resetState(),this.renderer.render(this.scene,this.camera);}e.onRender&&e.onRender(x,m),t.map.triggerRepaint();}},e.beforeId);}),onCleanup(()=>{t.map.getLayer(e.id)&&t.map.removeLayer(e.id);}),createComponent(ie.Provider,{value:o,get children(){return memo(()=>!!o())()&&e.children}})};var it=e=>{let[t]=h();return createEffect(()=>{t.isMapLibre?t.map.setSky?.(e.style||{}):t.map.setFog(e.style||{});}),onCleanup(()=>{t.isMapLibre?t.map.getSky?.()&&t.map.setSky(null):t.map.getFog()&&t.map.setFog(null);}),null};var ut=e=>{let[t]=h(),o=$();return !o&&!e?.source&&(o=createUniqueId(),t.map.addSource(o,{type:"raster-dem",url:t.isMapLibre?"https://demotiles.maplibre.org/terrain-tiles/tiles.json":"mapbox://mapbox.terrain-rgb",tileSize:t.isMapLibre?256:512,maxzoom:t.isMapLibre?void 0:14}),t.map.sourceIdList.push(o)),createEffect(()=>{t.map.setTerrain({exaggeration:e.exaggeration||1,source:e?.source||o});}),onCleanup(()=>t.map?.setTerrain(null)),null};var z=(e,t)=>{let[o]=h();createEffect(()=>{let n=e(),r=t?.();n&&(o.map.hasControl(n)&&o.map.removeControl(n),o.map.addControl(n,r));}),onCleanup(()=>{let n=e();n&&o.map.hasControl(n)&&o.map.removeControl(n);});};var yt=e=>{let[t]=h(),[o,n]=splitProps(e,["position"]),[r,s]=createSignal(null),a=new Map([["navigation",t.mapLib.NavigationControl],["scale",t.mapLib.ScaleControl],["attribution",t.mapLib.AttributionControl],["geolocate",t.mapLib.GeolocateControl],["fullscreen",t.mapLib.FullscreenControl],["logo",t.mapLib.LogoControl],["terrain",t.mapLib.TerrainControl]]);return createEffect(()=>{untrack(()=>r()&&t.map.hasControl(r())&&t.map.removeControl(r())),s(n.custom||new(a.get(n.type||"navigation"))(n.options));}),z(r,()=>o.position),null};var bt=e=>{if(!e.lngLat)throw new Error("Marker - lngLat is required");let[t,o,n]=splitProps(e,["lngLat","children","showPopup","draggable"],["popup","onOpen","onClose"]),[r]=h(),s=null,a=null,i=t.lngLat;return createEffect(()=>{r.map&&(a?.remove(),a=new r.mapLib.Popup({closeOnClick:false,focusAfterOpen:false,...o.popup}).on("open",()=>o.onOpen?.()).on("close",()=>o.onClose?.()),createEffect(()=>{t.children!==void 0&&(typeof t.children=="string"?a?.setHTML(t.children):a?.setDOMContent(t.children),s?.setPopup(a));}),createEffect(()=>t.showPopup!==a?.isOpen()&&s?.togglePopup()));}),createEffect(()=>{r.map&&(s?.remove(),s=new r.mapLib.Marker(n.options).on("dragstart",()=>n.onDragStart?.()).on("dragend",()=>n.onDragEnd?.()).on("drag",()=>n.onDrag?.(s?.getLngLat().toArray())).setPopup(a).setLngLat(i).addTo(r.map),createEffect(()=>t.showPopup!==a?.isOpen()&&s?.togglePopup()));}),createEffect(()=>s?.setLngLat(t.lngLat)),createEffect(()=>s?.setDraggable(t.draggable)),onCleanup(()=>s?.remove()),null};var Ct=e=>{if(!e.trackPointer&&!e.lngLat)throw new Error("Popup - lngLat or trackPointer is required");let[t,o]=splitProps(e,["lngLat","children","trackPointer"]),[n]=h(),r;return createEffect(()=>{n.map&&(r?.remove(),r=new n.mapLib.Popup({closeOnClick:false,focusAfterOpen:false,...o.options}).on("open",()=>o.onOpen?.()).on("close",()=>o.onClose?.()).addTo(n.map),createEffect(()=>t.trackPointer?r.trackPointer():r.setLngLat(t.lngLat)),createEffect(()=>typeof t.children=="string"?r.setHTML(t.children):r.setDOMContent(t.children)));}),onCleanup(()=>r?.remove()),null};var se={diagonal_l:{size:20,path:"M20 0 0 20M-10 10 10-10M10 30 30 10"},diagonal_r:{size:20,path:"M0 0 20 20M30 10 10-10M10 30-10 10"},horizontal:{size:14,path:"M7 0V20"},vertical:{size:14,path:"M0 7H20"},cross:{size:18,path:"M9 0V18M0 9H18"},hash:{size:30,path:"M15 0 30 15 15 30 0 15Z"},chevron_h:{size:20,path:"M-5 5 0 10 10 0 20 10 25 5M0 30 10 20 20 30"},chevron_v:{size:20,path:"M5-5 10 0 0 10 10 20 5 25M25 15 20 10 25 5"},square:{size:20,path:"M8 8H12V12H8Z",fill:true},hex:{size:50,path:"M0 0V50L50 25ZM50 0V50L0 25ZM25 0V50"},circle:{size:25,path:"M8 10A2.5 2.5 0 118.01 10M18 15A2.5 2.5 0 1018.01 15",fill:true}},Pt=Object.keys(se),_t=e=>{let[t]=h(),[o,n]=createSignal({width:0,height:0}),r=(i,d)=>{t.map.debug&&console.debug("%c[MapGL]","color: #10b981",i,d||"");};onCleanup(()=>{t.map?.hasImage(e.id)&&t.map?.removeImage(e.id),r("Remove Image:",e.id);}),createEffect(()=>{if(!e.id)throw new Error("Image - ID is required");if(!e.source&&!e.pattern)throw new Error("Image - Image or Pattern is required");let i=e.pattern?{pixelRatio:2,...e.options}:e.options;s(e.source||a(e.pattern),d=>{let{width:p,height:f}=d;t.map&&!t.map.hasImage(e.id)&&t.map.addImage(e.id,d,i),!e.pattern&&untrack(()=>p===o().width&&f===o().height)?(t.map.updateImage(e.id,d),t.map.triggerRepaint()):(t.map.removeImage(e.id),t.map.addImage(e.id,d,i)),n({width:p,height:f}),r("Add Image:",e.id),t.map.on("style.load",()=>{t.map.hasImage(e.id)||(t.map.addImage(e.id,d,i),r("Re-Add Image:",e.id));});});});let s=(i,d)=>{if(typeof i=="string"&&i?.trimStart().startsWith("<svg")&&(i=new DOMParser().parseFromString(i,"image/svg+xml").childNodes[0]),i instanceof SVGElement&&(e.options?.fill&&i.setAttribute("fill",e.options.fill),e.options?.stroke&&i.setAttribute("stroke",e.options.stroke),i=new XMLSerializer().serializeToString(i)),typeof i!="string")return d(i);t.map.loadImage(i,async(p,f)=>{if(p){typeof i=="string"&&i?.trimEnd().endsWith(".svg")&&(i=await(await fetch(i)).text(),i=new DOMParser().parseFromString(i,"image/svg+xml").childNodes[0],i.setAttribute("fill",e.options.fill),i.setAttribute("stroke",e.options.stroke),i.setAttribute("transform",e.options.transform),i=new XMLSerializer().serializeToString(i));let g=new Image;g.crossOrigin="Anonymous",g.onload=()=>{let x=document.createElement("canvas");x.width=Math.max(g.width,50),x.height=Math.max(g.height,50);let m=x.getContext("2d");return m.imageSmoothingEnabled=true,m.drawImage(g,0,0,x.width,x.height),d(m.getImageData(0,0,x.width,x.height))},g.src=i.trimStart().startsWith("<svg")?"data:image/svg+xml;charset=utf-8,"+i:i;}else return d(f)});},a=i=>{let d=se[i.type];return {width:d.size,height:d.size,data:new Uint8Array(d.size*d.size*4),onAdd:function(){let p=document.createElement("canvas");p.width=p.height=d.size,this.ctx=p.getContext("2d",{willReadFrequently:true});},render:function(){return this.ctx.fillStyle=i.background||"transparent",this.ctx.fillRect(0,0,this.width,this.height),this.ctx.strokeStyle=this.ctx.fillStyle=i.color||"black",this.ctx.lineWidth=i.lineWith||1,this.ctx.stroke(new Path2D(d.path)),d.fill&&this.ctx.fill(new Path2D(d.path)),this.data=this.ctx.getImageData(0,0,this.width,this.height).data,true}}};return null};var Tt=(e,t,o)=>e.map((n,r)=>(1-o)*e[r]+o*t[r]),Dt=(e,t,o)=>{let n=e.map((s,a)=>e[a]*t[a]).reduce((s,a)=>s+a),r=Math.acos(n);return e.map((s,a)=>Math.sin((1-o)*r)/Math.sin(r)*e[a]+Math.sin(o*r)/Math.sin(r)*t[a])},Ot={in:e=>e*e,out:e=>1-(1-e)*(1-e),inOut:e=>e<.5?2*e*e:1-Math.pow(-2*e+2,2)/2},zt=e=>{let[t]=h(),o=.1,n=false,[r,s]=createSignal(false);["mousedown","touchstart","wheel"].forEach(m=>t.map.on(m,v=>!v.rotate&&s(true))),["moveend","mouseup","touchend"].forEach(m=>t.map.on(m,v=>!v.rotate&&s(false)));let a=async([m,v,w],l)=>{let c=t.map.getFreeCameraOptions();c.position=t.mapLib.MercatorCoordinate.fromLngLat([m,v],w),c.lookAtPoint(l),t.map.setFreeCameraOptions(c);},i=()=>{e.translate&&window.requestAnimationFrame(i);let m=[e.translate.start,e.translate.end,e.translate.easing?Ot[e.translate.easing](o):o],v=e.translate.type==="line"?Tt(...m):Dt(...m);a(v,e.translate.target),!e.translate.loop&&(o>1||o<0)&&(n=!n),o=n?o-.001:o+.001;};createEffect(()=>{e.translate&&window.requestAnimationFrame(i);});let d={duration:1e3,easing:m=>m},p=()=>{if(r())return;let{secPerRev:m=120,maxSpinZoom:v=5,slowSpinZoom:w=3}=e.rotateGlobe,l=t.map.getZoom();if(l>v)return;let c=360/m;l>w&&(c*=(v-l)/(v-w));let u=t.map.getCenter();u.lng=e.reverse?u.lng+c:u.lng-c,t.map.easeTo({center:u,...d},{rotate:true});},f=()=>{if(!e.rotateViewport||r()){t.map.stop();return}let m=e.rotateViewport,v=m?.secPerRev||60,w=e.reverse?t.map.getBearing()+360/v:t.map.getBearing()-360/v,l=m?.pitch||60,c=m?.around;t.map.easeTo({bearing:w,pitch:l,around:c,...d},{rotate:true});},g=()=>e.rotateGlobe?p():f();t.map.on("moveend",g).on("dragend",g);let x;return createEffect(()=>{e.rotateGlobe!=null&&(e.rotateGlobe?(x=t.map.getCenter(),p()):e.resetWhenStopped?t.map.stop().easeTo({center:x}):t.map.stop());}),createEffect(()=>{e.rotateViewport!=null&&(e.rotateViewport?f():e.resetWhenStopped?t.map.stop().resetNorthPitch():t.map.stop());}),onCleanup(()=>t.map.off("moveend",g).off("dragend",g)),e.children};var Rt=e=>{let[t]=h();return createEffect(()=>t.map.setLight(e.style||{})),onCleanup(()=>t.map?.setLight(null)),null};var T={};T.onSetup=function(e){var t={};return t.count=e.count||0,t};T.onClick=function(e,t){var o=this.newFeature({type:"Feature",properties:{count:e.count},geometry:{type:"Point",coordinates:[t.lngLat.lng,t.lngLat.lat]}});this.addFeature(o);};T.onKeyUp=function(e,t){if(t.keyCode===27)return this.changeMode("simple_select")};T.toDisplayFeatures=function(e,t,o){o(t);};var le=T;var ce=e=>new Intl.NumberFormat(void 0,{maximumFractionDigits:5}).format(e[0])+"\xB0 "+new Intl.NumberFormat(void 0,{maximumFractionDigits:5}).format(e[1])+"\xB0",S=(e,t)=>{let o=pe({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:e}},{units:window.navigator.language==="en-US"?"miles":"kilometers"});return {type:"Feature",properties:{type:"measure",value:window.navigator.language==="en-US"?new Intl.NumberFormat(void 0,{style:"unit",maximumFractionDigits:2,unit:o<=1?"foot":"mile"}).format(o<=1?o*5280:o):new Intl.NumberFormat(void 0,{style:"unit",maximumFractionDigits:2,unit:o<=1?"meter":"kilometer"}).format(o<=1?o*1e3:o),...t},geometry:{type:"Point",coordinates:Ut(e[0],e[1]).geometry.coordinates}}},F=(e,t)=>{let o=jt({type:"Feature",properties:{},geometry:{type:"Polygon",coordinates:e}});return {type:"Feature",properties:{type:"measure",value:window.navigator.language==="en-US"?new Intl.NumberFormat(void 0,{style:"unit",maximumFractionDigits:2,unit:o<=10.764?"foot":"mile"}).format(o<=10.764?o*10.764:o*1.0000003861)+"\xB2":new Intl.NumberFormat(void 0,{style:"unit",maximumFractionDigits:2,unit:o<=1e6?"meter":"kilometer"}).format(o<=1e6?o:o/1e6)+"\xB2",...t},geometry:centerOfMass({type:"Polygon",coordinates:e}).geometry}};var ue=e=>{let t=e.modes.draw_line_string;return {...t,onSetup:function(){let o=t.onSetup.call(this),n=this.newFeature({type:"Feature",properties:{type:"measure",value:"TTT"},geometry:{type:"Point",coordinates:[]}});return {...o,measure:n}},onMouseMove:function(o,n){if(t.onMouseMove.call(this,o,n),o.line.coordinates.length>=2){let r=S(o.line.coordinates);o.measure.properties.value=r.properties.value,o.measure.updateCoordinate("",r.geometry.coordinates[0],r.geometry.coordinates[1]);}},toDisplayFeatures:function(o,n,r){t.toDisplayFeatures.call(this,o,n,r),this.drawConfig.userProperties.showLength&&r(o.measure.toGeoJSON());}}};var de=e=>{let t=e.modes.draw_point;return {...t,onSetup:function(){let o=t.onSetup.call(this);return o.point.properties={...o.point.properties,type:"measure",anchor:"bottom"},o},onMouseMove:function(o,{lngLat:n}){o.point.properties.value=ce([n.lng,n.lat]),o.point.updateCoordinate("",n.lng,n.lat);},toDisplayFeatures:function(o,n,r){let s=n.properties.id===o.point.id;return n.properties.active=s?"":"false",r(n)}}};var me=e=>{let t=e.modes.draw_polygon;return {...t,toDisplayFeatures:function(o,n,r){let s=a=>{if(r(a),this.drawConfig.userProperties.showLength){let i=Array.isArray(a.geometry.coordinates[0][0])?a.geometry.coordinates[0]:a.geometry.coordinates;i.forEach((d,p)=>{!Array.isArray(d)||p==0||r(S([i[p-1],d]));});}this.drawConfig.userProperties.showArea&&a.geometry.coordinates[0].length>=3&&r(F([a.geometry.coordinates[0]]));};t.toDisplayFeatures.call(this,o,n,s);}}};function Gt(e,t,o,n){return {type:"Feature",properties:{meta:"vertex",parent:e,coord_path:o,active:n?"true":"false"},geometry:{type:"Point",coordinates:t}}}function Nt(e,t,o,n=64){let r=[],s=t/(111.32*Math.cos(e[1]*Math.PI/180)),a=t/110.574;for(let i=0;i<n;i+=1){let d=i/n*(2*Math.PI),p=s*Math.cos(d),f=a*Math.sin(d);r.push([e[0]+p,e[1]+f]);}return r.push(r[0]),{type:"Feature",geometry:{type:"Polygon",coordinates:[r]},properties:{parent:o,active:"true"}}}var Bt={enable:e=>{setTimeout(()=>{!e.map||!e.map.doubleClickZoom||!e._ctx||!e._ctx.store||!e._ctx.store.getInitialConfigValue||e._ctx.store.getInitialConfigValue("doubleClickZoom")&&e.map.doubleClickZoom.enable();},0);}},Xt=e=>({...e.modes.draw_line_string,clickAnywhere:function(t,o){return t.currentVertexPosition===1?(t.line.addCoordinate(0,o.lngLat.lng,o.lngLat.lat),this.changeMode("simple_select",{featureIds:[t.line.id]})):(this.updateUIClasses({mouse:"add"}),t.line.updateCoordinate(t.currentVertexPosition,o.lngLat.lng,o.lngLat.lat),t.direction==="forward"?(t.currentVertexPosition+=1,t.line.updateCoordinate(t.currentVertexPosition,o.lngLat.lng,o.lngLat.lat)):t.line.addCoordinate(0,o.lngLat.lng,o.lngLat.lat),null)},onStop:function(t){if(Bt.enable(this),this.activateUIButton(),this.getFeature(t.line.id)!==void 0)if(t.line.removeCoordinate("0"),t.line.isValid()){let o=t.line.toGeoJSON(),n=(pe(o)*1e3).toFixed(1),r=o.geometry.coordinates[0];this.deleteFeature([t.line.id],{silent:true});let s=this.newFeature({type:"Feature",properties:{radius:n},geometry:{type:"Point",coordinates:r}});this.addFeature(s),this.map.fire("draw.create",{features:[s.toGeoJSON()]}),this.changeMode("simple_select",{featureIds:[s.id]});}else this.deleteFeature([t.line.id],{silent:true}),this.changeMode("simple_select",{},{silent:true});},toDisplayFeatures:function(t,o,n){let r=o.properties.id===t.line.id;return o.properties.active=r?"true":"false",r?(o.geometry.coordinates.length<2||(o.properties.meta="feature",n(Gt(t.line.id,o.geometry.coordinates[t.direction==="forward"?o.geometry.coordinates.length-2:1],`${t.direction==="forward"?o.geometry.coordinates.length-2:1}`,false)),n(o),n(S(o.geometry.coordinates,{parent:t.line.id})),n(Nt(o.geometry.coordinates[0],pe(o),t.line.id))),null):n(o)}}),ge=Xt;var Yt=e=>({...e.modes.draw_line_string,onSetup:function(t){let o=e.modes.draw_line_string.onSetup.call(this,t),n=this.newFeature({type:"Feature",properties:{},geometry:{type:"Polygon",coordinates:[[]]}});return this.addFeature(n),{...o,...t,rectangle:n}},onTap:function(t,o){t.startPoint&&this.onMouseMove(t,o),this.onClick(t,o);},onClick:function(t,o){t.startPoint&&t.startPoint[0]!==o.lngLat.lng&&t.startPoint[1]!==o.lngLat.lat?(this.updateUIClasses({mouse:"pointer"}),t.endPoint=[o.lngLat.lng,o.lngLat.lat],this.changeMode("simple_select",{featuresId:t.rectangle.id})):t.startPoint=[o.lngLat.lng,o.lngLat.lat];},onMouseMove:function(t,o){t.startPoint&&(t.rectangle.updateCoordinate("0.0",t.startPoint[0],t.startPoint[1]),t.rectangle.updateCoordinate("0.1",o.lngLat.lng,t.startPoint[1]),t.rectangle.updateCoordinate("0.2",o.lngLat.lng,o.lngLat.lat),t.rectangle.updateCoordinate("0.3",t.startPoint[0],o.lngLat.lat),t.rectangle.updateCoordinate("0.4",t.startPoint[0],t.startPoint[1]));},onKeyUp:function(t,o){if(o.keyCode===27)return this.changeMode("simple_select")},onStop:function(t){e.modes.draw_line_string.onStop.call(this,t),this.getFeature(t.rectangle.id)!==void 0&&(t.rectangle.removeCoordinate("0.4"),t.rectangle.isValid()?this.map.fire("draw.create",{features:[t.rectangle.toGeoJSON()]}):(this.deleteFeature([t.rectangle.id],{silent:true}),this.changeMode("simple_select",{},{silent:true})));},toDisplayFeatures:function(t,o,n){let r=o.properties.id===t.rectangle.id;if(o.properties.active=r?"true":"false",!r)return n(o);if(t.startPoint)return n(o),this.drawConfig.userProperties.showLength&&(n(S([o.geometry.coordinates[0][0],o.geometry.coordinates[0][1]],{parent:t.rectangle.id,anchor:"bottom"})),n(S([o.geometry.coordinates[0][1],o.geometry.coordinates[0][2]],{parent:t.rectangle.id,anchor:"left"}))),this.drawConfig.userProperties.showArea&&n(F(o.geometry.coordinates,{parent:t.rectangle.id})),null},onTrash:function(t){this.deleteFeature([t.rectangle.id],{silent:true}),this.changeMode("simple_select");}}),fe=Yt;var he={enable:e=>{setTimeout(()=>{!e.map||!e.map.doubleClickZoom||!e._ctx||!e._ctx.store||!e._ctx.store.getInitialConfigValue||e._ctx.store.getInitialConfigValue("doubleClickZoom")&&e.map.doubleClickZoom.enable();},0);},disable(e){setTimeout(()=>{!e.map||!e.map.doubleClickZoom||e.map.doubleClickZoom.disable();},0);}},qt={onSetup:function(e){let t=this.newFeature({type:"Feature",properties:{},geometry:{type:"Polygon",coordinates:[[]]}});return this.addFeature(t),this.clearSelectedFeatures(),he.disable(this),this.updateUIClasses({mouse:"add"}),this.setActionableState({trash:true}),{rectangle:t,currentVertexPosition:0}},onTap:function(e,t){this.onClick(e,t);},onClick:function(e,t){if(e.currentVertexPosition===2){let o=this.calculatepXY3(e,t,false);return o&&e.rectangle.updateCoordinate(`0.${e.currentVertexPosition+1}`,o[0],o[1]),this.updateUIClasses({mouse:"pointer"}),this.changeMode("simple_select",{featuresId:e.rectangle.id})}else e.rectangle.updateCoordinate(`0.${e.currentVertexPosition}`,t.lngLat.lng,t.lngLat.lat),e.currentVertexPosition++,e.rectangle.updateCoordinate(`0.${e.currentVertexPosition}`,t.lngLat.lng,t.lngLat.lat);},onMouseMove:function(e,t){if(e.rectangle.updateCoordinate("0."+e.currentVertexPosition,t.lngLat.lng,t.lngLat.lat),e.currentVertexPosition&&e.currentVertexPosition>0&&this.calculateOrientedAnglePolygon(e),e.currentVertexPosition===2){let o=this.calculatepXY3(e,t,true);o&&e.rectangle.updateCoordinate("0."+(e.currentVertexPosition+1),o[0],o[1]);}},deegrees2meters(e){let t=e[0]*2003750834e-2/180,o=Math.log(Math.tan((90+e[1])*Math.PI/360))/(Math.PI/180);return o=o*2003750834e-2/180,[t,o]},meters2degress(e){let t=e[0]*180/2003750834e-2,o=Math.atan(Math.exp(e[1]*Math.PI/2003750834e-2))*360/Math.PI-90;return [t,o]},calculateOrientedAnglePolygon:function(e){let t=e.rectangle.getCoordinate("0.0"),o=this.deegrees2meters(t),n=e.rectangle.getCoordinate("0.1"),r=this.deegrees2meters(n),a=-1*(Math.atan2(r[1]-o[1],r[0]-o[0])*180/Math.PI+90),i=a<0?a+360:a;e.angle=parseFloat(i.toFixed(2));},calculatepXY3:function(e,t,o){let n=e.rectangle.getCoordinate("0.0"),r=this.deegrees2meters(n),s=e.rectangle.getCoordinate("0.1"),a=this.deegrees2meters(s),i=this.deegrees2meters([t.lngLat.lng,t.lngLat.lat]),d=this.deegrees2meters([t.lngLat.lng,t.lngLat.lat]);if(r[0]===a[0])i=[d[0],a[1]];else if(r[1]===a[1])i=[a[0],d[1]];else {let v=-1/((a[1]-r[1])/(a[0]-r[0]));Math.abs(v)<1?i[1]=v*(d[0]-a[0])+a[1]:i[0]=a[0]+(i[1]-a[1])/v;}let p=[a[0]-r[0],a[1]-r[1]],f=[i[0]-p[0],i[1]-p[1]],g=this.meters2degress(i),x=this.meters2degress(f);return e.rectangle.updateCoordinate("0.2",g[0],g[1]),e.rectangle.updateCoordinate("0.3",x[0],x[1]),x},onKeyUp:function(e,t){if(t.keyCode===27)return this.changeMode("simple_select")},onStop:function(e){he.enable(this),this.updateUIClasses({mouse:"none"}),this.activateUIButton(),this.getFeature(e.rectangle.id)!==void 0&&(e.rectangle.removeCoordinate("0.4"),e.rectangle.isValid()?this.map.fire("draw.create",{features:[e.rectangle.toGeoJSON()]}):(this.deleteFeature([e.rectangle.id],{silent:true}),this.changeMode("simple_select",{},{silent:true})));},toDisplayFeatures:function(e,t,o){let n=t.properties.id===e.rectangle.id;if(t.properties.active=n?"true":"false",t.properties.angle=e.angle,t.angle=e.angle,!n)return o(t);let r=t.geometry.coordinates[0].length;if(r<3){let s=t.geometry.coordinates[0][0],a={type:"Feature",properties:t.properties,angle:e.angle,geometry:{coordinates:t.geometry.coordinates[0][0],type:"Point"}};s&&o(a);return}if(r>=3&&r<=4){let s=[[t.geometry.coordinates[0][0][0],t.geometry.coordinates[0][0][1]],[t.geometry.coordinates[0][1][0],t.geometry.coordinates[0][1][1]]];if(o({type:"Feature",properties:t.properties,angle:e.angle,geometry:{coordinates:s,type:"LineString"}}),r===3)return}return o(t)},onTrash:function(e){this.deleteFeature([e.rectangle.id],{silent:true}),this.changeMode("simple_select");}},ye=qt;var ve=[{id:"measure-label",type:"symbol",filter:["all",["==","$type","Point"],["==","user_type","measure"]],layout:{"text-field":["get","user_value"],"text-anchor":["get","user_anchor"],"text-offset":["match",["get","user_anchor"],"bottom",[0,-0.5],[0,0]],"text-size":12,"text-allow-overlap":true,"text-ignore-placement":true},paint:{"text-halo-color":"rgba(255,255,255,0.75)","text-halo-width":2,"text-halo-blur":1,"text-color":"#000"}}];var Ht=e=>{let[t]=h();t.isMapLibre&&e.lib.constants?.classes&&Object.assign(e.lib.constants.classes,{CANVAS:"maplibregl-canvas",CONTROL_BASE:"maplibregl-ctrl",CONTROL_PREFIX:"maplibregl-ctrl-",CONTROL_GROUP:"maplibregl-ctrl-group",ATTRIBUTION:"maplibregl-ctrl-attrib"});let o=new e.lib({styles:[...e.lib.lib.theme,...ve],modes:{...e.lib.modes,draw_point:de(e.lib),draw_line_string:ue(e.lib),draw_polygon:me(e.lib),multi_point:le,radius:ge(e.lib),rectangle:fe(e.lib),rectangle_assisted:ye},userProperties:{showLength:e.showLength||false,showArea:e.showArea||false},...e.options});t.map.addControl(o,e.position||"top-right"),e.getInstance&&e.getInstance(o);let n={};return K.forEach(r=>{if(e[r]){let s=`draw.${r.slice(2).toLowerCase()}`,a=i=>e[r](i);n[s]=a,t.map.on(s,a);}}),onCleanup(()=>{Object.keys(n).forEach(r=>t.map.off(r,n[r])),t.map?.removeControl(o);}),null};var Kt=e=>{let[t]=h(),o;return z(()=>(o||(o=new e.overlay(e.props||{})),o)),createEffect(()=>o?.setProps(e.props||{})),null};
|
|
10
|
+
|
|
11
|
+
export { it as Atmosphere, zt as Camera, yt as Control, Kt as DeckOverlay, Ht as Draw, _t as Image, Ye as Layer, nt as Layer3D, Rt as Light, R as MapProvider, bt as Marker, Ct as Popup, Ge as Source, ut as Terrain, Ae as default, Pt as patternList, h as useMapContext, ot as useScene, $ as useSourceId };
|