@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 3.6 kB
JavaScript
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../core/Error.js";import{isNone as r,isSome as i}from"../../../core/maybe.js";import{whenOnce as a}from"../../../core/reactiveUtils.js";import{property as s}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import{subclass as l}from"../../../core/accessorSupport/decorators/subclass.js";import{updatingProgress as o,updatingProgressValue as n}from"../support/updatingProperties.js";import{checkIfTileInfoSupportedForView as p}from"../terrain/terrainUtils.js";const c=c=>{let m=class extends c{get imageFormatIsOpaque(){return!1}get fullExtent(){return this.layer.fullExtent}get isOpaque(){return this.fullOpacity>=1&&this.imageFormatIsOpaque}get dataLevelRange(){const e=this.tileInfo.lods,t=e[0].scale,r=e[e.length-1].scale;return this.levelRangeFromScaleRange(t,r)}get displayLevelRange(){const e=this.tileInfo.lods,t=this.layer.minScale||e[0].scale,r=this.layer.maxScale||e[e.length-1].scale,i=this.levelRangeFromScaleRange(t,r);return this.layer.maxScale&&i.maxLevel++,i}getTileUrl(e,t,r){return this.layer.getTileUrl(e,t,r)}_addTilingSchemeMatchPromise(){if(r(this.fullExtent))return this.addResolvingPromise(Promise.reject(new t("tilingscheme:extent-not-defined","This layer doesn't define a fullExtent.")));const e=this._getTileInfoSupportError(this.tileInfo,this.fullExtent);if(i(e))return this.addResolvingPromise(Promise.reject(e));const s=a((()=>this.view?.basemapTerrain?.tilingSchemeLocked)).then((()=>{const e=this.view.basemapTerrain.tilingScheme,t=this._getTileInfoCompatibilityError(this.tileInfo,e);if(t)throw t}));this.addResolvingPromise(s)}_getTileInfoSupportError(e,r){const i=p(e,r,this.view.spatialReference,this.view.state.viewingMode);if(i){const e={layer:this.layer,error:i};let r;switch(i.name){case"tilingscheme:spatial-reference-mismatch":case"tilingscheme:global-unsupported-spatial-reference":case"tilingscheme:local-unsupported-spatial-reference":r=new t("layerview:spatial-reference-incompatible","The spatial reference of this layer does not meet the requirements of the view",e);break;default:r=new t("layerview:tiling-scheme-unsupported","The tiling scheme of this layer is not supported by SceneView",e)}return r}return null}_getTileInfoCompatibilityError(e,i){return r(e)||!i.compatibleWith(e)?new t("layerview:tiling-scheme-incompatible","The tiling scheme of this layer is incompatible with the tiling scheme of the surface"):null}levelRangeFromScaleRange(e,t){const r={minLevel:0,maxLevel:1/0},i=this.view&&this.view.basemapTerrain&&this.view.basemapTerrain.tilingScheme;if(!i)return r;const a=i.levels[0],s=e=>{const t=Math.log(a.scale/e)/Math.LN2;return.5-Math.abs(.5-t%1)<1e-9?Math.round(t):Math.ceil(t)};return null!=e&&e>0&&(r.minLevel=Math.max(0,s(e))),null!=t&&t>0&&(r.maxLevel=Math.max(0,s(t))),r}isUpdating(){return!!(this.view&&this.view.basemapTerrain&&this.view.basemapTerrain.updating)}};return e([s({readOnly:!0})],m.prototype,"imageFormatIsOpaque",null),e([s({readOnly:!0})],m.prototype,"updating",void 0),e([s(o)],m.prototype,"updatingProgress",void 0),e([s(n)],m.prototype,"updatingProgressValue",void 0),e([s()],m.prototype,"fullExtent",null),e([s({readOnly:!0})],m.prototype,"isOpaque",null),e([s({readOnly:!0})],m.prototype,"dataLevelRange",null),e([s({readOnly:!0})],m.prototype,"displayLevelRange",null),e([s()],m.prototype,"layer",void 0),e([s()],m.prototype,"tileInfo",void 0),m=e([l("esri.views.3d.layers.TiledLayerView3D")],m),m};export{c as TiledLayerView3D};