UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

6 lines (5 loc) 954 B
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.32/esri/copyright.txt for details. */ import{ElevationSamplerData as a}from"./ElevationSamplerData.js";class t{constructor(t,l=null){if(this.tile=t,null!=l&&null!=t){const e=t.extent;this._samplerData=new a(l,e)}}get zmin(){return null!=this._samplerData?this._samplerData.data.minValue:0}get zmax(){return null!=this._samplerData?this._samplerData.data.maxValue:0}get hasNoDataValues(){return!!this._samplerData?.data.hasNoDataValues}sample(a,t){if(null==this._samplerData)return;const{safeWidth:e,data:s,dx:r,dy:n,y1:i,x0:u}=this._samplerData,{width:o,values:m,noDataValue:h}=s,p=l(n*(i-t),0,e),D=l(r*(a-u),0,e),d=Math.floor(p),f=Math.floor(D),_=d*o+f,c=_+o,x=m[_],V=m[c],g=m[_+1],v=m[c+1];if(x!==h&&V!==h&&g!==h&&v!==h){const a=D-f,t=x+(g-x)*a;return t+(V+(v-V)*a-t)*(p-d)}}}function l(a,t,l){return a<t?t:a>l?l:a}export{t as ElevationTile};