Custom Gis Application with Arcgis Javascript API with modern layouting
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

21 lines
9.5 KiB

// All material copyright Esri, All Rights Reserved, unless otherwise specified.
// See https://js.arcgis.com/4.30/esri/copyright.txt for details.
//>>built
define("../../chunks/tslib.es6 ../../Color ../../core/Accessor ../../core/arrayUtils ../../core/asyncUtils ../../core/has ../../core/maybe ../../core/promiseUtils ../../core/reactiveUtils ../../core/screenUtils ../../core/timeUtils ../../core/accessorSupport/decorators/property ../../core/Logger ../../core/accessorSupport/decorators/subclass ../../core/libs/gl-matrix-2/factories/vec3f64 ../../views/3d/support/earthUtils ../../views/3d/support/sunUtils ../../views/3d/webgl-engine/shaders/ShadowCastVisualizeTechniqueConfiguration ./DiscreteOptions ./DurationMode ./DurationOptions ./ShadowCastState ./ShadowTooltipViewModel ./ShadowVisualizationType ./ThresholdOptions ../support/traversalUtils".split(" "),
function(c,q,b,D,E,P,v,w,h,x,m,d,Q,F,G,H,I,r,y,J,z,t,K,l,A,L){function p(a,e){null!=a&&null!=e&&a.setParameters({shadowCast:e})}function u(a){if(a.suspended)return!1;switch(a.type){case "building-scene-3d":case "csv-3d":case "elevation-3d":case "feature-3d":case "geojson-3d":case "graphics-3d":case "integrated-mesh-3d":case "integrated-mesh-3dtiles":case "ogc-feature-3d":case "route-3d":case "scene-layer-3d":case "scene-layer-graphics-3d":case "stream-3d":case "wms-3d":return!0;case "base-dynamic-3d":case "catalog-3d":case "catalog-footprint-3d":case "catalog-dynamic-group-3d":case "dimension-3d":case "imagery-3d":case "imagery-tile-3d":case "line-of-sight-3d":case "map-image-3d":case "point-cloud-3d":case "tile-3d":case "vector-tile-3d":case "voxel-3d":case "wfs-3d":case "wmts-3d":case "media-3d":return!1;
case "group":return a.layerViews.toArray().some(e=>u(e));default:return!1}}const B=[],M=G.create(),C=[],N=m.convertTime(1,"hours","milliseconds");b=class extends b{constructor(a){super(a);this.view=null;this.tooltip=new K.ShadowTooltipViewModel({getDuration:(e,f)=>this.getDuration(e,f)});this.startTimeOfDay=m.convertTime(10,"hours","milliseconds");this.endTimeOfDay=m.convertTime(16,"hours","milliseconds");this.visualizationType=l.ShadowVisualizationType.Threshold;this.thresholdOptions=new A;this.durationOptions=
new z;this.discreteOptions=new y;this._running=!0;this._stopPreviewingTask=null;this._forcePreview=!1;this._autoRestoreForcePreviewEnabled=!0;this._utcOffset=null;this.date=new Date}initialize(){this.addHandles([h.watch(()=>({view:this.view,tooltipEnabled:this._tooltipEnabled}),({view:a,tooltipEnabled:e})=>{this.tooltip.view=a;this.tooltip.enabled=e},h.syncAndInitial),h.watch(()=>this._forcePreviewDependencies,()=>{v.abortMaybe(this._stopPreviewingTask);this._forcePreview=!0;this._autoRestoreForcePreviewEnabled&&
(this._stopPreviewingTask=E.createTask(async a=>{await w.after(500,a);w.throwIfAborted(a);this._forcePreview=!1}))},h.syncAndInitial),h.watch(()=>({renderer:this.renderer,parameters:this._visualizationParameters}),a=>p(a.renderer,a.parameters),h.syncAndInitial),h.watch(()=>({renderer:this.renderer,parameters:{lightDirections:this._lightDirections}}),a=>p(a.renderer,a.parameters),h.syncAndInitial),h.watch(()=>({renderer:this.renderer,parameters:{enabled:this._running}}),a=>p(a.renderer,a.parameters),
h.syncAndInitial),h.watch(()=>({renderer:this.renderer,parameters:{previewing:this._previewing}}),a=>p(a.renderer,a.parameters),h.syncAndInitial)])}destroy(){this.stop();p(this.renderer,{enabled:!1});v.destroyMaybe(this.tooltip)}get state(){return null!=this.view&&this.view.ready&&null!=this._referencePosition?t.ShadowCastState.Ready:t.ShadowCastState.Disabled}set date(a){a=new Date(a);a.setHours(0,0,0,0);this._set("date",a)}get utcOffset(){return this._utcOffset??this._utcOffsetAuto}set utcOffset(a){this._utcOffset=
a}get testData(){}get _previewing(){const {view:a}=this;return null==a?.allLayerViews?!0:this._forcePreview||!a.stationary||a.allLayerViews.some(e=>u(e)&&e.updating)}get _utcOffsetAuto(){const a=this._referencePosition;return null!=a?H.longitudeToTimezone(a[0],!1):0}get _dateUTCOffset(){let a=this.date;a=m.offsetDateUTC(a,-a.getTimezoneOffset(),"minutes");return a=m.offsetDateUTC(a,-this.utcOffset,"hours")}get _startDateTimeUTC(){return m.offsetDateUTC(this._dateUTCOffset,this.startTimeOfDay)}get _endDateTimeUTC(){return m.offsetDateUTC(this._dateUTCOffset,
this.endTimeOfDay)}get _referencePosition(){return this.view?.environmentManager?.referencePositionGeographic}get _interval(){const a=0<this._duration?Math.floor(this._duration/255):255,e=this.discreteOptions.interval;switch(this.visualizationType){case l.ShadowVisualizationType.Threshold:case l.ShadowVisualizationType.Duration:return a;case l.ShadowVisualizationType.Discrete:return 0<e?e:a}}get _sampleCount(){return this._lightDirections.length}get _duration(){return this.endTimeOfDay-this.startTimeOfDay}get _lightDirections(){var {view:a}=
this;if(null==a)return B;var e="global"===a.viewingMode?M:this._referencePosition;if(null==e)return B;a=I.computeDirectionsOverTime(this._startDateTimeUTC,this._endDateTimeUTC,this._interval,e,a.state.viewingMode);e=a.length;C.length=0;const f=L.breadthFirstBinaryPartitioning(0,e,C),k=Array(e);for(let n=0;n<e;++n)k[n]=a[f[n]];return k}get _tooltipEnabled(){return this.state===t.ShadowCastState.Ready&&this.visualizationType!==l.ShadowVisualizationType.Discrete&&this._running&&!this._previewing}get _visualizationParameters(){if(!this._running)return null;
switch(this.visualizationType){case l.ShadowVisualizationType.Threshold:return this._thresholdVisualizationParameters;case l.ShadowVisualizationType.Duration:return this._durationVisualizationParameters;case l.ShadowVisualizationType.Discrete:return this._discreteVisualizationParameters}}get _thresholdVisualizationParameters(){const {value:a,color:e}=this.thresholdOptions,f=this._duration;return{visualization:r.ShadowCastVisualization.Threshold,color:q.toUnitRGBA(e),threshold:0<f?a/this._duration:
0}}get _durationVisualizationParameters(){const {color:a,mode:e}=this.durationOptions;var f=this._duration;f=0<f&&e===J.DurationMode.Hourly?N/f:0;return{color:q.toUnitRGBA(a),visualization:r.ShadowCastVisualization.Gradient,bandsEnabled:0<f,bandSize:f}}get _discreteVisualizationParameters(){return{color:q.toUnitRGBA(this.discreteOptions.color),visualization:r.ShadowCastVisualization.Gradient,bandsEnabled:!1,bandSize:0}}get _forcePreviewDependencies(){var {view:a}=this;if(null==a)return null;const e=
a.slicePlane;var f=a.allLayerViews.toArray().filter(u),k=f.map(g=>g.layer).filter(D.isSome);a=f.map(g=>g.visible);const n=k.map(g=>g.visible),O=k.map(g=>g.opacity);k=k.filter(g=>"definitionExpression"in g).map(g=>g.definitionExpression);f=f.filter(g=>"filter"in g).map(g=>g.filter);return{slicePlane:e,startDateUTC:this._startDateTimeUTC,endDateUTC:this._endDateTimeUTC,layerViewVisibilities:a,layerVisibilities:n,layerOpacities:O,filters:f,definitionExpressions:k}}get renderer(){var {view:a}=this;if(null==
a)return null;a=a._stage;return null==a?null:a.renderer}start(){this.setRunning(!0)}stop(){this.setRunning(!1)}setRunning(a){this._running=a}async getDuration(a,e){const {view:f,renderer:k}=this;if(null==f||null==k)return 0;a=f.state.camera.screenToRender(x.createScreenPointArray(a.x,a.y),x.createRenderScreenPointArray());a=k.readAccumulatedShadow(a);e=this._sampleCount;return 0===e?0:this._duration/e*e*a}};c.__decorate([d.property()],b.prototype,"state",null);c.__decorate([d.property()],b.prototype,
"view",void 0);c.__decorate([d.property()],b.prototype,"tooltip",void 0);c.__decorate([d.property({nonNullable:!0})],b.prototype,"date",null);c.__decorate([d.property({nonNullable:!0})],b.prototype,"utcOffset",null);c.__decorate([d.property({nonNullable:!0})],b.prototype,"startTimeOfDay",void 0);c.__decorate([d.property({nonNullable:!0})],b.prototype,"endTimeOfDay",void 0);c.__decorate([d.property({nonNullable:!0})],b.prototype,"visualizationType",void 0);c.__decorate([d.property({type:A,nonNullable:!0})],
b.prototype,"thresholdOptions",void 0);c.__decorate([d.property({type:z,nonNullable:!0})],b.prototype,"durationOptions",void 0);c.__decorate([d.property({type:y,nonNullable:!0})],b.prototype,"discreteOptions",void 0);c.__decorate([d.property()],b.prototype,"_running",void 0);c.__decorate([d.property()],b.prototype,"_stopPreviewingTask",void 0);c.__decorate([d.property()],b.prototype,"_forcePreview",void 0);c.__decorate([d.property()],b.prototype,"_autoRestoreForcePreviewEnabled",void 0);c.__decorate([d.property()],
b.prototype,"_previewing",null);c.__decorate([d.property()],b.prototype,"_utcOffset",void 0);c.__decorate([d.property()],b.prototype,"_utcOffsetAuto",null);c.__decorate([d.property()],b.prototype,"_dateUTCOffset",null);c.__decorate([d.property()],b.prototype,"_startDateTimeUTC",null);c.__decorate([d.property()],b.prototype,"_endDateTimeUTC",null);c.__decorate([d.property()],b.prototype,"_referencePosition",null);c.__decorate([d.property()],b.prototype,"_interval",null);c.__decorate([d.property()],
b.prototype,"_sampleCount",null);c.__decorate([d.property()],b.prototype,"_duration",null);c.__decorate([d.property()],b.prototype,"_lightDirections",null);c.__decorate([d.property()],b.prototype,"_tooltipEnabled",null);c.__decorate([d.property()],b.prototype,"_visualizationParameters",null);c.__decorate([d.property()],b.prototype,"_thresholdVisualizationParameters",null);c.__decorate([d.property()],b.prototype,"_durationVisualizationParameters",null);c.__decorate([d.property()],b.prototype,"_discreteVisualizationParameters",
null);c.__decorate([d.property()],b.prototype,"_forcePreviewDependencies",null);c.__decorate([d.property()],b.prototype,"renderer",null);return b=c.__decorate([F.subclass("esri.widgets.ShadowCast.ShadowCastViewModel")],b)});