Lin_Ye_Fang_Huo/public/lib/mars3d/plugins/supermap/mars3d-supermap-src.js

933 lines
33 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*!
* Mars3D平台插件,结合supermap超图库使用的功能插件
* 版本信息v3.1.17, hash值: ca11bebdd5c9facbec86
* 编译日期2021-12-19 12:09:52
* 版权所有Copyright by 火星科技 http://mars3d.cn
*
*/
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory(require("mars3d"), require("mars3d-cesium"));
else if(typeof define === 'function' && define.amd)
define("mars3dSupermap", ["mars3d", "mars3d-cesium"], factory);
else if(typeof exports === 'object')
exports["mars3dSupermap"] = factory(require("mars3d"), require("mars3d-cesium"));
else
root["mars3dSupermap"] = factory(root["mars3d"], root["Cesium"]);
})(window, function(__WEBPACK_EXTERNAL_MODULE__0__, __WEBPACK_EXTERNAL_MODULE__2__) {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 13);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE__0__;
/***/ }),
/* 1 */
/***/ (function(module, exports) {
function _getPrototypeOf(o) {
module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
return o.__proto__ || Object.getPrototypeOf(o);
};
module.exports["default"] = module.exports, module.exports.__esModule = true;
return _getPrototypeOf(o);
}
module.exports = _getPrototypeOf;
module.exports["default"] = module.exports, module.exports.__esModule = true;
/***/ }),
/* 2 */
/***/ (function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
/***/ }),
/* 3 */
/***/ (function(module, exports) {
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
module.exports = _classCallCheck;
module.exports["default"] = module.exports, module.exports.__esModule = true;
/***/ }),
/* 4 */
/***/ (function(module, exports) {
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
module.exports = _createClass;
module.exports["default"] = module.exports, module.exports.__esModule = true;
/***/ }),
/* 5 */
/***/ (function(module, exports, __webpack_require__) {
var setPrototypeOf = __webpack_require__(9);
function _inherits(subClass, superClass) {
if (typeof superClass !== "function" && superClass !== null) {
throw new TypeError("Super expression must either be null or a function");
}
subClass.prototype = Object.create(superClass && superClass.prototype, {
constructor: {
value: subClass,
writable: true,
configurable: true
}
});
if (superClass) setPrototypeOf(subClass, superClass);
}
module.exports = _inherits;
module.exports["default"] = module.exports, module.exports.__esModule = true;
/***/ }),
/* 6 */
/***/ (function(module, exports, __webpack_require__) {
var _typeof = __webpack_require__(10)["default"];
var assertThisInitialized = __webpack_require__(11);
function _possibleConstructorReturn(self, call) {
if (call && (_typeof(call) === "object" || typeof call === "function")) {
return call;
} else if (call !== void 0) {
throw new TypeError("Derived constructors may only return object or undefined");
}
return assertThisInitialized(self);
}
module.exports = _possibleConstructorReturn;
module.exports["default"] = module.exports, module.exports.__esModule = true;
/***/ }),
/* 7 */
/***/ (function(module, exports, __webpack_require__) {
var superPropBase = __webpack_require__(12);
function _get(target, property, receiver) {
if (typeof Reflect !== "undefined" && Reflect.get) {
module.exports = _get = Reflect.get;
module.exports["default"] = module.exports, module.exports.__esModule = true;
} else {
module.exports = _get = function _get(target, property, receiver) {
var base = superPropBase(target, property);
if (!base) return;
var desc = Object.getOwnPropertyDescriptor(base, property);
if (desc.get) {
return desc.get.call(receiver);
}
return desc.value;
};
module.exports["default"] = module.exports, module.exports.__esModule = true;
}
return _get(target, property, receiver || target);
}
module.exports = _get;
module.exports["default"] = module.exports, module.exports.__esModule = true;
/***/ }),
/* 8 */
/***/ (function(module, exports) {
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
module.exports = _defineProperty;
module.exports["default"] = module.exports, module.exports.__esModule = true;
/***/ }),
/* 9 */
/***/ (function(module, exports) {
function _setPrototypeOf(o, p) {
module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
o.__proto__ = p;
return o;
};
module.exports["default"] = module.exports, module.exports.__esModule = true;
return _setPrototypeOf(o, p);
}
module.exports = _setPrototypeOf;
module.exports["default"] = module.exports, module.exports.__esModule = true;
/***/ }),
/* 10 */
/***/ (function(module, exports) {
function _typeof(obj) {
"@babel/helpers - typeof";
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
module.exports = _typeof = function _typeof(obj) {
return typeof obj;
};
module.exports["default"] = module.exports, module.exports.__esModule = true;
} else {
module.exports = _typeof = function _typeof(obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};
module.exports["default"] = module.exports, module.exports.__esModule = true;
}
return _typeof(obj);
}
module.exports = _typeof;
module.exports["default"] = module.exports, module.exports.__esModule = true;
/***/ }),
/* 11 */
/***/ (function(module, exports) {
function _assertThisInitialized(self) {
if (self === void 0) {
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
}
return self;
}
module.exports = _assertThisInitialized;
module.exports["default"] = module.exports, module.exports.__esModule = true;
/***/ }),
/* 12 */
/***/ (function(module, exports, __webpack_require__) {
var getPrototypeOf = __webpack_require__(1);
function _superPropBase(object, property) {
while (!Object.prototype.hasOwnProperty.call(object, property)) {
object = getPrototypeOf(object);
if (object === null) break;
}
return object;
}
module.exports = _superPropBase;
module.exports["default"] = module.exports, module.exports.__esModule = true;
/***/ }),
/* 13 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// EXPORTS
__webpack_require__.d(__webpack_exports__, "S3MLayer", function() { return /* reexport */ S3MLayer_S3MLayer; });
__webpack_require__.d(__webpack_exports__, "SmImgLayer", function() { return /* reexport */ SmImgLayer_SmImgLayer; });
__webpack_require__.d(__webpack_exports__, "SmMvtLayer", function() { return /* reexport */ SmMvtLayer_SmMvtLayer; });
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.15.3@@babel/runtime/helpers/classCallCheck.js
var classCallCheck = __webpack_require__(3);
var classCallCheck_default = /*#__PURE__*/__webpack_require__.n(classCallCheck);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.15.3@@babel/runtime/helpers/createClass.js
var createClass = __webpack_require__(4);
var createClass_default = /*#__PURE__*/__webpack_require__.n(createClass);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.15.3@@babel/runtime/helpers/inherits.js
var inherits = __webpack_require__(5);
var inherits_default = /*#__PURE__*/__webpack_require__.n(inherits);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.15.3@@babel/runtime/helpers/possibleConstructorReturn.js
var possibleConstructorReturn = __webpack_require__(6);
var possibleConstructorReturn_default = /*#__PURE__*/__webpack_require__.n(possibleConstructorReturn);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.15.3@@babel/runtime/helpers/getPrototypeOf.js
var getPrototypeOf = __webpack_require__(1);
var getPrototypeOf_default = /*#__PURE__*/__webpack_require__.n(getPrototypeOf);
// EXTERNAL MODULE: external {"commonjs2":"mars3d-cesium","amd":"mars3d-cesium","commonjs":"mars3d-cesium","root":"Cesium"}
var external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_ = __webpack_require__(2);
// EXTERNAL MODULE: external "mars3d"
var external_mars3d_ = __webpack_require__(0);
// CONCATENATED MODULE: ./src/supermap/S3MLayer.js
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = getPrototypeOf_default()(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = getPrototypeOf_default()(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return possibleConstructorReturn_default()(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
var BaseLayer = external_mars3d_["layer"].BaseLayer;
/**
* 超图S3M三维模型图层,
* 【需要引入 mars3d-supermap 插件库】
*
* @param {Object} options 参数对象,包括以下:
* @param {String|Number} [options.id = uuid()] 图层id标识
* @param {String|Number} [options.pid = -1] 图层父级的id一般图层管理中使用
* @param {String} [options.name = '未命名'] 图层名称
* @param {Boolean} [options.show = true] 图层是否显示
*
* @param {String} options.url supermap的S3M服务地址,示例:"url": "http://www.supermapol.com/realspace/services/3D-Olympic/rest/realspace"
* @param {String} [options.layername] 指定图层名称,未指定时打开iserver场景服务下所有图层
* @param {String} [options.sceneName] 工作空间中有多个场景需要指定场景名称设置为undefined默认打开第一个
* @param {Object} [options.s3mOptions] [S3M支持的参数]{@link http://support.supermap.com.cn:8090/webgl/docs/Documentation/S3MTilesLayer.html?classFilter=S3MTilesLayer} ,示例: {"selectEnabled":false},
* @param {Object} [options.position] 模型新的中心点位置(移动模型)
* @param {Number} options.position.alt 获取或设置底部高程。(单位:米)
*
* @param {Object} [options.center] 图层自定义定位视角
* @param {Boolean} [options.flyTo] 加载完成数据后是否自动飞行定位到数据所在的区域。
* @export
* @class S3MLayer
* @extends {BaseLayer}
*/
var S3MLayer_S3MLayer = /*#__PURE__*/function (_BaseLayer) {
inherits_default()(S3MLayer, _BaseLayer);
var _super = _createSuper(S3MLayer);
function S3MLayer() {
classCallCheck_default()(this, S3MLayer);
return _super.apply(this, arguments);
}
createClass_default()(S3MLayer, [{
key: "layer",
get:
/**
* 模型对应的supermap图层组
* @type {Cesium.S3MTilesLayer[]}
* @readonly
* @see http://support.supermap.com.cn:8090/webgl/docs/Documentation/S3MTilesLayer.html
*/
function get() {
return this._layerArr;
}
/**
* 设置S3M图层本身支持的参数
* @type {Object}
* @see [S3M支持的参数]{@link http://support.supermap.com.cn:8090/webgl/docs/Documentation/S3MTilesLayer.html?classFilter=S3MTilesLayer}
*/
}, {
key: "s3mOptions",
get: function get() {
return this.options.s3mOptions;
},
set: function set(value) {
for (var key in value) {
var val = value[key];
this.options.s3mOptions[key] = val;
if (key == "transparentBackColor") {
//去黑边与offset互斥注意别配置offset
val = external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["Color"].fromCssColorString(val);
} else if (key == "transparentBackColorTolerance") {
val = Number(val);
}
for (var i = 0; i < this._layerArr.length; i++) {
var layer = this._layerArr[i];
if (layer == null) {
continue;
}
layer[key] = val;
}
}
}
/**
* 对象添加到地图前创建一些对象的钩子方法,
* 只会调用一次
* @return {void} 无
* @private
*/
}, {
key: "_mountedHook",
value: function _mountedHook() {
var _this = this;
//场景添加S3M图层服务
var promise;
if (this.options.layername) {
promise = this._map.scene.addS3MTilesLayerByScp(this.options.url, {
name: this.options.layername,
autoSetVie: this.options.flyTo,
cullEnabled: this.options.cullEnabled
});
} else {
promise = this._map.scene.open(this.options.url, this.options.sceneName, {
autoSetVie: this.options.flyTo
});
}
external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["when"](promise, function (smLayer) {
if (Array.isArray(smLayer)) {
_this._layerArr = smLayer;
} else {
_this._layerArr = [smLayer];
} //设置图层属性
for (var i = 0; i < _this._layerArr.length; i++) {
var _this$options, _this$options$positio;
var layer = _this._layerArr[i];
if (layer == null) {
continue;
}
layer.isS3M = true; //标识下
//s3mOptions
if (_this.options.s3mOptions) {
for (var key in _this.options.s3mOptions) {
var val = _this.options.s3mOptions[key];
if (key == "transparentBackColor") {
//去黑边与offset互斥注意别配置offset
layer[key] = external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["Color"].fromCssColorString(val);
} else if (key == "transparentBackColorTolerance") {
layer[key] = Number(val);
} else {
layer[key] = _this.options.s3mOptions[key];
}
}
} //高度调整 offset.z
if ((_this$options = _this.options) !== null && _this$options !== void 0 && (_this$options$positio = _this$options.position) !== null && _this$options$positio !== void 0 && _this$options$positio.alt) {
layer.style3D.bottomAltitude = _this.options.position.alt;
layer.refresh();
}
}
if (_this.options.flyTo) {
_this.flyToByAnimationEnd();
}
if (_this.options.dataUrl) {
for (var _i = 0; _i < _this._layerArr.length; _i++) {
var ql = _this._layerArr[_i]; //读取子图层信息通过数组的方式返回子图层的名称以及子图层所包含的对象的IDs
ql.setQueryParameter({
url: _this.options.dataUrl,
dataSourceName: ql.name.split("@")[1],
dataSetName: ql.name.split("@")[0],
isMerge: true
}); //获取图层风格
//Note_GJ: rgba, 1为不透明0为全透明。已经在模型中导入材质所以这里的颜色不特别设置
//var style3D = new Cesium.Style3D();
// var color = Cesium.Color.fromCssColorString("#919191");//混泥土颜色 RGB(145, 145,145)
// style3D.fillForeColor = color;
// ql.style3D = style3D;
//设置后需刷新图层
// ql.refresh();
ql.selectEnabled = true;
}
}
}, function (error) {
_this.showError("渲染时发生错误,已停止渲染。", error);
});
}
/**
* 对象添加到地图上的创建钩子方法,
* 每次add时都会调用
* @return {void} 无
* @private
*/
}, {
key: "_addedHook",
value: function _addedHook() {
for (var i in this._layerArr) {
this._layerArr[i].visible = true;
this._layerArr[i].show = true;
}
}
/**
* 对象从地图上移除的创建钩子方法,
* 每次remove时都会调用
* @return {void} 无
* @private
*/
}, {
key: "_removedHook",
value: function _removedHook() {
if (this._layerArr) {
for (var i in this._layerArr) {
this._layerArr[i].visible = false;
this._layerArr[i].show = false;
}
}
}
/**
* 设置透明度
* @param {Number} value 透明度
* @return {void} 无
*/
}, {
key: "setOpacity",
value: function setOpacity(value) {
if (this._layerArr) {
for (var i = 0; i < this._layerArr.length; i++) {
var item = this._layerArr[i];
if (item == null) {
continue;
}
item.style3D.fillForeColor.alpha = value;
}
}
} //定位至数据区域
}, {
key: "flyTo",
value: function flyTo() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
if (this.options.center) {
this._map.setCameraView(this.options.center, options);
} else if (this.options.extent) {
this._map.flyToExtent(this.options.extent, options);
}
}
}]);
return S3MLayer;
}(BaseLayer);
external_mars3d_["layer"].S3MLayer = S3MLayer_S3MLayer; //注册下
external_mars3d_["LayerUtil"].register("supermap_s3m", S3MLayer_S3MLayer);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.15.3@@babel/runtime/helpers/get.js
var get = __webpack_require__(7);
var get_default = /*#__PURE__*/__webpack_require__.n(get);
// CONCATENATED MODULE: ./src/supermap/SmImgLayer.js
function SmImgLayer_createSuper(Derived) { var hasNativeReflectConstruct = SmImgLayer_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = getPrototypeOf_default()(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = getPrototypeOf_default()(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return possibleConstructorReturn_default()(this, result); }; }
function SmImgLayer_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
var BaseTileLayer = external_mars3d_["layer"].BaseTileLayer;
/**
* 超图影像瓦片服务图层,
* 【需要引入 mars3d-supermap 插件库】
*
* @param {Object} options 参数对象,包括以下:
* @param {BaseTileLayer.ConstructorOptions} [options.通用参数] 包含父类支持的所有参数
*
* @param {Boolean} [options.transparent=true] 设置请求的地图服务的参数是否为transparent。
* @param {String} [options.tileFormat] 影像图片格式默认为png。
* @param {String} [options.cacheKey] 影像的三维缓存密钥。
*
* @param {String|Cesium.Color} [options.transparentBackColor] 设置影像透明色。
* @param {Number} [options.transparentBackColorTolerance] 去黑边,设置影像透明色容限取值范围为0.0~1.0。0.0表示完全透明1.0表示完全不透明。
*
* @export
* @class SmImgLayer
* @extends {BaseTileLayer}
*
* @see http://support.supermap.com.cn:8090/webgl/docs/Documentation/SuperMapImageryProvider.html?classFilter=SuperMapImageryProvider
*/
var SmImgLayer_SmImgLayer = /*#__PURE__*/function (_BaseTileLayer) {
inherits_default()(SmImgLayer, _BaseTileLayer);
var _super = SmImgLayer_createSuper(SmImgLayer);
function SmImgLayer() {
classCallCheck_default()(this, SmImgLayer);
return _super.apply(this, arguments);
}
createClass_default()(SmImgLayer, [{
key: "_createImageryProvider",
value: //构建ImageryProvider
function _createImageryProvider(options) {
return createImageryProvider(options);
} //添加时
}, {
key: "_addedHook",
value: function _addedHook() {
get_default()(getPrototypeOf_default()(SmImgLayer.prototype), "_addedHook", this).call(this);
if (external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["defined"](this.options.transparentBackColorTolerance)) {
this._imageryLayer.transparentBackColorTolerance = this.options.transparentBackColorTolerance; //去黑边
}
}
}]);
return SmImgLayer;
}(BaseTileLayer);
function createImageryProvider(options) {
options = external_mars3d_["LayerUtil"].converOptions(options);
return new external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["SuperMapImageryProvider"](options);
}
/**
* 创建用于图层的 ImageryProvider对象
*
* @param {Object} options Provider参数同图层构造参数。
* @return {Cesium.SuperMapImageryProvider} ImageryProvider类
* @function
*/
SmImgLayer_SmImgLayer.createImageryProvider = createImageryProvider;
external_mars3d_["layer"].SmImgLayer = SmImgLayer_SmImgLayer; //注册下
var layerType = "supermap_img";
external_mars3d_["LayerUtil"].register(layerType, SmImgLayer_SmImgLayer);
external_mars3d_["LayerUtil"].registerImageryProvider(layerType, createImageryProvider);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.15.3@@babel/runtime/helpers/defineProperty.js
var defineProperty = __webpack_require__(8);
var defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty);
// CONCATENATED MODULE: ./src/supermap/SmMvtLayer.js
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { defineProperty_default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function SmMvtLayer_createSuper(Derived) { var hasNativeReflectConstruct = SmMvtLayer_isNativeReflectConstruct(); return function _createSuperInternal() { var Super = getPrototypeOf_default()(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = getPrototypeOf_default()(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return possibleConstructorReturn_default()(this, result); }; }
function SmMvtLayer_isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
var SmMvtLayer_BaseLayer = external_mars3d_["layer"].BaseLayer;
/**
* 超图MVT矢量瓦片图层,
* 【需要引入 mars3d-supermap 插件库】
*
* @param {Object} options 参数对象,包括以下:
* @param {String|Number} [options.id = uuid()] 图层id标识
* @param {String|Number} [options.pid = -1] 图层父级的id一般图层管理中使用
* @param {String} [options.name = '未命名'] 图层名称
* @param {Boolean} [options.show = true] 图层是否显示
* @param {Object} [options.center] 图层自定义定位视角
*
* @param {String} options.url 适用于通过SuperMap桌面软件生成mvt数据,经iServer发布为rest风格的地图服务只需提供服务地址。
* @param {String} options.url 服务地址,适用于第三方发布的WMTS服务。
* @param {String} options.layer 图层名称,适用于第三方发布的WMTS服务。
* @param {Number} [options.canvasWidth] 用来绘制矢量的纹理边长。默认是512越大越精细越小性能越高。
* @param {String} [options.format='mvt'] 适用于第三方发布的WMTS服务。
* @param {Object} [options.mapboxStyle] 使用的mapBox风格。
* @param {Object} [options.其他] 参考[supermap官方API]{@link http://support.supermap.com.cn:8090/webgl/docs/Documentation/Scene.html#addVectorTilesLayer}
*
*
* @export
* @class SmMvtLayer
* @extends {BaseLayer}
*/
var SmMvtLayer_SmMvtLayer = /*#__PURE__*/function (_BaseLayer) {
inherits_default()(SmMvtLayer, _BaseLayer);
var _super = SmMvtLayer_createSuper(SmMvtLayer);
function SmMvtLayer() {
classCallCheck_default()(this, SmMvtLayer);
return _super.apply(this, arguments);
}
createClass_default()(SmMvtLayer, [{
key: "layer",
get:
/**
* 对应的supermap图层
* @type {Cesium.VectorTilesLayer}
* @readonly
* @see http://support.supermap.com.cn:8090/webgl/docs/Documentation/VectorTilesLayer.html
*/
function get() {
return this._mvtLayer;
}
/**
* 对象添加到地图前创建一些对象的钩子方法,
* 只会调用一次
* @return {void} 无
* @private
*/
}, {
key: "_mountedHook",
value: function _mountedHook() {
var _this = this;
//options参考API文档http://support.supermap.com.cn:8090/webgl/docs/Documentation/Scene.html
this._mvtLayer = this._map.scene.addVectorTilesMap(this.options);
var layerReadyPromise = this._mvtLayer.readyPromise;
external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["when"](layerReadyPromise, function (data) {//setPaintProperty(layerId, name, value, options)
// for(var layerId in that.options.style){
// that._mvtLayer.setPaintProperty(layerId, "fill-color", "rgba(255,0,0,0.8)");
// }
}, function (error) {
_this.showError("渲染时发生错误,已停止渲染。", error);
});
var scene = this._map.scene;
var handler = new external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["ScreenSpaceEventHandler"](scene.canvas);
handler.setInputAction(function (event) {
if (!_this.show) {
return;
}
var position = external_mars3d_["PointUtil"].getCurrentMousePosition(scene, event.position); //查询出相交图层的feature
var features = _this._mvtLayer.queryRenderedFeatures([position], {// layers: [selectLayer.id]
});
var filter = features.reduce(function (memo, result) {
var attr = result.feature.properties;
if (!attr) {
return;
}
var content = external_mars3d_["Util"].getPopupForConfig(_this.options, attr);
var item = {
data: attr,
event: event
};
_this._map.openPopup(position, content, item);
}, ["in", "$id"]);
}, external_commonjs2_mars3d_cesium_amd_mars3d_cesium_commonjs_mars3d_cesium_root_Cesium_["ScreenSpaceEventType"].LEFT_CLICK);
this.handler = handler;
}
/**
* 对象添加到地图上的创建钩子方法,
* 每次add时都会调用
* @return {void} 无
* @private
*/
}, {
key: "_addedHook",
value: function _addedHook() {
this._mvtLayer.show = true;
this._mvtLayer.refresh();
}
/**
* 对象从地图上移除的创建钩子方法,
* 每次remove时都会调用
* @return {void} 无
* @private
*/
}, {
key: "_removedHook",
value: function _removedHook() {
if (this._mvtLayer) {
this._mvtLayer.show = false;
}
}
/**
* 设置透明度
* @param {Number} value 透明度
* @return {void} 无
*/
}, {
key: "setOpacity",
value: function setOpacity(value) {
if (this._mvtLayer) {
this._mvtLayer.alpha = parseFloat(value);
}
} //定位至数据区域
}, {
key: "flyTo",
value: function flyTo() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
if (this.options.center) {
this._map.setCameraView(this.options.center, options);
} else if (this.options.extent) {
this._map.flyToExtent(this.options.extent, options);
} else if (this._mvtLayer) {
this._map.camera.flyTo(_objectSpread(_objectSpread({}, options), {}, {
destination: this._mvtLayer.rectangle
}));
}
}
}]);
return SmMvtLayer;
}(SmMvtLayer_BaseLayer);
external_mars3d_["layer"].SmMvtLayer = SmMvtLayer_SmMvtLayer; //注册下
external_mars3d_["LayerUtil"].register("supermap_mvt", SmMvtLayer_SmMvtLayer);
// CONCATENATED MODULE: ./src/index.js
/***/ })
/******/ ]);
});
//# sourceMappingURL=mars3d-supermap-src.js.map