{"version":3,"file":"BaiduMapImageryProvider.mjs","sources":["../../../../../../packages/components/providers/baidu/BaiduMapImageryProvider.ts"],"sourcesContent":["import defer from '@vue-cesium/utils/defer'\nimport BaiduMapMercatorTilingScheme from './BaiduMapTilingScheme'\n\nclass BaiduMapImageryProvider {\n  _url: string\n  _ready: boolean\n  _resource: Cesium.Resource\n  _tileDiscardPolicy: any\n  _tileWidth: number\n  _tileHeight: number\n  _minimumLevel: number\n  _maximumLevel: number\n  _tilingScheme: BaiduMapMercatorTilingScheme\n  _rectangle: Cesium.Rectangle\n  _credit: Cesium.Credit\n  enablePickFeatures: boolean\n  _hasAlphaChannel: boolean\n  _subdomains: string[]\n  _errorEvent: Cesium.Event\n  // _readyPromise: any\n  _labelStyle: string\n  _qt: 'tile' | 'vtile'\n  _styles: 'sl' | 'pl' | 'ph'\n  _scale: '1' | '2'\n  _showtext: '0' | '1'\n  _ak: string\n  _mapStyle:\n    | 'img'\n    | 'vec'\n    | 'traffic'\n    | 'normal'\n    | 'light'\n    | 'dark'\n    | 'redalert'\n    | 'googlelite'\n    | 'grassgreen'\n    | 'midnight'\n    | 'pink'\n    | 'darkgreen'\n    | 'bluish'\n    | 'grayscale'\n    | 'hardedge'\n  constructor(options) {\n    const { Resource, defaultValue, Credit, Event } = Cesium\n    this._subdomains = defaultValue(options.subdomains, ['0', '1', '2', '3'])\n    if (options.url) {\n      this._url = options.url\n    } else {\n      if (options.mapStyle === 'img') {\n        this._url = `//maponline{s}.bdimg.com/starpic/u=x={x};y={y};z={z};v=009;type=sate&qt=satepc&app=webearth2&udt={udt}&fm=46&v=009`\n      } else if (options.mapStyle === 'vec') {\n        this._url = `//maponline{s}.bdimg.com/tile/?qt={qt}&x={x}&y={y}&z={z}&styles={styles}&scaler={scale}&udt={udt}&from=jsapi2_0&showtext={showtext}`\n      } else if (options.mapStyle === 'traffic') {\n        this._url = `https://its.map.baidu.com/traffic/TrafficTileService?time={time}&label={labelStyle}&v=016&level={z}&x={x}&y={y}&scaler={scale}`\n      } else {\n        this._url = `//api.map.baidu.com/customimage/tile?&x={x}&y={y}&z={z}&udt={udt}&scale={scale}&ak={ak}&customid={mapStyle}`\n      }\n    }\n\n    const resource = (Resource as any).createIfNeeded(this._url)\n    resource.appendForwardSlash()\n\n    this._ready = false\n    this._resource = resource\n    this._tileDiscardPolicy = options.tileDiscardPolicy\n    this._tileWidth = 256\n    this._tileHeight = 256\n    this._minimumLevel = options.minimumLevel || 0\n    this._maximumLevel = options.maximumLevel || 18\n    this._tilingScheme = new BaiduMapMercatorTilingScheme(options)\n    this._rectangle = defaultValue(options.rectangle, this._tilingScheme.rectangle)\n    let credit = options.credit\n    if (typeof credit === 'string') {\n      credit = new Credit(credit)\n    }\n    this._credit = credit\n    this.enablePickFeatures = defaultValue(options.enablePickFeatures, false)\n    this._hasAlphaChannel = defaultValue(options.hasAlphaChannel, true)\n    this._errorEvent = new Event()\n    // this._readyPromise = defer()\n    this._ready = true\n    this._labelStyle = options.labelStyle || 'web2D'\n    this._showtext = options.showtext || '1'\n    this._qt = options.qt\n    this._styles = options.styles\n    this._scale = options.scale\n    this._ak = options.ak\n    this._mapStyle = options.mapStyle\n  }\n\n  get url() {\n    return this._resource.url\n  }\n\n  get proxy() {\n    return this._resource.proxy\n  }\n\n  get tileWidth() {\n    if (!this._ready) {\n      throw new Cesium.DeveloperError('tileWidth must not be called before the imagery provider is ready.')\n    }\n    return this._tileWidth\n  }\n\n  get tileHeight() {\n    if (!this._ready) {\n      throw new Cesium.DeveloperError('tileHeight must not be called before the imagery provider is ready.')\n    }\n    return this._tileHeight\n  }\n\n  get maximumLevel() {\n    if (!this._ready) {\n      throw new Cesium.DeveloperError('maximumLevel must not be called before the imagery provider is ready.')\n    }\n    return this._maximumLevel\n  }\n\n  get minimumLevel() {\n    if (!this.ready) {\n      throw new Cesium.DeveloperError('minimumLevel must not be called before the imagery provider is ready.')\n    }\n    return this._minimumLevel\n  }\n\n  get tilingScheme() {\n    if (!this._ready) {\n      throw new Cesium.DeveloperError('tilingScheme must not be called before the imagery provider is ready.')\n    }\n    return this._tilingScheme\n  }\n\n  get rectangle() {\n    if (!this.ready) {\n      throw new Cesium.DeveloperError('rectangle must not be called before the imagery provider is ready.')\n    }\n    return this._rectangle\n  }\n\n  get tileDiscardPolicy() {\n    if (!this.ready) {\n      throw new Cesium.DeveloperError('tileDiscardPolicy must not be called before the imagery provider is ready.')\n    }\n    return this._tileDiscardPolicy\n  }\n\n  get errorEvent() {\n    return this._errorEvent\n  }\n\n  get ready() {\n    return this._ready\n  }\n\n  // get readyPromise() {\n  //   return this._readyPromise.promise\n  // }\n\n  get credit() {\n    if (!this.ready) {\n      throw new Cesium.DeveloperError('credit must not be called before the imagery provider is ready.')\n    }\n    return this._credit\n  }\n\n  get hasAlphaChannel() {\n    if (!this.ready) {\n      throw new Cesium.DeveloperError('hasAlphaChannel must not be called before the imagery provider is ready.')\n    }\n    return this._hasAlphaChannel\n  }\n\n  getTileCredits(x, y, level) {\n    if (!this.ready) {\n      throw new Cesium.DeveloperError('getTileCredits must not be called before the imagery provider is ready.')\n    }\n    return undefined\n  }\n\n  requestImage(x, y, level, request) {\n    if (!this.ready) {\n      throw new Cesium.DeveloperError('requestImage must not be called before the imagery provider is ready.')\n    }\n    return Cesium.ImageryProvider.loadImage(this as any, buildImageResource.call(this, x, y, level, request))\n  }\n\n  pickFeatures(x, y, level, longitude, latitude) {\n    return undefined\n  }\n}\n\nfunction buildImageResource(this, x, y, level, request) {\n  let url = this._url\n  const subdomains = this._subdomains\n  url = url\n    .replace('{s}', subdomains[(x + y + level) % subdomains.length])\n    .replace('{qt}', this._qt)\n    .replace('{x}', x)\n    .replace('{y}', -y)\n    .replace('{z}', level)\n    .replace('{styles}', this._styles)\n    .replace('{scale}', this._scale)\n    .replace('{mapStyle}', this._mapStyle)\n    .replace('{labelStyle}', this._labelStyle)\n    .replace('{ak}', this._ak)\n    .replace('{time}', String(new Date().getTime()))\n    .replace('{udt}', String(new Date().getTime()))\n    .replace('{showtext}', this._showtext)\n  const resource = this._resource.getDerivedResource({\n    url: url,\n    request: request\n  })\n  return resource\n}\n\nexport default BaiduMapImageryProvider\n"],"names":[],"mappings":"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"}