{"version":3,"file":"TiandituImageryProvider.mjs","sources":["../../../../../../packages/components/providers/tianditu/TiandituImageryProvider.ts"],"sourcesContent":["import TiandituMapsStyle from './TiandituMapsStyle'\nimport Uri from 'urijs'\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: any\n  _tileWidth: number\n  _tileHeight: number\n  _minimumLevel: number\n  _maximumLevel: number\n  _rectangle: any\n  _readyPromise: any\n  _errorEvent: any\n  _credit: any\n  _subdomains: []\n  _tileDiscardPolicy: any\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, defaultValue, Event, GeographicTilingScheme, WebMercatorTilingScheme, when } = 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    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 = Promise.resolve(true)\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  }\n\n  requestImage(x, y, level) {\n    const url = buildImageResource.call(this, x, y, level)\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._url\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) {\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  return url\n}\n\nexport default TiandituImageryProvider\n"],"names":[],"mappings":"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"}