WCSLayer.js 3.9 KB

12345
  1. /*
  2. All material copyright ESRI, All Rights Reserved, unless otherwise specified.
  3. See https://js.arcgis.com/4.24/esri/copyright.txt for details.
  4. */
  5. import{_ as e}from"../chunks/tslib.es6.js";import r from"../core/Error.js";import{isSome as t}from"../core/maybe.js";import{MultiOriginJSONMixin as s}from"../core/MultiOriginJSONSupport.js";import{watch as o}from"../core/reactiveUtils.js";import{aliasOf as i}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as a}from"../core/accessorSupport/decorators/property.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import l from"./Layer.js";import{BlendLayer as p}from"./mixins/BlendLayer.js";import{CustomParametersMixin as m}from"./mixins/CustomParametersMixin.js";import{ImageryTileMixin as c}from"./mixins/ImageryTileMixin.js";import{OperationalLayer as u}from"./mixins/OperationalLayer.js";import{PortalLayer as d}from"./mixins/PortalLayer.js";import{RefreshableLayer as f}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as y}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as h}from"./mixins/TemporalLayer.js";import{popupEnabled as v}from"./support/commonProperties.js";import g from"./support/Field.js";import j from"./support/rasterDatasets/WCSRaster.js";import{createPopupTemplate as x}from"../support/popupUtils.js";const I=new Set(["milliseconds","seconds","minutes","hours","days","weeks","months","years","decades","centuries"]);let P=class extends(p(y(u(d(m(c(h(f(s(l)))))))))){constructor(...e){super(...e),this.coverageId=null,this.coverageInfo=null,this.version=null,this.isReference=null,this.type="wcs",this.popupEnabled=!0,this.popupTemplate=null,this.fields=null}normalizeCtorArgs(e,r){return"string"==typeof e?{url:e,...r}:e}load(e){const r=t(e)?e.signal:null;return this.addResolvingPromise(this._openRaster(r)),Promise.resolve(this)}get defaultPopupTemplate(){return this.createPopupTemplate()}get rasterFields(){return[new g({name:"Raster.ServicePixelValue",alias:"Pixel Value",domain:null,editable:!1,length:50,type:"string"})]}createPopupTemplate(e){return x({fields:this.rasterFields,title:this.title},e)}async _openRaster(e){const s=new j({url:this.url,version:this.version,coverageId:this.coverageId,ioConfig:{sampling:"closest",...this.ioConfig,customFetchParameters:this.customParameters}});if(await s.open({signal:e}),!s.rasterInfo)throw s.destroy(),new r("wcs-layer:load","cannot load resources on "+this.url);null==this.title&&this.setAtOrigin("title",s.datasetName,"service"),null==this.coverageId&&this.setAtOrigin("coverageId",s.coverageInfo.id,"service");const{multidimensionalInfo:i}=s.rasterInfo;if(t(i)){const e=i.variables[0].dimensions.find((({name:e})=>"StdTime"===e));if(e){let r=e.extent?.[0]??e.values[0];Array.isArray(r)&&(r=r[0]);let t=e.extent?.[1]??e.values[e.values.length-1];Array.isArray(t)&&(t=t[1]);const s=I.has(e.intervalUnit?.toLowerCase())?e.intervalUnit.toLowerCase():null;this.set("timeInfo",{startField:"StdTime",fullTimeExtent:{start:r,end:t},timeReference:null,interval:s?{value:e.interval,unit:s}:null})}}this.raster=s,this._configDefaultSettings(),this.own(o((()=>this.customParameters),(e=>this.raster.ioConfig.customFetchParameters=e)))}};e([a({type:String,nonNullable:!0,json:{write:!0}})],P.prototype,"coverageId",void 0),e([a({readOnly:!0}),i("raster.coverageInfo")],P.prototype,"coverageInfo",void 0),e([a()],P.prototype,"version",void 0),e([a()],P.prototype,"isReference",void 0),e([a({readOnly:!0})],P.prototype,"type",void 0),e([a(v)],P.prototype,"popupEnabled",void 0),e([a()],P.prototype,"popupTemplate",void 0),e([a({readOnly:!0})],P.prototype,"defaultPopupTemplate",null),e([a({readOnly:!0,type:[g]})],P.prototype,"fields",void 0),e([a({readOnly:!0,type:[g]})],P.prototype,"rasterFields",null),P=e([n("esri.layers.WCSLayer")],P);const S=P;export{S as default};