1 |
- import{cl as m,i5 as v,eC as M,eE as w,db as b,aL as p,a as y,g as i,t as h,U as c,_ as r,$ as s,a0 as S,i6 as f}from"./index.6c049565.js";const u=new m({BingMapsAerial:"aerial",BingMapsRoad:"road",BingMapsHybrid:"hybrid"}),j="https://dev.virtualearth.net";let a=class extends v(M(w(f))){constructor(t){super(t),this.type="bing-maps",this.tileInfo=new b({size:[256,256],dpi:96,origin:{x:-20037508342787e-6,y:20037508342787e-6,spatialReference:p.WebMercator},spatialReference:p.WebMercator,lods:[{level:1,resolution:78271.5169639999,scale:295828763795777e-6},{level:2,resolution:39135.7584820001,scale:147914381897889e-6},{level:3,resolution:19567.8792409999,scale:73957190948944e-6},{level:4,resolution:9783.93962049996,scale:36978595474472e-6},{level:5,resolution:4891.96981024998,scale:18489297737236e-6},{level:6,resolution:2445.98490512499,scale:9244648868618e-6},{level:7,resolution:1222.99245256249,scale:4622324434309e-6},{level:8,resolution:611.49622628138,scale:2311162217155e-6},{level:9,resolution:305.748113140558,scale:1155581108577e-6},{level:10,resolution:152.874056570411,scale:577790.554289},{level:11,resolution:76.4370282850732,scale:288895.277144},{level:12,resolution:38.2185141425366,scale:144447.638572},{level:13,resolution:19.1092570712683,scale:72223.819286},{level:14,resolution:9.55462853563415,scale:36111.909643},{level:15,resolution:4.77731426794937,scale:18055.954822},{level:16,resolution:2.38865713397468,scale:9027.977411},{level:17,resolution:1.19432856685505,scale:4513.988705},{level:18,resolution:.597164283559817,scale:2256.994353},{level:19,resolution:.298582141647617,scale:1128.497176},{level:20,resolution:.1492910708238085,scale:564.248588}]}),this.key=null,this.style="road",this.culture="en-US",this.region=null,this.portalUrl=null,this.hasAttributionData=!0}get bingMetadata(){return this._get("bingMetadata")}set bingMetadata(t){this._set("bingMetadata",t)}get copyright(){return y(this.bingMetadata)?this.bingMetadata.copyright:null}get operationalLayerType(){return u.toJSON(this.style)}get bingLogo(){return y(this.bingMetadata)?this.bingMetadata.brandLogoUri:null}load(t){return this.key?this.addResolvingPromise(this._getMetadata()):this.portalUrl?this.addResolvingPromise(this._getPortalBingKey().then(()=>this._getMetadata())):this.addResolvingPromise(Promise.reject(new i("bingmapslayer:load","Bing layer must have bing key."))),Promise.resolve(this)}getTileUrl(t,e,o){if(!this.loaded||h(this.bingMetadata))return null;const l=this.bingMetadata.resourceSets[0].resources[0],n=l.imageUrlSubdomains[e%l.imageUrlSubdomains.length],g=this._getQuadKey(t,e,o);return l.imageUrl.replace("{subdomain}",n).replace("{quadkey}",g)}async fetchAttributionData(){return this.load().then(()=>h(this.bingMetadata)?null:{contributors:this.bingMetadata.resourceSets[0].resources[0].imageryProviders.map(t=>({attribution:t.attribution,coverageAreas:t.coverageAreas.map(e=>({zoomMin:e.zoomMin,zoomMax:e.zoomMax,score:1,bbox:[e.bbox[0],e.bbox[1],e.bbox[2],e.bbox[3]]}))}))})}_getMetadata(){const t={road:"roadOnDemand",aerial:"aerial",hybrid:"aerialWithLabelsOnDemand"}[this.style];return c(`${j}/REST/v1/Imagery/Metadata/${t}`,{responseType:"json",query:{include:"ImageryProviders",uriScheme:"https",key:this.key,suppressStatus:!0,output:"json",culture:this.culture,userRegion:this.region}}).then(e=>{const o=e.data;if(o.statusCode!==200)throw new i("bingmapslayer:getmetadata",o.statusDescription);if(this.bingMetadata=o,this.bingMetadata.resourceSets.length===0)throw new i("bingmapslayer:getmetadata","no bing resourcesets");if(this.bingMetadata.resourceSets[0].resources.length===0)throw new i("bingmapslayer:getmetadata","no bing resources")}).catch(e=>{throw new i("bingmapslayer:getmetadata",e.message)})}_getPortalBingKey(){var t;return c((t=this.portalUrl)!=null?t:"",{responseType:"json",authMode:"no-prompt",query:{f:"json"}}).then(e=>{if(!e.data.bingKey)throw new i("bingmapslayer:getportalbingkey","The referenced Portal does not contain a valid bing key");this.key=e.data.bingKey}).catch(e=>{throw new i("bingmapslayer:getportalbingkey",e.message)})}_getQuadKey(t,e,o){let l="";for(let n=t;n>0;n--){let g=0;const d=1<<n-1;(o&d)!=0&&(g+=1),(e&d)!=0&&(g+=2),l+=g.toString()}return l}};r([s({json:{read:!1,write:!1},value:null})],a.prototype,"bingMetadata",null),r([s({json:{read:!1,write:!1},value:"bing-maps",readOnly:!0})],a.prototype,"type",void 0),r([s({type:b})],a.prototype,"tileInfo",void 0),r([s({type:String,readOnly:!0,json:{read:!1,write:!1}})],a.prototype,"copyright",null),r([s({type:String,json:{write:!1,read:!1}})],a.prototype,"key",void 0),r([s({type:u.apiValues,nonNullable:!0,json:{read:{source:"layerType",reader:u.read}}})],a.prototype,"style",void 0),r([s({type:["BingMapsAerial","BingMapsHybrid","BingMapsRoad"]})],a.prototype,"operationalLayerType",null),r([s({type:String,json:{write:!1,read:!1}})],a.prototype,"culture",void 0),r([s({type:String,json:{write:!1,read:!1}})],a.prototype,"region",void 0),r([s({type:String,json:{write:!0,read:!0}})],a.prototype,"portalUrl",void 0),r([s({type:Boolean,json:{write:!1,read:!1}})],a.prototype,"hasAttributionData",void 0),r([s({type:String,readOnly:!0})],a.prototype,"bingLogo",null),a=r([S("esri.layers.BingMapsLayer")],a);const B=a;export{B as default};
|