UNPKG

vue-cesium

Version:
151 lines (146 loc) 5.73 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var BaiduMapTilingScheme = require('./BaiduMapTilingScheme.js'); "use strict"; class BaiduMapImageryProvider { constructor(options) { const { Resource, defaultValue, Credit, Event } = Cesium; this._subdomains = defaultValue(options.subdomains, ["0", "1", "2", "3"]); if (options.url) { this._url = options.url; } else { if (options.mapStyle === "img") { 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`; } else if (options.mapStyle === "vec") { this._url = `//maponline{s}.bdimg.com/tile/?qt={qt}&x={x}&y={y}&z={z}&styles={styles}&scaler={scale}&udt={udt}&from=jsapi3_0&showtext={showtext}`; } else if (options.mapStyle === "traffic") { this._url = `https://its.map.baidu.com/traffic/TrafficTileService?time={time}&label={labelStyle}&v=016&level={z}&x={x}&y={y}&scaler={scale}`; } else { this._url = `//api.map.baidu.com/customimage/tile?&x={x}&y={y}&z={z}&udt={udt}&scale={scale}&ak={ak}&customid={mapStyle}`; } } const resource = Resource.createIfNeeded(this._url); resource.appendForwardSlash(); this._ready = false; this._resource = resource; this._tileDiscardPolicy = options.tileDiscardPolicy; this._tileWidth = 256; this._tileHeight = 256; this._minimumLevel = options.minimumLevel || 0; this._maximumLevel = options.maximumLevel || 18; this._tilingScheme = new BaiduMapTilingScheme["default"](options); this._rectangle = defaultValue(options.rectangle, this._tilingScheme.rectangle); let credit = options.credit; if (typeof credit === "string") { credit = new Credit(credit); } this._credit = credit; this.enablePickFeatures = defaultValue(options.enablePickFeatures, false); this._hasAlphaChannel = defaultValue(options.hasAlphaChannel, true); this._errorEvent = new Event(); this._ready = true; this._labelStyle = options.labelStyle || "web2D"; this._showtext = options.showtext || "1"; this._qt = options.qt; this._styles = options.styles; this._scale = options.scale; this._ak = options.ak; this._mapStyle = options.mapStyle; } get url() { return this._resource.url; } get proxy() { return this._resource.proxy; } get tileWidth() { if (!this._ready) { throw new Cesium.DeveloperError("tileWidth must not be called before the imagery provider is ready."); } return this._tileWidth; } get tileHeight() { if (!this._ready) { throw new Cesium.DeveloperError("tileHeight must not be called before the imagery provider is ready."); } return this._tileHeight; } get maximumLevel() { if (!this._ready) { throw new Cesium.DeveloperError("maximumLevel must not be called before the imagery provider is ready."); } return this._maximumLevel; } get minimumLevel() { if (!this.ready) { throw new Cesium.DeveloperError("minimumLevel must not be called before the imagery provider is ready."); } return this._minimumLevel; } get tilingScheme() { if (!this._ready) { throw new Cesium.DeveloperError("tilingScheme must not be called before the imagery provider is ready."); } return this._tilingScheme; } get rectangle() { if (!this.ready) { throw new Cesium.DeveloperError("rectangle must not be called before the imagery provider is ready."); } return this._rectangle; } get tileDiscardPolicy() { if (!this.ready) { throw new Cesium.DeveloperError("tileDiscardPolicy must not be called before the imagery provider is ready."); } return this._tileDiscardPolicy; } get errorEvent() { return this._errorEvent; } get ready() { return this._ready; } // get readyPromise() { // return this._readyPromise.promise // } get credit() { if (!this.ready) { throw new Cesium.DeveloperError("credit must not be called before the imagery provider is ready."); } return this._credit; } get hasAlphaChannel() { if (!this.ready) { throw new Cesium.DeveloperError("hasAlphaChannel must not be called before the imagery provider is ready."); } return this._hasAlphaChannel; } getTileCredits(x, y, level) { if (!this.ready) { throw new Cesium.DeveloperError("getTileCredits must not be called before the imagery provider is ready."); } return void 0; } requestImage(x, y, level, request) { if (!this.ready) { throw new Cesium.DeveloperError("requestImage must not be called before the imagery provider is ready."); } return Cesium.ImageryProvider.loadImage(this, buildImageResource.call(this, x, y, level, request)); } pickFeatures(x, y, level, longitude, latitude) { return void 0; } } function buildImageResource(x, y, level, request) { let url = this._url; const subdomains = this._subdomains; url = url.replace("{s}", subdomains[(x + y + level) % subdomains.length]).replace("{qt}", this._qt).replace("{x}", x).replace("{y}", -y).replace("{z}", level).replace("{styles}", this._styles).replace("{scale}", this._scale).replace("{mapStyle}", this._mapStyle).replace("{labelStyle}", this._labelStyle).replace("{ak}", this._ak).replace("{time}", String((/* @__PURE__ */ new Date()).getTime())).replace("{udt}", String((/* @__PURE__ */ new Date()).getTime())).replace("{showtext}", this._showtext); const resource = this._resource.getDerivedResource({ url, request }); return resource; } exports["default"] = BaiduMapImageryProvider; //# sourceMappingURL=BaiduMapImageryProvider.js.map