@mapgis/webclient-vue-cesium 10.5.5-1 → 10.5.5-6

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 (124) hide show
  1. package/README.md +46 -49
  2. package/dist-libs/webclient-vue-cesium.common.js +191087 -0
  3. package/dist-libs/webclient-vue-cesium.css +1 -1
  4. package/dist-libs/webclient-vue-cesium.umd.js +191097 -0
  5. package/dist-libs/webclient-vue-cesium.umd.min.js +204 -194
  6. package/docs/.vuepress/config.js +47 -46
  7. package/docs/README.md +5 -4
  8. package/docs/api/analysis/Aspect.md +236 -0
  9. package/docs/api/analysis/Contour.md +240 -0
  10. package/docs/api/analysis/CutFill.md +306 -0
  11. package/docs/api/analysis/DynamicSection.md +336 -0
  12. package/docs/api/analysis/Excavate.md +3 -11
  13. package/docs/api/analysis/Flood.md +177 -200
  14. package/docs/api/analysis/HeightLimited.md +7 -4
  15. package/docs/api/analysis/ParticleEffects.md +549 -0
  16. package/docs/api/analysis/Profile.md +464 -0
  17. package/docs/api/analysis/Shadow.md +76 -13
  18. package/docs/api/analysis/Sightline.md +66 -13
  19. package/docs/api/analysis/Skyline.md +144 -29
  20. package/docs/api/analysis/Slope.md +236 -0
  21. package/docs/api/analysis/Viewshed.md +100 -21
  22. package/docs/api/layer/IGServer/IgsDocLayer.md +10 -0
  23. package/docs/api/layer/IGServer/IgsFeatureLayer.md +253 -0
  24. package/docs/api/layer/IGServer/IgsTileLayer.md +11 -0
  25. package/docs/api/layer/OGC/CesiumOgcWmsLayer.md +20 -19
  26. package/docs/api/layer/OGC/Wms.png +0 -0
  27. package/docs/api/layer/marker/DynamicMarker.md +81 -0
  28. package/docs/api/layer/marker/dynamicmarker.png +0 -0
  29. package/docs/api/layer/marker/selects.png +0 -0
  30. package/docs/api/layer/vectortile/vectortile.md +10 -0
  31. package/docs/api/m3d/image/layer_control_1.png +0 -0
  32. package/docs/api/m3d/image/layer_control_2.png +0 -0
  33. package/docs/api/m3d/image/layer_control_3.png +0 -0
  34. package/docs/api/m3d/m3d.md +13 -2
  35. package/docs/api/service/comprehensiveQuery/comprehensiveQuery.md +946 -0
  36. package/docs/api/ui/draw.md +68 -40
  37. package/docs/api/ui/link.md +8 -1
  38. package/docs/api/ui/marker.md +19 -1
  39. package/docs/api/ui/measure.md +82 -10
  40. package/docs/api/ui/table.md +6 -6
  41. package/docs/guide/README.md +26 -23
  42. package/docs/guide/basemap.md +35 -33
  43. package/docs/guide/markers&popups.md +46 -53
  44. package/docs/plugin_components/create_storybook.md +241 -0
  45. package/docs/plugin_components/img.png +0 -0
  46. package/docs/plugin_components/img_1.png +0 -0
  47. package/docs/plugin_components/img_10.png +0 -0
  48. package/docs/plugin_components/img_2.png +0 -0
  49. package/docs/plugin_components/img_3.png +0 -0
  50. package/docs/plugin_components/img_4.png +0 -0
  51. package/docs/plugin_components/img_5.png +0 -0
  52. package/docs/plugin_components/img_6.png +0 -0
  53. package/docs/plugin_components/img_7.png +0 -0
  54. package/docs/plugin_components/img_8.png +0 -0
  55. package/docs/version/diff.md +4 -4
  56. package/docs/version/version.md +81 -0
  57. package/package.json +5 -5
  58. package/src/cdn/cdn_component.js +62 -0
  59. package/src/component.js +20 -2
  60. package/src/components/Analysis/Aspect.vue +318 -0
  61. package/src/components/Analysis/Contour.vue +257 -0
  62. package/src/components/Analysis/CutFill.vue +581 -0
  63. package/src/components/Analysis/DynamicCutting.vue +98 -59
  64. package/src/components/Analysis/DynamicSection.vue +494 -0
  65. package/src/components/Analysis/Excavate.vue +133 -87
  66. package/src/components/Analysis/Flood.vue +395 -487
  67. package/src/components/Analysis/Flood.vue-- +630 -0
  68. package/src/components/Analysis/HeightLimited.vue +66 -47
  69. package/src/components/Analysis/ModelFlatten.vue +2 -2
  70. package/src/components/Analysis/Profile.vue +503 -0
  71. package/src/components/Analysis/Shadow.vue +220 -309
  72. package/src/components/Analysis/Sightline.vue +393 -375
  73. package/src/components/Analysis/SkyLine.vue +283 -93
  74. package/src/components/Analysis/Slope.vue +317 -0
  75. package/src/components/Analysis/Viewshed.vue +806 -373
  76. package/src/components/Analysis/skyline2dChartOptions.js +66 -0
  77. package/src/components/DataSource/Geojson/GeoJsonDataSource.vue +201 -3
  78. package/src/components/Layer/GeoJSON/GeoJsonLayer.vue +345 -0
  79. package/src/components/Layer/IGServer/IgsFeatureLayer.vue +227 -0
  80. package/src/components/Layer/Marker/DynamicMarkerLayer.vue +487 -0
  81. package/src/components/Layer/Marker/Marker3dPro.vue +196 -0
  82. package/src/components/Layer/Marker/Marker3dSetPro.vue +67 -0
  83. package/src/components/Layer/VectorTile/VectorTileLayer.vue +117 -33
  84. package/src/components/Layer/VectorTile/VectorTileOptions.js +1 -1
  85. package/src/components/M3D/3DTilesetOptions.js +23 -1
  86. package/src/components/M3D/G3D.vue +150 -0
  87. package/src/components/M3D/M3d.vue +142 -32
  88. package/src/components/M3D/M3dSet.vue +118 -0
  89. package/src/components/M3D/M3dType.js +24 -0
  90. package/src/components/Overlay/Mapv3dLayer.vue +2 -0
  91. package/src/components/Overlay/ParticleEffects.vue +545 -0
  92. package/src/components/Overlay/mapv/MapvBaseLayer.js +351 -172
  93. package/src/components/Overlay/mapv/MapvLayer.js +372 -324
  94. package/src/components/Overlay/mapv/SuperCluster.js +611 -0
  95. package/src/components/Overlay/themeLayer/heater/CesiumHeater.vue +152 -0
  96. package/src/components/Overlay/themeLayer/heater/MapvHeater.vue +161 -0
  97. package/src/components/UI/Controls/Draw/Draw.vue +320 -92
  98. package/src/components/UI/Controls/Legend/Legend.vue +55 -51
  99. package/src/components/UI/Controls/Link/Link.vue +59 -37
  100. package/src/components/UI/Controls/Measure/Measure.vue +75 -33
  101. package/src/components/UI/Controls/Measure/components/MeasureResult.vue +71 -0
  102. package/src/components/UI/Controls/Measure/components/MeasureSetting.vue +63 -0
  103. package/src/components/UI/Controls/Measure/components/MeasureTool.vue +155 -0
  104. package/src/components/UI/Geojson/Popup.vue +101 -0
  105. package/src/components/UI/Marker/Marker.vue +185 -48
  106. package/src/components/UI/Popup/Popup.vue +21 -64
  107. package/src/components/Utils/common/color-util.js +159 -0
  108. package/src/components/Utils/util.js +311 -231
  109. package/src/components/WebGlobe/manager.js +81 -3
  110. package/src/components/WebGlobe/mixins/withPrivateMethods.js +4 -2
  111. package/src/components/WebGlobe/util.js +173 -0
  112. package/src/components/service/comprehensive-query/ComprehensiveQuery.vue +156 -0
  113. package/src/components/service/comprehensive-query/PlaceNameCesium.vue +102 -0
  114. package/src/components/service/comprehensive-query/util/catalog/document.js +626 -0
  115. package/src/components/service/comprehensive-query/util/feature/arcgis-feature-query.js +448 -0
  116. package/src/components/service/comprehensive-query/util/feature/feature-convert.js +408 -0
  117. package/src/components/service/comprehensive-query/util/feature/feature-edit.js +50 -0
  118. package/src/components/service/comprehensive-query/util/feature/feature-geojson.js +100 -0
  119. package/src/components/service/comprehensive-query/util/feature/feature-query.js +723 -0
  120. package/src/components/service/comprehensive-query/util/feature/feature.js +1 -0
  121. package/src/components/service/comprehensive-query/util/feature/index.js +9 -0
  122. package/src/components/service/comprehensive-query/util/objects/geometry.js +58 -0
  123. package/src/components/Overlay/Mapv.vue +0 -142
  124. package/src/components/Overlay/MapvHeater.vue +0 -98
@@ -1,25 +1,40 @@
1
1
  <template>
2
- <div :class="['excavate',{ right: position === 'right', left: position === 'left' }]">
3
- <div
4
- class="card-title"
5
- :style="{
6
- background: 'rgb(38, 151, 204)',
7
- padding: '5px',
8
- color: 'white',
9
- }"
10
- >
11
- 开挖分析
12
- </div>
13
- <mapgis-ui-card>
14
- <span slot="prefix">开挖深度:</span>
15
- <mapgis-ui-row :span="12">
2
+ <div class="mapgis-widget-excavate-analysis">
3
+ <mapgis-ui-group-tab title="参数设置"></mapgis-ui-group-tab>
4
+ <mapgis-ui-setting-form :wrapper-width="160">
5
+ <mapgis-ui-form-item label="裁剪面材质">
6
+ <mapgis-ui-sketch-color-picker
7
+ :disableAlpha="false"
8
+ :color="materialCopy"
9
+ @input="
10
+ val =>
11
+ (materialCopy = `rgba(${val.rgba.r}, ${val.rgba.g}, ${val.rgba.b}, ${val.rgba.a})`)
12
+ "
13
+ ></mapgis-ui-sketch-color-picker>
14
+ </mapgis-ui-form-item>
15
+ <mapgis-ui-form-item label="边界线颜色">
16
+ <mapgis-ui-sketch-color-picker
17
+ :disableAlpha="false"
18
+ :color="edgeColorCopy"
19
+ @input="
20
+ val =>
21
+ (edgeColorCopy = `rgba(${val.rgba.r}, ${val.rgba.g}, ${val.rgba.b}, ${val.rgba.a})`)
22
+ "
23
+ ></mapgis-ui-sketch-color-picker>
24
+ </mapgis-ui-form-item>
25
+ <mapgis-ui-form-item label="边界线宽度(米)">
26
+ <mapgis-ui-input
27
+ v-model.number="edgeWidthCopy"
28
+ :min="0"
29
+ type="number"
30
+ />
31
+ </mapgis-ui-form-item>
32
+ <mapgis-ui-form-item label="开挖深度(米)">
16
33
  <mapgis-ui-slider v-model="excavateDepth" :step="10" :min="mindepth" :max="maxdepth" :disabled="excavateAn"
17
- @change="setInput" :value="parseFloat(excavateDepth)"/>
18
- </mapgis-ui-row>
19
- <mapgis-ui-row :span="10">
34
+ @change="setInput" :value="parseFloat(excavateDepth)"/>
20
35
  <mapgis-ui-input-number v-model="excavateDepth" :min="mindepth" :max="maxdepth" :style="{marginLeft: '16px'}"/>
21
- </mapgis-ui-row>
22
- </mapgis-ui-card>
36
+ </mapgis-ui-form-item>
37
+ </mapgis-ui-setting-form>
23
38
  </div>
24
39
  </template>
25
40
 
@@ -29,10 +44,6 @@ import ServiceLayer from "../UI/Controls/ServiceLayer.js";
29
44
  export default {
30
45
  name: "mapgis-3d-excavate",
31
46
  props: {
32
- position: {
33
- type: String,
34
- default: "right",
35
- },
36
47
  planeRatio: {
37
48
  type: Number,
38
49
  default: 0.6,
@@ -47,17 +58,15 @@ export default {
47
58
  return Number((Math.random() * 100000000).toFixed(0));
48
59
  }
49
60
  },
50
- material: {
51
- type: String,
52
- defalut: ""
53
- },
54
- edgeColor: {
55
- type: String,
56
- defalut: ""
57
- },
58
- edgeWidth: {
59
- type: Number,
60
- defalut: 3
61
+ excaveteStyle: {
62
+ type: Object,
63
+ default() {
64
+ return {
65
+ material: "#00FFFF",
66
+ edgeColor: "#FF8C00",
67
+ edgeWidth: 3
68
+ }
69
+ }
61
70
  }
62
71
  },
63
72
  inject: ["Cesium", "CesiumZondy", "webGlobe"],
@@ -70,34 +79,59 @@ export default {
70
79
  maxdepth: 0,
71
80
  mindepth: 0,
72
81
  boundingSphere: "",
73
- waitManagerName: "M3DIgsManager"
82
+ waitManagerName: "M3DIgsManager",
83
+ materialCopy: "#00FFFF",
84
+ edgeColorCopy: "#FF8C00",
85
+ edgeWidthCopy: 3,
86
+ //开挖面对象
87
+ planes: "",
88
+ //开挖中心坐标
89
+ centerDegree: "",
90
+ initial: true,
91
+ //模型外包盒的高度
92
+ depth: undefined
74
93
  }
75
94
  },
95
+ watch: {
96
+ excaveteStyle: {
97
+ handler: function (newVal, oldVal) {
98
+ this.materialCopy = newVal.material;
99
+ this.edgeColorCopy = newVal.edgeColor;
100
+ this.edgeWidthCopy = newVal.edgeWidth;
101
+ if (!this.initial) {
102
+ this.unmount();
103
+ this.startExcavate();
104
+ }
105
+ },
106
+ immediate: true
107
+ },
108
+ materialCopy() {
109
+ if (!this.initial) {
110
+ this.unmount();
111
+ this.startExcavate();
112
+ }
113
+ },
114
+ edgeColorCopy() {
115
+ if (!this.initial) {
116
+ this.unmount();
117
+ this.startExcavate();
118
+ }
119
+ },
120
+ edgeWidthCopy() {
121
+ if (!this.initial) {
122
+ this.unmount();
123
+ this.startExcavate();
124
+ }
125
+ },
126
+ },
76
127
  mounted() {
77
128
  let vm = this;
78
129
  vm.$_init(vm.getM3d);
79
130
  },
80
- unmount() {
81
- let {CesiumZondy, vueKey, vueIndex} = this;
82
- let find = CesiumZondy.ExcavateAnalysisManager.findSource(vueKey, vueIndex);
83
- if (find) {
84
- let options = findSource.options;
85
- let source = findSource.source;
86
- options.forEach(o => {
87
- o.destroy();
88
- });
89
- source.forEach(s => {
90
- s.destroy();
91
- })
92
- }
93
- // 这段代码可以认为是对应的vue的获取destroyed生命周期
94
- CesiumZondy.ExcavateAnalysisManager.deleteSource(vueKey, vueIndex);
95
- this.$emit("unload", this);
96
- },
131
+
97
132
  methods: {
98
133
  getM3d() {
99
134
  let vm = this
100
- let {CesiumZondy, webGlobe} = this;
101
135
  let find = vm.$_getObject();
102
136
  vm._boundingVolume = find.source[0]._root._boundingVolume;
103
137
  // 模型包围盒的世界坐标系的中心、东北角、西南角
@@ -108,7 +142,7 @@ export default {
108
142
  //这里:东南角和西北角在外包盒子的同一平面上
109
143
  let p1 = this.degreefromCartesian(southwestCornerCartesian);
110
144
  let p2 = this.degreefromCartesian(northeastCornerCartesian);
111
- let centerDegree = this.degreefromCartesian(center);
145
+ vm.centerDegree = this.degreefromCartesian(center);
112
146
  // this.drawPoint(p1);
113
147
  // this.drawPoint(p2);
114
148
  let p3 = {}, p4 = {};
@@ -127,56 +161,69 @@ export default {
127
161
  const beforeAfterDistance = length / 2;
128
162
  const leftRightDistance = width / 2;
129
163
  //求外包盒的高度
130
- let depth = Math.abs(vm._boundingVolume.maximumHeight - vm._boundingVolume.minimumHeight);
164
+ vm.depth = Math.abs(vm._boundingVolume.maximumHeight - vm._boundingVolume.minimumHeight);
131
165
  // let depth = Math.abs(centerDegree.height - p1.height) * 2;
132
166
  //将滑动条的最大开挖深度值设置为depth
133
167
  vm.mindepth = Math.round(vm._boundingVolume.minimumHeight);
134
168
  vm.maxdepth = Math.round(vm._boundingVolume.maximumHeight);
135
169
  vm.excavateDepth = vm.maxdepth;
136
170
  //开挖面设置,原点在法向相反的方向,所以distance为负值。
137
- var planes = [
171
+ vm.planes = [
138
172
  new Cesium.ClippingPlane(new Cesium.Cartesian3(vm.planeRatio, 0.0, 0.0), -beforeAfterDistance),
139
173
  new Cesium.ClippingPlane(new Cesium.Cartesian3(-vm.planeRatio, 0.0, 0.0), -beforeAfterDistance),
140
174
  new Cesium.ClippingPlane(new Cesium.Cartesian3(0.0, vm.planeRatio, 0.0), -leftRightDistance),
141
175
  new Cesium.ClippingPlane(new Cesium.Cartesian3(0.0, -vm.planeRatio, 0.0), -leftRightDistance),
142
- new Cesium.ClippingPlane(new Cesium.Cartesian3(0.0, 0.0, -vm.planeRatio), -depth)
176
+ new Cesium.ClippingPlane(new Cesium.Cartesian3(0.0, 0.0, -vm.planeRatio), -vm.depth)
143
177
  ];
178
+ vm.startExcavate();
179
+ },
180
+ /**
181
+ * 开始开挖分析
182
+ */
183
+ startExcavate() {
184
+ let vm = this;
185
+ vm.initial = false;
186
+ let {CesiumZondy, webGlobe} = this;
187
+ let find = vm.$_getObject();
144
188
  //将获取的开挖示例放到ExcavateAnalysisManager中进行管理
145
189
  let analysisManager = new CesiumZondy.Manager.AnalysisManager({
146
190
  viewer: webGlobe.viewer
147
191
  });
148
- //开挖分析:
192
+ let material = Cesium.Color.fromCssColorString(vm.materialCopy);
193
+ material = Cesium.Color.fromAlpha(material, 0.7);
194
+ let edgeColor = Cesium.Color.fromCssColorString(vm.edgeColorCopy);
195
+ edgeColor = Cesium.Color.fromAlpha(edgeColor, 0.7);
149
196
  let dynaCut = analysisManager.createExcavateAnalysis({
150
197
  //图层信息
151
198
  tileset: find.source[0],
152
199
  //开挖面的形状
153
- planes: planes,
200
+ planes: vm.planes,
154
201
  //裁剪面材质
155
- //Cesium.Color.fromCssColorString(_textColor)
156
- material: new Cesium.Color(0.2, 0.4, 0.3, 0.7),
202
+ //new Cesium.Color(0.2, 0.4, 0.3, 0.7)
203
+ material: material,
157
204
  //边界线颜色
158
- edgeColor: new Cesium.Color(0.2, 0.4, 0.3, 0.7),
205
+ edgeColor: edgeColor,
159
206
  //边界线宽度
160
- edgeWidth: vm.edgeWidth,
207
+ edgeWidth: vm.edgeWidthCopy,
161
208
  //裁减法线方向,默认值为 false
162
209
  unionClippingRegions: false,
163
210
  //开挖坐标
164
- longitude: centerDegree.longitude,
165
- latitude: centerDegree.latitude,
166
- height: centerDegree.height + depth/2
211
+ longitude: vm.centerDegree.longitude,
212
+ latitude: vm.centerDegree.latitude,
213
+ height: vm.centerDegree.height + vm.depth / 2
167
214
  });
168
215
  CesiumZondy.ExcavateAnalysisManager.addSource(
169
216
  vm.vueKey,
170
217
  vm.vueIndex,
171
218
  dynaCut,
172
- {planes}
219
+ vm.planes
173
220
  );
174
221
  this.$emit("load", vm);
175
222
 
176
223
  dynaCut.planes[0].plane.plane = new Cesium.CallbackProperty(function (date) {
177
- for (var i = 0; i < planes.length; i++) {
178
- if (i === planes.length - 1) {
179
- var plane = planes[i];
224
+ for (var i = 0; i < vm.planes.length; i++) {
225
+ if (i === vm.planes.length - 1) {
226
+ var plane = vm.planes[i];
180
227
  plane.distance = vm.excavateDepth;
181
228
  Cesium.Plane.transform(plane, find.source[0].modelMatrix, new Cesium.ClippingPlane(Cesium.Cartesian3.UNIT_X, 0.0));
182
229
  }
@@ -184,7 +231,7 @@ export default {
184
231
  }, false);
185
232
  },
186
233
  drawPoint(p) {
187
- let {CesiumZondy,webGlobe} = this;
234
+ let {CesiumZondy, webGlobe} = this;
188
235
  let entityController = new CesiumZondy.Manager.EntityController({
189
236
  viewer: webGlobe.viewer
190
237
  });
@@ -213,27 +260,26 @@ export default {
213
260
  setInput(data) {
214
261
  let {excavateDepth} = this;
215
262
  excavateDepth = data;
216
- }
263
+ },
264
+ unmount() {
265
+ let {CesiumZondy, vueKey, vueIndex} = this;
266
+ let find = CesiumZondy.ExcavateAnalysisManager.findSource(vueKey, vueIndex);
267
+ if (find) {
268
+ let source = find.source;
269
+ this.webGlobe.deleteDynamicCutting(source);
270
+ }
271
+ // 这段代码可以认为是对应的vue的获取destroyed生命周期
272
+ CesiumZondy.ExcavateAnalysisManager.deleteSource(vueKey, vueIndex);
273
+ this.$emit("unload", this);
274
+ },
217
275
  }
218
276
  }
219
277
  </script>
220
278
 
221
279
  <style scoped>
222
- ::v-deep .ant-card-body {
223
- max-height: 300px;
224
- overflow: auto;
225
- }
226
-
227
- .excavate.right {
228
- position: absolute;
229
- top: 20px;
230
- right: 20px;
231
- }
232
-
233
- .excavate.left {
234
- position: absolute;
235
- top: 20px;
236
- left: 20px;
280
+ .mapgis-widget-excavate-analysis {
281
+ font-size: 12px;
282
+ width: fit-content;
237
283
  }
238
284
 
239
285
  </style>