@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,19 +1,8 @@
1
1
  <template>
2
- <div :class="['heightlimited',{ right: position === 'right', left: position === 'left' }]">
3
- <div
4
- :style="{
5
- background: 'rgb(38, 151, 204)',
6
- padding: '5px',
7
- color: 'white',
8
- }"
9
- class="card-title"
10
- >
11
- 控高分析
12
- </div>
13
- <mapgis-3d-draw :vue-key="vueKey" v-on:drawcreate="handleCreate" v-on:load="handleDrawLoad">
14
- <mapgis-ui-card class="a-card">
2
+ <div class="mapgis-widget-heightLimited-analysis">
3
+ <mapgis-3d-draw :vue-key="vueKey" v-on:drawcreate="handleCreate" v-on:load="handleDrawLoad" :enableControl="enableControl">
15
4
  <mapgis-ui-row>
16
- <mapgis-ui-col :span="5">分析区域</mapgis-ui-col>
5
+ <mapgis-ui-col :span="5">分析区域:</mapgis-ui-col>
17
6
  <mapgis-ui-col :span="19">
18
7
  <mapgis-ui-button @click="drawRectangle">绘制矩形</mapgis-ui-button>
19
8
  <mapgis-ui-button style="margin:0 8px" @click="drawPolygon">绘制面</mapgis-ui-button>
@@ -22,7 +11,7 @@
22
11
  </mapgis-ui-row>
23
12
  <mapgis-ui-row style="padding-top: 10px">
24
13
  <mapgis-ui-col :span="5">
25
- <span>限制高度</span>
14
+ <span>限制高度:</span>
26
15
  </mapgis-ui-col>
27
16
  <mapgis-ui-col :span="10" style="padding-right: 8px">
28
17
  <mapgis-ui-slider v-model="heightLimit" :disabled="excavateAn" :max="maxSliderHeight" :min="mindepth" :step="5"
@@ -33,7 +22,6 @@
33
22
  :style="{marginLeft: '16px'}"/>
34
23
  </mapgis-ui-col>
35
24
  </mapgis-ui-row>
36
- </mapgis-ui-card>
37
25
  </mapgis-3d-draw>
38
26
  </div>
39
27
  </template>
@@ -41,16 +29,12 @@
41
29
  <script>
42
30
  import ServiceLayer from "../UI/Controls/ServiceLayer.js";
43
31
  import Mapgis3dDraw from "../UI/Controls/Draw/Draw";
44
- import {deepEqual} from "../../../../mapboxgl/src/components/util/util";
32
+ import {deepEqual} from "../Utils/deepequal";
45
33
 
46
34
  export default {
47
35
  name: "mapgis-3d-heightlimited",
48
36
  mixins: [ServiceLayer],
49
37
  props: {
50
- position: {
51
- type: String,
52
- default: "right",
53
- },
54
38
  vueKey: {
55
39
  type: String,
56
40
  default: "default"
@@ -74,7 +58,7 @@ export default {
74
58
  default: 50
75
59
  }
76
60
  },
77
- components: { Mapgis3dDraw },
61
+ components: {Mapgis3dDraw},
78
62
  inject: ["Cesium", "CesiumZondy", "webGlobe"],
79
63
  data() {
80
64
  return {
@@ -84,12 +68,20 @@ export default {
84
68
  mindepth: 0,
85
69
  boundingSphere: "",
86
70
  waitManagerName: "M3DIgsManager",
87
- cartesianForHeight: []
71
+ cartesianForHeight: [],
72
+ enableControl:false
88
73
  }
89
74
  },
90
75
  mounted() {
91
- // let vm = this;
92
- // vm.$_init(vm.heightLimitedAnalysis);
76
+ let vm = this;
77
+ Object.keys(this.$props).forEach(function (key) {
78
+ if (key!=="vueKey" && key!=="vueIndex"){
79
+ vm.$watch(key,function () {
80
+ this.heightLimitedAnalysis();
81
+ })
82
+ }
83
+ })
84
+ vm.$_init(vm.heightLimitedAnalysis);
93
85
  },
94
86
  destroyed() {
95
87
  this.unmount();
@@ -101,6 +93,27 @@ export default {
101
93
  this.heightLimitedAnalysis();
102
94
  }
103
95
  }
96
+ },
97
+ color:{
98
+ handler(next, old) {
99
+ if (!deepEqual(next, old)) {
100
+ this.heightLimitedAnalysis();
101
+ }
102
+ }
103
+ },
104
+ opacity:{
105
+ handler(next, old) {
106
+ if (!deepEqual(next, old)) {
107
+ this.heightLimitedAnalysis();
108
+ }
109
+ }
110
+ },
111
+ maxSliderHeight:{
112
+ handler(next, old) {
113
+ if (!deepEqual(next, old)) {
114
+ this.heightLimitedAnalysis();
115
+ }
116
+ }
104
117
  }
105
118
  },
106
119
  methods: {
@@ -125,6 +138,8 @@ export default {
125
138
  handleDrawLoad(drawer) {
126
139
  this.drawer = drawer;
127
140
  },
141
+
142
+ //绘制组件的回调函数
128
143
  handleCreate(cartesian3, lnglat) {
129
144
  let vm = this;
130
145
  this.drawer && this.drawer.removeEntities(true);
@@ -132,14 +147,19 @@ export default {
132
147
  vm.lnglat = lnglat;
133
148
  this.heightLimitedAnalysis(lnglat);
134
149
  },
150
+
151
+ //开始控高分析
135
152
  heightLimitedAnalysis(lnglat) {
136
153
  const vm = this;
137
154
  let {vueKey, vueIndex} = this
138
155
  let {heightLimit, CesiumZondy, webGlobe} = this;
139
156
  let viewer = webGlobe.viewer;
140
157
  let findSource = vm.$_getObject();
158
+
159
+ //先判断m3d模型是否加载完成
141
160
  if (findSource) {
142
- // console.log("findSource.source[0]._root", findSource.source[0]._root);
161
+
162
+ //判断分析方式,不通过绘制矩形和绘制面的方式,则lnglat为空,走if,否则绘制方式就走else
143
163
  if (!lnglat) {
144
164
  let find = CesiumZondy.HeightLimitedAnalysisManager.findSource(vueKey, vueIndex);
145
165
  if (find) {
@@ -162,19 +182,17 @@ export default {
162
182
  temp[index] = lTemp;
163
183
  })
164
184
  lnglat = temp;
165
- // console.log("lnglat", lnglat);
166
185
  }
167
186
  }
168
- //求相对坐标(笛卡尔)
169
- // let localCertesian3 = vm.transformToLocal(cartesian3, findSource);
170
187
 
188
+ //控高分析边界点数组
171
189
  let pnts = [];
172
190
  for (let i = 0; i < lnglat.length; i++) {
173
191
  pnts.push(new Cesium.Cartesian3(lnglat[i].longitude, lnglat[i].latitude, 0));
174
192
  }
175
- // console.log("pnts", pnts);
176
193
  let cesiumColor = Cesium.Color.fromCssColorString(vm.color);
177
- // console.log("heightLimit", heightLimit);
194
+
195
+ //调用控告分析接口
178
196
  var heightLimited = new Cesium.HeightLimited(viewer, {
179
197
  height: heightLimit,
180
198
  limitedColor: cesiumColor,
@@ -183,7 +201,8 @@ export default {
183
201
  polygonColor: Cesium.Color.WHITE.withAlpha(0),
184
202
  useOutLine: false
185
203
  });
186
- webGlobe.addSceneEffect(heightLimited);
204
+ // webGlobe.addSceneEffect(heightLimited);
205
+ heightLimited.add();
187
206
  CesiumZondy.HeightLimitedAnalysisManager.addSource(
188
207
  vm.vueKey,
189
208
  vm.vueIndex,
@@ -191,6 +210,7 @@ export default {
191
210
  lnglat
192
211
  );
193
212
  },
213
+
194
214
  transformToLocal(cartesian3, findSource) {
195
215
  let localCertesian3 = [];
196
216
  let transform = findSource.source[0]._root.transform;
@@ -204,6 +224,8 @@ export default {
204
224
  }
205
225
  return localCertesian3;
206
226
  },
227
+
228
+ //根据外包盒子两个点求出四个点
207
229
  getAllPoint(southwest, northeast) {
208
230
  let p1 = this.degreefromCartesian(southwest);
209
231
  let p2 = this.degreefromCartesian(northeast);
@@ -220,6 +242,8 @@ export default {
220
242
  let allPoint = [p1, p4, p2, p3];
221
243
  return allPoint;
222
244
  },
245
+
246
+ //绘制方式返回的点坐标是经纬度坐标
223
247
  getAllPointByDegree(lnglat1, lnglat2) {
224
248
  let p1 = {}, p2 = {}, p3 = {}, p4 = {};
225
249
  p1.longitude = lnglat1[0];
@@ -237,6 +261,8 @@ export default {
237
261
  let allPoint = [p1, p4, p2, p3];
238
262
  return allPoint;
239
263
  },
264
+
265
+ //根据笛卡尔坐标求出点的经纬度坐标
240
266
  degreefromCartesian(p) {
241
267
  let point = {};
242
268
  let cartographic = Cesium.Cartographic.fromCartesian(p);
@@ -245,6 +271,7 @@ export default {
245
271
  point.height = cartographic.height; //模型高度
246
272
  return point;
247
273
  },
274
+
248
275
  remove() {
249
276
  const {vueKey, vueIndex} = this;
250
277
  let find = CesiumZondy.HeightLimitedAnalysisManager.findSource(vueKey, vueIndex);
@@ -269,23 +296,11 @@ export default {
269
296
  overflow: auto;
270
297
  }
271
298
 
272
- .heightlimited.right {
273
- /*width: calc(50vw);*/
274
- min-width: calc(20vw);
275
- max-width: calc(50vw);
276
- position: absolute;
277
- top: 20px;
278
- right: 20px;
299
+ .mapgis-ui-card-bordered{
300
+ border:unset;
279
301
  }
280
302
 
281
- .heightlimited.left {
282
- width: calc(50vw);
283
- position: absolute;
284
- top: 20px;
285
- left: 20px;
286
- }
287
-
288
- ::v-deep .mapgis-ui-card-body {
303
+ .mapgis-ui-card-body{
289
304
  padding: 10px;
290
305
  }
291
306
 
@@ -296,4 +311,8 @@ export default {
296
311
  display: flex;
297
312
  padding-right: 5px;
298
313
  }
314
+
315
+ .mapgis-widget-heightLimited-analysis{
316
+ font-size: 12px;
317
+ }
299
318
  </style>
@@ -52,7 +52,7 @@ export default {
52
52
  destroyed() {
53
53
  this.clearModelFlatten();
54
54
  let find = this.findSource();
55
- if (find.source) {
55
+ if (find && find.source) {
56
56
  let tool = find.source;
57
57
  tool.destroy();
58
58
  }
@@ -92,7 +92,7 @@ export default {
92
92
  clearModelFlatten() {
93
93
  const { webGlobe } = this;
94
94
  let find = this.findSource();
95
- if (find.source) {
95
+ if (find && find.source) {
96
96
  let tool = find.source;
97
97
 
98
98
  let m3d = find.options.m3d;