@vtx/cs-map 1.0.79 → 1.0.81
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/_util/encryptParams.js +2 -1
- package/lib/_util/encryptParams.js.map +1 -1
- package/lib/building-tiles-layer/index.js +1 -1
- package/lib/building-tiles-layer/index.js.map +1 -1
- package/lib/cesium-tiles-layer/CesiumTilesLayer.js +5 -1
- package/lib/cesium-tiles-layer/CesiumTilesLayer.js.map +1 -1
- package/lib/cesium-tiles-layer/index.js +1 -1
- package/lib/cesium-tiles-layer/index.js.map +1 -1
- package/lib/feature-layer/FeatureLayer.js +5 -1
- package/lib/feature-layer/FeatureLayer.js.map +1 -1
- package/lib/index.js +14 -0
- package/lib/index.js.map +1 -1
- package/lib/map/InfoTool/index.js +2 -1
- package/lib/map/InfoTool/index.js.map +1 -1
- package/lib/map/index.js +22 -11
- package/lib/map/index.js.map +1 -1
- package/lib/model/Model.js +86 -0
- package/lib/model/Model.js.map +1 -0
- package/lib/model/index.js +63 -0
- package/lib/model/index.js.map +1 -0
- package/lib/model/style/css.js +2 -0
- package/lib/model/style/css.js.map +1 -0
- package/lib/model/style/index.js +2 -0
- package/lib/model/style/index.js.map +1 -0
- package/lib/navigation/assets/arrows_e_active.png +0 -0
- package/lib/navigation/assets/arrows_n_active.png +0 -0
- package/lib/navigation/assets/arrows_s_active.png +0 -0
- package/lib/navigation/assets/arrows_w_active.png +0 -0
- package/lib/navigation/assets/compass_active.png +0 -0
- package/lib/navigation/assets/ring.png +0 -0
- package/lib/navigation/assets/ring_active.png +0 -0
- package/lib/navigation/assets/tilt.png +0 -0
- package/lib/navigation/assets/tiltbar.png +0 -0
- package/lib/navigation/assets/zoom.png +0 -0
- package/lib/navigation/assets/zoom_active_in.png +0 -0
- package/lib/navigation/assets/zoom_active_out.png +0 -0
- package/lib/navigation/assets/zoombar.png +0 -0
- package/lib/navigation/index.js +306 -0
- package/lib/navigation/index.js.map +1 -0
- package/lib/navigation/style/css.js +4 -0
- package/lib/navigation/style/css.js.map +1 -0
- package/lib/navigation/style/index.css +160 -0
- package/lib/navigation/style/index.js +4 -0
- package/lib/navigation/style/index.js.map +1 -0
- package/lib/navigation/style/index.less +176 -0
- package/lib/pipe-tiles-layer/index.js +1 -1
- package/lib/pipe-tiles-layer/index.js.map +1 -1
- package/lib/tools/assets/loading.png +0 -0
- package/lib/tools/base-map-switch/index.js +2 -2
- package/lib/tools/base-map-switch/index.js.map +1 -1
- package/lib/tools/index.js +25 -1
- package/lib/tools/index.js.map +1 -1
- package/lib/tools/loading/index.js +55 -0
- package/lib/tools/loading/index.js.map +1 -0
- package/lib/tools/style/index.css +38 -13
- package/lib/tools/style/index.less +27 -2
- package/lib/tools/tip/assets/ctrl_left.png +0 -0
- package/lib/tools/tip/assets/left.png +0 -0
- package/lib/tools/tip/assets/right.png +0 -0
- package/lib/tools/tip/assets/tip.png +0 -0
- package/lib/tools/tip/index.js +66 -0
- package/lib/tools/tip/index.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_cesium","require","_util","_interopRequireDefault","_InfoTool","obj","__esModule","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","protoProps","staticProps","prototype","_defineProperty","value","t","_toPrimitive","_typeof","r","e","Symbol","toPrimitive","call","String","Number","_classPrivateFieldInitSpec","privateMap","_checkPrivateRedeclaration","set","privateCollection","has","_classPrivateFieldGet","s","a","get","_assertClassBrand","_classPrivateFieldSet","n","arguments","_element","WeakMap","InfoTool","options","viewer","map","document","createElement","add","callback","undefined","element","position","cartesian2d","cartesian3d","inputFeature","Cesium3DTileFeature","Cartesian2","Cartesian3","scene","pickPositionSupported","defined","pick","pickPosition","camera","pickEllipsoid","globe","ellipsoid","SceneTransforms","wgs84ToWindowCoordinates","that","info","type","feature","remove","propertyNames","getPropertyNames","propertyName","getProperty","properties","_propertyNames","_value","content","_createInfoTool","util","setInnerText","entityId","setCss","cartographic","Cartographic","fromCartesian","lon","CesiumMath","toDegrees","longitude","lat","latitude","setTimeout","_popup","height","offset","divPosition","fromDegrees","x","y","_hookToGlobe","parseInt","getCss","requestRender","hideOnBehindGlobe","cartesian2","_style","preRender","addEventListener","canvasPosition","cartesianToCanvasCoordinates","left","top","cameraPosition","cartesianToCartographic","maximumRadius","distance","_default","exports"],"sources":["map/InfoTool/index.js"],"sourcesContent":["import {\n Math as CesiumMath,\n Cesium3DTileFeature,\n Cartesian2,\n Cartesian3,\n Cartographic,\n SceneTransforms,\n defined,\n} from 'cesium';\nimport './index.less';\nimport util from './util';\n\n/**\n * 信息工具。\n *\n * @alias InfoTool\n * @constructor\n * @param {viewer} viewer Cesium视窗。\n */\nclass InfoTool {\n /**\n * 创建一个动态实体弹窗。\n *\n * @param {viewer} viewer Cesium视窗。\n * @param {Number} options 选项。\n * @param {Cartesian3} options.position 弹出位置。\n * @param {HTMLElement} options.element 弹出窗元素容器。\n * @param {Function} callback 回调函数。\n * @ignore\n */\n static #createInfoTool(viewer, options, callback = undefined) {\n const cartographic = Cartographic.fromCartesian(options.position);\n const lon = CesiumMath.toDegrees(cartographic.longitude); //.toFixed(5);\n const lat = CesiumMath.toDegrees(cartographic.latitude); //.toFixed(5);\n\n // 回调\n callback();\n\n // 添加div弹窗\n setTimeout(function() {\n InfoTool.#popup(\n viewer,\n options.element,\n lon,\n lat,\n cartographic.height,\n // options.geometryType,\n options.offset,\n );\n }, 100);\n }\n\n /**\n * 弹出HTML元素弹窗。\n * @param {viewer} viewer Cesium视窗。\n * @param {Element|HTMLElement} element 弹窗元素。\n * @param {Number} lon 经度。\n * @param {Number} lat 纬度。\n * @param {Number} height 高度。\n * @ignore\n */\n static #popup(viewer, element, lon, lat, height, offset) {\n setTimeout(function() {\n // 设置元素效果\n util.setCss(element, 'opacity', '1');\n util.setCss(element, 'z-index', '0');\n }, 100);\n const divPosition = Cartesian3.fromDegrees(lon, lat, height);\n\n let x = offset?.x || 0;\n let y = offset?.y || 0;\n\n InfoTool.#hookToGlobe(\n viewer,\n element,\n divPosition,\n [-4 + x, -parseInt(util.getCss(element, 'offsetHeight') + y)],\n true,\n );\n viewer.scene.requestRender();\n }\n\n /**\n * 将HTML弹窗挂接到地球上。\n *\n * @param {viewer} viewer Cesium视窗。\n * @param {Element} element 弹窗元素。\n * @param {Cartesian3} position 地图坐标点。\n * @param {Array} offset 偏移。\n * @param {Boolean} hideOnBehindGlobe 当元素在地球背面会自动隐藏,以减轻判断计算压力。\n * @ignore\n */\n static #hookToGlobe(viewer, element, position, offset, hideOnBehindGlobe) {\n const scene = viewer.scene,\n camera = viewer.camera;\n const cartesian2 = new Cartesian2();\n\n let _style = {};\n scene.preRender.addEventListener(function () {\n const canvasPosition = scene.cartesianToCanvasCoordinates(position, cartesian2); // 笛卡尔坐标到画布坐标\n\n if (defined(canvasPosition)) {\n const left = parseInt(canvasPosition.x + offset[0]);\n const top = parseInt(canvasPosition.y + offset[1]);\n\n if (_style.left) {\n _style.left = ((_style.left - left > 1) || (_style.left - left < -1)) ? left : _style.left;\n } else {\n _style.left = left;\n }\n\n _style.top = top;\n util.setCss(element, 'left', _style.left + 'px');\n util.setCss(element, 'top', _style.top + 'px');\n\n\n // 是否在地球背面隐藏\n if (hideOnBehindGlobe) {\n const cameraPosition = camera.position;\n let height = scene.globe.ellipsoid.cartesianToCartographic(cameraPosition)\n .height;\n height += scene.globe.ellipsoid.maximumRadius;\n if (!(Cartesian3.distance(cameraPosition, position) > height)) {\n // util.setCss(element, 'display', 'flex');\n } else {\n util.setCss(element, 'display', 'none');\n }\n }\n }\n });\n }\n\n #element;\n viewer;\n\n constructor(options) {\n this.viewer = options.map;\n // 在Cesium容器中添加元素\n this.#element = document.createElement('div');\n }\n\n /**\n * 添加。\n * @param {Object} options 选项。\n * @param {Element} options.element 弹窗元素。\n * @param {Cartesian2|Cartesian3} options.position 点击位置。\n * @param {Cesium3DTileFeature} [options.inputFeature] 模型要素。\n * @param {String} options.type 类型(默认值为default,即任意点击模式;如果设置为info,即信息模式,只有点击Feature才会响应)。\n * @param {String} options.content 内容(只有类型为default时才起作用)。\n * @param {Function} callback 回调函数。\n */\n add(options, callback = undefined) {\n this.element = options.element;\n // 判断参数为空返回\n if (!options) {\n return;\n }\n // 点\n let position, cartesian2d, cartesian3d, inputFeature;\n if (options instanceof Cesium3DTileFeature) {\n inputFeature = options;\n options = {};\n } else {\n if (options instanceof Cartesian2 || options instanceof Cartesian3) {\n position = options;\n options = {};\n } else {\n position = options.position;\n inputFeature = options.inputFeature;\n }\n // 判断点位为空返回\n if (!position) {\n return;\n }\n if (position instanceof Cartesian2) {\n // 二维转三维\n // 如果支持拾取模型则取模型值\n cartesian3d =\n this.viewer.scene.pickPositionSupported &&\n defined(this.viewer.scene.pick(options.position))\n ? this.viewer.scene.pickPosition(position)\n : this.viewer.camera.pickEllipsoid(\n position,\n this.viewer.scene.globe.ellipsoid,\n );\n cartesian2d = position;\n } else {\n cartesian3d = position;\n cartesian2d = SceneTransforms.wgs84ToWindowCoordinates(\n this.viewer.scene,\n cartesian3d,\n );\n }\n // 判断点位为空返回\n if (!cartesian3d) {\n return;\n }\n }\n\n const that = this;\n\n // 1.组织信息\n let info = '';\n if (options.type === 'info') {\n // 拾取要素\n const feature = inputFeature || this.viewer.scene.pick(cartesian2d);\n // 判断拾取要素为空返回\n if (!defined(feature)) {\n this.remove();\n return;\n }\n\n if (feature instanceof Cesium3DTileFeature) {\n // 3dtiles\n let propertyNames = feature.getPropertyNames();\n let length = propertyNames.length;\n for (let i = 0; i < length; ++i) {\n let propertyName = propertyNames[i];\n info +=\n '\"' + (propertyName + '\": \"' + feature.getProperty(propertyName)) + '\",\\n';\n }\n } else if (feature) {\n // Entity\n const properties = feature.properties;\n if (properties) {\n let propertyNames = properties._propertyNames;\n let length = propertyNames.length;\n for (let i = 0; i < length; ++i) {\n let propertyName = propertyNames[i];\n info +=\n '\"' +\n (propertyName + '\": \"' + properties[propertyName]._value) +\n '\",\\n';\n }\n }\n }\n } else {\n options.content && (info = options.content);\n }\n\n // 2.生成特效\n // 添加之前先移除\n this.remove();\n // if (!info) {\n // return;\n // }\n options.position = cartesian3d;\n options.element = options.element || this.#element;\n\n InfoTool.#createInfoTool(this.viewer, options, function() {\n util.setInnerText(options.element, info);\n typeof callback === 'function' && callback();\n });\n }\n\n /**\n * 移除。\n */\n remove(entityId = undefined) {\n util.setCss(this.element, 'opacity', '0');\n util.setCss(this.element, 'z-index', '-1');\n util.setCss(this.#element, 'opacity', '0');\n }\n}\n\nexport default InfoTool;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_cesium","require","_util","_interopRequireDefault","_InfoTool","obj","__esModule","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","protoProps","staticProps","prototype","_defineProperty","value","t","_toPrimitive","_typeof","r","e","Symbol","toPrimitive","call","String","Number","_classPrivateFieldInitSpec","privateMap","_checkPrivateRedeclaration","set","privateCollection","has","_classPrivateFieldGet","s","a","get","_assertClassBrand","_classPrivateFieldSet","n","arguments","_element","WeakMap","InfoTool","options","viewer","map","document","createElement","add","callback","undefined","element","position","cartesian2d","cartesian3d","inputFeature","Cesium3DTileFeature","Cartesian2","Cartesian3","scene","pickPositionSupported","defined","pick","pickPosition","camera","pickEllipsoid","globe","ellipsoid","SceneTransforms","wgs84ToWindowCoordinates","that","info","type","feature","remove","_feature$getPropertyN","propertyNames","getPropertyNames","propertyName","getProperty","properties","_propertyNames","_value","content","_createInfoTool","util","setInnerText","entityId","setCss","cartographic","Cartographic","fromCartesian","lon","CesiumMath","toDegrees","longitude","lat","latitude","setTimeout","_popup","height","offset","divPosition","fromDegrees","x","y","_hookToGlobe","parseInt","getCss","requestRender","hideOnBehindGlobe","cartesian2","_style","preRender","addEventListener","canvasPosition","cartesianToCanvasCoordinates","left","top","cameraPosition","cartesianToCartographic","maximumRadius","distance","_default","exports"],"sources":["map/InfoTool/index.js"],"sourcesContent":["import {\n Math as CesiumMath,\n Cesium3DTileFeature,\n Cartesian2,\n Cartesian3,\n Cartographic,\n SceneTransforms,\n defined,\n} from 'cesium';\nimport './index.less';\nimport util from './util';\n\n/**\n * 信息工具。\n *\n * @alias InfoTool\n * @constructor\n * @param {viewer} viewer Cesium视窗。\n */\nclass InfoTool {\n /**\n * 创建一个动态实体弹窗。\n *\n * @param {viewer} viewer Cesium视窗。\n * @param {Number} options 选项。\n * @param {Cartesian3} options.position 弹出位置。\n * @param {HTMLElement} options.element 弹出窗元素容器。\n * @param {Function} callback 回调函数。\n * @ignore\n */\n static #createInfoTool(viewer, options, callback = undefined) {\n const cartographic = Cartographic.fromCartesian(options.position);\n const lon = CesiumMath.toDegrees(cartographic.longitude); //.toFixed(5);\n const lat = CesiumMath.toDegrees(cartographic.latitude); //.toFixed(5);\n\n // 回调\n callback();\n\n // 添加div弹窗\n setTimeout(function() {\n InfoTool.#popup(\n viewer,\n options.element,\n lon,\n lat,\n cartographic.height,\n // options.geometryType,\n options.offset,\n );\n }, 100);\n }\n\n /**\n * 弹出HTML元素弹窗。\n * @param {viewer} viewer Cesium视窗。\n * @param {Element|HTMLElement} element 弹窗元素。\n * @param {Number} lon 经度。\n * @param {Number} lat 纬度。\n * @param {Number} height 高度。\n * @ignore\n */\n static #popup(viewer, element, lon, lat, height, offset) {\n setTimeout(function() {\n // 设置元素效果\n util.setCss(element, 'opacity', '1');\n util.setCss(element, 'z-index', '0');\n }, 100);\n const divPosition = Cartesian3.fromDegrees(lon, lat, height);\n\n let x = offset?.x || 0;\n let y = offset?.y || 0;\n\n InfoTool.#hookToGlobe(\n viewer,\n element,\n divPosition,\n [-4 + x, -parseInt(util.getCss(element, 'offsetHeight') + y)],\n true,\n );\n viewer.scene.requestRender();\n }\n\n /**\n * 将HTML弹窗挂接到地球上。\n *\n * @param {viewer} viewer Cesium视窗。\n * @param {Element} element 弹窗元素。\n * @param {Cartesian3} position 地图坐标点。\n * @param {Array} offset 偏移。\n * @param {Boolean} hideOnBehindGlobe 当元素在地球背面会自动隐藏,以减轻判断计算压力。\n * @ignore\n */\n static #hookToGlobe(viewer, element, position, offset, hideOnBehindGlobe) {\n const scene = viewer.scene,\n camera = viewer.camera;\n const cartesian2 = new Cartesian2();\n\n let _style = {};\n scene.preRender.addEventListener(function () {\n const canvasPosition = scene.cartesianToCanvasCoordinates(position, cartesian2); // 笛卡尔坐标到画布坐标\n\n if (defined(canvasPosition)) {\n const left = parseInt(canvasPosition.x + offset[0]);\n const top = parseInt(canvasPosition.y + offset[1]);\n\n if (_style.left) {\n _style.left = ((_style.left - left > 1) || (_style.left - left < -1)) ? left : _style.left;\n } else {\n _style.left = left;\n }\n\n _style.top = top;\n util.setCss(element, 'left', _style.left + 'px');\n util.setCss(element, 'top', _style.top + 'px');\n\n\n // 是否在地球背面隐藏\n if (hideOnBehindGlobe) {\n const cameraPosition = camera.position;\n let height = scene.globe.ellipsoid.cartesianToCartographic(cameraPosition)\n .height;\n height += scene.globe.ellipsoid.maximumRadius;\n if (!(Cartesian3.distance(cameraPosition, position) > height)) {\n // util.setCss(element, 'display', 'flex');\n } else {\n util.setCss(element, 'display', 'none');\n }\n }\n }\n });\n }\n\n #element;\n viewer;\n\n constructor(options) {\n this.viewer = options.map;\n // 在Cesium容器中添加元素\n this.#element = document.createElement('div');\n }\n\n /**\n * 添加。\n * @param {Object} options 选项。\n * @param {Element} options.element 弹窗元素。\n * @param {Cartesian2|Cartesian3} options.position 点击位置。\n * @param {Cesium3DTileFeature} [options.inputFeature] 模型要素。\n * @param {String} options.type 类型(默认值为default,即任意点击模式;如果设置为info,即信息模式,只有点击Feature才会响应)。\n * @param {String} options.content 内容(只有类型为default时才起作用)。\n * @param {Function} callback 回调函数。\n */\n add(options, callback = undefined) {\n this.element = options.element;\n // 判断参数为空返回\n if (!options) {\n return;\n }\n // 点\n let position, cartesian2d, cartesian3d, inputFeature;\n if (options instanceof Cesium3DTileFeature) {\n inputFeature = options;\n options = {};\n } else {\n if (options instanceof Cartesian2 || options instanceof Cartesian3) {\n position = options;\n options = {};\n } else {\n position = options.position;\n inputFeature = options.inputFeature;\n }\n // 判断点位为空返回\n if (!position) {\n return;\n }\n if (position instanceof Cartesian2) {\n // 二维转三维\n // 如果支持拾取模型则取模型值\n cartesian3d =\n this.viewer.scene.pickPositionSupported &&\n defined(this.viewer.scene.pick(options.position))\n ? this.viewer.scene.pickPosition(position)\n : this.viewer.camera.pickEllipsoid(\n position,\n this.viewer.scene.globe.ellipsoid,\n );\n cartesian2d = position;\n } else {\n cartesian3d = position;\n cartesian2d = SceneTransforms.wgs84ToWindowCoordinates(\n this.viewer.scene,\n cartesian3d,\n );\n }\n // 判断点位为空返回\n if (!cartesian3d) {\n return;\n }\n }\n\n const that = this;\n\n // 1.组织信息\n let info = '';\n if (options.type === 'info') {\n // 拾取要素\n const feature = inputFeature || this.viewer.scene.pick(cartesian2d);\n // 判断拾取要素为空返回\n if (!defined(feature)) {\n this.remove();\n return;\n }\n\n if (feature instanceof Cesium3DTileFeature) {\n // 3dtiles\n let propertyNames = feature?.getPropertyNames?.() || [];\n let length = propertyNames.length;\n for (let i = 0; i < length; ++i) {\n let propertyName = propertyNames[i];\n info +=\n '\"' + (propertyName + '\": \"' + feature.getProperty(propertyName)) + '\",\\n';\n }\n } else if (feature) {\n // Entity\n const properties = feature.properties;\n if (properties) {\n let propertyNames = properties._propertyNames;\n let length = propertyNames.length;\n for (let i = 0; i < length; ++i) {\n let propertyName = propertyNames[i];\n info +=\n '\"' +\n (propertyName + '\": \"' + properties[propertyName]._value) +\n '\",\\n';\n }\n }\n }\n } else {\n options.content && (info = options.content);\n }\n\n // 2.生成特效\n // 添加之前先移除\n this.remove();\n // if (!info) {\n // return;\n // }\n options.position = cartesian3d;\n options.element = options.element || this.#element;\n\n InfoTool.#createInfoTool(this.viewer, options, function() {\n util.setInnerText(options.element, info);\n typeof callback === 'function' && callback();\n });\n }\n\n /**\n * 移除。\n */\n remove(entityId = undefined) {\n util.setCss(this.element, 'opacity', '0');\n util.setCss(this.element, 'z-index', '-1');\n util.setCss(this.#element, 'opacity', '0');\n }\n}\n\nexport default InfoTool;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/map/index.js
CHANGED
|
@@ -24,7 +24,7 @@ var _lodash = require("lodash");
|
|
|
24
24
|
var _createFeatureCollection = require("../feature-layer/createFeatureCollection");
|
|
25
25
|
var _getBBoxFromGeojson = _interopRequireDefault(require("../_util/getBBoxFromGeojson.js"));
|
|
26
26
|
var _heightAndZoom = require("../_util/heightAndZoom.js");
|
|
27
|
-
var _excluded = ["center", "
|
|
27
|
+
var _excluded = ["center", "fitViewHeight", "dark", "zoom", "createdMap"],
|
|
28
28
|
_excluded2 = ["geoJson", "geometryInfo", "data", "entity", "lng", "lat", "height", "options"];
|
|
29
29
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
30
30
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
@@ -83,7 +83,8 @@ function Map(props) {
|
|
|
83
83
|
mapDomStyle = props.mapDomStyle,
|
|
84
84
|
baseMapOptions = props.baseMapOptions,
|
|
85
85
|
_props$viewMode = props.viewMode,
|
|
86
|
-
viewMode = _props$viewMode === void 0 ? '2D' : _props$viewMode
|
|
86
|
+
viewMode = _props$viewMode === void 0 ? '2D' : _props$viewMode,
|
|
87
|
+
setLoading = props.setLoading;
|
|
87
88
|
var _useState = (0, _react.useState)(false),
|
|
88
89
|
_useState2 = _slicedToArray(_useState, 2),
|
|
89
90
|
mapLoaded = _useState2[0],
|
|
@@ -104,6 +105,9 @@ function Map(props) {
|
|
|
104
105
|
var getMapFeatureInfoByText = (0, _useGetMapFeatureInfoByText["default"])(mapRef);
|
|
105
106
|
(0, _react.useEffect)(function () {
|
|
106
107
|
initMap();
|
|
108
|
+
return function () {
|
|
109
|
+
setLoading === null || setLoading === void 0 || setLoading(false);
|
|
110
|
+
};
|
|
107
111
|
}, []);
|
|
108
112
|
(0, _react.useEffect)(function () {
|
|
109
113
|
if (mapRef !== null && mapRef !== void 0 && mapRef.current) {
|
|
@@ -152,7 +156,6 @@ function Map(props) {
|
|
|
152
156
|
}, [baseMapStyle.imageryProvider, baseMapStyle.hideLabel]);
|
|
153
157
|
var initMap = function initMap() {
|
|
154
158
|
var center = props.center,
|
|
155
|
-
setLoading = props.setLoading,
|
|
156
159
|
fitViewHeight = props.fitViewHeight,
|
|
157
160
|
dark = props.dark,
|
|
158
161
|
zoom = props.zoom,
|
|
@@ -213,10 +216,14 @@ function Map(props) {
|
|
|
213
216
|
imageryProvider: imageryProvider
|
|
214
217
|
}, options));
|
|
215
218
|
|
|
219
|
+
// 事件订阅
|
|
220
|
+
map.eventEmitter = new _EventEmitter["default"]();
|
|
221
|
+
|
|
216
222
|
// 监听加载是否完成
|
|
217
223
|
var helper = new _cesium.EventHelper();
|
|
218
224
|
helper.add(map.scene.globe.tileLoadProgressEvent, function (e) {
|
|
219
225
|
setLoading === null || setLoading === void 0 || setLoading(true);
|
|
226
|
+
map.eventEmitter.emit('loading', e);
|
|
220
227
|
if (e === 0) {
|
|
221
228
|
setLoading === null || setLoading === void 0 || setLoading(false);
|
|
222
229
|
}
|
|
@@ -230,9 +237,6 @@ function Map(props) {
|
|
|
230
237
|
map.viewMode = viewMode;
|
|
231
238
|
map.autoView = autoView; // 自动调整视角
|
|
232
239
|
|
|
233
|
-
// 事件订阅
|
|
234
|
-
map.eventEmitter = new _EventEmitter["default"]();
|
|
235
|
-
|
|
236
240
|
// 去版权信息
|
|
237
241
|
map._cesiumWidget._creditContainer.style.display = 'none'; // 隐藏cesium ion
|
|
238
242
|
|
|
@@ -416,8 +420,9 @@ function Map(props) {
|
|
|
416
420
|
|
|
417
421
|
// 获取 3DTiles feature 属性
|
|
418
422
|
map.get3DTileFeatureProperties = function (feature) {
|
|
423
|
+
var _feature$getPropertyN;
|
|
419
424
|
var properties = {};
|
|
420
|
-
var propertyIds = feature.getPropertyNames();
|
|
425
|
+
var propertyIds = (feature === null || feature === void 0 || (_feature$getPropertyN = feature.getPropertyNames) === null || _feature$getPropertyN === void 0 ? void 0 : _feature$getPropertyN.call(feature)) || [];
|
|
421
426
|
var length = propertyIds.length;
|
|
422
427
|
for (var i = 0; i < length; ++i) {
|
|
423
428
|
var propertyId = propertyIds[i];
|
|
@@ -745,11 +750,17 @@ function Map(props) {
|
|
|
745
750
|
position: event.endPosition
|
|
746
751
|
});
|
|
747
752
|
if (feature) {
|
|
748
|
-
var
|
|
749
|
-
|
|
750
|
-
|
|
753
|
+
var layer = map.getLayerByFeature(feature);
|
|
754
|
+
if (layer !== null && layer !== void 0 && layer.labelField) {
|
|
755
|
+
var labelField = layer.labelField,
|
|
756
|
+
tipTemplate = layer.tipTemplate;
|
|
751
757
|
var properties = map.getProperties(feature);
|
|
752
|
-
var label
|
|
758
|
+
var label;
|
|
759
|
+
if (tipTemplate) {
|
|
760
|
+
label = tipTemplate(properties);
|
|
761
|
+
} else {
|
|
762
|
+
label = properties ? properties[labelField] : '';
|
|
763
|
+
}
|
|
753
764
|
if (label) {
|
|
754
765
|
map.showTip(label);
|
|
755
766
|
} else {
|