FetchAssociatedFeatureLayer.a687e764.js 7.1 KB

1
  1. import{h8 as E,fO as T,aq as f,cq as R,U as h,is as P,it as w,t as d,a as I,dA as U,aM as m,i0 as g,cs as A,bO as C}from"./index.6c049565.js";import"./mat3f64.6d32a1d7.js";import"./mat4f64.ff2a477c.js";import"./quat.4f976512.js";import{r as D,e as v,I as F}from"./I3SBinaryReader.e56bed53.js";import"./quatf64.4ae3e6f1.js";import"./symbolColorUtils.8b5111ae.js";import{t as $}from"./vec3f32.1121a836.js";import"./plane.80965a04.js";const V={analytics:{supportsCacheHint:!1},attachment:{supportsContentType:!1,supportsExifInfo:!1,supportsKeywords:!1,supportsName:!1,supportsSize:!1,supportsCacheHint:!1,supportsResize:!1},data:{isVersioned:!1,supportsAttachment:!1,supportsM:!1,supportsZ:!1},editing:{supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsGeometryUpdate:!1,supportsGlobalId:!1,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsUpdateWithoutM:!1,supportsUploadWithItemId:!1},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:!1,supportsDelete:!1,supportsEditing:!1,supportsChangeTracking:!1,supportsQuery:!1,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:!1,supportsExceedsLimitStatistics:!1},queryRelated:{supportsCount:!1,supportsOrderBy:!1,supportsPagination:!1,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},query:{maxRecordCount:0,maxRecordCountFactor:0,standardMaxRecordCount:0,supportsCacheHint:!1,supportsCentroid:!1,supportsCompactGeometry:!1,supportsDefaultSpatialReference:!1,supportsFullTextSearch:!1,supportsDisjointSpatialRelationship:!1,supportsDistance:!1,supportsDistinct:!1,supportsExtent:!1,supportsFormatPBF:!1,supportsGeometryProperties:!1,supportsHavingClause:!1,supportsHistoricMoment:!1,supportsMaxRecordCountFactor:!1,supportsOrderBy:!1,supportsPagination:!1,supportsPercentileStatistics:!1,supportsQuantization:!1,supportsQuantizationEditMode:!1,supportsQueryByOthers:!1,supportsQueryGeometry:!1,supportsResultType:!1,supportsSqlExpression:!1,supportsStandardizedQueriesOnly:!1,supportsTopFeaturesQuery:!1,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1},supportsStatistics:!1,tileMaxRecordCount:0}};var y;(function(s){s[s.INVISIBLE=0]="INVISIBLE",s[s.TRANSPARENT=1]="TRANSPARENT",s[s.OPAQUE=2]="OPAQUE"})(y||(y={}));function N(s){return{...O,...s,type:"solid"}}const O={color:E(0,0,0,.2),size:1,extensionLength:0,opacity:1,objectTransparency:y.OPAQUE,hasSlicePlane:!1};E(0,0,0,.2),y.OPAQUE;function x(s=[0,0,0],r=[-1,-1,-1],t=[0,0,0,1]){return{center:T(s),halfSize:$(r),quaternion:D(t)}}(()=>{const s=new Int8Array(162);let r=0;const t=e=>{for(let a=0;a<e.length;a++)s[r+a]=e[a];r+=6};return t([6,2,3,1,5,4]),t([0,2,3,1,5,4]),t([0,2,3,7,5,4]),t([0,1,3,2,6,4]),t([0,1,3,2,0,0]),t([0,1,5,7,3,2]),t([0,1,3,7,6,4]),t([0,1,3,7,6,2]),t([0,1,5,7,6,2]),t([0,1,5,4,6,2]),t([0,1,5,4,0,0]),t([0,1,3,7,5,4]),t([0,2,6,4,0,0]),t([0,0,0,0,0,0]),t([1,3,7,5,0,0]),t([2,3,7,6,4,0]),t([2,3,7,6,0,0]),t([2,3,1,5,7,6]),t([0,1,5,7,6,2]),t([0,1,5,7,6,4]),t([0,1,3,7,6,4]),t([4,5,7,6,2,0]),t([4,5,7,6,0,0]),t([4,5,1,3,7,6]),t([0,2,3,7,5,4]),t([6,2,3,7,5,4]),t([6,2,3,1,5,4]),s})();f();var _;function W(s,r,t,e,a){const n=[];for(const o of r)if(o&&a.includes(o.name)){const p=`${s}/nodes/${t}/attributes/${o.key}/0`;n.push({url:p,storageInfo:o})}return R(n.map(o=>h(o.url,{responseType:"array-buffer"}).then(p=>F(o.storageInfo,p.data)))).then(o=>{const p=[];for(const l of e){const u={};for(let i=0;i<o.length;i++)o[i].value!=null&&(u[n[i].storageInfo.name]=b(o[i].value,l));p.push(u)}return p})}(function(s){s[s.OUTSIDE=0]="OUTSIDE",s[s.INTERSECTS_CENTER_OUTSIDE=1]="INTERSECTS_CENTER_OUTSIDE",s[s.INTERSECTS_CENTER_INSIDE=2]="INTERSECTS_CENTER_INSIDE",s[s.INSIDE=3]="INSIDE"})(_||(_={}));const Q=-32768,M=-(2**31);function b(s,r){if(!s)return null;const t=s[r];return P(s)?t===Q?null:t:w(s)?t===M?null:t:t!=t?null:t}N({color:[0,0,0,0],opacity:0});v();f();f();x();new Array(72);class Z{constructor(r,t,e,a){var o;this._parsedUrl=r,this._portalItem=t,this._apiKey=e,this.signal=a,this._rootDocument=null;const n=(o=this._parsedUrl)==null?void 0:o.path.match(/^(.*)\/SceneServer\/layers\/([\d]*)\/?$/i);n&&(this._urlParts={root:n[1],layerId:parseInt(n[2],10)})}async fetch(){var e;if(!this._urlParts)return null;const r=(e=this._portalItem)!=null?e:await this._portalItemFromServiceItemId();if(d(r))return this._loadFromUrl();const t=await this._findAndLoadRelatedPortalItem(r);return d(t)?null:this._loadFeatureLayerFromPortalItem(t)}async fetchPortalItem(){var t;if(!this._urlParts)return null;const r=(t=this._portalItem)!=null?t:await this._portalItemFromServiceItemId();return d(r)?null:this._findAndLoadRelatedPortalItem(r)}async _fetchRootDocument(){if(I(this._rootDocument))return this._rootDocument;if(d(this._urlParts))return this._rootDocument={},{};const r={query:{f:"json",token:this._apiKey},responseType:"json",signal:this.signal},t=`${this._urlParts.root}/SceneServer`;try{const e=await h(t,r);this._rootDocument=e.data}catch{this._rootDocument={}}return this._rootDocument}async _fetchServiceOwningPortalUrl(){var a,n;const r=(a=this._parsedUrl)==null?void 0:a.path,t=r?(n=U)==null?void 0:n.findServerInfo(r):null;if(t!=null&&t.owningSystemUrl)return t.owningSystemUrl;const e=r?r.replace(/(.*\/rest)\/.*/i,"$1")+"/info":null;try{const o=(await h(e,{query:{f:"json"},responseType:"json",signal:this.signal})).data.owningSystemUrl;if(o)return o}catch(o){m(o)}return null}async _findAndLoadRelatedPortalItem(r){try{return(await r.fetchRelatedItems({relationshipType:"Service2Service",direction:"reverse"},{signal:this.signal})).find(t=>t.type==="Feature Service")||null}catch(t){return m(t),null}}async _loadFeatureLayerFromPortalItem(r){var e;await r.load({signal:this.signal});const t=await this._findMatchingAssociatedSublayerUrl((e=r.url)!=null?e:"");return new g({url:t,portalItem:r}).load({signal:this.signal})}async _loadFromUrl(){var t;const r=await this._findMatchingAssociatedSublayerUrl(`${(t=this._urlParts)==null?void 0:t.root}/FeatureServer`);return new g({url:r}).load({signal:this.signal})}async _findMatchingAssociatedSublayerUrl(r){var S;const t=r.replace(/^(.*FeatureServer)(\/[\d]*\/?)?$/i,"$1"),e={query:{f:"json"},responseType:"json",authMode:"no-prompt",signal:this.signal},a=(S=this._urlParts)==null?void 0:S.layerId,n=this._fetchRootDocument(),o=h(t,e),[p,l]=await Promise.all([o,n]),u=l&&l.layers,i=p.data&&p.data.layers;if(!Array.isArray(i))throw new Error("expected layers array");if(Array.isArray(u)){for(let c=0;c<Math.min(u.length,i.length);c++)if(u[c].id===a)return`${t}/${i[c].id}`}else if(a!=null&&a<i.length)return`${t}/${i[a].id}`;throw new Error("could not find matching associated sublayer")}async _portalItemFromServiceItemId(){const r=(await this._fetchRootDocument()).serviceItemId;if(!r)return null;const t=new A({id:r,apiKey:this._apiKey}),e=await this._fetchServiceOwningPortalUrl();I(e)&&(t.portal=new C({url:e}));try{return t.load({signal:this.signal})}catch(a){return m(a),null}}}export{Z as l,V as t,W as y};