@vtx/cs-map 1.0.6 → 1.0.8

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.
Files changed (129) hide show
  1. package/README.md +202 -202
  2. package/lib/_util/EventEmitter.js +80 -0
  3. package/lib/_util/EventEmitter.js.map +1 -0
  4. package/lib/_util/Provider.js +14 -0
  5. package/lib/_util/Provider.js.map +1 -0
  6. package/lib/_util/getDefaultMapInfo.js +2 -2
  7. package/lib/_util/getDefaultMapInfo.js.map +1 -1
  8. package/lib/_util/useProps.js +15 -0
  9. package/lib/_util/useProps.js.map +1 -0
  10. package/lib/assets/colors.png +0 -0
  11. package/lib/assets/colors1.png +0 -0
  12. package/lib/cesium-3dtiles-layer/Cesium3DTilesLayer.js +38 -0
  13. package/lib/cesium-3dtiles-layer/Cesium3DTilesLayer.js.map +1 -0
  14. package/lib/cesium-3dtiles-layer/index.js +30 -0
  15. package/lib/cesium-3dtiles-layer/index.js.map +1 -0
  16. package/lib/feature-layer/FeatureLayer.js +47 -12
  17. package/lib/feature-layer/FeatureLayer.js.map +1 -1
  18. package/lib/feature-layer/createFeatureCollection.js +4 -0
  19. package/lib/feature-layer/createFeatureCollection.js.map +1 -1
  20. package/lib/feature-layer/index.js +35 -25
  21. package/lib/feature-layer/index.js.map +1 -1
  22. package/lib/group-layer/GroupLayer.js +89 -0
  23. package/lib/group-layer/GroupLayer.js.map +1 -0
  24. package/lib/group-layer/index.js +68 -0
  25. package/lib/group-layer/index.js.map +1 -0
  26. package/lib/group-layer/style/css.js +4 -0
  27. package/lib/group-layer/style/css.js.map +1 -0
  28. package/lib/group-layer/style/index.css +0 -0
  29. package/lib/group-layer/style/index.js +4 -0
  30. package/lib/group-layer/style/index.js.map +1 -0
  31. package/lib/group-layer/style/index.less +0 -0
  32. package/lib/highlight-layer/HighlightLayer.js +172 -0
  33. package/lib/highlight-layer/HighlightLayer.js.map +1 -0
  34. package/lib/highlight-layer/index.js +25 -0
  35. package/lib/highlight-layer/index.js.map +1 -0
  36. package/lib/highlight-layer/style/css.js +4 -0
  37. package/lib/highlight-layer/style/css.js.map +1 -0
  38. package/lib/highlight-layer/style/index.css +0 -0
  39. package/lib/highlight-layer/style/index.js +4 -0
  40. package/lib/highlight-layer/style/index.js.map +1 -0
  41. package/lib/highlight-layer/style/index.less +0 -0
  42. package/lib/image-layer/ImageLayer.js +113 -0
  43. package/lib/image-layer/ImageLayer.js.map +1 -0
  44. package/lib/image-layer/index.js +74 -0
  45. package/lib/image-layer/index.js.map +1 -0
  46. package/lib/image-layer/style/css.js +4 -0
  47. package/lib/image-layer/style/css.js.map +1 -0
  48. package/lib/image-layer/style/index.css +0 -0
  49. package/lib/image-layer/style/index.js +4 -0
  50. package/lib/image-layer/style/index.js.map +1 -0
  51. package/lib/image-layer/style/index.less +0 -0
  52. package/lib/index.js +36 -1
  53. package/lib/index.js.map +1 -1
  54. package/lib/line-flow-layer/LineFlowLayer.js +110 -0
  55. package/lib/line-flow-layer/LineFlowLayer.js.map +1 -0
  56. package/lib/line-flow-layer/index.js +30 -0
  57. package/lib/line-flow-layer/index.js.map +1 -0
  58. package/lib/line-flow-layer/style/css.js +4 -0
  59. package/lib/line-flow-layer/style/css.js.map +1 -0
  60. package/lib/line-flow-layer/style/index.css +0 -0
  61. package/lib/line-flow-layer/style/index.js +4 -0
  62. package/lib/line-flow-layer/style/index.js.map +1 -0
  63. package/lib/line-flow-layer/style/index.less +0 -0
  64. package/lib/map/InfoTool/index.css +55 -0
  65. package/lib/map/InfoTool/index.js +247 -0
  66. package/lib/map/InfoTool/index.js.map +1 -0
  67. package/lib/map/InfoTool/index.less +46 -0
  68. package/lib/map/InfoTool/util.js +113 -0
  69. package/lib/map/InfoTool/util.js.map +1 -0
  70. package/lib/map/InfoWindow.js +11 -6
  71. package/lib/map/InfoWindow.js.map +1 -1
  72. package/lib/map/Popup.js +164 -78
  73. package/lib/map/Popup.js.map +1 -1
  74. package/lib/map/hooks/useGetMapFeatureInfoByText.js +211 -0
  75. package/lib/map/hooks/useGetMapFeatureInfoByText.js.map +1 -0
  76. package/lib/map/index.js +415 -102
  77. package/lib/map/index.js.map +1 -1
  78. package/lib/map/style/index.css +76 -9
  79. package/lib/map/style/index.less +79 -8
  80. package/lib/marker/Marker.js +1 -0
  81. package/lib/marker/Marker.js.map +1 -1
  82. package/lib/marker/index.js +6 -4
  83. package/lib/marker/index.js.map +1 -1
  84. package/lib/material/TrailPolylineMaterial.js +31 -0
  85. package/lib/material/TrailPolylineMaterial.js.map +1 -0
  86. package/lib/point/index.js +6 -4
  87. package/lib/point/index.js.map +1 -1
  88. package/lib/polygon/index.js +6 -4
  89. package/lib/polygon/index.js.map +1 -1
  90. package/lib/polyline/index.js +6 -4
  91. package/lib/polyline/index.js.map +1 -1
  92. package/lib/renderer/index.js +4 -1
  93. package/lib/renderer/index.js.map +1 -1
  94. package/lib/tools/assets/footer.png +0 -0
  95. package/lib/tools/assets/layer.png +0 -0
  96. package/lib/tools/assets/search.png +0 -0
  97. package/lib/tools/index.js +37 -0
  98. package/lib/tools/index.js.map +1 -0
  99. package/lib/tools/layer/index.js +169 -0
  100. package/lib/tools/layer/index.js.map +1 -0
  101. package/lib/tools/search/Select/index.js +56 -0
  102. package/lib/tools/search/Select/index.js.map +1 -0
  103. package/lib/tools/search/Select/style/css.js +4 -0
  104. package/lib/tools/search/Select/style/css.js.map +1 -0
  105. package/lib/tools/search/Select/style/index.css +45 -0
  106. package/lib/tools/search/Select/style/index.js +4 -0
  107. package/lib/tools/search/Select/style/index.js.map +1 -0
  108. package/lib/tools/search/Select/style/index.less +47 -0
  109. package/lib/tools/search/index.js +203 -0
  110. package/lib/tools/search/index.js.map +1 -0
  111. package/lib/tools/style/css.js +8 -0
  112. package/lib/tools/style/css.js.map +1 -0
  113. package/lib/tools/style/index.css +123 -0
  114. package/lib/tools/style/index.js +8 -0
  115. package/lib/tools/style/index.js.map +1 -0
  116. package/lib/tools/style/index.less +120 -0
  117. package/lib/tools/tools-item/index.js +50 -0
  118. package/lib/tools/tools-item/index.js.map +1 -0
  119. package/lib/trail-polyline-layer/TrailPolylineLayer.js +84 -0
  120. package/lib/trail-polyline-layer/TrailPolylineLayer.js.map +1 -0
  121. package/lib/trail-polyline-layer/index.js +28 -0
  122. package/lib/trail-polyline-layer/index.js.map +1 -0
  123. package/lib/trail-polyline-layer/style/css.js +4 -0
  124. package/lib/trail-polyline-layer/style/css.js.map +1 -0
  125. package/lib/trail-polyline-layer/style/index.css +0 -0
  126. package/lib/trail-polyline-layer/style/index.js +4 -0
  127. package/lib/trail-polyline-layer/style/index.js.map +1 -0
  128. package/lib/trail-polyline-layer/style/index.less +0 -0
  129. package/package.json +121 -121
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_cesium","require","_util","_interopRequireDefault","_class","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","arg","_toPrimitive","_typeof","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","Number","_classPrivateFieldInitSpec","privateMap","_checkPrivateRedeclaration","set","privateCollection","has","_classPrivateFieldGet","receiver","_classExtractFieldDescriptor","_classApplyDescriptorGet","get","_classPrivateFieldSet","_classApplyDescriptorSet","action","_classStaticPrivateMethodGet","classConstructor","method","_classCheckPrivateStaticAccess","_element","WeakMap","InfoTool","options","viewer","map","document","createElement","add","callback","arguments","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","preRender","addEventListener","canvasPosition","cartesianToCanvasCoordinates","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 scene.preRender.addEventListener(function() {\n const canvasPosition = scene.cartesianToCanvasCoordinates(position, cartesian2); // 笛卡尔坐标到画布坐标\n if (defined(canvasPosition)) {\n util.setCss(element, 'left', parseInt(canvasPosition.x + offset[0]) + 'px');\n util.setCss(element, 'top', parseInt(canvasPosition.y + offset[1]) + 'px');\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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"}
@@ -0,0 +1,46 @@
1
+ .helsing-three-plugins-infotool {
2
+ display: none;
3
+ flex-direction: column-reverse;
4
+ position: fixed;
5
+ top: 0;
6
+ left: 0;
7
+ min-width: 100px;
8
+ height: 250px;
9
+ user-select: none;
10
+ pointer-events: none;
11
+ }
12
+ .helsing-three-plugins-infotool > div:nth-child(1) {
13
+ left: 0;
14
+ width: 40px;
15
+ height: 0;
16
+ bottom: 0;
17
+ }
18
+ .helsing-three-plugins-infotool > div:nth-child(2) {
19
+ opacity: 0;
20
+ box-shadow: 0 0 8px 0 rgba(0, 170, 255, 0.6) inset;
21
+ padding: 20px;
22
+ user-select: text;
23
+ pointer-events: auto;
24
+ }
25
+
26
+ .element {
27
+ position: absolute;
28
+ background: rgba(2, 24, 45, 0.92);
29
+ border: 1px solid #2c69a6;
30
+ border-radius: 10px;
31
+ box-shadow: 0px 0px 10px 2px rgba(24, 144, 255, 0.35) inset;
32
+ height: 100px;
33
+ width: 300px;
34
+ }
35
+
36
+ .tooltip-arrow {
37
+ position: absolute;
38
+ left: 100px;
39
+ bottom: -20px;
40
+ width: 0px;
41
+ height: 0px;
42
+ border-bottom: 10px solid transparent;
43
+ border-top: 10px solid rgba(2, 24, 45, 1);
44
+ border-right: 10px solid transparent;
45
+ border-left: 10px solid transparent;
46
+ }
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
8
+ var _default = {
9
+ /**
10
+ * 设置CSS。
11
+ *
12
+ * @param {Element|HTMLElement|String} srcNodeRef 元素ID、元素或数组。
13
+ * @param {String} property 属性。
14
+ * @param {String} value 值。
15
+ */
16
+ setCss: function setCss(srcNodeRef, property, value) {
17
+ if (srcNodeRef) {
18
+ if (srcNodeRef instanceof Array && srcNodeRef.length > 0) {
19
+ for (var i = 0; i < srcNodeRef.length; i++) {
20
+ srcNodeRef[i].style.setProperty(property, value);
21
+ }
22
+ } else if (typeof srcNodeRef === 'string') {
23
+ if (srcNodeRef.indexOf('#') < 0 && srcNodeRef.indexOf('.') < 0 && srcNodeRef.indexOf(' ') < 0) {
24
+ var element = document.getElementById(srcNodeRef);
25
+ element && element.style.setProperty(property, value);
26
+ } else {
27
+ var elements = document.querySelectorAll(srcNodeRef);
28
+ for (var _i = 0; _i < elements.length; _i++) {
29
+ elements[_i].style.setProperty(property, value);
30
+ }
31
+ }
32
+ } else if (srcNodeRef instanceof HTMLElement) {
33
+ srcNodeRef.style.setProperty(property, value);
34
+ }
35
+ }
36
+ },
37
+ /**
38
+ * 设置元素的值。
39
+ *
40
+ * @param {String|HTMLElement|Array} srcNodeRef 元素ID、元素或数组。
41
+ * @param {String} value 值。
42
+ */
43
+ setInnerText: function setInnerText(srcNodeRef, value) {
44
+ if (srcNodeRef) {
45
+ if (srcNodeRef instanceof Array && srcNodeRef.length > 0) {
46
+ var that = this;
47
+ for (var i = 0; i < srcNodeRef.length; i++) {
48
+ var element = srcNodeRef[i];
49
+ if (that.isElement(element)) {
50
+ element.innerText = value;
51
+ }
52
+ }
53
+ } else if (typeof srcNodeRef === 'string') {
54
+ if (srcNodeRef.indexOf('#') < 0 && srcNodeRef.indexOf('.') < 0 && srcNodeRef.indexOf(' ') < 0) {
55
+ var _element = document.getElementById(srcNodeRef);
56
+ _element && (_element.innerText = value);
57
+ } else {
58
+ var elements = document.querySelectorAll(srcNodeRef);
59
+ for (var _i2 = 0; _i2 < elements.length; _i2++) {
60
+ elements[_i2].innerText = value;
61
+ }
62
+ }
63
+ } else {
64
+ if (this.isElement(srcNodeRef)) {
65
+ // srcNodeRef.innerHTML = value;
66
+ }
67
+ }
68
+ }
69
+ },
70
+ /**
71
+ * 判断对象是否为元素。
72
+ *
73
+ * @param {Object} obj 对象。
74
+ * @returns {Boolean} 是或否。
75
+ */
76
+ isElement: function isElement(obj) {
77
+ return (typeof HTMLElement === "undefined" ? "undefined" : _typeof(HTMLElement)) === 'object' ? obj instanceof HTMLElement : !!(obj && _typeof(obj) === 'object' && (obj.nodeType === 1 || obj.nodeType === 9) && typeof obj.nodeName === 'string');
78
+ },
79
+ /**
80
+ * 获取全球唯一ID。
81
+ *
82
+ * @author Helsing
83
+ * @date 2019/11/21
84
+ * @param {Boolean} removeMinus 是否去除“-”号。
85
+ * @returns {String} GUID。
86
+ */
87
+ getGuid: function getGuid(removeMinus) {
88
+ var d = new Date().getTime();
89
+ var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
90
+ var r = (d + Math.random() * 16) % 16 | 0;
91
+ d = Math.floor(d / 16);
92
+ return (c === 'x' ? r : r & 0x3 | 0x8).toString(16);
93
+ });
94
+ if (removeMinus) {
95
+ uuid = uuid.replace(/-/g, '');
96
+ }
97
+ return uuid;
98
+ },
99
+ getCss: function getCss(element, type) {
100
+ var height = 0;
101
+ if (element) {
102
+ if (type === 'offsetHeight') {
103
+ height = (element === null || element === void 0 ? void 0 : element[type]) || 0;
104
+ } else {
105
+ var _element$style;
106
+ height = (element === null || element === void 0 || (_element$style = element.style) === null || _element$style === void 0 ? void 0 : _element$style[type]) || 0;
107
+ }
108
+ }
109
+ return height;
110
+ }
111
+ };
112
+ exports["default"] = _default;
113
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","names":["setCss","srcNodeRef","property","value","Array","length","i","style","setProperty","indexOf","element","document","getElementById","elements","querySelectorAll","HTMLElement","setInnerText","that","isElement","innerText","obj","_typeof","nodeType","nodeName","getGuid","removeMinus","d","Date","getTime","uuid","replace","c","r","Math","random","floor","toString","getCss","type","height","_element$style","exports","_default"],"sources":["map/InfoTool/util.js"],"sourcesContent":["export default {\n /**\n * 设置CSS。\n *\n * @param {Element|HTMLElement|String} srcNodeRef 元素ID、元素或数组。\n * @param {String} property 属性。\n * @param {String} value 值。\n */\n setCss: function(srcNodeRef, property, value) {\n if (srcNodeRef) {\n if (srcNodeRef instanceof Array && srcNodeRef.length > 0) {\n for (let i = 0; i < srcNodeRef.length; i++) {\n srcNodeRef[i].style.setProperty(property, value);\n }\n } else if (typeof srcNodeRef === 'string') {\n if (\n srcNodeRef.indexOf('#') < 0 &&\n srcNodeRef.indexOf('.') < 0 &&\n srcNodeRef.indexOf(' ') < 0\n ) {\n const element = document.getElementById(srcNodeRef);\n element && element.style.setProperty(property, value);\n } else {\n const elements = document.querySelectorAll(srcNodeRef);\n for (let i = 0; i < elements.length; i++) {\n elements[i].style.setProperty(property, value);\n }\n }\n } else if (srcNodeRef instanceof HTMLElement) {\n srcNodeRef.style.setProperty(property, value);\n }\n }\n },\n\n /**\n * 设置元素的值。\n *\n * @param {String|HTMLElement|Array} srcNodeRef 元素ID、元素或数组。\n * @param {String} value 值。\n */\n setInnerText: function(srcNodeRef, value) {\n if (srcNodeRef) {\n if (srcNodeRef instanceof Array && srcNodeRef.length > 0) {\n const that = this;\n for (let i = 0; i < srcNodeRef.length; i++) {\n let element = srcNodeRef[i];\n if (that.isElement(element)) {\n element.innerText = value;\n }\n }\n } else if (typeof srcNodeRef === 'string') {\n if (\n srcNodeRef.indexOf('#') < 0 &&\n srcNodeRef.indexOf('.') < 0 &&\n srcNodeRef.indexOf(' ') < 0\n ) {\n let element = document.getElementById(srcNodeRef);\n element && (element.innerText = value);\n } else {\n const elements = document.querySelectorAll(srcNodeRef);\n for (let i = 0; i < elements.length; i++) {\n elements[i].innerText = value;\n }\n }\n } else {\n if (this.isElement(srcNodeRef)) {\n // srcNodeRef.innerHTML = value;\n }\n }\n }\n },\n\n /**\n * 判断对象是否为元素。\n *\n * @param {Object} obj 对象。\n * @returns {Boolean} 是或否。\n */\n isElement: function(obj) {\n return typeof HTMLElement === 'object'\n ? obj instanceof HTMLElement\n : !!(\n obj &&\n typeof obj === 'object' &&\n (obj.nodeType === 1 || obj.nodeType === 9) &&\n typeof obj.nodeName === 'string'\n );\n },\n\n /**\n * 获取全球唯一ID。\n *\n * @author Helsing\n * @date 2019/11/21\n * @param {Boolean} removeMinus 是否去除“-”号。\n * @returns {String} GUID。\n */\n getGuid: function(removeMinus) {\n let d = new Date().getTime();\n let uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n const r = (d + Math.random() * 16) % 16 | 0;\n d = Math.floor(d / 16);\n return (c === 'x' ? r : (r & 0x3) | 0x8).toString(16);\n });\n if (removeMinus) {\n uuid = uuid.replace(/-/g, '');\n }\n return uuid;\n },\n\n getCss: function(element, type) {\n let height = 0;\n if (element) {\n if (type === 'offsetHeight') {\n height = element?.[type] || 0;\n } else {\n height = element?.style?.[type] || 0;\n }\n }\n return height;\n },\n};\n"],"mappings":"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"}
@@ -19,23 +19,23 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
19
19
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
20
20
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
21
21
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
22
- var closeHandler;
23
22
  function _default(props) {
24
23
  var _props$offset, _props$offset2;
25
24
  var _useState = (0, _react.useState)({}),
26
25
  _useState2 = _slicedToArray(_useState, 2),
27
26
  position = _useState2[0],
28
27
  setPosition = _useState2[1];
28
+ var closeHandler = (0, _react.useRef)();
29
29
  (0, _react.useEffect)(function () {
30
30
  if (props._position) {
31
31
  // 先销毁已注册的事件
32
- if (closeHandler) {
33
- closeHandler.call();
34
- closeHandler = null;
32
+ if (closeHandler.current) {
33
+ closeHandler.current.call();
34
+ closeHandler.current = null;
35
35
  }
36
36
  var c = new _cesium.Cartesian2(props.position.x, props.position.y);
37
37
  setPosition(c);
38
- closeHandler = props.map.scene.postRender.addEventListener(function () {
38
+ closeHandler.current = props.map.scene.postRender.addEventListener(function () {
39
39
  var changedC = _SceneTransforms["default"].wgs84ToWindowCoordinates(props.map.scene, props._position);
40
40
  if (c && changedC && c.x && changedC.x && c.y && changedC.y) {
41
41
  if (c.x !== changedC.x || c.y !== changedC.y) {
@@ -46,8 +46,13 @@ function _default(props) {
46
46
  });
47
47
  }
48
48
  }, [props._position]);
49
+ (0, _react.useImperativeHandle)(props.infoWindowRef, function () {
50
+ return {
51
+ destory: close
52
+ };
53
+ });
49
54
  var close = function close() {
50
- closeHandler && closeHandler.call();
55
+ closeHandler.current && closeHandler.current.call();
51
56
  props.onClose && props.onClose();
52
57
  };
53
58
  var style = {
@@ -1 +1 @@
1
- {"version":3,"file":"InfoWindow.js","names":["_react","_interopRequireWildcard","require","_cesium","_SceneTransforms","_interopRequireDefault","_classnames","_icons","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","len","length","arr2","r","l","t","Symbol","iterator","e","u","a","f","next","done","push","value","isArray","closeHandler","_default","props","_props$offset","_props$offset2","_useState","useState","_useState2","position","setPosition","useEffect","_position","c","Cartesian2","x","y","map","scene","postRender","addEventListener","changedC","SceneTransforms","wgs84ToWindowCoordinates","close","onClose","style","top","concat","left","marginTop","offset","marginLeft","createElement","className","classNames","CloseOutlined","onClick","children"],"sources":["map/InfoWindow.js"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { Cartesian2 } from 'cesium';\nimport SceneTransforms from 'cesium/Source/Scene/SceneTransforms';\nimport classNames from 'classnames';\nimport { CloseOutlined } from '@ant-design/icons';\n\nvar closeHandler;\nexport default function (props) {\n const [position, setPosition] = useState({});\n\n useEffect(() => {\n if (props._position) {\n // 先销毁已注册的事件\n if (closeHandler) {\n closeHandler.call();\n closeHandler = null;\n }\n var c = new Cartesian2(props.position.x, props.position.y);\n setPosition(c);\n closeHandler = props.map.scene.postRender.addEventListener(function () {\n let changedC = SceneTransforms.wgs84ToWindowCoordinates(\n props.map.scene,\n props._position,\n );\n if (c && changedC && c.x && changedC.x && c.y && changedC.y) {\n if (c.x !== changedC.x || c.y !== changedC.y) {\n c = changedC;\n setPosition(changedC);\n }\n }\n });\n }\n }, [props._position]);\n\n const close = () => {\n closeHandler && closeHandler.call();\n props.onClose && props.onClose();\n };\n\n const style = {\n top: `${position.y || 0}px`,\n left: `${position.x || 0}px`,\n marginTop: `${props.offset?.y || 0}px`,\n marginLeft: `${props.offset?.x || 0}px`,\n };\n return (\n <div className={classNames('cesium-popup')} style={style}>\n <CloseOutlined onClick={close} className={classNames('cesium-close')} />\n {props.children}\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"InfoWindow.js","names":["_react","_interopRequireWildcard","require","_cesium","_SceneTransforms","_interopRequireDefault","_classnames","_icons","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","len","length","arr2","r","l","t","Symbol","iterator","e","u","a","f","next","done","push","value","isArray","_default","props","_props$offset","_props$offset2","_useState","useState","_useState2","position","setPosition","closeHandler","useRef","useEffect","_position","current","c","Cartesian2","x","y","map","scene","postRender","addEventListener","changedC","SceneTransforms","wgs84ToWindowCoordinates","useImperativeHandle","infoWindowRef","destory","close","onClose","style","top","concat","left","marginTop","offset","marginLeft","createElement","className","classNames","CloseOutlined","onClick","children"],"sources":["map/InfoWindow.js"],"sourcesContent":["import React, { useEffect, useImperativeHandle, useState, useRef } from 'react';\nimport { Cartesian2 } from 'cesium';\nimport SceneTransforms from 'cesium/Source/Scene/SceneTransforms';\nimport classNames from 'classnames';\nimport { CloseOutlined } from '@ant-design/icons';\n\nexport default function (props) {\n const [position, setPosition] = useState({});\n const closeHandler = useRef();\n\n useEffect(() => {\n if (props._position) {\n // 先销毁已注册的事件\n if (closeHandler.current) {\n closeHandler.current.call();\n closeHandler.current = null;\n }\n let c = new Cartesian2(props.position.x, props.position.y);\n setPosition(c);\n closeHandler.current = props.map.scene.postRender.addEventListener(function () {\n let changedC = SceneTransforms.wgs84ToWindowCoordinates(\n props.map.scene,\n props._position,\n );\n if (c && changedC && c.x && changedC.x && c.y && changedC.y) {\n if (c.x !== changedC.x || c.y !== changedC.y) {\n c = changedC;\n setPosition(changedC);\n }\n }\n });\n }\n }, [props._position]);\n\n useImperativeHandle(props.infoWindowRef, () => {\n return {\n destory: close\n }\n })\n\n const close = () => {\n closeHandler.current && closeHandler.current.call();\n props.onClose && props.onClose();\n };\n\n const style = {\n top: `${position.y || 0}px`,\n left: `${position.x || 0}px`,\n marginTop: `${props.offset?.y || 0}px`,\n marginLeft: `${props.offset?.x || 0}px`,\n };\n return (\n <div className={classNames('cesium-popup')} style={style}>\n <CloseOutlined onClick={close} className={classNames('cesium-close')} />\n {props.children}\n </div>\n );\n}\n"],"mappings":"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"}
package/lib/map/Popup.js CHANGED
@@ -4,23 +4,76 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports["default"] = _default;
7
+ exports.handelGeometry = exports["default"] = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
+ var _cesium = require("cesium");
9
10
  var _icons = require("@ant-design/icons");
10
- var _ol = require("ol");
11
- var _layer2 = require("ol/layer");
12
- var _layer3 = require("../_util/layer");
11
+ var _InfoTool = _interopRequireDefault(require("./InfoTool"));
13
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
+ var _turf = require("@turf/turf");
14
+ var _useProps = _interopRequireDefault(require("../_util/useProps"));
15
+ var _createFeatureCollection = require("../feature-layer/createFeatureCollection");
16
+ var _HighlightLayer = _interopRequireDefault(require("../highlight-layer/HighlightLayer"));
14
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
19
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
20
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
18
21
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
19
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
20
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
21
22
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
22
23
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
23
- function _default(props) {
24
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
25
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
26
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
27
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
28
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
29
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
30
+ var handelGeometry = function handelGeometry(entity) {
31
+ var _entity$data, _midpoint;
32
+ var geometry = entity === null || entity === void 0 || (_entity$data = entity.data) === null || _entity$data === void 0 ? void 0 : _entity$data.geometry;
33
+ var type = geometry === null || geometry === void 0 ? void 0 : geometry.type;
34
+ var coordinates = geometry === null || geometry === void 0 ? void 0 : geometry.coordinates;
35
+ var midpoint = entity === null || entity === void 0 ? void 0 : entity.data; // 默认点
36
+ var position = null;
37
+ var offset = {
38
+ x: 0,
39
+ y: 20
40
+ };
41
+ if (['MultiLineString', 'LineString'].includes(type) && coordinates !== null && coordinates !== void 0 && coordinates.length) {
42
+ var point1 = null;
43
+ var point2 = null;
44
+ // 线
45
+ if (coordinates.length > 1) {
46
+ point1 = (0, _turf.point)(coordinates[0]);
47
+ point2 = (0, _turf.point)(coordinates[1]);
48
+ } else {
49
+ var lngLatArr = coordinates[0];
50
+ point1 = (0, _turf.point)(lngLatArr[0]);
51
+ point2 = (0, _turf.point)(lngLatArr[1]);
52
+ }
53
+ midpoint = (0, _turf.midpoint)(point1, point2);
54
+ } else if (['Polygon', 'MultiPolygon'].includes(type)) {
55
+ // 面
56
+ // 注意:polygon首尾坐标要一致
57
+ var polygon = (0, _turf.polygon)(coordinates);
58
+ midpoint = (0, _turf.centerOfMass)(polygon);
59
+ } else if (['Point'].includes(type)) {
60
+ offset = {
61
+ x: 5,
62
+ y: 20
63
+ };
64
+ }
65
+ if ((_midpoint = midpoint) !== null && _midpoint !== void 0 && (_midpoint = _midpoint.geometry) !== null && _midpoint !== void 0 && _midpoint.coordinates) {
66
+ position = _cesium.Cartesian3.fromDegrees.apply(_cesium.Cartesian3, _toConsumableArray(midpoint.geometry.coordinates));
67
+ }
68
+ return {
69
+ position: position,
70
+ geometryType: type,
71
+ _offset: offset
72
+ };
73
+ };
74
+ exports.handelGeometry = handelGeometry;
75
+ var Popup = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
76
+ var map = props.map;
24
77
  var _useState = (0, _react.useState)(null),
25
78
  _useState2 = _slicedToArray(_useState, 2),
26
79
  content = _useState2[0],
@@ -29,107 +82,140 @@ function _default(props) {
29
82
  _useState4 = _slicedToArray(_useState3, 2),
30
83
  title = _useState4[0],
31
84
  setTitle = _useState4[1];
32
- var overlayRef = (0, _react.useRef)();
33
85
  var popupRef = (0, _react.useRef)();
34
- var map = props.map;
86
+ var featureRef = (0, _react.useRef)();
87
+ var infoToolRef = (0, _react.useRef)(new _InfoTool["default"]({
88
+ map: map
89
+ }));
90
+ var highlightLayer = (0, _react.useRef)();
35
91
  (0, _react.useEffect)(function () {
36
- // 鼠标点击展示缩略信息
37
- map.on('click', onClick);
38
- var overlay = new _ol.Overlay({
39
- element: popupRef.current,
40
- autoPan: {
41
- animation: {
42
- duration: 250
43
- }
44
- },
45
- stopEvent: true,
46
- positioning: 'bottom-center',
47
- offset: [10, -45]
92
+ highlightLayer.current = new _HighlightLayer["default"]({
93
+ map: map
48
94
  });
49
- overlayRef.current = overlay;
50
-
51
- // 展示看板
52
- map.showTemplate = setTemplate;
53
-
54
- // 隐藏看板
55
- map.hideTemplate = onClose;
56
- map.addOverlay(overlay);
57
95
  return function () {
58
- map.un('click', onClick);
59
- map.removeOverlay(overlay);
96
+ highlightLayer.current.destroy();
60
97
  };
61
98
  }, []);
62
- var onClick = function onClick(event) {
63
- console.log('event.coordinate:', event.coordinate.join(','));
64
- if (!(map.analysisActive || map.toolboxActive)) {
65
- var feature = map.getFeaturesAtPixel(event.pixel)[0];
66
- if (feature) {
67
- map.hideTip();
68
- var layer = map.getLayerByFeature(feature);
69
- setTemplate(feature, layer);
70
- } else {
71
- var layers = map.getWmsVisibleLayers();
72
- (0, _layer3.getWMSFeatureInfoByLayers)(event, map, layers).then(function (features) {
73
- if (features !== null && features !== void 0 && features.length) {
74
- var _feature = features[0];
75
- var _layer = map.getLayerByKey(_feature.key);
76
- setTemplate(_feature, _layer);
77
- }
78
- });
79
- }
80
- }
81
- };
82
- var setTemplate = function setTemplate(feature) {
99
+ (0, _react.useImperativeHandle)(ref, function () {
100
+ return {
101
+ showTemplate: showTemplate,
102
+ hideTemplate: hideTemplate
103
+ };
104
+ });
105
+ var showTemplate = function showTemplate(feature) {
106
+ var _feature$_polyline, _feature$_position, _feature$position;
83
107
  var layer = map.getLayerByFeature(feature);
84
108
  if (!(layer !== null && layer !== void 0 && layer.template)) {
85
109
  return;
86
110
  }
87
- map.highlightLayer.addHighlightFeature(feature);
111
+ var properties = map.getProperties(feature);
112
+ feature.values_ = properties;
113
+ featureRef.current = feature;
88
114
  if (layer) {
89
115
  var template = layer.template;
90
116
  var labelField = layer.labelField;
91
117
  if (labelField) {
92
- setTitle(feature.values_[labelField]);
118
+ setTitle(properties[labelField]);
93
119
  }
94
120
  if (template) {
95
- var _feature$getGeometry, _feature$getGeometry2;
96
121
  setContent(template(feature));
97
- overlayRef.current.values_.offset = layer instanceof _layer2.Image ? [10, -10] : [10, -45];
98
- var type = feature === null || feature === void 0 || (_feature$getGeometry = feature.getGeometry()) === null || _feature$getGeometry === void 0 ? void 0 : _feature$getGeometry.getType();
99
- var coordinate = feature === null || feature === void 0 || (_feature$getGeometry2 = feature.getGeometry()) === null || _feature$getGeometry2 === void 0 ? void 0 : _feature$getGeometry2.getCoordinates();
100
- if (['MultiLineString', 'LineString'].includes(type)) {
101
- var _feature$getGeometry3;
102
- // 线
103
- coordinate = feature === null || feature === void 0 || (_feature$getGeometry3 = feature.getGeometry()) === null || _feature$getGeometry3 === void 0 ? void 0 : _feature$getGeometry3.getFlatMidpoints();
104
- overlayRef.current.values_.offset = [7, 0];
105
- } else if (['Polygon', 'MultiPolygon'].includes(type)) {
106
- var _feature$getGeometry4;
107
- // 面
108
- coordinate = feature === null || feature === void 0 || (_feature$getGeometry4 = feature.getGeometry()) === null || _feature$getGeometry4 === void 0 ? void 0 : _feature$getGeometry4.getFlatInteriorPoint();
109
- overlayRef.current.values_.offset = [10, 0];
110
- }
111
- overlayRef.current.setPosition(coordinate);
112
122
  }
113
123
  }
124
+ var geometryType = 'point';
125
+ var _positions = (feature === null || feature === void 0 || (_feature$_polyline = feature._polyline) === null || _feature$_polyline === void 0 || (_feature$_polyline = _feature$_polyline._positions) === null || _feature$_polyline === void 0 ? void 0 : _feature$_polyline._value) || [];
126
+ var position = (feature === null || feature === void 0 || (_feature$_position = feature._position) === null || _feature$_position === void 0 ? void 0 : _feature$_position._value) || _positions[(_positions === null || _positions === void 0 ? void 0 : _positions.length) - 1];
127
+ // 偏移量
128
+ var offset = {
129
+ x: 5,
130
+ y: 76
131
+ };
132
+ if (!(feature !== null && feature !== void 0 && (_feature$position = feature.position) !== null && _feature$position !== void 0 && _feature$position._value)) {
133
+ offset = {
134
+ x: 0,
135
+ y: 10
136
+ };
137
+ }
138
+ if (feature.primitive) {
139
+ var _midpoint$geometry;
140
+ offset = {
141
+ x: 0,
142
+ y: 20
143
+ };
144
+ var geometry = (0, _createFeatureCollection.transformGeometry)(properties.geometryInfo);
145
+ var _geometry$coordinates = _slicedToArray(geometry.coordinates[0], 2),
146
+ point1 = _geometry$coordinates[0],
147
+ point2 = _geometry$coordinates[1];
148
+ var midpoint = (0, _turf.midpoint)(point1, point2);
149
+ if (midpoint !== null && midpoint !== void 0 && (_midpoint$geometry = midpoint.geometry) !== null && _midpoint$geometry !== void 0 && _midpoint$geometry.coordinates) {
150
+ position = _cesium.Cartesian3.fromDegrees.apply(_cesium.Cartesian3, _toConsumableArray(midpoint.geometry.coordinates));
151
+ }
152
+ }
153
+
154
+ // 影像图层的数据
155
+ if (feature instanceof _cesium.ImageryLayerFeatureInfo) {
156
+ var _handelGeometry = handelGeometry(feature),
157
+ _position = _handelGeometry.position,
158
+ _geometryType = _handelGeometry.geometryType,
159
+ _offset = _handelGeometry._offset;
160
+ position = _position;
161
+ geometryType = _geometryType;
162
+ offset = _offset;
163
+ }
164
+ infoToolRef.current.add({
165
+ position: position,
166
+ content: '',
167
+ element: popupRef.current,
168
+ inputFeature: feature,
169
+ type: '',
170
+ offset: offset
171
+ });
172
+ map.popupRef = feature;
173
+ highlightLayer.current.addHighlightFeature(feature);
174
+ };
175
+ var hideTemplate = function hideTemplate() {
176
+ var _infoToolRef$current;
177
+ if (map.popupRef && !(map.popupRef instanceof _cesium.ImageryLayerFeatureInfo)) {
178
+ // LayerServer.viewerFlyTo(map, map.popupRef, {});
179
+ }
180
+ map.popupRef = null;
181
+ featureRef.current = null;
182
+ infoToolRef === null || infoToolRef === void 0 || (_infoToolRef$current = infoToolRef.current) === null || _infoToolRef$current === void 0 || _infoToolRef$current.remove();
183
+ if (map.entities.getById('highlight-1')) {
184
+ map.entities.remove(map.entities.getById('highlight-1'));
185
+ }
114
186
  };
187
+
188
+ // 判断点位异常-点位异常展示红色
189
+ function judgeAbnormal() {
190
+ var _ref = map.getProperties(featureRef.current) || {},
191
+ status = _ref.status;
192
+ return status && [1, 2, 4].includes(status);
193
+ }
115
194
  var onClose = function onClose() {
116
- overlayRef.current.setPosition(undefined);
117
- map.highlightLayer.clearFeatures();
195
+ map.onCloseTemplateBefore && map.onCloseTemplateBefore(featureRef.current);
196
+ hideTemplate();
197
+ // 清除高亮
198
+ highlightLayer.current.clearFeatures();
118
199
  };
119
200
  return /*#__PURE__*/_react["default"].createElement("div", {
120
201
  ref: popupRef,
121
- className: (0, _classnames["default"])('ol-popup')
202
+ className: (0, _classnames["default"])('cesium-popup', {
203
+ 'cesium-popup-abnormal': judgeAbnormal()
204
+ })
122
205
  }, /*#__PURE__*/_react["default"].createElement(_icons.CloseOutlined, {
123
- className: (0, _classnames["default"])('close'),
206
+ className: (0, _classnames["default"])('cesium-popup-close'),
124
207
  width: 16,
125
208
  height: 16,
126
209
  onClick: onClose
127
210
  }), /*#__PURE__*/_react["default"].createElement("div", {
128
- className: (0, _classnames["default"])('title', {
129
- noTitle: !title
211
+ className: (0, _classnames["default"])('cesium-popup-title', {
212
+ 'cesium-popup-no-title': !title
130
213
  })
131
214
  }, title), /*#__PURE__*/_react["default"].createElement("div", {
132
- className: (0, _classnames["default"])('content')
215
+ className: (0, _classnames["default"])('cesium-popup-content'),
216
+ id: "content"
133
217
  }, content));
134
- }
218
+ });
219
+ var _default = Popup;
220
+ exports["default"] = _default;
135
221
  //# sourceMappingURL=Popup.js.map