@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 2.07 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import{_ as t}from"../../../../chunks/tslib.es6.js";import{property as e}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as s}from"../../../../core/accessorSupport/decorators/subclass.js";import r from"../../../../geometry/Point.js";import{estimateStatisticsFromHistograms as a}from"../../../../layers/support/rasterFunctions/stretchUtils.js";import o from"../../../../rest/support/ImageHistogramParameters.js";import i from"./RasterLayerAdapter.js";let n=class extends i{generateRasterInfo(t){const e=t?.rasterFunction;try{return this.layer.generateRasterInfo(e,{signal:t?.signal})}catch{return Promise.resolve(this.layer.serviceRasterInfo)}}async estimateStatisticsHistograms(t){const{layer:e}=this,s=e.mosaicRule?.multidimensionalDefinition?.[0]?.variableName??"",i=`${t?.rasterFunction?.functionName??"default"}${s}`,n=this._statsCache.get(i);if(n)return n;let{width:c,height:m,pixelSize:l}=e.rasterInfo,p=1;for(;c>2e3||m>2e3;)c/=2,m/=2,p*=2;const u=t?.rasterFunction??e.rasterFunction,{fullExtent:h,mosaicRule:g}=e;l=new r(l.x*p,l.y*p,h.spatialReference);const f=new o({geometry:h,pixelSize:l,renderingRule:u,mosaicRule:g});let d;if(e.capabilities.operations.supportsComputeStatisticsHistograms)d=await e.computeStatisticsHistograms(f,t);else{const{histograms:s}=await e.computeHistograms(f,t);d={statistics:a(s),histograms:s}}return d&&this._statsCache.put(i,d),d}supportsMultidirectionalHillshade(){return this.layer.version>=10.81}load(t){return this.addResolvingPromise(this.layer.load(t).then((()=>{this.generateRasterInfo({rasterFunction:this.rasterFunction,signal:t?.signal}).then((t=>this.rasterInfo=t))}))),Promise.resolve(this)}};t([e()],n.prototype,"layer",void 0),n=t([s("esri.smartMapping.raster.support.adapters.ImageryLayerAdapter")],n);const c=n;export{c as default};