@npm9912/v-map 0.1.1 → 0.2.1
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 +17 -5
- package/dist/cjs/{cesium-provider-BiFFyAl9.js → cesium-provider-CTtu9eTD.js} +6 -5
- package/dist/cjs/{deck-provider-Ctq3Q8a1.js → deck-provider-fNa818HH.js} +9 -9
- package/dist/cjs/events-BMG7RKne.js +11 -0
- package/dist/cjs/{geotiff-source-RaNzzWkC.js → geotiff-source-B9ARUE9z.js} +1 -1
- package/dist/cjs/{index-ISOEpMC3.js → index-9APmzoa2.js} +6 -6
- package/dist/cjs/{index-CbVT-Con.js → index-BJg0ncfC.js} +4 -4
- package/dist/cjs/{index-CJvvX4yx.js → index-C1ubapwF.js} +4 -4
- package/dist/cjs/{index-B8LHqjyg.js → index-ChrKyU6i.js} +4 -4
- package/dist/cjs/{index-JSwBbvGA.js → index-DmGHwivM.js} +1 -0
- package/dist/cjs/{layer-extension-B_olS0rc.js → layer-extension-D3a-1DFI.js} +1 -1
- package/dist/cjs/{leaflet-provider-DOqfs7g5.js → leaflet-provider-7Nw-AdV_.js} +6 -5
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{messages-D7h4m8Tx.js → messages-CFCxeG8p.js} +0 -9
- package/dist/cjs/{openlayers-provider-Dfeg6L4n.js → openlayers-provider-DMxYtFkS.js} +5 -4
- package/dist/cjs/{polygon-layer-B9PrN7vr.js → polygon-layer-Dx1ZWZP0.js} +1 -1
- package/dist/cjs/{scenegraph-layer-DwNoxQdi.js → scenegraph-layer-ctLehP0q.js} +1 -1
- package/dist/cjs/v-map-builder.cjs.entry.js +4 -3
- package/dist/cjs/v-map-error.cjs.entry.js +121 -0
- package/dist/cjs/v-map-layer-geojson_12.cjs.entry.js +11 -10
- package/dist/cjs/{v-map-layer-helper-iAzxAg9I.js → v-map-layer-helper-DnWpjZ_Q.js} +7 -6
- package/dist/cjs/v-map-layer-terrain-geotiff.cjs.entry.js +5 -4
- package/dist/cjs/v-map-layercontrol.cjs.entry.js +1 -1
- package/dist/cjs/v-map.cjs.js +2 -2
- package/dist/cjs/{v-map.v-map-layer-osm.v-map-layergroup-BsXp3BoL.js → v-map.v-map-layer-osm.v-map-layergroup-BJ3_NqAj.js} +16 -15
- package/dist/cjs/v-map_3.cjs.entry.js +5 -4
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/v-map/v-map.css +3 -0
- package/dist/collection/components/v-map-error/v-map-error.css +136 -0
- package/dist/collection/components/v-map-error/v-map-error.js +277 -0
- package/dist/collection/components/v-map-error/v-map-error.test.js +131 -0
- package/dist/collection/components/v-map-layer-geojson/v-map-layer-geojson.js +1 -1
- package/dist/collection/components/v-map-layer-terrain/v-map-layer-terrain.js +1 -1
- package/dist/collection/components/v-map-layer-terrain-geotiff/v-map-layer-terrain-geotiff.js +1 -1
- package/dist/collection/components/v-map-layer-tile3d/v-map-layer-tile3d.js +1 -1
- package/dist/collection/components/v-map-layer-wcs/v-map-layer-wcs.js +1 -1
- package/dist/collection/components/v-map-layer-wfs/v-map-layer-wfs.js +1 -1
- package/dist/collection/components/v-map-layergroup/v-map-layergroup.js +1 -1
- package/dist/collection/components/v-map-style/v-map-style.js +1 -1
- package/dist/components/cesium-provider.js +1 -1
- package/dist/components/deck-provider.js +1 -1
- package/dist/components/events.js +1 -1
- package/dist/components/geotiff-source.js +1 -1
- package/dist/components/leaflet-provider.js +1 -1
- package/dist/components/logger.js +1 -0
- package/dist/components/openlayers-provider.js +1 -1
- package/dist/components/v-map-builder.js +2 -2
- package/dist/components/v-map-error.d.ts +11 -0
- package/dist/components/v-map-error.js +1 -0
- package/dist/components/v-map-layer-geojson2.js +1 -1
- package/dist/components/v-map-layer-geotiff2.js +1 -1
- package/dist/components/v-map-layer-google2.js +1 -1
- package/dist/components/v-map-layer-helper.js +1 -1
- package/dist/components/v-map-layer-osm2.js +1 -1
- package/dist/components/v-map-layer-scatterplot2.js +1 -1
- package/dist/components/v-map-layer-terrain-geotiff.js +1 -1
- package/dist/components/v-map-layer-terrain2.js +1 -1
- package/dist/components/v-map-layer-tile3d2.js +1 -1
- package/dist/components/v-map-layer-wcs2.js +1 -1
- package/dist/components/v-map-layer-wfs2.js +1 -1
- package/dist/components/v-map-layer-wkt2.js +1 -1
- package/dist/components/v-map-layer-wms2.js +1 -1
- package/dist/components/v-map-layer-xyz2.js +1 -1
- package/dist/components/v-map-layergroup2.js +1 -1
- package/dist/components/v-map-style2.js +2 -2
- package/dist/components/v-map2.js +1 -1
- package/dist/esm/{cesium-provider-BJfAup3w.js → cesium-provider-Bh__cBGf.js} +6 -5
- package/dist/esm/{deck-provider-C7U9VDEq.js → deck-provider-DxIpS4lY.js} +9 -9
- package/dist/esm/events-CrV_misM.js +9 -0
- package/dist/esm/{geotiff-source-esnDnC-u.js → geotiff-source-BRjO-Dvr.js} +1 -1
- package/dist/esm/{index-BIEmlzCf.js → index-Bh2gBu9u.js} +5 -5
- package/dist/esm/{index-jzneDarq.js → index-BoNyIrdq.js} +1 -1
- package/dist/esm/{index-jN06TXUp.js → index-C3mnOs0I.js} +4 -4
- package/dist/esm/{index-B1zwA4IC.js → index-C63kfbil.js} +6 -6
- package/dist/esm/{index-DbSdn93t.js → index-DxbztwCv.js} +7 -7
- package/dist/esm/{layer-extension-CZXK5goK.js → layer-extension-C5Y2UES3.js} +1 -1
- package/dist/esm/{leaflet-provider-Q41TB6ku.js → leaflet-provider-k6JSYiYX.js} +6 -5
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{messages-CMKJzsgL.js → messages-QJHuuz0g.js} +1 -9
- package/dist/esm/{openlayers-provider-CMsDsQTQ.js → openlayers-provider-DIquf3Tx.js} +5 -4
- package/dist/esm/{polygon-layer-ByhxGhWC.js → polygon-layer-ZIT5mJy5.js} +1 -1
- package/dist/esm/{scenegraph-layer-09K_B6DT.js → scenegraph-layer-CNIRd2uu.js} +1 -1
- package/dist/esm/v-map-builder.entry.js +3 -2
- package/dist/esm/v-map-error.entry.js +119 -0
- package/dist/esm/v-map-layer-geojson_12.entry.js +10 -9
- package/dist/esm/{v-map-layer-helper-Dys44Cgo.js → v-map-layer-helper-CuHYsU9f.js} +2 -1
- package/dist/esm/v-map-layer-terrain-geotiff.entry.js +5 -4
- package/dist/esm/v-map-layercontrol.entry.js +1 -1
- package/dist/esm/v-map.js +3 -3
- package/dist/esm/{v-map.v-map-layer-osm.v-map-layergroup-B4pFHuSf.js → v-map.v-map-layer-osm.v-map-layergroup-Zwdvm9PG.js} +10 -9
- package/dist/esm/v-map_3.entry.js +5 -4
- package/dist/types/components/v-map-error/v-map-error.d.ts +79 -0
- package/dist/types/components/v-map-error/v-map-error.test.d.ts +1 -0
- package/dist/types/components.d.ts +128 -0
- package/dist/v-map/p-05ee633f.entry.js +1 -0
- package/dist/v-map/p-08ad1392.entry.js +1 -0
- package/dist/v-map/p-2-mR3oVa.js +1 -0
- package/dist/v-map/{p-c21c93fe.entry.js → p-3a57b64a.entry.js} +1 -1
- package/dist/v-map/p-58dda864.entry.js +1 -0
- package/dist/v-map/p-915314c0.entry.js +10 -0
- package/dist/v-map/{p-MyTSFnEk.js → p-9Rt23jlQ.js} +1 -1
- package/dist/v-map/p-BSsFEMZP.js +1 -0
- package/dist/v-map/{p-jzneDarq.js → p-BoNyIrdq.js} +2 -2
- package/dist/v-map/p-BpE6L1g0.js +1 -0
- package/dist/v-map/{p-DvHXtWUg.js → p-C0M0-Kvt.js} +1 -1
- package/dist/v-map/p-CbiLpFhO.js +1 -0
- package/dist/v-map/p-Ci70E1EM.js +1 -0
- package/dist/v-map/p-CrV_misM.js +1 -0
- package/dist/v-map/{p-DrOQ9V4h.js → p-DAf4itFZ.js} +1 -1
- package/dist/v-map/p-DVBtCUtQ.js +1 -0
- package/dist/v-map/{p-CZqY0yW4.js → p-DuJ_mTaq.js} +1 -1
- package/dist/v-map/p-G6iftXUC.js +1 -0
- package/dist/v-map/{p-CMKJzsgL.js → p-QJHuuz0g.js} +1 -1
- package/dist/v-map/{p-aa410e64.entry.js → p-e21ea0ce.entry.js} +2 -2
- package/dist/v-map/{p-DmICdG34.js → p-rCyRSFJb.js} +2 -2
- package/dist/v-map/{p-CafTHT9i.js → p-vhbi5XXi.js} +1 -1
- package/dist/v-map/{p-Dckgonw8.js → p-yXLNXXx-.js} +1 -1
- package/dist/v-map/v-map.esm.js +1 -1
- package/package.json +1 -1
- package/dist/v-map/p--vVleK-M.js +0 -1
- package/dist/v-map/p-09d10db0.entry.js +0 -1
- package/dist/v-map/p-5eba6058.entry.js +0 -10
- package/dist/v-map/p-6b102336.entry.js +0 -1
- package/dist/v-map/p-BdijL4Av.js +0 -1
- package/dist/v-map/p-BeFu0ap4.js +0 -1
- package/dist/v-map/p-BxFJezdK.js +0 -1
- package/dist/v-map/p-DCTHyf58.js +0 -1
- package/dist/v-map/p-WaMDUuAz.js +0 -1
- package/dist/v-map/p-uiIP-taz.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e,c as t,g as a,h as n}from"./p-jzneDarq.js";import{V as o}from"./p-BdijL4Av.js";import{l as r,M as i}from"./p-CMKJzsgL.js";const s="v-map-layer-terrain-geotiff - ",h=class{constructor(a){e(this,a),this.ready=t(this,"ready",7)}get el(){return a(this)}loadState="idle";url=null;projection=null;forceProjection=!1;visible=!0;opacity=1;zIndex=100;nodata=null;meshMaxError=4;wireframe=!1;texture=null;color=null;colorMap=null;valueRange=null;elevationScale=1;renderMode="terrain";minZoom=0;maxZoom=24;tileSize=256;ready;didLoad=!1;hasLoadedOnce=!1;helper;setLoadState(e){this.loadState=e}async getError(){return this.helper?.getError()}async onUrlChanged(){r(s+"onUrlChanged"),await(this.helper?.updateLayer({type:"terrain-geotiff",data:this.createLayerConfig()}))}async onVisibleChanged(){r(s+"onVisibleChanged"),await(this.helper?.setVisible(this.visible))}async onOpacityChanged(){r(s+"onOpacityChanged"),await(this.helper?.setOpacity(this.opacity))}async onZIndexChanged(){r(s+"onZIndexChanged"),await(this.helper?.setZIndex(this.zIndex))}async onPropertyChanged(){r(s+"onPropertyChanged"),await(this.helper?.updateLayer({type:"terrain-geotiff",data:this.createLayerConfig()}))}isReady(){return this.didLoad}async getLayerId(){return this.helper.getLayerId()}createLayerConfig(){return{type:"terrain-geotiff",visible:this.visible,zIndex:this.zIndex,opacity:this.opacity,url:this.url,projection:this.projection,forceProjection:this.forceProjection,nodata:this.nodata,meshMaxError:this.meshMaxError,wireframe:this.wireframe,texture:this.texture,color:this.color,colorMap:this.colorMap,valueRange:this.valueRange,elevationScale:this.elevationScale,renderMode:this.renderMode,minZoom:this.minZoom,maxZoom:this.maxZoom,tileSize:this.tileSize}}async connectedCallback(){r(s+i.COMPONENT_CONNECTED_CALLBACK),this.hasLoadedOnce&&(this.helper.startLoading(),await this.helper.initLayer((()=>this.createLayerConfig()),this.el.id))}async disconnectedCallback(){r(s+i.COMPONENT_DISCONNECTED_CALLBACK),await(this.helper?.dispose())}async componentWillLoad(){r(s+i.COMPONENT_WILL_LOAD),this.helper=new o(this.el,this)}async componentDidLoad(){r(s+i.COMPONENT_DID_LOAD),this.helper.startLoading(),await this.helper.initLayer((()=>this.createLayerConfig()),this.el.id),this.hasLoadedOnce=!0,this.didLoad=!0,this.ready.emit()}async componentWillRender(){r(s+i.COMPONENT_WILL_RENDER)}render(){return n("slot",{key:"ec36579674879e6def334a8fc18a471aea8f286a"})}static get watchers(){return{url:[{onUrlChanged:0}],visible:[{onVisibleChanged:0}],opacity:[{onOpacityChanged:0}],zIndex:[{onZIndexChanged:0}],projection:[{onPropertyChanged:0}],forceProjection:[{onPropertyChanged:0}],nodata:[{onPropertyChanged:0}],meshMaxError:[{onPropertyChanged:0}],wireframe:[{onPropertyChanged:0}],texture:[{onPropertyChanged:0}],color:[{onPropertyChanged:0}],colorMap:[{onPropertyChanged:0}],valueRange:[{onPropertyChanged:0}],elevationScale:[{onPropertyChanged:0}],renderMode:[{onPropertyChanged:0}],minZoom:[{onPropertyChanged:0}],maxZoom:[{onPropertyChanged:0}],tileSize:[{onPropertyChanged:0}]}}};h.style=":host{display:block}";export{h as v_map_layer_terrain_geotiff}
|
package/dist/v-map/p-BdijL4Av.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{V as t,w as i,l as s}from"./p-CMKJzsgL.js";class e{el;static RUNTIME_ERROR_DEBOUNCE_MS=5e3;layerId=null;mapProvider=null;_error;host;initContext;listenersBound=!1;recreateInFlight=!1;lastRuntimeErrorTime=0;constructor(t,i){this.el=t,this.host=i}startLoading(){this.host?.setLoadState("loading")}markReady(){this.clearError(),this.host?.setLoadState("ready")}markUpdated(){this.markReady()}setError(s){this._error=s,this.host?.setLoadState("error"),this.el.dispatchEvent(new CustomEvent(t.Error,{detail:s,bubbles:!0,composed:!0})),i(`${this.el.nodeName.toLowerCase()} - ${s.message}`)}setRuntimeError(t){const i=Date.now();i-this.lastRuntimeErrorTime<e.RUNTIME_ERROR_DEBOUNCE_MS||(this.lastRuntimeErrorTime=i,this.setError(t))}clearError(){this._error=void 0,this.lastRuntimeErrorTime=0}getError(){return this._error}async addLayer(t,s,e,a,r){return this.mapProvider?t?await(this.mapProvider?.addBaseLayer({...a,groupId:s,groupVisible:e},t,r)):await(this.mapProvider?.addLayerToGroup({...a,groupId:s,groupVisible:e})):(i("Map provider not available."),null)}async addToMapInternal(t,i,e,a){if(this.layerId&&(this.unregisterLayerError(),await(this.mapProvider?.removeLayer(this.layerId)),this.layerId=null),!0===await(i.isMapProviderReady?.())){s(`${this.el.nodeName.toLowerCase()} - layer is being added`),this.mapProvider=i.__vMapProvider??null;const r=await t.getGroupId(),h=await t.visible;if(null===this.layerId&&this.mapProvider)try{this.layerId=await this.addLayer(t.basemapid,r,h,e(),a),this.layerId?(this.registerLayerError(),this.markReady()):this.setError({type:"provider",message:"Layer could not be added: provider returned no layer ID"})}catch(t){this.setError({type:"provider",message:`Layer could not be added: ${t instanceof Error?t.message:String(t)}`,cause:t})}}}bindMapEventsOnce(){if(this.listenersBound||!this.initContext)return;const{vmap:i}=this.initContext;i.addEventListener(t.MapProviderReady,this.onMapProviderReady),i.addEventListener(t.MapProviderWillShutdown,this.onMapProviderWillShutdown),this.listenersBound=!0}onMapProviderReady=async t=>{if(s(`${this.el.nodeName.toLowerCase()} - layer add deferred`),this.mapProvider=t.detail.mapProvider,!this.layerId&&this.initContext){this.startLoading();const{group:t,vmap:i,createLayerConfig:s,elementId:e}=this.initContext;await this.addToMapInternal(t,i,s,e)}};onMapProviderWillShutdown=async()=>{s(`${this.el.nodeName.toLowerCase()} - map provider shutting down`),this.mapProvider=null,this.layerId=null,this.clearError(),this.host?.setLoadState("idle")};async setVisible(t){if(this.layerId&&this.mapProvider)try{await this.mapProvider.setVisible(this.layerId,t)}catch(t){this.setError({type:"provider",message:`setVisible failed: ${t instanceof Error?t.message:String(t)}`,cause:t})}}async setOpacity(t){if(this.layerId&&this.mapProvider)try{await this.mapProvider.setOpacity(this.layerId,t)}catch(t){this.setError({type:"provider",message:`setOpacity failed: ${t instanceof Error?t.message:String(t)}`,cause:t})}}async setZIndex(t){if(this.layerId&&this.mapProvider)try{await this.mapProvider.setZIndex(this.layerId,t)}catch(t){this.setError({type:"provider",message:`setZIndex failed: ${t instanceof Error?t.message:String(t)}`,cause:t})}}async updateLayer(t){if(this.layerId&&this.mapProvider)try{await this.mapProvider.updateLayer(this.layerId,t),this.markUpdated()}catch(t){this.setError({type:"provider",message:`updateLayer failed: ${t instanceof Error?t.message:String(t)}`,cause:t})}else await this.recreateLayer()}async recreateLayer(){if(!this.initContext||this.recreateInFlight)return;this.recreateInFlight=!0,this.startLoading();const{group:t,vmap:i,createLayerConfig:s,elementId:e}=this.initContext;try{await this.addToMapInternal(t,i,s,e)}finally{this.recreateInFlight=!1}}async initLayer(t,s){const e=this.el.closest("v-map-layergroup");if(!e)return void i(`${this.el.nodeName.toLowerCase()} is not inside a v-map-layergroup`);const a=await this.getVMap();a?(this.initContext={group:e,vmap:a,createLayerConfig:t,elementId:s},this.bindMapEventsOnce(),await this.addToMapInternal(e,a,t,s)):i(`No parent v-map component found for ${this.el.nodeName.toLowerCase()}`)}async dispose(){if(this.initContext&&this.listenersBound){const{vmap:i}=this.initContext;i.removeEventListener(t.MapProviderReady,this.onMapProviderReady),i.removeEventListener(t.MapProviderWillShutdown,this.onMapProviderWillShutdown)}this.listenersBound=!1,await this.removeLayer(),this.clearError(),this.host?.setLoadState("idle")}getMapProvider(){return this.mapProvider}getLayerId(){return this.layerId}async removeLayer(){this.unregisterLayerError(),await(this.mapProvider?.removeLayer(this.layerId)),this.layerId=null}registerLayerError(){this.layerId&&this.mapProvider?.onLayerError&&this.mapProvider.onLayerError(this.layerId,(t=>{this.setRuntimeError({type:t.type,message:t.message,cause:t.cause})}))}unregisterLayerError(){this.layerId&&this.mapProvider?.offLayerError&&this.mapProvider.offLayerError(this.layerId)}async getVMap(){s(`${this.el.nodeName.toLowerCase()} - getVMap`);const t=this.el.closest("v-map");if(!t)return s(`${this.el.nodeName.toLowerCase()} - getVMap - v-map not found.`),null;await customElements.whenDefined("v-map");const i=t;return s(`${this.el.nodeName.toLowerCase()} - getVMap - assigned.`),i}}export{e as V}
|
package/dist/v-map/p-BeFu0ap4.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{w as t,l as e,e as i}from"./p-CMKJzsgL.js";import{C as s}from"./p-BxFJezdK.js";import{l as r,a,b as n,G as o,g as h}from"./p-Dckgonw8.js";import"./p-jzneDarq.js";import"./p-BdijL4Av.js";class c{id;_visible=!0;_basemap=null;_layers=new Map;_originalVisible=new Map;_dirty=!0;constructor(t,e=!0){this.id=t,this._visible=e}get visible(){return this._visible}set visible(t){this._visible!==t&&(this._visible=t,this._dirty=!0)}get basemap(){return this._basemap}set basemap(t){this._basemap!==t&&(this._basemap=t,this._dirty=!0)}isDirty(){return this._dirty}addLayer(t){this._layers.has(t.id)||(this._layers.set(t.id,t),this._originalVisible.set(t.id,t.layer.getVisible()),this._dirty=!0)}setLayerElementId(t,e){const i=this._layers.get(t);i&&i.elementId!==e&&(i.elementId=e??null,this._dirty=!0)}removeLayer(t){const e=this._layers.delete(t);return this._originalVisible.delete(t),e&&(this._dirty=!0),e}clear(){this._layers.clear(),this._originalVisible.clear(),this._dirty=!0}apply(){if(this._dirty){for(const[t,e]of this._layers){const i=this._originalVisible.get(t)??!0;let s=this._visible&&i;s&&this._basemap&&(s=e.elementId===this._basemap),e.layer.getVisible()!==s&&e.layer.setVisible(s)}this._dirty=!1}}}class l{_groups=[];_dirty=!0;get groups(){return[...this._groups]}getGroup(t){return this._groups.find((e=>e.id===t))}hasGroup(t){return this._groups.some((e=>e.id===t))}ensureGroup(t,e=!0){let i=this.getGroup(t);return i||(i=new c(t,e),this._groups.push(i),this._dirty=!0,i)}addLayerToGroup(t,e,i){this.ensureGroup(t,e).addLayer(i),this._dirty=!0}removeLayer(t,e=!0){let i=!1;for(const s of this._groups)if(s.removeLayer(t)&&(i=!0,!e))break;return i&&(this._dirty=!0),i}setGroupVisible(t,e){const i=this.getGroup(t);if(!i)throw new Error(`CesiumLayerGroup "${t}" nicht gefunden`);i.visible=e,this._dirty=!0}setBasemap(t,e){const i=this.getGroup(t);if(!i)throw new Error(`CesiumLayerGroup "${t}" nicht gefunden`);i.basemap=e,this._dirty=!0}apply(){if(this._dirty||this._groups.some((t=>t.isDirty()))){for(const t of this._groups)t.apply();this._dirty=!1}}clear(){this._groups=[],this._dirty=!0}}class u{Cesium;layers=new Map;viewer;constructor(t,e){this.viewer=e,this.Cesium=t}replaceLayer(t,e,i){if(!this.Cesium)throw new Error("Cesium must be initialized first. Call init() method.");const s=e.getZIndex(),r=e.getVisible(),a=e.getOpacity();this.removeLayer(t);const n=this.addLayer(t,i);return n.setZIndex(s),n.setVisible(r),n.setOpacity(a),n}addLayer(t,e){if(!this.Cesium)throw new Error("Cesium must be initialized first. Call init() method.");e instanceof this.Cesium.GeoJsonDataSource||e instanceof this.Cesium.DataSource?this.viewer.dataSources.add(e):e instanceof this.Cesium.Cesium3DTileset?(this.viewer.scene.primitives.add(e),e.style||(e.style=new this.Cesium.Cesium3DTileStyle)):e instanceof this.Cesium.ImageryLayer&&this.viewer.imageryLayers.add(e),e.id=t;const i=this.wrapLayer(e);return this.layers.set(t,i),i}addCustomLayer(t,e){return this.layers.set(t,e),e}getLayer(t){const e=this.layers.get(t);if(!e)throw new Error(`Layer mit ID "${t}" nicht gefunden.`);return e}getLayerById(t){return this.getLayer(t)}removeLayer(t){this.getLayer(t).remove(),this.layers.delete(t)}setVisible(t,e){this.getLayer(t).setVisible(e)}setOpacity(t,e){this.getLayer(t).setOpacity(e)}async setZIndex(t,e){const i=this.getLayer(t);await i.setZIndex(e)}wrapLayer(t){return t instanceof this.Cesium.ImageryLayer?this.wrapImageryLayer(t):t instanceof this.Cesium.Cesium3DTileset?this.wrapTilesetLayer(t):this.wrapDataSourceLayer(t)}async sortImageryLayers(t,e,i){const s=this.sort(t,e,i);t.removeAll(!1),s.forEach((e=>t.add(e)))}async sort3DTileSets(t,e,i){const s=this.sort(t,e,i);t.removeAll(),s.forEach((e=>t.add(e)))}async sortDataSources(t,e,i){const s=this.sort(t,e,i);t.removeAll(!1),s.forEach((async e=>await t.add(e)))}sort(t,e,i){t.remove(e,!1);const s=[];for(let e=0;e<t.length;e++)s.push(t.get(e));return s.sort(((t,e)=>(t.zIndex||0)-(e.zIndex||0))),e.zIndex=i,s.push(e),s.sort(((t,e)=>(t.zIndex||0)-(e.zIndex||0))),s}wrapImageryLayer(t){const e=this.viewer.imageryLayers;let i={};return{getOptions:()=>i,setOptions(t){i=t},getVisible:()=>t.show,setVisible:e=>{t.show=e},getOpacity:()=>t.alpha,setOpacity:e=>{t.alpha=e},getZIndex:()=>{for(let i=0;i<e.length;i++)if(e.get(i)===t)return i;return-1},setZIndex:async i=>{void 0!==i&&await this.sortImageryLayers(e,t,i)},remove:()=>e.remove(t)}}wrapTilesetLayer(t){const e=this.viewer.scene.primitives;let i={};return{getOptions:()=>i,setOptions(t){i=t},getVisible:()=>t.show,setVisible:e=>{t.show=e},getOpacity:()=>{const e=t.style;if(e.color&&"string"==typeof e.color){const t=e.color.match(/color\(.*?,([\d.]+)\)/);return t?parseFloat(t[1]):1}return 1},setOpacity:e=>{const i=t.style.color;let s;if("string"==typeof i){const t=i.replace(/color\((.*?),[\d.]+\)/,`color($1, ${e})`);s=t.includes("color")?t:`color('white', ${e})`}else s=`color('white', ${e})`;t.style=new this.Cesium.Cesium3DTileStyle({color:s,colorBlendMode:this.Cesium.ColorBlendMode.MIX})},getZIndex:()=>{const e=this.viewer.scene.primitives;for(let i=0;i<e.length;i++)if(e.get(i)===t)return i;return-1},setZIndex:async i=>{void 0!==i&&this.sort3DTileSets(e,t,i)},setColor:(e,i=1)=>{const s=e instanceof this.Cesium.Color?e.toCssHexString():e.replace(/[#\s]/g,"");t.style=new this.Cesium.Cesium3DTileStyle({color:`color('${s}', ${i})`,colorBlendMode:this.Cesium.ColorBlendMode.MIX})},setStyle:e=>{t.style=e instanceof this.Cesium.Cesium3DTileStyle?e:new this.Cesium.Cesium3DTileStyle(e)},remove:()=>this.viewer.scene.primitives.remove(t)}}wrapDataSourceLayer(t){const e=this.viewer.dataSources;let i={};return{getOptions:()=>i,setOptions(t){i=t},getVisible:()=>t.show,setVisible:e=>{t.show=e},getOpacity:()=>1,setOpacity:e=>{t.__vmapLockOpacity||t.entities.values.forEach((t=>{const i=(t,i)=>{const{Color:s,JulianDate:r}=this.Cesium,a=t=>s.fromAlpha(t??i,e,new s);if(!t)return new this.Cesium.ConstantProperty(a(i));const n=t;if(n&&"function"==typeof n.getValue){const t=a(n.getValue(this.viewer?.clock?.currentTime??new r,new s));return"function"==typeof n.setValue?(n.setValue(t),n):new this.Cesium.ConstantProperty(t)}return new this.Cesium.ConstantProperty(a(t instanceof this.Cesium.Color?t:i))};if(t.polygon){const e=t.polygon.material;(e instanceof Cesium.ColorMaterialProperty||e instanceof Cesium.ImageMaterialProperty)&&(e.color=i(e.color,Cesium.Color.WHITE))}if(t.polyline){const e=t.polyline.material;(e instanceof Cesium.ColorMaterialProperty||e instanceof Cesium.PolylineOutlineMaterialProperty)&&(e.color=i(e.color,Cesium.Color.WHITE))}t.point&&(t.point.color=i(t.point.color,Cesium.Color.WHITE)),t.billboard&&(t.billboard.color=i(t.billboard.color,Cesium.Color.WHITE)),t.label&&(t.label.fillColor=i(t.label.fillColor,Cesium.Color.BLACK),t.label.outlineColor&&(t.label.outlineColor=i(t.label.outlineColor,Cesium.Color.BLACK))),t.model&&(t.model.color=i(t.model.color,Cesium.Color.WHITE))}))},getZIndex:()=>{for(let i=0;i<e.length;i++)if(e.get(i)===t)return i;return-1},setZIndex:async i=>{void 0!==i&&await this.sortDataSources(e,t,i)},remove:()=>e.remove(t)}}}class w{locked=!1;queue=[];async runExclusive(t){await this.acquire();try{return await t()}finally{this.release()}}acquire(){return this.locked?new Promise((t=>this.queue.push(t))):(this.locked=!0,Promise.resolve())}release(){const t=this.queue.shift();t?t():this.locked=!1}}function p(t,e){if(!t)throw new Error(e)}const m=new w;class d{tileWidth;tileHeight;tilingScheme;rectangle;errorEvent;credit=void 0;tileDiscardPolicy=void 0;proxy=void 0;hasAlphaChannel=!0;minimumLevel;maximumLevel;Cesium;tileProcessor;resolution;resampleMethod;colorStops;readyPromiseInternal;ready=!1;constructor(t){const{Cesium:e,rectangleDegrees:i,tileProcessor:s,tileSize:r,resolution:a,resampleMethod:n,colorStops:o,minimumLevel:h,maximumLevel:c}=t;this.Cesium=e,this.tileProcessor=s,this.tileWidth=r,this.tileHeight=r,this.resolution=a,this.resampleMethod=n,this.colorStops=o,this.minimumLevel=h??0,this.maximumLevel=c,this.rectangle=e.Rectangle.fromDegrees(i[0],i[1],i[2],i[3]),this.tilingScheme=new e.WebMercatorTilingScheme,this.errorEvent=new e.Event,this.ready=!0,this.readyPromiseInternal=Promise.resolve(!0)}get tilingSchemeName(){return this.tilingScheme instanceof this.Cesium.WebMercatorTilingScheme?"WebMercator":void 0}get readyPromise(){return this.readyPromiseInternal}get tileCredits(){}getTileCredits(t,e,i){}get url(){}flipCanvasVertically(e,i,s){const r=document.createElement("canvas");r.width=i,r.height=s;const a=r.getContext("2d");return a?(a.translate(0,s),a.scale(1,-1),a.drawImage(e,0,0),r):(t("v-map - cesium - failed to get 2d context for flip"),e)}async createFlippedImageBitmap(e,i){if("function"==typeof createImageBitmap)try{const t=document.createElement("canvas");t.width=i,t.height=i;const s=t.getContext("2d");if(!s)throw new Error("Failed to get 2d context");const r=s.createImageData(i,i);r.data.set(e),s.putImageData(r,0,0);const a=this.flipCanvasVertically(t,i,i);return await createImageBitmap(a)}catch(e){return void t("v-map - cesium - createImageBitmap failed, falling back",e)}}async createFlippedImageFromRGBA(e){const i=Math.ceil(this.tileWidth*this.resolution),s=await this.createFlippedImageBitmap(e,i);if(s)return s;const r=document.createElement("canvas");r.width=i,r.height=i;const a=r.getContext("2d");if(!a)return void t("v-map - cesium - unable to acquire canvas 2d context");const n=a.createImageData(i,i);return n.data.set(e),a.putImageData(n,0,0),this.flipCanvasVertically(r,i,i)}async requestImage(i,s,r){if(!this.ready)return;if(r<this.minimumLevel||void 0!==this.maximumLevel&&r>this.maximumLevel)return;const a={x:i,y:s,z:r,tileSize:this.tileWidth,resolution:this.resolution,resampleMethod:this.resampleMethod,colorStops:this.colorStops};let n=null;try{if(n=await this.tileProcessor.getTileData(a),!n)return void e(`v-map - cesium - geotiff - requestImage(${i},${s},${r}): no data returned`);e(`v-map - cesium - geotiff - requestImage(${i},${s},${r}): rgba ${n.length} bytes, sampleSize=${Math.ceil(this.tileWidth*this.resolution)}`)}catch(e){return this.errorEvent.raiseEvent(e),void t("v-map - cesium - getTileData - GeoTIFF tile request failed",e)}try{const t=await this.createFlippedImageFromRGBA(n);return e(`v-map - cesium - geotiff - requestImage(${i},${s},${r}): result=${t?.constructor?.name??"undefined"}, size=${t instanceof HTMLCanvasElement||t instanceof ImageBitmap?`${t.width}x${t.height}`:"n/a"}`),t}catch(e){return this.errorEvent.raiseEvent(e),void t("v-map - cesium - createFlippedImageFromRGBA - GeoTIFF tile request failed",e)}}pickFeatures(){}}const y="v-map - cesium - terrain-geotiff - ";class f{Cesium;image;fromProjection="EPSG:4326";sourceBounds=[0,0,0,0];wgs84Bounds=[0,0,0,0];width=0;height=0;noDataValue=0;ready=!1;_readyPromise;heightmapWidth=65;heightmapHeight=65;proj4;tilingScheme;constructor(t){this.Cesium=t.Cesium,this.tilingScheme=new this.Cesium.GeographicTilingScheme,this._readyPromise=this.initialize(t)}async initialize(t){try{e(`${y}loadGeoTIFF: url=${t.url}`);const[i,{default:s},a]=await Promise.all([import("./p-Be3r33VF.js").then((function(t){return t.g})),import("./p-RpJarvr_.js"),import("./p-CXfA_q8m.js").then((function(t){return t.m}))]),n=await r(t.url,{projection:t.projection,forceProjection:t.forceProjection??!1,nodata:t.nodata},{geotiff:i,proj4:s,geokeysToProj4:a});return this.image=n.baseImage,this.fromProjection=n.fromProjection,this.sourceBounds=n.sourceBounds,this.wgs84Bounds=n.wgs84Bounds,this.width=n.width,this.height=n.height,this.noDataValue=n.noDataValue??0,this.proj4=n.proj4,e(`${y}loaded: projection=${this.fromProjection}, bounds=[${this.sourceBounds.map((t=>t.toFixed(0))).join(",")}], wgs84=[${this.wgs84Bounds.map((t=>t.toFixed(4))).join(",")}], size=${this.width}x${this.height}`),this.ready=!0,!0}catch(t){return i(`${y}failed to load GeoTIFF:`,t),this.ready=!1,!1}}get rectangle(){if(!this.ready||!this.wgs84Bounds)return this.Cesium.Rectangle.MAX_VALUE;const[t,e,i,s]=this.wgs84Bounds;return this.Cesium.Rectangle.fromDegrees(t,e,i,s)}async requestTileGeometry(e,i,s){if(this.ready&&this.image)try{const r=this.tilingScheme.tileXYToRectangle(e,i,s);let a=this.Cesium.Math.toDegrees(r.west),n=this.Cesium.Math.toDegrees(r.south),o=this.Cesium.Math.toDegrees(r.east),h=this.Cesium.Math.toDegrees(r.north);const[c,l,u,w]=this.wgs84Bounds;if(o<c||a>u||h<l||n>w)return this.createFlatHeightmap();a=Math.max(c,Math.min(u,a)),o=Math.max(c,Math.min(u,o)),n=Math.max(l,Math.min(w,n)),h=Math.max(l,Math.min(w,h));const p=e=>{try{return this.proj4("EPSG:4326",this.fromProjection,e)}catch(i){return t(`${y}transform failed:`,i),e}},m=p([a,n]),d=p([o,h]),[f,g,v,b]=this.sourceBounds,S=this.width,C=this.height,$=v-f,L=b-g,G=Math.floor((m[0]-f)/$*S),M=Math.floor((b-d[1])/L*C),k=Math.ceil((d[0]-f)/$*S),F=Math.ceil((b-m[1])/L*C),x=Math.max(0,Math.min(G,S)),E=Math.max(0,Math.min(M,C)),I=Math.max(1,Math.min(k-G,S-x)),T=Math.max(1,Math.min(F-M,C-E)),O=(await this.image.readRasters({window:[x,E,x+I,E+T],width:this.heightmapWidth,height:this.heightmapHeight,resampleMethod:"bilinear"}))[0],A=new Float32Array(this.heightmapWidth*this.heightmapHeight);for(let t=0;t<A.length;t++){let e=O[t];e!==this.noDataValue&&isFinite(e)||(e=0),A[t]=e}return new this.Cesium.HeightmapTerrainData({buffer:A,width:this.heightmapWidth,height:this.heightmapHeight,childTileMask:0,structure:{heightScale:1,heightOffset:0,elementsPerHeight:1,stride:1,elementMultiplier:1}})}catch(e){return t(`${y}failed to load tile geometry:`,e),this.createFlatHeightmap()}}createFlatHeightmap(){const t=new Float32Array(this.heightmapWidth*this.heightmapHeight);return t.fill(0),new this.Cesium.HeightmapTerrainData({buffer:t,width:this.heightmapWidth,height:this.heightmapHeight,childTileMask:0})}get availability(){}getTilingScheme(){return this.tilingScheme}getLevelMaximumGeometricError(t){return this.tilingScheme.ellipsoid.maximumRadius/(65*Math.pow(2,t))}loadTileDataAvailability(t,e,i){}getTileDataAvailable(t,e,i){if(!this.ready)return!1;const s=this.tilingScheme.tileXYToRectangle(t,e,i),r=this.Cesium.Math.toDegrees(s.west),a=this.Cesium.Math.toDegrees(s.south),n=this.Cesium.Math.toDegrees(s.east),o=this.Cesium.Math.toDegrees(s.north),[h,c,l,u]=this.wgs84Bounds;return!(n<h||r>l||o<c||a>u)}get readyPromise(){return this._readyPromise}get credit(){return new this.Cesium.Credit("GeoTIFF Terrain")}get hasWaterMask(){return!1}get hasVertexNormals(){return!1}get errorEvent(){return new this.Cesium.Event}}const g="v-map - cesium - terrain-geotiff - ";class v{Cesium;viewer;provider;options;opacity=1;previousProvider;constructor(t,e,i,s){this.Cesium=t,this.viewer=e,this.provider=i,this.options=s??{},this.previousProvider=e.terrainProvider,this.viewer.terrainProvider=this.provider}getOptions(){return this.options}setOptions(t){this.options=t}getVisible(){return this.viewer.scene.globe.show}setVisible(t){this.viewer.scene.globe.show=t}getOpacity(){return this.opacity}setOpacity(e){this.opacity=e;const i=this.viewer.scene.globe;if(!i.translucency)try{i.translucency=new this.Cesium.GlobeTranslucency,i.translucency.enabled=!0}catch(e){return void t("Cesium terrain opacity not supported",e)}i.translucency.enabled=e<1,i.translucency.frontFaceAlpha=e}getZIndex(){return 0}async setZIndex(t){}remove(){try{this.viewer.terrainProvider=this.previousProvider?this.previousProvider:new this.Cesium.EllipsoidTerrainProvider,this.viewer.scene.globe.show=!0}catch(e){t("Cesium terrain reset failed",e)}}}class b{viewer;Cesium;layerManager;shadowRoot;layerGroups=new l;layerManagerMutex=new w;layerErrorCallbacks=new Map;layerErrorCleanups=new Map;async init(t){this.shadowRoot=t.shadowRoot;const e=t.target.getRootNode()instanceof ShadowRoot?t.target.getRootNode():void 0;await async function(t){const e=`https://cdn.jsdelivr.net/npm/cesium@${s.replace(/^[^\d]*/,"")}/Build/Cesium`,i=`${e}/Widgets/widgets.css`,r=(await(await fetch(i)).text()).replace(/url\((?!['"]?data:)(['"]?)([^'")]+)\1\)/g,((t,i,s)=>`url(${e}/Widgets/${s.replace(/^\.?\//,"")})`));if(t)if("adoptedStyleSheets"in Document.prototype){const e=new CSSStyleSheet;await e.replace(r),t.adoptedStyleSheets=[...t.adoptedStyleSheets??[],e]}else{const e=document.createElement("style");e.textContent=r,t.appendChild(e)}}(e),this.Cesium=await async function(t=s){const e=`https://cdn.jsdelivr.net/npm/cesium@${t.replace(/^[^\d]*/,"")}/Build/Cesium`,i=`${e}/Cesium.js`;await m.runExclusive((async()=>{globalThis.Cesium||await new Promise(((t,e)=>{const s="cesium-cdn-script";if(document.getElementById(s))return t();const r=document.createElement("script");r.id=s,r.async=!0,r.src=i,r.addEventListener("load",(()=>t()),{once:!0}),r.addEventListener("error",(()=>e(new Error(`Laden fehlgeschlagen: ${i}`))),{once:!0}),document.head.appendChild(r)}))}));const r=globalThis.Cesium;p(r,"globalThis.Cesium nicht verfügbar.");const a=r.VERSION;var n,o;return p((n=String(t),o=a,n.match(/^\d+\.\d+/)?.[0]===o.match(/^\d+\.\d+/)?.[0]),`Cesium-Version abweichend: erwartet ~${t}, geladen ${a}`),globalThis.CESIUM_BASE_URL=e,r}(),Cesium.Ion.defaultAccessToken=null,this.viewer=new this.Cesium.Viewer(t.target,{baseLayer:!1,baseLayerPicker:!1,terrainProvider:new Cesium.EllipsoidTerrainProvider}),this.viewer.scene.primitives.removeAll(),this.viewer.scene.backgroundColor=this.Cesium.Color.WHITE,this.viewer.scene.globe.baseColor=this.Cesium.Color.WHITE,this.viewer.scene.globe.depthTestAgainstTerrain=!1,this.layerManager=new u(this.Cesium,this.viewer)}async destroy(){!function(t){if(!t)return;const i=Array.from(t.querySelectorAll("style"));for(const t of i)if(t.textContent?.includes(".cesium-credit-lightbox-overlay")){t.remove(),e("v-map - provider - cesium - Cesium‑Widget‑CSS entfernt");break}}(this.shadowRoot),this.viewer?.destroy(),this.viewer=void 0}async createLayer(t,e){let i=null;switch(t.type){case"geojson":{const s={},r=t,a=await this.createGeoJSONLayer(r,s);i=this.layerManager.addLayer(e,a),i.setOptions(s);break}case"osm":{const s=await this.createOSMLayer(t);i=this.layerManager.addLayer(e,s);break}case"google":{const s=await this.createGoogleLayer(t);i=this.layerManager.addLayer(e,s);break}case"terrain":{const s=await this.createTerrainLayer(t);i=this.layerManager.addCustomLayer(e,s);break}case"xyz":{const s=await this.createXYZLayer(t);i=this.layerManager.addLayer(e,s);break}case"wms":{const s=await this.addWMSLayer(t);i=this.layerManager.addLayer(e,s);break}case"wcs":{const s=await this.createWCSLayer(t);i=this.layerManager.addLayer(e,s);break}case"arcgis":await this.addArcGISLayer(t);break;case"wfs":{const s={clampToGround:!0},r=t,a=await this.createWFSLayer(r,s);i=this.layerManager.addLayer(e,a),i.setOptions(s);break}case"wkt":{const s={clampToGround:!0},r=t,a=await this.createWKTLayer(r,s);i=this.layerManager.addLayer(e,a),i.setOptions(s);break}case"geotiff":{const s=await this.createGeoTIFFLayer(t);i=this.layerManager.addLayer(e,s);break}case"tile3d":{const s=await this.createTile3DLayer(t);i=this.layerManager.addLayer(e,s);const r=t;i.setOptions(r.tilesetOptions??{}),r.cesiumStyle&&"setStyle"in i&&i.setStyle(r.cesiumStyle);break}case"terrain-geotiff":{const s=await this.createGeoTIFFTerrainLayer(t);i=this.layerManager.addCustomLayer(e,s);break}default:throw new Error(`Unsupported layer type: ${t.type}`)}if(!i)return null;const s=t;return void 0!==s.zIndex&&await i.setZIndex(s.zIndex),void 0!==s.opacity&&i.setOpacity(s.opacity),void 0!==s.visible&&i.setVisible(s.visible),i}async addLayerToGroup(t){return await this.layerManagerMutex.runExclusive((async()=>{const e=crypto.randomUUID(),i=await this.createLayer(t,e);return this.layerGroups.addLayerToGroup(t.groupId,void 0===typeof t.groupVisible||t.groupVisible,{id:e,elementId:t.layerElementId??t.elementId??null,layer:i}),this.layerGroups.apply(),e}))}async setBaseLayer(t,e){await this.layerManagerMutex.runExclusive((async()=>{this.layerGroups.setBasemap(t,e??null),this.layerGroups.apply()}))}async addBaseLayer(t,e,i){return i&&e?await this.layerManagerMutex.runExclusive((async()=>{const s=crypto.randomUUID(),r=await this.createLayer(t,s);return this.layerGroups.addLayerToGroup(t.groupId,void 0===typeof t.groupVisible||t.groupVisible,{id:s,elementId:i,layer:r}),this.layerGroups.setBasemap(t.groupId??"basemap",e),this.layerGroups.apply(),s})):null}async ensureGroup(t,e,i){this.layerGroups.ensureGroup(t,e)}async setGroupVisible(t,e){this.layerGroups.setGroupVisible(t,e),this.layerGroups.apply()}onLayerError(t,e){this.layerErrorCallbacks.set(t,e),this.attachCesiumErrorListeners(t)}offLayerError(t){this.layerErrorCleanups.get(t)?.(),this.layerErrorCleanups.delete(t),this.layerErrorCallbacks.delete(t)}attachCesiumErrorListeners(t){this.layerErrorCleanups.get(t)?.();const e=this.layerErrorCallbacks.get(t);if(!e)return;const i=this.layerManager.getLayer(t);if(!i)return;const s=[],r=()=>{e({type:"network",message:"Tile load error"})},a=i._imageryLayer;if(a?.imageryProvider?.errorEvent){const t=a.imageryProvider.errorEvent.addEventListener(r);s.push(t)}const n=i._tileset;if(n?.tileFailed){const t=n.tileFailed.addEventListener(r);s.push(t)}s.length>0&&this.layerErrorCleanups.set(t,(()=>s.forEach((t=>t()))))}async removeLayer(t){t&&(this.offLayerError(t),await this.layerManagerMutex.runExclusive((async()=>{this.layerManager.removeLayer(t),this.layerGroups.removeLayer(t,!0),this.layerGroups.apply()})))}async setOpacity(t,e){this.layerManager.setOpacity(t,e),this.layerGroups.apply()}async setVisible(t,e){this.layerManager.setVisible(t,e),this.layerGroups.apply()}async setZIndex(t,e){await this.layerManager.setZIndex(t,e),this.layerGroups.apply()}applyGeostylerStyling(t,i){t.__vmapLockOpacity=!0;const s=(t,e)=>null==t||"object"==typeof t&&null!==t&&"name"in t?e:t,r=(t,e)=>{if(null==t)return e;if("number"==typeof t)return t;const i=Number(t);return Number.isFinite(i)?i:e},a=t.entities.values;if(i.rules)for(const t of i.rules)if(t.symbolizers)for(const i of t.symbolizers)for(let t=0;t<a.length;t++){const n=a[t];switch(i.kind){case"Fill":if(n.polygon){const t=s(i.color,"rgba(0,100,255,0.3)"),a=r(s(i.opacity,.3),.3),o=s(i.outlineColor,"rgba(0,100,255,1)"),h=s(i.outlineWidth,1);let c=this.parseCesiumColor(t,this.Cesium.Color.BLUE.withAlpha(.3));null!=a&&(c=this.applyCesiumOpacity(c,a));const l=this.parseCesiumColor(o,this.Cesium.Color.BLUE);e("v-map - provider - cesium - applyGeostylerStyling: Fill",{fillColor:t,fillOpacity:a,computedFill:c?.toString?.(),outlineColor:o,outlineWidth:h}),n.polygon.fill=new this.Cesium.ConstantProperty(!0),n.polygon.material=new this.Cesium.ColorMaterialProperty(c),n.polygon.outline=new this.Cesium.ConstantProperty(!0),n.polygon.outlineColor=new this.Cesium.ConstantProperty(l),n.polygon.outlineWidth=new this.Cesium.ConstantProperty(h),n.polygon.extrudedHeight=void 0,n.polygon.heightReference=new this.Cesium.ConstantProperty(this.Cesium.HeightReference.CLAMP_TO_GROUND),n.polygon.perPositionHeight=new this.Cesium.ConstantProperty(!1),n.polygon.classificationType=new this.Cesium.ConstantProperty(this.Cesium.ClassificationType.BOTH)}break;case"Line":if(n.polyline){const t=s(i.color,"rgba(0,100,255,1)"),a=r(s(i.width,2),2),o=r(s(i.opacity,1),1);let h=this.parseCesiumColor(t,this.Cesium.Color.BLUE);null!=o&&(h=this.applyCesiumOpacity(h,o)),e("v-map - provider - cesium - applyGeostylerStyling: Line",{lineColor:t,lineOpacity:o,computedColor:h?.toString?.(),lineWidth:a}),n.polyline.material=new this.Cesium.ColorMaterialProperty(h),n.polyline.width=new this.Cesium.ConstantProperty(a)}break;case"Mark":if(n.point){const t=s(i.color,"rgba(0,100,255,1)"),a=r(s(i.radius,6),6),o=r(s(i.opacity,1),1);let h=this.parseCesiumColor(t,this.Cesium.Color.BLUE);null!=o&&(h=this.applyCesiumOpacity(h,o)),e("v-map - provider - cesium - applyGeostylerStyling: Mark",{pointColor:t,pointOpacity:o,computedColor:h?.toString?.(),pointRadius:a}),n.point.color=new this.Cesium.ConstantProperty(h),n.point.pixelSize=new this.Cesium.ConstantProperty(a)}break;case"Icon":if(n.point){const t=s(i.image),a=r(s(i.size,32),32),o=r(s(i.opacity,1),1);t&&"string"==typeof t&&(n.billboard=new this.Cesium.BillboardGraphics({image:new this.Cesium.ConstantProperty(t),width:new this.Cesium.ConstantProperty(a),height:new this.Cesium.ConstantProperty(a),verticalOrigin:new this.Cesium.ConstantProperty(this.Cesium.VerticalOrigin.BOTTOM),color:null!=o?new this.Cesium.ConstantProperty(this.Cesium.Color.WHITE.withAlpha(o)):void 0}),n.point.show=new this.Cesium.ConstantProperty(!1),e("v-map - provider - cesium - applyGeostylerStyling: Icon",{iconSrc:t,iconSize:a,iconOpacity:o}))}break;case"Text":const t=i.label,a="string"==typeof t?t:void 0;if(a&&n.properties&&n.properties[a]){const t=s(i.color,"#000000"),o=r(s(i.size,12),12),h=r(s(i.opacity,1),1);let c=this.parseCesiumColor(t,this.Cesium.Color.WHITE);null!=h&&(c=this.applyCesiumOpacity(c,h)),e("v-map - provider - cesium - applyGeostylerStyling: Text",{labelProp:a,textColor:t,textOpacity:h,computedColor:c?.toString?.(),textSize:o});const l=n.properties[a]?.getValue?.(this.viewer.clock.currentTime)??n.properties[a]?._value??"";n.label=new this.Cesium.LabelGraphics({text:new this.Cesium.ConstantProperty(String(l)),font:new this.Cesium.ConstantProperty(`${o}px Arial`),fillColor:new this.Cesium.ConstantProperty(c),verticalOrigin:new this.Cesium.ConstantProperty(this.Cesium.VerticalOrigin.BOTTOM)})}}}}parseCesiumColor(t,e){if(!t)return e;if(t.startsWith("#"))return this.Cesium.Color.fromCssColorString(t);if(t.includes("rgb"))return this.Cesium.Color.fromCssColorString(t);try{return this.Cesium.Color.fromCssColorString(t)}catch{return e}}applyCesiumOpacity(t,e){return t?t.withAlpha(e):t}createCesiumStyle(t={}){const e=this.Cesium.Color.BLUE.withAlpha(.3),i=this.Cesium.Color.BLUE,s=this.Cesium.Color.BLUE,r=this.parseCesiumColor(t.fillColor,e),a=this.parseCesiumColor(t.strokeColor,i),n=this.parseCesiumColor(t.pointColor,s),o=void 0!==t.fillOpacity?this.applyCesiumOpacity(r,t.fillOpacity):r,h=void 0!==t.strokeOpacity?this.applyCesiumOpacity(a,t.strokeOpacity):a,c=void 0!==t.pointOpacity?this.applyCesiumOpacity(n,t.pointOpacity):n;return{fill:!0,fillColor:o,outline:!0,outlineColor:h,outlineWidth:t.strokeWidth??2,extrudedHeight:t.extrudeHeight,heightReference:t.zOffset?this.Cesium.HeightReference.RELATIVE_TO_GROUND:this.Cesium.HeightReference.CLAMP_TO_GROUND,pixelSize:t.pointRadius??8,color:c,scaleByDistance:t.pointRadius?new this.Cesium.NearFarScalar(150,2,15e6,.5):void 0,width:t.strokeWidth??2,clampToGround:!t.zOffset,labelText:t.textProperty,labelFont:t.textSize?`${t.textSize}pt monospace`:"12pt monospace",labelFillColor:t.textColor?this.parseCesiumColor(t.textColor,this.Cesium.Color.WHITE):this.Cesium.Color.WHITE,labelOutlineColor:t.textHaloColor?this.parseCesiumColor(t.textHaloColor,this.Cesium.Color.BLACK):this.Cesium.Color.BLACK,labelOutlineWidth:t.textHaloWidth??1,labelPixelOffset:t.textOffset?new this.Cesium.Cartesian2(t.textOffset[0],t.textOffset[1]):this.Cesium.Cartesian2.ZERO,height:t.zOffset??0}}applyEnhancedStyling(t,e={}){const i=this.createCesiumStyle(e),s=t.entities.values;for(let t=0;t<s.length;t++){const r=s[t];let a=i;if(e.styleFunction&&r.properties){const t={properties:r.properties._propertyNames.reduce(((t,e)=>(t[e]=r.properties[e]?._value,t)),{}),geometry:r},s=e.styleFunction(t);s&&(a={...i,...this.createCesiumStyle(s)})}if(r.polygon&&(r.polygon.fill=new this.Cesium.ConstantProperty(a.fill),r.polygon.material=new this.Cesium.ColorMaterialProperty(a.fillColor),r.polygon.outline=new this.Cesium.ConstantProperty(a.outline),r.polygon.outlineColor=new this.Cesium.ConstantProperty(a.outlineColor),r.polygon.outlineWidth=new this.Cesium.ConstantProperty(a.outlineWidth),r.polygon.height=void 0!==a.height?new this.Cesium.ConstantProperty(a.height):void 0,r.polygon.extrudedHeight=void 0!==a.extrudedHeight?new this.Cesium.ConstantProperty(a.extrudedHeight):void 0,r.polygon.heightReference=void 0!==a.heightReference?new this.Cesium.ConstantProperty(a.heightReference):void 0),r.polyline&&(r.polyline.material=new this.Cesium.ColorMaterialProperty(a.outlineColor),r.polyline.width=new this.Cesium.ConstantProperty(a.width),r.polyline.clampToGround=new this.Cesium.ConstantProperty(a.clampToGround)),r.point){r.point.pixelSize=new this.Cesium.ConstantProperty(a.pixelSize),r.point.color=new this.Cesium.ConstantProperty(a.color);const t=a.scaleByDistance;r.point.scaleByDistance=t?new this.Cesium.ConstantProperty(t):void 0,e.iconUrl&&(r.billboard=new this.Cesium.BillboardGraphics({image:new this.Cesium.ConstantProperty(e.iconUrl),width:new this.Cesium.ConstantProperty(e.iconSize?e.iconSize[0]:32),height:new this.Cesium.ConstantProperty(e.iconSize?e.iconSize[1]:32),verticalOrigin:new this.Cesium.ConstantProperty(this.Cesium.VerticalOrigin.BOTTOM),scaleByDistance:t?new this.Cesium.ConstantProperty(t):void 0}),r.point.show=new this.Cesium.ConstantProperty(!1))}if(e.textProperty&&r.properties&&r.properties[e.textProperty]){const t=r.properties[e.textProperty]?.getValue?.(this.viewer.clock.currentTime)??r.properties[e.textProperty]?._value??"";r.label=new this.Cesium.LabelGraphics({text:new this.Cesium.ConstantProperty(String(t)),font:new this.Cesium.ConstantProperty(a.labelFont),fillColor:new this.Cesium.ConstantProperty(a.labelFillColor),outlineColor:new this.Cesium.ConstantProperty(a.labelOutlineColor),outlineWidth:new this.Cesium.ConstantProperty(a.labelOutlineWidth),pixelOffset:new this.Cesium.ConstantProperty(a.labelPixelOffset),verticalOrigin:new this.Cesium.ConstantProperty(this.Cesium.VerticalOrigin.BOTTOM)})}}}async createWKTLayer(t,e){const i=await this.wktToGeoJSON(t),s=await this.Cesium.GeoJsonDataSource.load(i,e);return t.geostylerStyle?this.applyGeostylerStyling(s,t.geostylerStyle):t.style&&this.applyEnhancedStyling(s,t.style),s}async wktToGeoJSON(t){const e=await this.resolveWktText(t),i=await import("./p-DR9McdNX.js").then((function(t){return t.i})),s="function"==typeof i.default?i.default:i.parse;if("function"!=typeof s)throw new Error("wellknown parser not available");const r=s(e);if(!r)throw new Error("Failed to parse WKT");return{type:"FeatureCollection",features:[{type:"Feature",properties:{},geometry:r}]}}async resolveWktText(t){if(t.wkt)return t.wkt;if(t.url){const e=await fetch(t.url);if(!e.ok)throw new Error(`Failed to fetch WKT: ${e.status}`);return await e.text()}throw new Error("Either wkt or url must be provided")}async createGeoJSONLayer(t,e){let i=null;i=t.geojson?JSON.parse(t.geojson):t.url;const s=await this.Cesium.GeoJsonDataSource.load(i,e);return t.geostylerStyle?this.applyGeostylerStyling(s,t.geostylerStyle):t.style&&this.applyEnhancedStyling(s,t.style),s}async createWFSLayer(t,e){const i=await this.fetchWFSFromUrl(t),s=await this.Cesium.GeoJsonDataSource.load(i,e);return t.geostylerStyle?this.applyGeostylerStyling(s,t.geostylerStyle):t.style&&this.applyEnhancedStyling(s,t.style),s}async createOSMLayer(t){return new this.Cesium.ImageryLayer(new this.Cesium.OpenStreetMapImageryProvider({url:t.url||"https://a.tile.openstreetmap.org"}))}async createGoogleLayer(t){if(!t.apiKey)throw new Error("Google-Layer benötigt 'apiKey' (Google Maps Platform).");await this.loadGoogleMapsApi(t.apiKey,{language:t.language,region:t.region,libraries:t.libraries});const e=this.getGoogleMapTypeId(t.mapType||"roadmap"),i=this.Cesium,s=new i.UrlTemplateImageryProvider({url:"https://maps.googleapis.com/maps/api/staticmap?template",maximumLevel:t.maxZoom||19,minimumLevel:0,tilingScheme:new i.WebMercatorTilingScheme,credit:"Google Maps",urlSchemeZeroPadding:{"{x}":"","{y}":"","{z}":""}});return s.buildImageResource=function(s,r,a){const n=(new i.WebMercatorTilingScheme).tileXYToRectangle(s,r,a),o=i.Math.toDegrees(n.west),h=i.Math.toDegrees(n.south),c=i.Math.toDegrees(n.east),l=i.Math.toDegrees(n.north),u=new URLSearchParams({center:`${(h+l)/2},${(o+c)/2}`,zoom:a.toString(),size:"256x256",scale:"scaleFactor1x"===t.scale?"1":"2",maptype:e,key:t.apiKey,format:"png"});t.language&&u.set("language",t.language),t.region&&u.set("region",t.region);const w=`https://maps.googleapis.com/maps/api/staticmap?${u.toString()}`;return new i.Resource({url:w})},this.ensureGoogleLogo(),new this.Cesium.ImageryLayer(s,{alpha:t.opacity??1,show:t.visible??!0})}getGoogleMapTypeId(t){switch(t){case"roadmap":default:return"roadmap";case"satellite":return"satellite";case"terrain":return"terrain";case"hybrid":return"hybrid"}}async loadGoogleMapsApi(t,e){const i=window,s=i.__mockGoogleMapsApi;"function"!=typeof s?i.google?.maps||await new Promise(((s,r)=>{const a="___cesiumGoogleInit___"+Math.random().toString(36).slice(2);i[a]=()=>s();const n=document.createElement("script"),o=new URLSearchParams({key:t,callback:a,v:"weekly"});e?.language&&o.set("language",e.language),e?.region&&o.set("region",e.region),e?.libraries?.length&&o.set("libraries",e.libraries.join(",")),n.src=`https://maps.googleapis.com/maps/api/js?${o.toString()}`,n.async=!0,n.onerror=()=>r(new Error("Google Maps JS API failed to load")),document.head.appendChild(n)})):await s(t,e)}ensureGoogleLogo(){if(!this.viewer?.container||this.viewer.container._googleLogoAdded)return;const t=document.createElement("img");t.src="https://developers.google.com/static/maps/documentation/images/google_on_white.png",t.alt="Google",t.style.position="absolute",t.style.bottom="6px",t.style.left="6px",t.style.height="18px",t.style.pointerEvents="none",t.style.zIndex="1000",this.viewer.container.appendChild(t),this.viewer.container._googleLogoAdded=!0}async createXYZLayer(t){if(!t.url)throw new Error("XYZ layer requires a url");const e=Array.isArray(t.attributions)?t.attributions.join(", "):t.attributions,i={url:t.url,credit:e,maximumLevel:t.maxZoom,...t.options||{}},s=new this.Cesium.UrlTemplateImageryProvider(i);return new this.Cesium.ImageryLayer(s,{alpha:t.opacity??1,show:t.visible??!0})}async createTerrainLayer(t){let e;e=t.elevationData?await this.Cesium.CesiumTerrainProvider.fromUrl(t.elevationData):await this.Cesium.createWorldTerrainAsync();const i=new v(this.Cesium,this.viewer,e,t);return void 0!==t.visible&&i.setVisible(t.visible),void 0!==t.opacity&&i.setOpacity(t.opacity),i}async createGeoTIFFTerrainLayer(t){if(!t.url){e(`${g}layer created without URL, waiting for URL to load`);const i=new this.Cesium.EllipsoidTerrainProvider,s=new v(this.Cesium,this.viewer,i,t);return s.setVisible(!1),s}try{e(`${g}create layer: url=${t.url}`);const i=await async function(t){const e=new f(t);return await e.readyPromise,e}({url:t.url,projection:t.projection,forceProjection:t.forceProjection,nodata:t.nodata,Cesium:this.Cesium}),s=new v(this.Cesium,this.viewer,i,t);return void 0!==t.visible&&s.setVisible(t.visible),void 0!==t.opacity&&s.setOpacity(t.opacity),e(`${g}layer created successfully`),s}catch(e){i(`${g}failed to create terrain layer:`,e);const s=new this.Cesium.EllipsoidTerrainProvider;return new v(this.Cesium,this.viewer,s,t)}}async addWMSLayer(t){return new this.Cesium.ImageryLayer(new this.Cesium.WebMapServiceImageryProvider({url:t.url,layers:t.layers,parameters:t.extraParams}))}async createWCSLayer(t){if(!t.url||!t.coverageName)throw new Error("WCS layer requires url and coverageName");const e=t.version??"2.0.1",i=t.format??"image/tiff",s=t.projection??"EPSG:4326",r=t.tileSize??256,a=this.Cesium,n=new a.UrlTemplateImageryProvider({url:`${t.url}?wcs_placeholder`,maximumLevel:t.maxZoom??18,minimumLevel:t.minZoom??0,tileWidth:r,tileHeight:r,tilingScheme:new a.GeographicTilingScheme,credit:"WCS"});return n.buildImageResource=function(n,o,h){const c=(new a.GeographicTilingScheme).tileXYToRectangle(n,o,h),l=a.Math.toDegrees(c.west),u=a.Math.toDegrees(c.south),w=a.Math.toDegrees(c.east),p=a.Math.toDegrees(c.north),m={SERVICE:"WCS",REQUEST:"GetCoverage",VERSION:e,FORMAT:i};let d;if(e.startsWith("2.0")){const e={...m,coverageId:t.coverageName,...t.params||{}};(i.includes("tiff")||i.includes("geotiff"))&&(e["geotiff:compression"]="LZW");const s=new URLSearchParams;Object.entries(e).forEach((([t,e])=>{null!=e&&s.set(t,String(e))}));const r=s.toString(),a=`subset=X(${l},${w})`,n=`subset=Y(${u},${p})`;d=`${t.url}${t.url.includes("?")?"&":"?"}${r}&${a}&${n}`}else{const e={...m,COVERAGE:t.coverageName,BBOX:`${l},${u},${w},${p}`,CRS:s,WIDTH:String(r),HEIGHT:String(r),...t.params||{}},i=new URLSearchParams;Object.entries(e).forEach((([t,e])=>{null!=e&&i.set(t,String(e))})),d=`${t.url}${t.url.includes("?")?"&":"?"}${i.toString()}`}return new a.Resource({url:d})},new this.Cesium.ImageryLayer(n,{alpha:t.opacity??1,show:t.visible??!0})}async addArcGISLayer(t){const e=await this.Cesium.ArcGisMapServerImageryProvider.fromUrl(t.url);this.viewer.imageryLayers.addImageryProvider(e)}async createGeoTIFFLayer(t){if(!t.url)throw new Error("GeoTIFF layer requires a URL");try{const e=t,i=await a(t.url,e.projection,e.forceProjection,t.nodata),s=await n(i,"EPSG:3857"),r=new o(s);let c;if(r.createGlobalTriangulation(),t.colorMap){const{stops:e}=h(t.colorMap,t.valueRange);c=e}const l=new d({Cesium:this.Cesium,rectangleDegrees:i.wgs84Bounds,tileProcessor:r,tileSize:t.tileSize??256,resolution:t.resolution??1,resampleMethod:t.resampleMethod??"bilinear",colorStops:c}),u=new this.Cesium.ImageryLayer(l,{alpha:t.opacity??1,show:t.visible??!0});return u.__vmapGeoTIFFMeta={url:t.url,width:i.width,height:i.height,samplesPerPixel:i.samplesPerPixel,noData:i.noDataValue},u}catch(t){i("v-map - provider - cesium - Failed to create GeoTIFF layer",t);const e=new this.Cesium.SingleTileImageryProvider({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==",rectangle:this.Cesium.Rectangle.fromDegrees(-180,-90,180,90)});return new this.Cesium.ImageryLayer(e,{alpha:0,show:!1})}}async createTile3DLayer(t){if(!t.url)throw new Error("Tile3D layer requires a URL");const e=await this.Cesium.Cesium3DTileset.fromUrl(t.url,t.tilesetOptions??{});return t.cesiumStyle&&(e.style=new this.Cesium.Cesium3DTileStyle(t.cesiumStyle)),e}async updateLayer(t,e){return await this.layerManagerMutex.runExclusive((async()=>{const i=this.layerErrorCallbacks.has(t);i&&this.offLayerError(t);const s=this.layerManager.getLayer(t);switch(e.type){case"geojson":{const i=e.data,r=s.getOptions(),a=await this.createGeoJSONLayer({geojson:i.geojson,url:i.url,style:i.style,geostylerStyle:i.geostylerStyle},r);this.layerManager.replaceLayer(t,s,a).setOptions(r)}break;case"wfs":{const i=e.data,r=s.getOptions(),a=await this.createWFSLayer(i,r);this.layerManager.replaceLayer(t,s,a).setOptions(r)}break;case"osm":{const i=s.getOptions(),r=new this.Cesium.ImageryLayer(new this.Cesium.OpenStreetMapImageryProvider({url:e.data.url||"https://a.tile.openstreetmap.org"}));this.layerManager.replaceLayer(t,s,r).setOptions(i)}break;case"google":{const i=s.getOptions(),r=await this.createGoogleLayer(e.data);this.layerManager.replaceLayer(t,s,r).setOptions(i)}break;case"xyz":{const i=s.getOptions(),r=await this.createXYZLayer(e.data);this.layerManager.replaceLayer(t,s,r).setOptions(i)}break;case"wcs":{const i=s.getOptions(),r=await this.createWCSLayer(e.data);this.layerManager.replaceLayer(t,s,r).setOptions(i)}break;case"wkt":{const i=e.data,r=s.getOptions(),a=await this.createWKTLayer({wkt:i.wkt,url:i.url,style:i.style,geostylerStyle:i.geostylerStyle},r);this.layerManager.replaceLayer(t,s,a).setOptions(r)}break;case"geotiff":{const i=e.data,r=await this.createGeoTIFFLayer({url:i.url});this.layerManager.replaceLayer(t,s,r)}break;case"tile3d":{const i=e.data??{};if(!i.url)throw new Error("tile3d update requires a url");const r=await this.createTile3DLayer({type:"tile3d",url:i.url,tilesetOptions:i.tilesetOptions,cesiumStyle:i.cesiumStyle}),a=this.layerManager.replaceLayer(t,s,r);a.setOptions(i.tilesetOptions??{}),i.cesiumStyle&&"setStyle"in a&&a.setStyle(i.cesiumStyle)}break;case"tile3d-style":"setStyle"in s&&s.setStyle((e.data??{}).style??{});break;case"terrain":{const i=s.getOptions(),r=s.getVisible(),a=s.getOpacity();s.remove();const n=await this.createTerrainLayer({type:"terrain",...i,...e.data??{}}),o=this.layerManager.addCustomLayer(t,n);o.setVisible(r),o.setOpacity(a)}break;case"terrain-geotiff":{s.remove();const i=await this.createGeoTIFFTerrainLayer({type:"terrain-geotiff",...e.data??{}});this.layerManager.addCustomLayer(t,i)}}i&&this.attachCesiumErrorListeners(t)}))}async setView(i,s){if(!this.viewer)return;const[r,a]=i;this.viewer.camera.flyTo({destination:this.Cesium.Cartesian3.fromDegrees(r,a,1e6/s),duration:2,orientation:{heading:this.Cesium.Math.toRadians(0),pitch:this.Cesium.Math.toRadians(-30),roll:0},complete:()=>e("v-map - provider - cesium - Fly‑to finished"),cancel:()=>t("v-map - provider - cesium - Fly‑to cancelled")})}async fetchWFSFromUrl(t){const e={service:"WFS",request:"GetFeature",version:t.version??"1.1.0",typeName:t.typeName,outputFormat:t.outputFormat??"application/json",srsName:t.srsName??"EPSG:4326",...t.params??{}},i=this.appendParams(t.url,e),s=await fetch(i);if(!s.ok)throw new Error(`WFS request failed (${s.status} ${s.statusText})`);const r=(t.outputFormat??"application/json").toLowerCase();if(r.includes("json")||r.includes("geojson")||"application/json"===r){const t=s.headers.get("content-type");if(t?.includes("application/json"))return await s.json();const e=await s.text();return JSON.parse(e)}if(r.includes("gml")||r.includes("xml")){const t=await s.text(),{GmlParser:e}=await import("./p-DhQAXuA7.js"),i=new e;return await i.parse(t)}return await s.json()}appendParams(t,e){const i=new URLSearchParams;return Object.entries(e).forEach((([t,e])=>{null!=e&&i.set(t,String(e))})),i.toString()?`${t}${t.includes("?")?"&":"?"}${i.toString()}`:t}}export{b as CesiumProvider}
|
package/dist/v-map/p-BxFJezdK.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as t,c as e,g as s,h as a}from"./p-jzneDarq.js";import{l as i,V as n,M as o}from"./p-CMKJzsgL.js";import{V as r}from"./p-BdijL4Av.js";const l="1.139.1",h="10.8.0",d="1.9.4",c=()=>"undefined"!=typeof window&&"undefined"!=typeof document,p=()=>c()&&"adoptedStyleSheets"in document&&"function"==typeof CSSStyleSheet.prototype.replaceSync;function u(t){"undefined"!=typeof requestAnimationFrame?requestAnimationFrame(t):setTimeout(t,0)}function m(t,e,s){if(void 0!==globalThis.ResizeObserver){const s=new globalThis.ResizeObserver((()=>e()));return s.observe(t),()=>s.disconnect()}const a=()=>u(e);let i;"undefined"!=typeof window&&window.addEventListener("resize",a),"undefined"!=typeof MutationObserver&&(i=new MutationObserver((()=>u(e))),s?i.observe(t,s):i.observe(t));const n="undefined"==typeof window?void 0:setInterval((()=>e()),250);return()=>{"undefined"!=typeof window&&window.removeEventListener("resize",a),i?.disconnect(),n&&clearInterval(n)}}const y={async init(){},async destroy(){},async setOpacity(){},async setVisible(){},async setZIndex(){},addLayerToGroup:async()=>null,async updateLayer(){},async removeLayer(){},async setView(){},addBaseLayer:async()=>null,async setBaseLayer(){},async ensureGroup(){},async setGroupVisible(){}},g="v-map - ",w=class{constructor(s){t(this,s),this.mapProviderReady=e(this,"mapProviderReady",5)}get el(){return s(this)}flavour="ol";center="0,0";zoom=2;useDefaultImportMap=!0;cssMode="cdn";mapProviderReady;mapProvider;mapState="unavailable";mapContainer;unsubscribeResize;unsubscribePointerMove=null;async onFlavourChanged(t,e){i(g+"onFlavourChanged"),t!==e&&this.reset()}reset(){this.unsubscribeResize?.(),this.unsubscribePointerMove?.(),this.unsubscribePointerMove=null;const t=this.mapProvider;this.mapProvider=null,this.el.__vMapProvider=null,this.el.dispatchEvent(new CustomEvent(n.MapProviderWillShutdown,{detail:{mapProvider:y},bubbles:!1,composed:!1,cancelable:!0})),t?.destroy(),this.mapState="unavailable"}async createMap(){if(this.mapContainer=this.ensureContainer(),"creating"===this.mapState)return void i("Map already in creating state.");this.mapState="creating",this.mapProvider=await async function(t){try{switch(t){case"ol":{const{OpenLayersProvider:t}=await import("./p-WaMDUuAz.js");return new t}case"cesium":{const{CesiumProvider:t}=await import("./p-BeFu0ap4.js");return new t}case"deck":{const{DeckProvider:t}=await import("./p-MyTSFnEk.js").then((function(t){return t.aX}));return new t}case"leaflet":{const{LeafletProvider:t}=await import("./p--vVleK-M.js");return new t}default:return function(t,e){throw new Error(e??`Unbekannte Engine: ${String(t)}`)}(t,`Unbekannte Engine: ${t}`)}}catch(t){throw i(t),t}}(this.flavour);const t={zoom:this.zoom};if(this.center){const e=this.center.split(",").map(parseFloat),[s,a]=e;if(!Number.isFinite(s)||!Number.isFinite(a))throw new Error(`<v-map>: Ungültiges center-Prop: "${this.center}" (erwartet "lon,lat")`);t.center=e}const e={target:this.mapContainer,shadowRoot:this.el.shadowRoot,mapInitOptions:t,cssMode:this.cssMode};await this.mapProvider.init(e),this.mapState="available",this.el.__vMapProvider=this.mapProvider,this.unsubscribeResize=m(this.el,(async()=>{await(this.mapProvider?.setView(t.center,t.zoom))})),this.el.dispatchEvent(new CustomEvent(n.MapProviderReady,{detail:{mapProvider:this.mapProvider},bubbles:!1,composed:!1,cancelable:!0})),this.mapProvider?.onPointerMove&&(this.unsubscribePointerMove=this.mapProvider.onPointerMove(((t,e)=>{this.el.dispatchEvent(new CustomEvent(n.MapMouseMove,{detail:{coordinate:t,pixel:e},bubbles:!0,composed:!0}))})))}async componentWillLoad(){i(g+o.COMPONENT_WILL_LOAD),this.useDefaultImportMap&&(i(g+o.COMPONENT_WILL_LOAD+" - useDefaultImportMap"),function({allowOverride:t=!0}={}){if(!(t&&document.querySelector('script[type="importmap"]')||document.querySelector('script[type="importmap"][data-v-map]'))){const t=document.createElement("script");t.type="importmap",t.dataset.vMap="true",t.textContent='{\n "imports": {\n "ol/": "https://esm.sh/ol@10.8.0/",\n "ol": "https://esm.sh/ol@10.8.0",\n "leaflet": "https://esm.sh/leaflet@1.9.4",\n "deck": "https://esm.sh/deck@9.2.11",\n "@loaders.gl/core": "https://esm.sh/@loaders.gl/core@4.3.4",\n "@loaders.gl/3d-tiles": "https://esm.sh/@loaders.gl/3d-tiles@4.3.4",\n "@loaders.gl/gis": "https://esm.sh/@loaders.gl/gis@4.3.4",\n "@loaders.gl/gltf": "https://esm.sh/@loaders.gl/gltf@4.3.4",\n "@loaders.gl/images": "https://esm.sh/@loaders.gl/images@4.3.4",\n "@loaders.gl/loader-utils": "https://esm.sh/@loaders.gl/loader-utils@4.3.4",\n "@loaders.gl/mvt": "https://esm.sh/@loaders.gl/mvt@4.3.4",\n "@loaders.gl/schema": "https://esm.sh/@loaders.gl/schema@4.3.4",\n "@loaders.gl/terrain": "https://esm.sh/@loaders.gl/terrain@4.3.4",\n "@loaders.gl/textures": "https://esm.sh/@loaders.gl/textures@4.3.4",\n "@loaders.gl/tiles": "https://esm.sh/@loaders.gl/tiles@4.3.4",\n "@loaders.gl/wms": "https://esm.sh/@loaders.gl/wms@4.3.4"\n }\n}',document.head.appendChild(t)}}())}async componentWillRender(){i(g+o.COMPONENT_WILL_RENDER)}async componentDidRender(){i(g+o.COMPONENT_DID_RENDER),await this.createMap(),this.el.addEventListener(n.MapProviderReady,(t=>{i(g+"test - event: ",t)}))}disconnectedCallback(){i(g+o.COMPONENT_DISCONNECTED_CALLBACK),this.reset()}async isMapProviderReady(){const t=null!=this.mapProvider&&this.mapProvider!==y;return t||i(g+"Map provider not yet ready."),t}async setView(t,e){if(!this.mapProvider||this.mapProvider==y)throw new Error(g+"Map-Provider noch nicht initialisiert.");await Promise.resolve(this.mapProvider?.setView(t,e))}ensureContainer(){let t=this.el.shadowRoot.querySelector("#map");return t||(t=document.createElement("div"),t.id="map",t.style.cssText="position:relative;width:100%;height:100%;display:block;",this.el.shadowRoot.appendChild(t)),t}render(){return i(g+o.COMPONENT_RENDER),a("div",{key:"41aca26c5cab5a3d7fef6169e9c4b8d27c7e65db"},a("slot",{key:"4b04986c721a478cdfb900491e44106778c07df7"}))}static get watchers(){return{flavour:[{onFlavourChanged:0}]}}};w.style=":host{display:block}";const b="v-map-layer-osm - ",v=class{constructor(s){t(this,s),this.ready=e(this,"ready",7)}get el(){return s(this)}loadState="idle";visible=!0;opacity=1;zIndex=10;url="https://tile.openstreetmap.org";ready;didLoad=!1;hasLoadedOnce=!1;helper;setLoadState(t){this.loadState=t}async getError(){return this.helper?.getError()}async onVisibleChanged(){i(b+"onVisibleChanged"),await(this.helper?.setVisible(this.visible))}async onOpacityChanged(){i(b+"onOpacityChanged"),await(this.helper?.setOpacity(this.opacity))}async onZIndexChanged(){i(b+"onZIndexChanged"),await(this.helper?.setZIndex(this.zIndex))}async onUrlChanged(t,e){i(b+"onUrlChanged"),t!==e&&await(this.helper?.updateLayer({type:"osm",data:{url:this.url}}))}isReady(){return this.didLoad}async getLayerId(){return this.helper?.getLayerId()}createLayerConfig(){return{type:"osm",url:this.url,visible:this.visible,zIndex:this.zIndex,opacity:this.opacity}}async connectedCallback(){i(b+o.COMPONENT_CONNECTED_CALLBACK),this.hasLoadedOnce&&(this.helper.startLoading(),await this.helper.initLayer((()=>this.createLayerConfig()),this.el.id))}async componentWillLoad(){i(b+o.COMPONENT_WILL_LOAD),this.helper=new r(this.el,this)}async componentDidLoad(){i(b+o.COMPONENT_DID_LOAD),this.helper.startLoading(),await this.helper.initLayer((()=>this.createLayerConfig()),this.el.id),this.hasLoadedOnce=!0,this.didLoad=!0,this.ready.emit()}async componentWillRender(){i(b+o.COMPONENT_WILL_RENDER)}async disconnectedCallback(){i(b+o.COMPONENT_DISCONNECTED_CALLBACK),await(this.helper?.dispose())}render(){}static get watchers(){return{visible:[{onVisibleChanged:0}],opacity:[{onOpacityChanged:0}],zIndex:[{onZIndexChanged:0}],url:[{onUrlChanged:0}]}}};v.style=":host{display:none;}";const f="v-map-layergroup - ",C=class{constructor(e){t(this,e)}get el(){return s(this)}visible=!0;opacity=1;basemapid=null;mapProvider=null;groupId=crypto.randomUUID();async onVisibleChanged(){i(f+"onVisibleChanged"),this.mapProvider?.setGroupVisible&&await this.mapProvider.setGroupVisible(this.groupId,this.visible)}async onBaseMapIdChanged(){i(f+"onBaseMapIdChanged"),this.mapProvider?.setBaseLayer&&await this.mapProvider.setBaseLayer(this.groupId,this.basemapid)}async init(t){null==this.mapProvider&&(this.mapProvider=t,null!==this.mapProvider&&(this.mapProvider?.ensureGroup&&await this.mapProvider.ensureGroup(this.groupId,this.visible,{basemapid:this.basemapid}),await(this.mapProvider?.setGroupVisible(this.groupId,this.visible)),await(this.mapProvider?.setBaseLayer(this.groupId,this.basemapid))))}async connectedCallback(){i(f+o.COMPONENT_CONNECTED_CALLBACK);const t=this.el.closest("v-map");await customElements.whenDefined("v-map");const e=t;if(!0===await(t?.isMapProviderReady?.())){const e=t?.__vMapProvider??null;await this.init(e)}e?.addEventListener(n.MapProviderReady,(async t=>{i(`${f}map provider ready`);const e=t.detail;await this.init(e.mapProvider)})),e?.addEventListener(n.MapProviderWillShutdown,(async()=>{i(`${f}map provider shutting down`),this.mapProvider=null}))}async componentWillLoad(){i(f+o.COMPONENT_WILL_LOAD)}async componentDidLoad(){i(f+o.COMPONENT_DID_LOAD)}async componentWillRender(){i(f+o.COMPONENT_WILL_RENDER)}async getGroupId(){return this.groupId}render(){return a("slot",{key:"584a5816d8f73071bf257e3f70a4c2baea2d2f56"})}static get watchers(){return{visible:[{onVisibleChanged:0}],basemapid:[{onBaseMapIdChanged:0}]}}};C.style=":host{display:none;}";export{l as C,d as L,h as O,w as V,v as a,C as b,c as i,p as s,m as w}
|
package/dist/v-map/p-DCTHyf58.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export{S as SimpleMeshLayer}from"./p-MyTSFnEk.js";export{S as ScenegraphLayer}from"./p-DrOQ9V4h.js";import"./p-B-bAcABs.js";import"./p-DhQAXuA7.js";import"./p-DR9McdNX.js";import"./p-E-ZsRS8r.js";import"./p-CMKJzsgL.js";import"./p-Dckgonw8.js";import"@loaders.gl/core";import"@loaders.gl/images";import"@loaders.gl/loader-utils";import"@loaders.gl/terrain";import"@loaders.gl/schema";import"@loaders.gl/gltf";
|
package/dist/v-map/p-WaMDUuAz.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import e from"ol/Map";import t from"ol/View";import r from"ol/layer/Vector";import o from"ol/layer/Group";import s from"ol/layer/Tile";import n from"ol/layer/Image";import a from"ol/source/Vector";import i from"ol/source/TileWMS";import c from"ol/source/OSM";import l from"ol/source/XYZ";import u from"ol/source/Google";import f from"ol/source/TileArcGISRest";import w from"ol/Image";import y from"ol/source/Image";import h from"ol/format/GeoJSON";import p from"ol/format/GML2";import m from"ol/format/GML3";import d from"ol/format/GML32";import g from"ol/format/WKT";import b from"ol/control/Control";import L from"ol/style/Style";import S from"ol/style/Fill";import j from"ol/style/Stroke";import G from"ol/style/Circle";import I from"ol/style/Icon";import v from"ol/style/Text";import{bbox as E}from"ol/loadingstrategy";import{get as F,fromLonLat as k}from"ol/proj";import{D as $}from"./p-B-bAcABs.js";import{w as P,e as T,l as x}from"./p-CMKJzsgL.js";import{O as W}from"./p-BxFJezdK.js";import C from"./p-RpJarvr_.js";import M from"ol/source/GeoTIFF";import{g as O}from"./p-CXfA_q8m.js";import{register as A}from"ol/proj/proj4";import R from"ol/layer/WebGLTile";import"./p-jzneDarq.js";import"./p-BdijL4Av.js";import"./p-E-ZsRS8r.js";async function z(e){return class extends M{geoKeys_=null;constructor(){super(e)}async getGeoKeys(){if(null!==this.geoKeys_)return this.geoKeys_;await this.getView();const e=this.sourceImagery_;return e&&e.length>0&&this.determineGeoKeys(e),this.geoKeys_}determineGeoKeys(e){if(!e||0===e.length)return;const t=e[0];for(let e=t.length-1;e>=0;--e){const o="function"==typeof(r=t[e]).getGeoKeys?r.getGeoKeys()||null:r.geoKeys||null;if(o){this.geoKeys_=o;break}}var r}async getProjectionParameters(){const e=await this.getGeoKeys();return e?O.toProj4(e):null}async getProj4String(){const e=await this.getProjectionParameters();return e&&e.proj4||null}async registerProjectionIfNeeded(){try{const e=await this.getProj4String(),t=this.getProjection()?.getCode();return F(t)||(null===e?(P(`Can not get proj string for code: ${t}`),null):(C.defs(t,e),A(C),F(t)))}catch(e){return T("Fehler bei der Registrierung der Projektion:",e),null}}}}class K{map;layers=[];baseLayers=[];googleLogoAdded=!1;projection="EPSG:3857";layerErrorCallbacks=new globalThis.Map;layerErrorCleanups=new globalThis.Map;async init(r){await async function(e){if(!e)return;const t="ol-css-sheet";if(e.querySelector(`style[data-id="${t}"]`))return;const r=`https://cdn.jsdelivr.net/npm/ol@${W}/ol.css`,o=await(await fetch(r)).text();if("adoptedStyleSheets"in Document.prototype){const t=new CSSStyleSheet;await t.replace(o),e.adoptedStyleSheets=[...e.adoptedStyleSheets??[],t]}else{const r=document.createElement("style");r.setAttribute("data-id",t),r.textContent=o,e.appendChild(r)}}(r.shadowRoot),Object.assign(r.target.style,{width:"100%",height:"100%",position:"relative",background:"#fff"}),this.map=new e({target:r.target,layers:[],view:new t({projection:this.projection,center:k(r?.mapInitOptions?.center??[0,0]),zoom:r?.mapInitOptions?.zoom??2})}),new ResizeObserver((()=>this.map?.updateSize())).observe(r.target)}async destroy(){this.map?.setTarget(void 0),this.map=void 0}async updateLayer(e,t){const r=await this._getLayerById(e);switch(t.type){case"geojson":await this.updateGeoJSONLayer(r,t.data);break;case"osm":await this.updateOSMLayer(r,t.data);break;case"wms":await this.updateWMSLayer(r,t.data);break;case"wfs":await this.updateWFSLayer(r,t.data);break;case"wcs":await this.updateWCSLayer(r,t.data);break;case"arcgis":await this.updateArcGISLayer(r,t.data);break;case"wkt":await this.updateWKTLayer(r,t.data);break;case"geotiff":await this.updateGeoTIFFLayer(r,t.data)}}async ensureGroup(e,t,r){await this._ensureGroup(e,t)}async _ensureGroup(e,t){if(!this.map)return null;let r=this.layers.find((t=>t.get?.("groupId")===e));return r||(r=new o({layers:[],properties:{groupId:e,visible:void 0===typeof t||t}}),this.map.addLayer(r),this.layers.push(r)),r}async setBaseLayer(e,t){if(null===t)return void x("ol - setBaseLayer - layerElementId is null.");const r=this.layers.find((t=>t.get?.("groupId")===e)),o=this.baseLayers.find((e=>e.get("layerElementId")===t));void 0!==o?(r.getLayers().clear(),r.getLayers().push(o)):x("ol - setBaseLayer - layer not found. layerElementId: "+t)}async addBaseLayer(e,t,r){if(null==r)return x("ol - addBaseLayer - layerElementId not set."),null;null==t&&x("ol - addBaseLayer - basemapid not set.");const o=await this._ensureGroup(e.groupId,e.groupVisible);if(null==o)return null;o.set("basemap",!0,!1);const s=await this.createLayer(e);if(null==s)return null;s.set("group",o),this.baseLayers.push(s);let n=null;if(s){n=crypto.randomUUID(),s.set("id",n,!1),s.set("layerElementId",r,!1);const a=e;void 0!==a.opacity&&s.setOpacity(a.opacity),void 0!==a.zIndex&&s.setZIndex(a.zIndex),a.visible?s.setVisible(!0):!1===a.visible&&s.setVisible(!1),t===r&&(o.getLayers().clear(),o.getLayers().push(s))}return n}async addLayerToGroup(e){const t=await this._ensureGroup(e.groupId,e.groupVisible);if(null==t)return null;const r=await this.createLayer(e);if(null===r)return null;r.set("group",t),t.getLayers().push(r);const o=crypto.randomUUID();r.set("id",o,!1);const s=e;return void 0!==s.opacity&&r.setOpacity(s.opacity),void 0!==s.zIndex&&r.setZIndex(s.zIndex),s.visible?r.setVisible(!0):!1===s.visible&&r.setVisible(!1),o}async createLayer(e){switch(e.type){case"geojson":return this.createGeoJSONLayer(e);case"xyz":return this.createXYZLayer(e);case"google":return this.createGoogleLayer(e);case"osm":return this.createOSMLayer(e);case"wms":return this.createWMSLayer(e);case"wfs":return this.createWFSLayer(e);case"wcs":return this.createWCSLayer(e);case"arcgis":return this.createArcGISLayer(e);case"wkt":return this.createWKTLayer(e);case"geotiff":return this.createGeoTIFFLayer(e);default:throw new Error(`Unsupported layer type: ${e.type}`)}}async updateWMSLayer(e,t){e.setSource(new i({url:t.url,params:{LAYERS:t.layers,TILED:!0,...t.extraParams??{}}}))}async updateOSMLayer(e,t){let r="https://tile.openstreetmap.org/{z}/{x}/{y}.png";t.url&&(r=t.url+"/{z}/{x}/{y}.png"),e.setSource(new c({url:r}))}async updateGeoJSONLayer(e,t){let r=null;const o={featureProjection:this.projection};if(t.geojson){const e=JSON.parse(t.geojson);r=new a({features:new h(o).readFeatures(e)})}else r=new a({url:t.url,format:new h(o)});let s;e.setSource(r),t.geostylerStyle?s=await this.createGeostylerStyleFunction(t.geostylerStyle):t.style&&(s=await this.createEnhancedStyleFunction(t.style)),s&&e.setStyle(s)}async updateWFSLayer(e,t){const r=this.mergeLayerConfig(e,"wfsConfig",t),o=await this.createWFSSpource(r);let s;e.setSource(o),r.geostylerStyle?s=await this.createGeostylerStyleFunction(r.geostylerStyle):r.style&&(s=await this.createEnhancedStyleFunction(r.style)),s&&e.setStyle(s)}async updateWCSLayer(e,t){const r=this.mergeLayerConfig(e,"wcsConfig",t),o=await this.createWcsSource(r);e.setSource(o)}async updateArcGISLayer(e,t){const r=e,o=r.getSource(),s={...o?.getParams?.()??{},...t?.params??{}};t?.token&&(s.token=t.token);const n={url:t?.url??o?.getUrls?.()?.[0],params:s,...t?.options??{}},a=new f(n);r.setSource(a)}async createEnhancedStyleFunction(e){function t(e,t){if(e.startsWith("rgba")){const r=e.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/);if(r){const[,e,o,s]=r;return`rgba(${e}, ${o}, ${s}, ${t})`}}else if(e.startsWith("rgb")){const r=e.match(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/);if(r){const[,e,o,s]=r;return`rgba(${e}, ${o}, ${s}, ${t})`}}else if(e.startsWith("#")){const r=e.slice(1);return`rgba(${parseInt(r.slice(0,2),16)}, ${parseInt(r.slice(2,4),16)}, ${parseInt(r.slice(4,6),16)}, ${t})`}return e}return r=>{const o=[],s=r.getGeometry().getType(),n=new S({color:t(e.fillColor??"rgba(0,100,255,0.3)",e.fillOpacity??.3)}),a=e.strokeWidth??2,i=new j({color:t(e.strokeColor??"rgba(0,100,255,1)",e.strokeOpacity??1),width:a,lineDash:e.strokeDashArray});if(o.push(new L("Point"===s?e.iconUrl?{image:new I({src:e.iconUrl,size:e.iconSize||[32,32],anchor:e.iconAnchor||[.5,1]})}:{image:new G({radius:e.pointRadius??6,fill:new S({color:t(e.pointColor??"rgba(0,100,255,1)",e.pointOpacity??1)}),stroke:i})}:{fill:s.includes("Polygon")?n:void 0,stroke:i})),e.textProperty&&r.get(e.textProperty)){const t=e.textColor??"#000000",s=e.textSize??12,n=e.textHaloColor,a=e.textHaloWidth??2,i=e.textOffset||[0,0];o.push(new L({text:new v({text:String(r.get(e.textProperty)),font:`${s}px Arial`,fill:new S({color:t}),stroke:n?new j({color:n,width:a}):void 0,offsetX:i[0],offsetY:i[1]})}))}return o}}async createGeoJSONLayer(e){let t=null;const o={featureProjection:this.projection};if(e.geojson){const r=JSON.parse(e.geojson);t=new a({features:new h(o).readFeatures(r)})}else t=new a({url:e.url,format:new h(o)});let s;if(e.geostylerStyle)s=await this.createGeostylerStyleFunction(e.geostylerStyle);else{const t=e.style?{...$,...e.style}:$;s=await this.createEnhancedStyleFunction(t)}return new r({source:t,style:s})}async createWFSSpource(e){const t=(e.outputFormat??"application/json").toLowerCase();let r=new h;switch(t){case"gml2":r=new p;break;case"gml3":r=new m;break;case"gml32":r=new d}const o=this.getWFSGetFeatureUrl(e);return new a({format:r,url:o,strategy:E})}async createWFSLayer(e){const t=await this.createWFSSpource(e);let o;if(e.geostylerStyle)o=await this.createGeostylerStyleFunction(e.geostylerStyle);else{const t=e.style?{...$,...e.style}:$;o=await this.createEnhancedStyleFunction(t)}const s=new r({source:t,style:o});return s.set("wfsConfig",e,!1),s}async createGeostylerStyleFunction(e){const t=(e,t)=>null==e||"object"==typeof e&&e.name?t:e;return r=>{const o=[],s=r.getGeometry().getType();if(e.rules)for(const n of e.rules)if(n.symbolizers)for(const e of n.symbolizers)switch(e.kind){case"Fill":if(s.includes("Polygon")){const r=t(e.color,"rgba(0,100,255,0.3)"),s=t(e.outlineColor),n=t(e.outlineWidth,1);o.push(new L({fill:new S({color:r}),stroke:s?new j({color:s,width:n}):void 0}))}break;case"Line":{const r=t(e.color,"rgba(0,100,255,1)"),s=t(e.width,1),n=e.dasharray&&Array.isArray(e.dasharray)?e.dasharray.map((e=>t(e,0))):void 0;o.push(new L({stroke:new j({color:r,width:s,lineDash:n})}))}break;case"Mark":if("Point"===s){const r=t(e.color,"rgba(0,100,255,1)"),s=t(e.radius,6),n=t(e.strokeColor),a=t(e.strokeWidth,1);o.push(new L({image:new G({radius:s,fill:new S({color:r}),stroke:n?new j({color:n,width:a}):void 0})}))}break;case"Icon":if("Point"===s){const r=t(e.image),s=t(e.size,32),n=t(e.opacity,1);r&&"string"==typeof r&&o.push(new L({image:new I({src:r,size:[s,s],opacity:n})}))}break;case"Text":{const s=e,n=t(s.label);if(n&&r.get(n)){const e=t(s.color,"#000000"),a=t(s.size,12),i=t(s.font?.[0],"Arial"),c=t(s.haloColor),l=t(s.haloWidth,1),u=s.offset,f=u&&Array.isArray(u)?t(u[0],0):0,w=u&&Array.isArray(u)?t(u[1],0):0;o.push(new L({text:new v({text:String(r.get(n)),font:`${a}px ${i}`,fill:new S({color:e}),stroke:c?new j({color:c,width:l}):void 0,offsetX:f,offsetY:w})}))}}}return o.length>0?o:void 0}}async createXYZLayer(e){return new s({source:new l({url:e.url,attributions:e.attributions,maxZoom:e.maxZoom??19,...e.options??{}})})}async createGoogleLayer(e){if(!e.apiKey)throw new Error("Google-Layer benötigt 'apiKey' (Google Maps Platform).");const t=new u({key:e.apiKey,mapType:e.mapType??"roadmap",scale:e.scale??"scaleFactor2x",highDpi:e.highDpi??!0,language:e.language,region:e.region,imageFormat:e.imageFormat,styles:e.styles,layerTypes:e.layerTypes});t.on("change",(()=>{if("error"===t.getState()){const e=t.getError();T("Google source error",e),this.map.getTargetElement()?.dispatchEvent(new CustomEvent("google-source-error",{detail:{message:e??"Google source error"},bubbles:!0,composed:!0}))}}));const r=new s({source:t});if(!this.googleLogoAdded){class e extends b{constructor(){const e=document.createElement("img");e.style.pointerEvents="none",e.style.position="absolute",e.style.bottom="5px",e.style.left="5px",e.style.height="18px",e.alt="Google",e.src="https://developers.google.com/static/maps/documentation/images/google_on_white.png",super({element:e})}}this.map.addControl(new e),this.googleLogoAdded=!0}return r}async createOSMLayer(e){let t="https://tile.openstreetmap.org/{z}/{x}/{y}.png";return e.url&&(t=e.url+"/{z}/{x}/{y}.png"),new s({source:new c({url:t})})}async createWMSLayer(e){return new s({source:new i({url:e.url,params:{LAYERS:e.layers,TILED:!0,...e.extraParams??{}}})})}onLayerError(e,t){this.layerErrorCallbacks.set(e,t),this._getLayerById(e).then((t=>{t&&this.attachSourceErrorListeners(e,t)}))}offLayerError(e){this.layerErrorCleanups.get(e)?.(),this.layerErrorCleanups.delete(e),this.layerErrorCallbacks.delete(e)}attachSourceErrorListeners(e,t){this.layerErrorCleanups.get(e)?.();const r=this.layerErrorCallbacks.get(e);if(!r)return;const o=t.getSource?.();if(!o)return;const s=[];if("getTile"in o||o instanceof i||o instanceof c||o instanceof l||o instanceof u||o instanceof f){const e=()=>{r({type:"network",message:"Tile load error"})};o.on("tileloaderror",e),s.push((()=>o.un("tileloaderror",e)))}if(o instanceof a){const e=()=>{r({type:"network",message:"Feature load error"})};o.on("featuresloaderror",e),s.push((()=>o.un("featuresloaderror",e)))}if(o instanceof y){const e=()=>{r({type:"network",message:"Image load error"})};o.on("imageloaderror",e),s.push((()=>o.un("imageloaderror",e)))}const n=()=>{this.attachSourceErrorListeners(e,t)};t.on("change:source",n),s.push((()=>t.un("change:source",n))),this.layerErrorCleanups.set(e,(()=>s.forEach((e=>e()))))}async setView(e,t){this.map&&this.map.getView().animate({center:k(e),zoom:t,duration:0})}async _forEachLayer(e,t){if(e instanceof o){const r=e.getLayers().getArray();for(const e of r)if(await this._forEachLayer(e,t))return!0}else if(t(e))return!0;return!1}async _getLayerById(e){if(!this.map)return null;let t=null;return await this._forEachLayer(this.map.getLayerGroup(),(r=>{if(r.get("id")===e)return t=r,!0})),t||(t=this.baseLayers.find((t=>t.get("id")===e)),void 0===t?null:t)}async _getLayerGroupById(e){if(!this.map)return null;const t=this.layers.find((t=>t.get?.("groupId")===e));return void 0!==t?t:null}async removeLayer(e){if(!e)return;this.offLayerError(e);const t=await this._getLayerById(e);if(t){const e=t.get("group");e&&e.getLayers().remove(t)}}async setOpacity(e,t){if(!e)return;const r=await this._getLayerById(e);r&&r.setOpacity(t)}async setZIndex(e,t){if(!e)return;const r=await this._getLayerById(e);r&&r.setZIndex(t)}async setVisible(e,t){const r=await this._getLayerById(e);r&&r.setVisible(t)}async setGroupVisible(e,t){const r=await this._getLayerGroupById(e);r&&r.setVisible(t)}async updateWKTLayer(e,t){const r=new g;let o=null;const s=this.map?.getView()?.getProjection();if(t.wkt){const e=r.readFeature(t.wkt,{dataProjection:"EPSG:4326",featureProjection:s});o=new a({features:[e]})}else if(t.url){const e=await fetch(t.url);if(!e.ok)throw new Error(`Failed to fetch WKT: ${e.status}`);const n=await e.text(),i=r.readFeature(n,{dataProjection:"EPSG:4326",featureProjection:s});o=new a({features:[i]})}let n;o&&e.setSource(o),t.geostylerStyle?n=await this.createGeostylerStyleFunction(t.geostylerStyle):t.style&&(n=await this.createEnhancedStyleFunction(t.style)),n&&e.setStyle(n)}async createWKTLayer(e){const t=new g;let o=null;const s=this.map?.getView()?.getProjection();if(e.wkt)try{const r=t.readFeature(e.wkt,{dataProjection:"EPSG:4326",featureProjection:s});o=new a({features:[r]})}catch(e){T("Failed to parse WKT:",e),o=new a({features:[]})}else if(e.url)try{const r=await fetch(e.url);if(!r.ok)throw new Error(`Failed to fetch WKT: ${r.status}`);const n=await r.text(),i=t.readFeature(n,{dataProjection:"EPSG:4326",featureProjection:s});o=new a({features:[i]})}catch(e){T("Failed to load WKT from URL:",e),o=new a({features:[]})}else o=new a({features:[]});let n;if(e.geostylerStyle)n=await this.createGeostylerStyleFunction(e.geostylerStyle);else{const t=e.style?{...$,...e.style}:$;n=await this.createEnhancedStyleFunction(t)}return new r({source:o,style:n,opacity:e.opacity??1,visible:e.visible??!0,zIndex:e.zIndex??1e3})}async createGeoTIFFLayer(e){if(!e.url)throw new Error("GeoTIFF layer requires a URL");const t={url:e.url};null===e.nodata||isNaN(e.nodata)||(t.nodata=e.nodata);const r=new(await z({sources:[t],wrapX:!1}));return await r.registerProjectionIfNeeded(),new R({source:r,opacity:e.opacity??1,visible:e.visible??!0,zIndex:e.zIndex??100})}async createWCSLayer(e){const t=await this.createWcsSource(e),r=new n({source:t,visible:e.visible??!0,opacity:e.opacity??1});return r.set("wcsConfig",e,!1),r}getWFSGetFeatureUrl(e){return t=>{const r={service:"WFS",request:"GetFeature",version:e.version??"1.1.0",typeName:e.typeName,outputFormat:e.outputFormat??"application/json",bbox:t.join(","),srsName:e.srsName??this.projection,...e.params??{}};return this.appendParams(e.url,r)}}getWCSGetCoverageUrl(e,t){return r=>{const o=e.version??"2.0.1",s=e.format??"image/tiff",n=e.projection??this.projection,a={SERVICE:"WCS",REQUEST:"GetCoverage",VERSION:o,FORMAT:s};if(o.startsWith("2.0")){a.coverageId=e.coverageName;const[t,o,n,i]=r;a.subset=`X(${t},${n})`,a.subset2=`Y(${o},${i})`,(s.includes("tiff")||s.includes("geotiff"))&&(a["geotiff:compression"]="LZW")}else{a.COVERAGE=e.coverageName,a.BBOX=r.join(","),a.CRS=n;const o=Math.round((r[2]-r[0])/t),s=Math.round((r[3]-r[1])/t);a.WIDTH=o,a.HEIGHT=s}if(e.params&&Object.entries(e.params).forEach((([e,t])=>{"string"!=typeof t&&"number"!=typeof t||(a[e]=t)})),o.startsWith("2.0")){const t=a.subset2;delete a.subset2;const r=new URLSearchParams;Object.entries(a).forEach((([e,t])=>{null!=t&&r.append(e,String(t))})),t&&r.append("subset",String(t));const o=e.url;return`${o}${o.includes("?")?"&":"?"}${r.toString()}`}return this.appendParams(e.url,a)}}mergeLayerConfig(e,t,r){const o={...e.get(t)??{},...r};return e.set(t,o,!1),o}appendParams(e,t){const r=new URLSearchParams;return Object.entries(t).forEach((([e,t])=>{null!=t&&r.set(e,String(t))})),r.toString()?`${e}${e.includes("?")?"&":"?"}${r.toString()}`:e}async createWcsSource(e){const t=e.projection??this.projection,r=this.map?.getView()?.getResolution()??1,o=this.getWCSGetCoverageUrl(e,r);return new class extends y{urlFunction_;constructor(r){super({projection:t,resolutions:e.resolutions}),this.urlFunction_=r}getImageInternal(e,t,r,o){const s=this.urlFunction_(e),n=new w(e,t,r,s);return n.load=()=>{const e=n.getImage();e.src!==s&&(e.crossOrigin="anonymous",e.src=s)},n}}(o)}async createArcGISLayer(e){const t={...e.params??{}};e.token&&(t.token=e.token);const r={url:e.url,params:t,...e.options??{}};return new s({source:new f(r),visible:e.visible??!0})}async updateGeoTIFFLayer(e,t){if(!t.url)throw new Error("GeoTIFF update requires a URL");const r={url:t.url};null==t.nodata||isNaN(t.nodata)||(r.nodata=t.nodata);const o=new(await z({sources:[r],wrapX:!1}));await o.registerProjectionIfNeeded(),e.setSource(o)}getMap(){return this.map}}export{K as OpenLayersProvider}
|
package/dist/v-map/p-uiIP-taz.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as t,q as s,s as o,t as r,v as e,w as n,x as h,V as u,y as m,z as g,A as f,D as P,E as M,F as v,H as w,J as b,K as x,N as y,O as S,Q as z,R as Z,M as R,G as O,u as _,X as A,Y as X,Z as D,_ as V,$ as E,a0 as F,a1 as I,a2 as T,a3 as B,a4 as N,a5 as $,a6 as q,a7 as Y,a8 as G,a9 as J,aa as W,ab as H,ac as K,ad as Q,ae as tt}from"./p-MyTSFnEk.js";export{aj as AmbientLight,ao as Attribute,ap as AttributeManager,C as CompositeLayer,am as Deck,aq as DeckRenderer,L as Layer,an as LayerManager,ai as LightingEffect,au as MapController,at as MapView,ah as OPERATION,av as TRANSITION_EVENTS,ay as Tesselator,U as UNIT,af as VERSION,aH as Widget,aI as _Component,aJ as _ComponentState,ak as _LayersPass,al as _PickLayersPass,aF as _applyStyles,aE as _compareProps,aB as _count,d as _deepEqual,az as _fillArray,aA as _flatten,aC as _memoize,aD as _mergeShaders,aG as _removeStyles,aw as assert,c as color,l as createIterable,ax as fp64LowPart,ag as getShaderAssembler,i as gouraudMaterial,j as log,k as phongMaterial,a as picking,ar as project,p as project32,as as shadow}from"./p-MyTSFnEk.js";export{L as LayerExtension}from"./p-CZqY0yW4.js";import"./p-B-bAcABs.js";import"./p-DhQAXuA7.js";import"./p-DR9McdNX.js";import"./p-E-ZsRS8r.js";import"./p-CMKJzsgL.js";import"./p-Dckgonw8.js";import"@loaders.gl/core";import"@loaders.gl/images";import"@loaders.gl/loader-utils";import"@loaders.gl/terrain";import"@loaders.gl/schema";const st=1e-6;class ot{constructor({phi:t=0,theta:s=0,radius:o=1,bearing:i,pitch:r,altitude:e,radiusScale:n=6371e3}={}){this.phi=t,this.theta=s,this.radius=o||e||1,this.radiusScale=n||1,void 0!==i&&(this.bearing=i),void 0!==r&&(this.pitch=r),this.check()}toString(){return this.formatString(t)}formatString({printTypes:t=!1}){const o=s;return`${t?"Spherical":""}[rho:${o(this.radius)},theta:${o(this.theta)},phi:${o(this.phi)}]`}equals(t){return o(this.radius,t.radius)&&o(this.theta,t.theta)&&o(this.phi,t.phi)}exactEquals(t){return this.radius===t.radius&&this.theta===t.theta&&this.phi===t.phi}get bearing(){return 180-r(this.phi)}set bearing(t){this.phi=Math.PI-e(t)}get pitch(){return r(this.theta)}set pitch(t){this.theta=e(t)}get longitude(){return r(this.phi)}get latitude(){return r(this.theta)}get lng(){return r(this.phi)}get lat(){return r(this.theta)}get z(){return(this.radius-1)*this.radiusScale}set(t,s,o){return this.radius=t,this.phi=s,this.theta=o,this.check()}clone(){return(new ot).copy(this)}copy(t){return this.radius=t.radius,this.phi=t.phi,this.theta=t.theta,this.check()}fromLngLatZ([t,s,o]){return this.radius=1+o/this.radiusScale,this.phi=e(s),this.theta=e(t),this.check()}fromVector3(t){return this.radius=n(t),this.radius>0&&(this.theta=Math.atan2(t[0],t[1]),this.phi=Math.acos(h(t[2]/this.radius,-1,1))),this.check()}toVector3(){return new u(0,0,this.radius).rotateX({radians:this.theta}).rotateZ({radians:this.phi})}makeSafe(){return this.phi=Math.max(st,Math.min(Math.PI-st,this.phi)),this}check(){if(!(Number.isFinite(this.phi)&&Number.isFinite(this.theta)&&this.radius>0))throw new Error("SphericalCoordinates: some fields set to invalid numbers");return this}}const it=["longitude","latitude","zoom"],rt={curve:1.414,speed:1.2};function et(t,s,o){const i=(o=Object.assign({},rt,o)).curve,r=t.zoom,e=[t.longitude,t.latitude],n=x(r),a=[s.longitude,s.latitude],h=x(s.zoom-r),c=M(e),u=M(a),l=v([],u,c),p=Math.max(t.width,t.height),d=p/h,m=b(l)*n,g=Math.max(m,.01),f=i*i,P=(d*d-p*p+f*f*g*g)/(2*p*f*g),w=(d*d-p*p-f*f*g*g)/(2*d*f*g),y=Math.log(Math.sqrt(P*P+1)-P),S=Math.log(Math.sqrt(w*w+1)-w);return{startZoom:r,startCenterXY:c,uDelta:l,w0:p,u1:m,S:(S-y)/i,rho:i,rho2:f,r0:y,r1:S}}const nt=[255,255,255],ht=1,ct=[1,0,0],ut=[0,0,1];let lt=0;class pt{constructor(t={}){this.type="point";const{color:s=nt}=t,{intensity:o=ht}=t,{position:i=ut}=t;this.id=t.id||"point-"+lt++,this.color=s,this.intensity=o,this.type="point",this.position=i,this.attenuation=function(t){return t.attenuation?t.attenuation:ct}(t),this.projectedLight={...this}}getProjectedLight({layer:t}){const{projectedLight:s}=this,o=t.context.viewport,{coordinateSystem:i,coordinateOrigin:r}=t.props,e=y(this.position,{viewport:o,coordinateSystem:i,coordinateOrigin:r,fromCoordinateSystem:o.isGeospatial?S.LNGLAT:S.CARTESIAN,fromCoordinateOrigin:[0,0,0]});return s.color=this.color,s.intensity=this.intensity,s.position=e,s}}class dt extends pt{getProjectedLight({layer:t}){const{projectedLight:s}=this,o=t.context.viewport,{coordinateSystem:i,coordinateOrigin:r,modelMatrix:e}=t.props,{cameraPosition:n}=z({viewport:o,modelMatrix:e,coordinateSystem:i,coordinateOrigin:r});return s.color=this.color,s.intensity=this.intensity,s.position=n,s}}const mt=Math.PI/180,gt=23.4397*mt;function ft(t,s,o){const{azimuth:i,altitude:r}=function(t,s,o){const i=mt*-o,r=mt*s,e=function(t){return function(t){return("number"==typeof t?t:t.getTime())/864e5-.5+2440588}(t)-2451545}(t),n=function(t){const s=function(t){const s=t;return s+mt*(1.9148*Math.sin(s)+.02*Math.sin(2*s)+3e-4*Math.sin(3*s))+102.9372*mt+Math.PI}(mt*(357.5291+.98560028*t));return{declination:Mt(s,0),rightAscension:Pt(s,0)}}(e),a=function(t,s){return mt*(280.147+360.9856235*t)-s}(e,i)-n.rightAscension;return{azimuth:vt(a,r,n.declination),altitude:wt(a,r,n.declination)}}(t,s,o);return[Math.sin(i)*Math.cos(r),Math.cos(i)*Math.cos(r),-Math.sin(r)]}function Pt(t,s){const o=t;return Math.atan2(Math.sin(o)*Math.cos(gt)-Math.tan(s)*Math.sin(gt),Math.cos(o))}function Mt(t,s){const o=t;return Math.asin(Math.sin(s)*Math.cos(gt)+Math.cos(s)*Math.sin(gt)*Math.sin(o))}function vt(t,s,o){const i=t,r=s,e=o;return Math.atan2(Math.sin(i),Math.cos(i)*Math.sin(r)-Math.tan(e)*Math.cos(r))}function wt(t,s,o){const i=t,r=s,e=o;return Math.asin(Math.sin(r)*Math.sin(e)+Math.cos(r)*Math.cos(e)*Math.cos(i))}class bt extends Z{constructor(t){super(t),this.timestamp=t.timestamp}getProjectedLight({layer:t}){const{viewport:s}=t.context;if(s.resolution&&s.resolution>0){const[t,s,o]=ft(this.timestamp,0,0);this.direction=[t,-o,s]}else{const{latitude:t,longitude:o}=s;this.direction=ft(this.timestamp,t,o)}return this}}const xt=[-1,-1,1,-1,-1,1,1,1];class yt extends R{constructor(t,s){const o=xt.map((t=>-1===t?0:t));s.source&&(s={...s,source:`struct VertexInputs {\n @location(0) clipSpacePosition: vec2<f32>,\n @location(1) texCoord: vec2<f32>,\n @location(2) coordinate: vec2<f32> \n}\n\nstruct FragmentInputs {\n @builtin(position) Position : vec4<f32>,\n @location(0) position : vec2<f32>,\n @location(1) coordinate : vec2<f32>,\n @location(2) uv : vec2<f32>\n};\n\n@vertex\nfn vertexMain(inputs: VertexInputs) -> FragmentInputs {\n var outputs: FragmentInputs;\n outputs.Position = vec4(inputs.clipSpacePosition, 0., 1.);\n outputs.position = inputs.clipSpacePosition;\n outputs.coordinate = inputs.coordinate;\n outputs.uv = inputs.texCoord;\n return outputs;\n}\n\n${s.source}`}),super(t,{id:s.id||_("clip-space"),...s,vs:"#version 300 es\nin vec2 clipSpacePositions;\nin vec2 texCoords;\nin vec2 coordinates;\n\nout vec2 position;\nout vec2 coordinate;\nout vec2 uv;\n\nvoid main(void) {\n gl_Position = vec4(clipSpacePositions, 0., 1.);\n position = clipSpacePositions;\n coordinate = coordinates;\n uv = texCoords;\n}\n",vertexCount:4,geometry:new O({topology:"triangle-strip",vertexCount:4,attributes:{clipSpacePositions:{size:2,value:new Float32Array(xt)},texCoords:{size:2,value:new Float32Array(o)},coordinates:{size:2,value:new Float32Array(o)}}})})}}const St={name:"screen",fs:"uniform screenUniforms {\n vec2 texSize;\n} screen;\n",uniformTypes:{texSize:"vec2<f32>"}};class zt extends A{constructor(t,s){super(t,s);const{module:o,fs:i,id:r}=s;this.model=new yt(t,{id:r,fs:i,modules:[o,St],parameters:{depthWriteEnabled:!1,depthCompare:"always",depthBias:0,blend:!0,blendColorSrcFactor:"one",blendColorDstFactor:"one-minus-src-alpha",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one-minus-src-alpha",blendColorOperation:"add",blendAlphaOperation:"add"}})}render(t){this._renderPass(this.device,t)}delete(){this.model.destroy(),this.model=null}_renderPass(t,s){const{clearCanvas:o,inputBuffer:i,outputBuffer:r}=s,e=[i.width,i.height];this.model.shaderInputs.setProps({screen:{texSrc:i.colorAttachments[0],texSize:e},...s.moduleProps});const n=this.device.beginRenderPass({framebuffer:r,parameters:{viewport:[0,0,...e]},clearColor:!!o&&[0,0,0,0],clearDepth:1,clearStencil:!1});this.model.draw(n),n.end()}}class Ct{constructor(t,s){this.id=`${t.name}-pass`,this.props=s,X(t),this.module=t}setup({device:t}){this.passes=function(t,s,o){return s.passes.map(((i,r)=>{const e=function(t,s){return s.filter?Rt("string"==typeof s.filter?s.filter:`${t.name}_filterColor_ext`):s.sampler?Ot("string"==typeof s.sampler?s.sampler:`${t.name}_sampleColor`):""}(s,i);return new zt(t,{id:`${o}-${r}`,module:s,fs:e})}))}(t,this.module,this.id)}setProps(t){this.props=t}preRender(){}postRender(t){const s=this.passes,{target:o}=t;let i=t.inputBuffer,r=t.swapBuffer;for(let e=0;e<s.length;e++){const n=void 0!==o&&e===s.length-1;n&&(r=o);const a=!n||Boolean(t.clearCanvas),h={};h[this.module.name]={...this.props,...this.module.passes[e].uniforms},s[e].render({clearCanvas:a,inputBuffer:i,outputBuffer:r,moduleProps:h});const c=r;r=i,i=c}return i}cleanup(){if(this.passes){for(const t of this.passes)t.delete();this.passes=void 0}}}const Zt="#version 300 es\nuniform sampler2D texSrc;\n\nin vec2 position;\nin vec2 coordinate;\nin vec2 uv;\n\nout vec4 fragColor;\n",Rt=t=>`${Zt}\nvoid main() {\n fragColor = texture(texSrc, coordinate);\n fragColor = ${t}(fragColor, screen.texSize, coordinate);\n}\n`,Ot=t=>`${Zt}\nvoid main() {\n fragColor = ${t}(texSrc, screen.texSize, coordinate);\n}\n`,_t=Math.PI/180;function At({height:t,focalDistance:s,orbitAxis:o,rotationX:i,rotationOrbit:r,zoom:e}){const n="Z"===o?[0,0,1]:[0,1,0],a="Z"===o?[0,-s,0]:[0,0,s],h=(new F).lookAt({eye:a,up:n});h.rotateX(i*_t),"Z"===o?h.rotateZ(r*_t):h.rotateY(r*_t);const c=Math.pow(2,e)/t;return h.scale(c),h}class Lt extends D{constructor(t){const{height:s,projectionMatrix:o,fovy:i=50,orbitAxis:r="Z",target:e=[0,0,0],rotationX:n=0,rotationOrbit:a=0,zoom:h=0}=t,c=o?o[5]/2:V(i);super({...t,longitude:void 0,viewMatrix:At({height:s||1,focalDistance:c,orbitAxis:r,rotationX:n,rotationOrbit:a,zoom:h}),fovy:i,focalDistance:c,position:e,zoom:h}),this.target=e,this.orbitAxis=r,this.rotationX=n,this.rotationOrbit=a,this.fovy=i,this.projectedCenter=this.project(this.center)}unproject(t,{topLeft:s=!0}={}){const[o,i,r=this.projectedCenter[2]]=t,e=s?i:this.height-i,[n,a,h]=E([o,e,r],this.pixelUnprojectionMatrix);return[n,a,h]}panByPosition(t,s,o){const i=this.project(t);return{target:this.unproject([this.width/2+i[0]-s[0],this.height/2+i[1]-s[1],this.projectedCenter[2]])}}}Lt.displayName="OrbitViewport";const Xt=(new F).lookAt({eye:[0,0,1]});function Dt({width:t,height:s,near:o,far:i,padding:r}){let e=-t/2,n=t/2,a=-s/2,c=s/2;if(r){const{left:o=0,right:i=0,top:u=0,bottom:l=0}=r,p=h((o+t-i)/2,0,t)-t/2,d=h((u+s-l)/2,0,s)-s/2;e-=p,n-=p,a+=d,c+=d}return(new F).ortho({left:e,right:n,bottom:a,top:c,near:o,far:i})}class jt extends D{constructor(t){const{width:s,height:o,near:i=.1,far:r=1e3,zoom:e=0,target:n=[0,0,0],padding:a=null,flipY:h=!0}=t,c=t.zoomX??(Array.isArray(e)?e[0]:e),u=t.zoomY??(Array.isArray(e)?e[1]:e),l=Math.min(c,u),p=Math.pow(2,l);let d;if(c!==u){const t=Math.pow(2,c),s=Math.pow(2,u);d={unitsPerMeter:[t/p,s/p,1],metersPerUnit:[p/t,p/s,1]}}super({...t,longitude:void 0,position:n,viewMatrix:Xt.clone().scale([p,p*(h?-1:1),p]),projectionMatrix:Dt({width:s||1,height:o||1,padding:a,near:i,far:r}),zoom:l,distanceScales:d}),this.target=n,this.zoomX=c,this.zoomY=u,this.flipY=h}projectFlat([t,s]){const{unitsPerMeter:o}=this.distanceScales;return[t*o[0],s*o[1]]}unprojectFlat([t,s]){const{metersPerUnit:o}=this.distanceScales;return[t*o[0],s*o[1]]}panByPosition(t,s,o){const i=E(s,this.pixelUnprojectionMatrix),r=this.projectFlat(t),e=f([],r,I([],i)),n=f([],this.center,e);return{target:this.unprojectFlat(n)}}}jt.displayName="OrthographicViewport";class Vt extends D{constructor(t){const{longitude:s,latitude:o,modelMatrix:i,bearing:r=0,pitch:e=0,up:n=[0,0,1]}=t,a=new ot({bearing:r,pitch:-90===e?1e-4:90+e}).toVector3().normalize(),h=i?new F(i).transformAsVector(a):a,c=Number.isFinite(o)?T({latitude:o}):0,u=Math.pow(2,c),l=(new F).lookAt({eye:[0,0,0],center:h,up:n}).scale(u);super({...t,zoom:c,viewMatrix:l}),this.latitude=o,this.longitude=s,this.pitch=e,this.bearing=r,this.up=n}}Vt.displayName="FirstPersonViewport";class Et extends ${constructor(t){const{width:s,height:o,position:i=[0,0,0],bearing:r=0,pitch:e=0,longitude:n=null,latitude:a=null,maxPitch:h=90,minPitch:c=-90,startRotatePos:u,startBearing:l,startPitch:p,startZoomPosition:d,startPanPos:m,startPanPosition:g}=t;super({width:s,height:o,position:i,bearing:r,pitch:e,longitude:n,latitude:a,maxPitch:h,minPitch:c},{startRotatePos:u,startBearing:l,startPitch:p,startZoomPosition:d,startPanPos:m,startPanPosition:g}),this.makeViewport=t.makeViewport}panStart({pos:t}){const{position:s}=this.getViewportProps();return this._getUpdatedState({startPanPos:t,startPanPosition:s})}pan({pos:t}){if(!t)return this;const{startPanPos:s=[0,0],startPanPosition:o=[0,0]}=this.getState(),{width:i,height:r,bearing:e,pitch:n}=this.getViewportProps(),a=500*(t[0]-s[0])/i,h=500*(t[1]-s[1])/r,c=new ot({bearing:e,pitch:n}),l=new ot({bearing:e,pitch:-90}),p=c.toVector3().normalize(),d=l.toVector3().cross(p).normalize();return this._getUpdatedState({position:new u(o).add(d.scale(a)).add(p.scale(h))})}panEnd(){return this._getUpdatedState({startPanPos:null,startPanPosition:null})}rotateStart({pos:t}){return this._getUpdatedState({startRotatePos:t,startBearing:this.getViewportProps().bearing,startPitch:this.getViewportProps().pitch})}rotate({pos:t,deltaAngleX:s=0,deltaAngleY:o=0}){const{startRotatePos:i,startBearing:r,startPitch:e}=this.getState(),{width:n,height:a}=this.getViewportProps();if(!i||void 0===r||void 0===e)return this;let h;return h=t?{bearing:r-(t[0]-i[0])/n*180,pitch:e-(t[1]-i[1])/a*90}:{bearing:r-s,pitch:e-o},this._getUpdatedState(h)}rotateEnd(){return this._getUpdatedState({startRotatePos:null,startBearing:null,startPitch:null})}zoomStart(){return this._getUpdatedState({startZoomPosition:this.getViewportProps().position})}zoom({pos:t,scale:s}){const o=this.getViewportProps(),i=this.getState().startZoomPosition||o.position,r=this.makeViewport(o),{projectionMatrix:e,width:n}=r,a=2*Math.atan(1/e[0])*(t[0]/n-.5),h=this.getDirection(!0);return this._move(h.rotateZ({radians:-a}),20*Math.log2(s),i)}zoomEnd(){return this._getUpdatedState({startZoomPosition:null})}moveLeft(t=20){const s=this.getDirection(!0);return this._move(s.rotateZ({radians:Math.PI/2}),t)}moveRight(t=20){const s=this.getDirection(!0);return this._move(s.rotateZ({radians:-Math.PI/2}),t)}moveUp(t=20){const s=this.getDirection(!0);return this._move(s,t)}moveDown(t=20){const s=this.getDirection(!0);return this._move(s.negate(),t)}rotateLeft(t=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing-t})}rotateRight(t=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing+t})}rotateUp(t=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch+t})}rotateDown(t=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch-t})}zoomIn(t=20){return this._move(new u(0,0,1),t)}zoomOut(t=20){return this._move(new u(0,0,-1),t)}shortestPathFrom(t){const s=t.getViewportProps(),o={...this.getViewportProps()},{bearing:i,longitude:r}=o;return Math.abs(i-s.bearing)>180&&(o.bearing=i<0?i+360:i-360),null!==r&&null!==s.longitude&&Math.abs(r-s.longitude)>180&&(o.longitude=r<0?r+360:r-360),o}_move(t,s,o=this.getViewportProps().position){const i=t.scale(s);return this._getUpdatedState({position:new u(o).add(i)})}getDirection(t=!1){return new ot({bearing:this.getViewportProps().bearing,pitch:t?90:90+this.getViewportProps().pitch}).toVector3().normalize()}_getUpdatedState(t){return new Et({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...t})}applyConstraints(t){const{pitch:s,maxPitch:o,minPitch:i,longitude:r,bearing:e}=t;return t.pitch=h(s,i,o),null!==r&&(r<-180||r>180)&&(t.longitude=q(r+180,360)-180),(e<-180||e>180)&&(t.bearing=q(e+180,360)-180),t}}class Ft extends B{constructor(){super(...arguments),this.ControllerState=Et,this.transition={transitionDuration:300,transitionInterpolator:new N(["position","pitch","bearing"])}}}class It extends Y{constructor(t={}){super(t)}getViewportType(){return Vt}get ControllerType(){return Ft}}It.displayName="FirstPersonView";class Tt extends ${constructor(t){const{width:s,height:o,rotationX:i=0,rotationOrbit:r=0,target:e=[0,0,0],zoom:n=0,minRotationX:a=-90,maxRotationX:h=90,minZoom:c=-1/0,maxZoom:u=1/0,startPanPosition:l,startRotatePos:p,startRotationX:d,startRotationOrbit:m,startZoomPosition:g,startZoom:f}=t;super({width:s,height:o,rotationX:i,rotationOrbit:r,target:e,zoom:n,minRotationX:a,maxRotationX:h,minZoom:c,maxZoom:u},{startPanPosition:l,startRotatePos:p,startRotationX:d,startRotationOrbit:m,startZoomPosition:g,startZoom:f}),this.makeViewport=t.makeViewport}panStart({pos:t}){return this._getUpdatedState({startPanPosition:this._unproject(t)})}pan({pos:t,startPosition:s}){const o=this.getState().startPanPosition||s;if(!o)return this;const i=this.makeViewport(this.getViewportProps()).panByPosition(o,t);return this._getUpdatedState(i)}panEnd(){return this._getUpdatedState({startPanPosition:null})}rotateStart({pos:t}){return this._getUpdatedState({startRotatePos:t,startRotationX:this.getViewportProps().rotationX,startRotationOrbit:this.getViewportProps().rotationOrbit})}rotate({pos:t,deltaAngleX:s=0,deltaAngleY:o=0}){const{startRotatePos:i,startRotationX:r,startRotationOrbit:e}=this.getState(),{width:n,height:a}=this.getViewportProps();if(!i||void 0===r||void 0===e)return this;let h;if(t){let s=(t[0]-i[0])/n;(r<-90||r>90)&&(s*=-1),h={rotationX:r+(t[1]-i[1])/a*180,rotationOrbit:e+180*s}}else h={rotationX:r+o,rotationOrbit:e+s};return this._getUpdatedState(h)}rotateEnd(){return this._getUpdatedState({startRotationX:null,startRotationOrbit:null})}shortestPathFrom(t){const s=t.getViewportProps(),o={...this.getViewportProps()},{rotationOrbit:i}=o;return Math.abs(i-s.rotationOrbit)>180&&(o.rotationOrbit=i<0?i+360:i-360),o}zoomStart({pos:t}){return this._getUpdatedState({startZoomPosition:this._unproject(t),startZoom:this.getViewportProps().zoom})}zoom({pos:t,startPos:s,scale:o}){let{startZoom:i,startZoomPosition:r}=this.getState();if(r||(i=this.getViewportProps().zoom,r=this._unproject(s||t)),!r)return this;const e=this._calculateNewZoom({scale:o,startZoom:i}),n=this.makeViewport({...this.getViewportProps(),zoom:e});return this._getUpdatedState({zoom:e,...n.panByPosition(r,t)})}zoomEnd(){return this._getUpdatedState({startZoomPosition:null,startZoom:null})}zoomIn(t=2){return this._getUpdatedState({zoom:this._calculateNewZoom({scale:t})})}zoomOut(t=2){return this._getUpdatedState({zoom:this._calculateNewZoom({scale:1/t})})}moveLeft(t=50){return this._panFromCenter([-t,0])}moveRight(t=50){return this._panFromCenter([t,0])}moveUp(t=50){return this._panFromCenter([0,-t])}moveDown(t=50){return this._panFromCenter([0,t])}rotateLeft(t=15){return this._getUpdatedState({rotationOrbit:this.getViewportProps().rotationOrbit-t})}rotateRight(t=15){return this._getUpdatedState({rotationOrbit:this.getViewportProps().rotationOrbit+t})}rotateUp(t=10){return this._getUpdatedState({rotationX:this.getViewportProps().rotationX-t})}rotateDown(t=10){return this._getUpdatedState({rotationX:this.getViewportProps().rotationX+t})}_project(t){return this.makeViewport(this.getViewportProps()).project(t)}_unproject(t){return this.makeViewport(this.getViewportProps()).unproject(t)}_calculateNewZoom({scale:t,startZoom:s}){const{maxZoom:o,minZoom:i}=this.getViewportProps();void 0===s&&(s=this.getViewportProps().zoom);const r=s+Math.log2(t);return h(r,i,o)}_panFromCenter(t){const{target:s}=this.getViewportProps(),o=this._project(s);return this.pan({startPosition:s,pos:[o[0]+t[0],o[1]+t[1]]})}_getUpdatedState(t){return new this.constructor({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...t})}applyConstraints(t){const{maxZoom:s,minZoom:o,zoom:i,maxRotationX:r,minRotationX:e,rotationOrbit:n}=t;return t.zoom=Array.isArray(i)?[h(i[0],o,s),h(i[1],o,s)]:h(i,o,s),t.rotationX=h(t.rotationX,e,r),(n<-180||n>180)&&(t.rotationOrbit=q(n+180,360)-180),t}}class Bt extends B{constructor(){super(...arguments),this.ControllerState=Tt,this.transition={transitionDuration:300,transitionInterpolator:new N({transitionProps:{compare:["target","zoom","rotationX","rotationOrbit"],required:["target","zoom"]}})}}}class kt extends Y{constructor(t={}){super(t),this.props.orbitAxis=t.orbitAxis||"Z"}getViewportType(){return Lt}get ControllerType(){return Bt}}kt.displayName="OrbitView";class Nt extends Tt{constructor(t){super(t),this.zoomAxis=t.zoomAxis||"all"}_calculateNewZoom({scale:t,startZoom:s}){const{maxZoom:o,minZoom:i}=this.getViewportProps();void 0===s&&(s=this.getViewportProps().zoom);let r=Math.log2(t);if(Array.isArray(s)){let[t,e]=s;switch(this.zoomAxis){case"X":t=h(t+r,i,o);break;case"Y":e=h(e+r,i,o);break;default:let s=Math.min(t+r,e+r);s<i&&(r+=i-s),s=Math.max(t+r,e+r),s>o&&(r+=o-s),t+=r,e+=r}return[t,e]}return h(s+r,i,o)}}class $t extends B{constructor(){super(...arguments),this.ControllerState=Nt,this.transition={transitionDuration:300,transitionInterpolator:new N(["target","zoom"])},this.dragMode="pan"}_onPanRotate(){return!1}}class Ut extends Y{constructor(t={}){super(t)}getViewportType(){return jt}get ControllerType(){return $t}}Ut.displayName="OrthographicView";class qt extends G{constructor(t){const{startPanPos:s,...o}=t;super(o),void 0!==s&&(this._state.startPanPos=s)}panStart({pos:t}){const{latitude:s,longitude:o,zoom:i}=this.getViewportProps();return this._getUpdatedState({startPanLngLat:[o,s],startPanPos:t,startZoom:i})}pan({pos:t,startPos:s}){const o=this.getState(),i=o.startPanLngLat||this._unproject(s);if(!i)return this;const r=o.startZoom??this.getViewportProps().zoom,e=o.startPanPos||s,n=[i[0],i[1],r],a=this.makeViewport(this.getViewportProps()).panByPosition(n,t,e);return this._getUpdatedState(a)}panEnd(){return this._getUpdatedState({startPanLngLat:null,startPanPos:null,startZoom:null})}zoom({scale:t}){const s=(this.getState().startZoom||this.getViewportProps().zoom)+Math.log2(t);return this._getUpdatedState({zoom:s})}applyConstraints(t){const{longitude:s,latitude:o,maxZoom:i,minZoom:r,zoom:e}=t,n=W(0),a=W(o)-n;return t.zoom=h(e,r+a,i+a),(s<-180||s>180)&&(t.longitude=q(s+180,360)-180),t.latitude=h(o,-J,J),t}}class Yt extends B{constructor(){super(...arguments),this.ControllerState=qt,this.transition={transitionDuration:300,transitionInterpolator:new N(["longitude","latitude","zoom"])},this.dragMode="pan"}setProps(t){super.setProps(t),this.dragRotate=!1,this.touchRotate=!1}}class Gt extends Y{constructor(t={}){super(t)}getViewportType(t){return t.zoom>12?H:K}get ControllerType(){return Yt}}Gt.displayName="GlobeView";const Jt={bearing:0,pitch:0,position:[0,0,0]},Wt={speed:1.2,curve:1.414};class Ht extends Q{constructor(t={}){super({compare:["longitude","latitude","zoom","bearing","pitch","position"],extract:["width","height","longitude","latitude","zoom","bearing","pitch","position"],required:["width","height","latitude","longitude","zoom"]}),this.opts={...Wt,...t}}interpolateProps(t,s,o){const i=function(t,s,o,i){const{startZoom:r,startCenterXY:e,uDelta:n,w0:a,u1:h,S:c,rho:u,rho2:l,r0:p}=et(t,s,i);if(h<.01){const i={};for(const r of it)i[r]=m(t[r],s[r],o);return i}const d=o*c,M=Math.cosh(p)/Math.cosh(p+u*d),v=a*((Math.cosh(p)*Math.tanh(p+u*d)-Math.sinh(p))/l)/h,b=r+w(1/M),x=g([],n,v);f(x,x,e);const y=P(x);return{longitude:y[0],latitude:y[1],zoom:b}}(t,s,o,this.opts);for(const r in Jt)i[r]=tt(t[r]||Jt[r],s[r]||Jt[r],o);return i}getDuration(t,s){let{transitionDuration:o}=s;return"auto"===o&&(o=function(t,s,o){const i={...rt,...o},{screenSpeed:r,speed:e,maxDuration:n}=i,{S:a,rho:h}=et(t,s,i),c=1e3*a;let u;return u=Number.isFinite(r)?c/(r/h):c/e,Number.isFinite(n)&&u>n?0:u}(t,s,this.opts)),o}}export{S as COORDINATE_SYSTEM,B as Controller,Z as DirectionalLight,Ft as FirstPersonController,It as FirstPersonView,Vt as FirstPersonViewport,Ht as FlyToInterpolator,N as LinearInterpolator,Bt as OrbitController,kt as OrbitView,Lt as OrbitViewport,$t as OrthographicController,Ut as OrthographicView,jt as OrthographicViewport,pt as PointLight,Ct as PostProcessEffect,Q as TransitionInterpolator,Y as View,D as Viewport,H as WebMercatorViewport,dt as _CameraLight,Yt as _GlobeController,Gt as _GlobeView,K as _GlobeViewport,bt as _SunLight}
|