{"version":3,"file":"TiandituImageryProvider.mjs","sources":["../../../../../../packages/components/providers/tianditu/TiandituImageryProvider.ts"],"sourcesContent":["import TiandituMapsStyle from './TiandituMapsStyle'\nimport Uri from 'urijs'\nimport defer from '@vue-cesium/utils/defer'\n\nconst TiandituMapsStyleUrl = {}\nconst TiandituMapsStyleLayer = {}\nconst TiandituMapsStyleID = {}\nconst TiandituMapsStyleFormat = {}\nconst TiandituMapsStyleEPSG = {}\nconst TiandituMapsStyleLabels = {}\n\nclass TiandituImageryProvider {\n  _mapStyle: string\n  _url: string\n  _token: string\n  _layer: string\n  _style: string\n  _tileMatrixSetID: string\n  _tileMatrixLabels: string\n  _format: string\n  _epsgCode: string\n  _tilingScheme: Cesium.GeographicTilingScheme | Cesium.WebMercatorTilingScheme\n  _tileWidth: number\n  _tileHeight: number\n  _minimumLevel: number\n  _maximumLevel: number\n  _rectangle: Cesium.Rectangle\n  // _readyPromise?: Promise<boolean>\n  _errorEvent: Cesium.Event\n  _credit: Cesium.Credit\n  _subdomains: string[]\n  _tileDiscardPolicy: any\n  _ready: boolean\n  _resource: Cesium.Resource\n  constructor(options) {\n    Object.keys(TiandituMapsStyle).forEach(key => {\n      TiandituMapsStyleUrl[TiandituMapsStyle[key]] = options.protocol + '://{s}.tianditu.gov.cn/' + TiandituMapsStyle[key] + '/wmts'\n      TiandituMapsStyleLayer[TiandituMapsStyle[key]] = TiandituMapsStyle[key].slice(0, 3)\n      TiandituMapsStyleID[TiandituMapsStyle[key]] = TiandituMapsStyle[key].slice(4)\n      TiandituMapsStyleFormat[TiandituMapsStyle[key]] = 'tiles'\n\n      if (TiandituMapsStyleID[TiandituMapsStyle[key]] === 'w') {\n        TiandituMapsStyleEPSG[TiandituMapsStyle[key]] = '900913'\n      } else {\n        TiandituMapsStyleEPSG[TiandituMapsStyle[key]] = '4490'\n      }\n      switch (TiandituMapsStyle[key]) {\n        case 'img_w':\n        case 'img_c':\n        case 'cia_w':\n        case 'cia_c':\n        case 'cta_w':\n        case 'cta_c':\n          TiandituMapsStyleLabels[TiandituMapsStyle[key]] = [\n            '1',\n            '2',\n            '3',\n            '4',\n            '5',\n            '6',\n            '7',\n            '8',\n            '9',\n            '10',\n            '11',\n            '12',\n            '13',\n            '14',\n            '15',\n            '16',\n            '17',\n            '18'\n          ]\n          break\n        case 'vec_w':\n        case 'vec_c':\n        case 'cva_w':\n        case 'cva_c':\n          TiandituMapsStyleLabels[TiandituMapsStyle[key]] = [\n            '1',\n            '2',\n            '3',\n            '4',\n            '5',\n            '6',\n            '7',\n            '8',\n            '9',\n            '10',\n            '11',\n            '12',\n            '13',\n            '14',\n            '15',\n            '16',\n            '17',\n            '18',\n            '19'\n          ]\n          break\n        case 'ter_w':\n        case 'ter_c':\n          TiandituMapsStyleLabels[TiandituMapsStyle[key]] = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14']\n          break\n        case 'eia_w':\n        case 'eia_c':\n        case 'eva_w':\n        case 'eva_c':\n        case 'ibo_c':\n        case 'ibo_w':\n          TiandituMapsStyleLabels[TiandituMapsStyle[key]] = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']\n          break\n      }\n    })\n    const { Credit, Resource, defaultValue, Event, GeographicTilingScheme, WebMercatorTilingScheme } = Cesium\n    options = defaultValue(options, {})\n    this._mapStyle = defaultValue(options.mapStyle, TiandituMapsStyle.IMG_W)\n    this._url = options.url || defaultValue(options.url, TiandituMapsStyleUrl[this._mapStyle])\n\n    const resource = (Resource as any).createIfNeeded(this._url)\n    resource.appendForwardSlash()\n\n    this._ready = false\n    this._resource = resource\n    this._token = options.token\n    this._layer = defaultValue(options.layer, TiandituMapsStyleLayer[this._mapStyle])\n    this._style = defaultValue(options.style, 'default')\n    this._tileMatrixSetID = defaultValue(options.tileMatrixSetID, TiandituMapsStyleID[this._mapStyle])\n    this._tileMatrixLabels = defaultValue(options.tileMatrixLabels, TiandituMapsStyleLabels[this._mapStyle])\n    this._format = defaultValue(options.format, TiandituMapsStyleFormat[this._mapStyle])\n    this._epsgCode = TiandituMapsStyleEPSG[this._mapStyle]\n    this._tilingScheme = this._epsgCode === '900913' ? new WebMercatorTilingScheme() : new GeographicTilingScheme()\n    this._tileWidth = defaultValue(options.tileWidth, 256)\n    this._tileHeight = defaultValue(options.tileHeight, 256)\n    this._minimumLevel = defaultValue(options.minimumLevel, 0)\n    this._maximumLevel = defaultValue(options.maximumLevel, TiandituMapsStyleLabels[this._mapStyle].length)\n    this._rectangle = defaultValue(options.rectangle, this._tilingScheme.rectangle)\n    // this._readyPromise = defer()\n    this._errorEvent = new Event()\n    const credit = defaultValue(options.credit, '天地图全球影像服务')\n    this._credit = typeof credit === 'string' ? new Credit(credit) : credit\n    this._subdomains = defaultValue(options.subdomains, ['t0', 't1', 't2', 't3', 't4', 't5', 't6', 't7'])\n    this._tileDiscardPolicy = options.tileDiscardPolicy\n    this._ready = true\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\n    const url = buildImageResource.call(this, x, y, level, request)\n    return Cesium.ImageryProvider.loadImage(this as any, url)\n  }\n\n  pickFeatures(x, y, level, longitude, latitude) {\n    return undefined\n  }\n\n  get url() {\n    return this._resource.url\n  }\n\n  get proxy() {\n    return this._resource.proxy\n  }\n\n  get mapStyle() {\n    return this._mapStyle\n  }\n\n  get tileWidth() {\n    return this._tileWidth\n  }\n\n  get tileHeight() {\n    return this._tileHeight\n  }\n\n  get maximumLevel() {\n    return this._maximumLevel\n  }\n\n  get minimumLevel() {\n    return this._minimumLevel\n  }\n\n  get tilingScheme() {\n    return this._tilingScheme\n  }\n\n  get rectangle() {\n    return this._rectangle\n  }\n\n  get errorEvent() {\n    return this._errorEvent\n  }\n\n  get ready() {\n    return true\n  }\n\n  // get readyPromise() {\n  //   // return this._readyPromise\n  // }\n\n  get credit() {\n    return this._credit\n  }\n\n  get hasAlphaChannel() {\n    return true\n  }\n\n  get tileDiscardPolicy() {\n    return this._tileDiscardPolicy\n  }\n}\n\n/**\n * 构建天地图影像服务url, 调用时需要改变 this 指向为 TiandituImageryProvider\n * @param {number} x\n * @param {number} y\n * @param {number} level\n * @private\n */\nfunction buildImageResource(this, x, y, level, request) {\n  const { combine, defined, defaultValue, queryToObject, objectToQuery } = Cesium\n  const freezeObject = Object.freeze\n  const options = freezeObject({\n    service: 'WMTS',\n    version: '1.0.0',\n    request: 'GetTile'\n  })\n  this._epsgCode === '900913' && (level -= 1)\n  const tileMatrixLabels = this._tileMatrixLabels\n  const tileMatrixLabel = defined(tileMatrixLabels) ? tileMatrixLabels[level] : level.toString()\n  const subdomains = this._subdomains\n  let url = this._url.replace('{s}', subdomains[(x + y + level) % subdomains.length])\n  const uri = new Uri(url)\n  let obj = queryToObject(defaultValue(uri.query?.(), ''))\n  obj = combine(options, obj)\n  obj.tilematrix = tileMatrixLabel\n  obj.layer = this._layer\n  obj.style = this._style\n  obj.tilerow = y\n  obj.tilecol = x\n  obj.tilematrixset = this._tileMatrixSetID\n  obj.format = this._format\n  const query = objectToQuery(obj)\n  url = uri.toString() + '?' + query\n  defined(this._proxy) && (url = this._proxy.getURL(url))\n  defined(this._token) && (url += '&tk=' + this._token)\n\n  const resource = this._resource.getDerivedResource({\n    url: url,\n    request: request\n  })\n  return resource\n}\n\nexport default TiandituImageryProvider\n"],"names":[],"mappings":"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"}