@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
1 lines • 7.12 kB
JavaScript
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[6650],{69052:(e,t,i)=>{i.d(t,{ie:()=>l});var n=i(34727);class r{constructor(e,t){this.min=e,this.max=t,this.range=t-e}normalize(e,t=0,i=!1){return s(this.range,this.min,this.max,e,t,i)}clamp(e,t=0){return(0,n.qE)(e-t,this.min,this.max)+t}monotonic(e,t,i){return e<t?t:t+o(this.range,e-t,i)}minimalMonotonic(e,t,i){return s(this.range,e,e+this.range,t,i)}center(e,t,i){return t=this.monotonic(e,t,i),this.normalize((e+t)/2,i)}diff(e,t,i){return this.monotonic(e,t,i)-e}shortestSignedDiff(e,t){e=this.normalize(e);const i=(t=this.normalize(t))-e,n=t<e?this.minimalMonotonic(e,t)-e:t-this.minimalMonotonic(t,e);return Math.abs(i)<Math.abs(n)?i:n}contains(e,t,i){return t=this.minimalMonotonic(e,t),(i=this.minimalMonotonic(e,i))>e&&i<t}}function s(e,t,i,n,r=0,s=!1){return(n-=r)<t?n+=o(e,t-n):n>i&&(n-=o(e,n-i)),s&&n===i&&(n=t),n+r}function o(e,t,i=0){return Math.ceil((t-i)/e)*e+i}new r(0,2*Math.PI),new r(-Math.PI,Math.PI);const l=new r(0,360)},96650:(e,t,i)=>{i.r(t),i.d(t,{default:()=>F});var n=i(90237),r=i(44612),s=i(69540),o=i(69052),l=i(25482),a=i(97768),u=i(10107),h=i(79901),p=(i(44208),i(87811),i(40608)),d=i(56507),c=i(86738);let w=class extends(l.A.JSONSupportMixin(s.A)){constructor(e){super(e),this.observer=null,this.farDistance=1e3,this.heading=0,this.tilt=90,this.horizontalFieldOfView=45,this.verticalFieldOfView=45,this.feature=null}isValid(){return null!=this.observer&&this.farDistance>0}equals(e){return(0,a.CM)(this.observer,e.observer)&&this.farDistance===e.farDistance&&this.heading===e.heading&&this.tilt===e.tilt&&this.horizontalFieldOfView===e.horizontalFieldOfView&&this.verticalFieldOfView===e.verticalFieldOfView&&(0,r.xH)(this.feature,e.feature)}};(0,n._)([(0,u.MZ)({type:c.A,json:{write:{isRequired:!0}}})],w.prototype,"observer",void 0),(0,n._)([(0,u.MZ)({type:Number,nonNullable:!0,range:{min:0},json:{write:{isRequired:!0}}})],w.prototype,"farDistance",void 0),(0,n._)([(0,u.MZ)({type:Number,nonNullable:!0,json:{write:{isRequired:!0}}}),(0,h.w)((e=>o.ie.normalize((0,d.GB)(e),void 0,!0)))],w.prototype,"heading",void 0),(0,n._)([(0,u.MZ)({type:Number,nonNullable:!0,range:{min:0,max:180},json:{write:{isRequired:!0}}})],w.prototype,"tilt",void 0),(0,n._)([(0,u.MZ)({type:Number,nonNullable:!0,range:{min:0,max:360},json:{write:{isRequired:!0}}})],w.prototype,"horizontalFieldOfView",void 0),(0,n._)([(0,u.MZ)({type:Number,nonNullable:!0,range:{min:0,max:180},json:{write:{isRequired:!0}}})],w.prototype,"verticalFieldOfView",void 0),(0,n._)([(0,u.MZ)(r.N1)],w.prototype,"feature",void 0),(0,n._)([(0,u.MZ)({json:{read:!1}})],w.prototype,"isValid",null),w=(0,n._)([(0,p.$)("esri.analysis.Viewshed")],w);const m=w;var y=i(45475),v=i(5503),f=i(62885),g=i(34727),M=i(36708),x=(i(53966),i(5443)),_=i(57251);const b=v.A.ofType(m);let O=class extends y.A{constructor(e){super(e),this.type="viewshed",this._extent=null}initialize(){this.addHandles((0,M.wB)((()=>this._computeExtent()),(e=>{null==e.pending&&(this._extent=e.extent)}),M.pc))}get viewsheds(){return this._get("viewsheds")||new b}set viewsheds(e){this._set("viewsheds",(0,f.V)(e,this.viewsheds,b))}get spatialReference(){for(const e of this.viewsheds)if(null!=e.observer)return e.observer.spatialReference;return null}get extent(){return this._extent}get requiredPropertiesForEditing(){return this.viewsheds.items.map((({observer:e})=>e))}async waitComputeExtent(){const e=this._computeExtent();null!=e.pending&&await e.pending}_computeExtent(){const{spatialReference:e}=this;if(null==e)return{pending:null,extent:null};const t=this.viewsheds.filter((e=>null!=e.observer)),i=t.map((e=>e.observer)).toArray(),n=(0,_.projectOrLoadMany)(i,e);return null!=n.pending?{pending:n.pending,extent:null}:{pending:null,extent:n.geometries.map(((e,i)=>{const n=t.at(i);return null!=e&&null!=n?this._computeViewshedExtent(this.viewsheds.at(i),e):null})).filter((e=>null!=e)).reduce(((e,t)=>function(e,t){return null==e?t:null==t?e:e.union(t)}(e,t)),null)}}_computeViewshedExtent(e,t){const{farDistance:i,heading:n,tilt:r,horizontalFieldOfView:s,verticalFieldOfView:l}=e,{spatialReference:a}=t,u=s/2,h=l/2,p=i/a.metersPerUnit,d=[o.ie.normalize(n-u),n,o.ie.normalize(n+u)],c=x.A.fromPoint(t),w=e=>{const t=d.map((t=>o.ie.normalize(t-e)));if(t[0]>t[2]||360===s)return p;const i=t.map((e=>Math.abs(e>180?360-e:e))).reduce(((e,t)=>e>t?t:e));return i>90?0:p*Math.cos((0,g.kU)(i))};c.xmax+=w(90),c.xmin-=w(-90),c.ymax+=w(0),c.ymin-=w(180);const m=t.z;if(null!=m){let e=m,t=m;const n=r-90,s=(0,g.qE)(n+h,-90,90),o=(0,g.qE)(n-h,-90,90),l=a?.isGeographic?i:p;e+=l*Z(s),t+=l*Z(o);const d=V(h)*l,w=Z(n)*d*(1-V(u));r<90&&(e-=w),r>90&&(t-=w),c.zmax=Math.max(e,m),c.zmin=Math.min(t,m)}return c}clear(){this.viewsheds.removeAll()}};function V(e){return Math.cos((0,g.kU)(e))}function Z(e){return Math.sin((0,g.kU)(e))}(0,n._)([(0,u.MZ)({type:["viewshed"]})],O.prototype,"type",void 0),(0,n._)([(0,u.MZ)({cast:f.H,type:b,nonNullable:!0})],O.prototype,"viewsheds",null),(0,n._)([(0,u.MZ)({readOnly:!0})],O.prototype,"spatialReference",null),(0,n._)([(0,u.MZ)()],O.prototype,"_extent",void 0),(0,n._)([(0,u.MZ)({readOnly:!0})],O.prototype,"extent",null),(0,n._)([(0,u.MZ)({readOnly:!0})],O.prototype,"requiredPropertiesForEditing",null),O=(0,n._)([(0,p.$)("esri.analysis.ViewshedAnalysis")],O);const z=O;var R=i(92071),N=i(43937),E=i(4146),q=i(16131);let A=class extends((0,q.q)((0,R.P)(E.A))){constructor(e){super(e),this.type="viewshed",this.operationalLayerType="ViewshedLayer",this.source=new z,this.opacity=1}initialize(){this.addHandles((0,M.wB)((()=>this.source),((e,t)=>{null!=t&&t.parent===this&&(t.parent=null),null!=e&&(e.parent=this)}),M.pc))}async load(){return this.addResolvingPromise(this.source.waitComputeExtent()),this}get spatialReference(){return this.source.spatialReference}get fullExtent(){return this.source.extent}releaseAnalysis(e){this.source===e&&(this.source=new z)}get analysis(){return this.source}set analysis(e){this.source=e}get viewsheds(){return this.source.viewsheds}set viewsheds(e){this.source.viewsheds=e}writeViewsheds(e,t,i,n){t.viewsheds=e.filter((e=>e.isValid())).map((e=>e.toJSON(n))).toJSON()}};(0,n._)([(0,u.MZ)({json:{read:!1},readOnly:!0})],A.prototype,"type",void 0),(0,n._)([(0,u.MZ)({type:["ViewshedLayer"]})],A.prototype,"operationalLayerType",void 0),(0,n._)([(0,u.MZ)({type:z,nonNullable:!0})],A.prototype,"source",void 0),(0,n._)([(0,u.MZ)({readOnly:!0})],A.prototype,"spatialReference",null),(0,n._)([(0,u.MZ)({readOnly:!0})],A.prototype,"fullExtent",null),(0,n._)([(0,u.MZ)({readOnly:!0,json:{read:!1,write:!1,origins:{service:{read:!1,write:!1},"portal-item":{read:!1,write:!1},"web-document":{read:!1,write:!1}}}})],A.prototype,"opacity",void 0),(0,n._)([(0,u.MZ)({type:["show","hide"]})],A.prototype,"listMode",void 0),(0,n._)([(0,u.MZ)({type:v.A.ofType(m),json:{write:{ignoreOrigin:!0},origins:{"web-scene":{write:{ignoreOrigin:!0}}}}})],A.prototype,"viewsheds",null),(0,n._)([(0,N.K)("web-scene","viewsheds")],A.prototype,"writeViewsheds",null),A=(0,n._)([(0,p.$)("esri.layers.ViewshedLayer")],A);const F=A}}]);