@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.
- package/README.md +46 -49
- package/dist-libs/webclient-vue-cesium.common.js +191087 -0
- package/dist-libs/webclient-vue-cesium.css +1 -1
- package/dist-libs/webclient-vue-cesium.umd.js +191097 -0
- package/dist-libs/webclient-vue-cesium.umd.min.js +204 -194
- package/docs/.vuepress/config.js +47 -46
- package/docs/README.md +5 -4
- package/docs/api/analysis/Aspect.md +236 -0
- package/docs/api/analysis/Contour.md +240 -0
- package/docs/api/analysis/CutFill.md +306 -0
- package/docs/api/analysis/DynamicSection.md +336 -0
- package/docs/api/analysis/Excavate.md +3 -11
- package/docs/api/analysis/Flood.md +177 -200
- package/docs/api/analysis/HeightLimited.md +7 -4
- package/docs/api/analysis/ParticleEffects.md +549 -0
- package/docs/api/analysis/Profile.md +464 -0
- package/docs/api/analysis/Shadow.md +76 -13
- package/docs/api/analysis/Sightline.md +66 -13
- package/docs/api/analysis/Skyline.md +144 -29
- package/docs/api/analysis/Slope.md +236 -0
- package/docs/api/analysis/Viewshed.md +100 -21
- package/docs/api/layer/IGServer/IgsDocLayer.md +10 -0
- package/docs/api/layer/IGServer/IgsFeatureLayer.md +253 -0
- package/docs/api/layer/IGServer/IgsTileLayer.md +11 -0
- package/docs/api/layer/OGC/CesiumOgcWmsLayer.md +20 -19
- package/docs/api/layer/OGC/Wms.png +0 -0
- package/docs/api/layer/marker/DynamicMarker.md +81 -0
- package/docs/api/layer/marker/dynamicmarker.png +0 -0
- package/docs/api/layer/marker/selects.png +0 -0
- package/docs/api/layer/vectortile/vectortile.md +10 -0
- package/docs/api/m3d/image/layer_control_1.png +0 -0
- package/docs/api/m3d/image/layer_control_2.png +0 -0
- package/docs/api/m3d/image/layer_control_3.png +0 -0
- package/docs/api/m3d/m3d.md +13 -2
- package/docs/api/service/comprehensiveQuery/comprehensiveQuery.md +946 -0
- package/docs/api/ui/draw.md +68 -40
- package/docs/api/ui/link.md +8 -1
- package/docs/api/ui/marker.md +19 -1
- package/docs/api/ui/measure.md +82 -10
- package/docs/api/ui/table.md +6 -6
- package/docs/guide/README.md +26 -23
- package/docs/guide/basemap.md +35 -33
- package/docs/guide/markers&popups.md +46 -53
- package/docs/plugin_components/create_storybook.md +241 -0
- package/docs/plugin_components/img.png +0 -0
- package/docs/plugin_components/img_1.png +0 -0
- package/docs/plugin_components/img_10.png +0 -0
- package/docs/plugin_components/img_2.png +0 -0
- package/docs/plugin_components/img_3.png +0 -0
- package/docs/plugin_components/img_4.png +0 -0
- package/docs/plugin_components/img_5.png +0 -0
- package/docs/plugin_components/img_6.png +0 -0
- package/docs/plugin_components/img_7.png +0 -0
- package/docs/plugin_components/img_8.png +0 -0
- package/docs/version/diff.md +4 -4
- package/docs/version/version.md +81 -0
- package/package.json +5 -5
- package/src/cdn/cdn_component.js +62 -0
- package/src/component.js +20 -2
- package/src/components/Analysis/Aspect.vue +318 -0
- package/src/components/Analysis/Contour.vue +257 -0
- package/src/components/Analysis/CutFill.vue +581 -0
- package/src/components/Analysis/DynamicCutting.vue +98 -59
- package/src/components/Analysis/DynamicSection.vue +494 -0
- package/src/components/Analysis/Excavate.vue +133 -87
- package/src/components/Analysis/Flood.vue +395 -487
- package/src/components/Analysis/Flood.vue-- +630 -0
- package/src/components/Analysis/HeightLimited.vue +66 -47
- package/src/components/Analysis/ModelFlatten.vue +2 -2
- package/src/components/Analysis/Profile.vue +503 -0
- package/src/components/Analysis/Shadow.vue +220 -309
- package/src/components/Analysis/Sightline.vue +393 -375
- package/src/components/Analysis/SkyLine.vue +283 -93
- package/src/components/Analysis/Slope.vue +317 -0
- package/src/components/Analysis/Viewshed.vue +806 -373
- package/src/components/Analysis/skyline2dChartOptions.js +66 -0
- package/src/components/DataSource/Geojson/GeoJsonDataSource.vue +201 -3
- package/src/components/Layer/GeoJSON/GeoJsonLayer.vue +345 -0
- package/src/components/Layer/IGServer/IgsFeatureLayer.vue +227 -0
- package/src/components/Layer/Marker/DynamicMarkerLayer.vue +487 -0
- package/src/components/Layer/Marker/Marker3dPro.vue +196 -0
- package/src/components/Layer/Marker/Marker3dSetPro.vue +67 -0
- package/src/components/Layer/VectorTile/VectorTileLayer.vue +117 -33
- package/src/components/Layer/VectorTile/VectorTileOptions.js +1 -1
- package/src/components/M3D/3DTilesetOptions.js +23 -1
- package/src/components/M3D/G3D.vue +150 -0
- package/src/components/M3D/M3d.vue +142 -32
- package/src/components/M3D/M3dSet.vue +118 -0
- package/src/components/M3D/M3dType.js +24 -0
- package/src/components/Overlay/Mapv3dLayer.vue +2 -0
- package/src/components/Overlay/ParticleEffects.vue +545 -0
- package/src/components/Overlay/mapv/MapvBaseLayer.js +351 -172
- package/src/components/Overlay/mapv/MapvLayer.js +372 -324
- package/src/components/Overlay/mapv/SuperCluster.js +611 -0
- package/src/components/Overlay/themeLayer/heater/CesiumHeater.vue +152 -0
- package/src/components/Overlay/themeLayer/heater/MapvHeater.vue +161 -0
- package/src/components/UI/Controls/Draw/Draw.vue +320 -92
- package/src/components/UI/Controls/Legend/Legend.vue +55 -51
- package/src/components/UI/Controls/Link/Link.vue +59 -37
- package/src/components/UI/Controls/Measure/Measure.vue +75 -33
- package/src/components/UI/Controls/Measure/components/MeasureResult.vue +71 -0
- package/src/components/UI/Controls/Measure/components/MeasureSetting.vue +63 -0
- package/src/components/UI/Controls/Measure/components/MeasureTool.vue +155 -0
- package/src/components/UI/Geojson/Popup.vue +101 -0
- package/src/components/UI/Marker/Marker.vue +185 -48
- package/src/components/UI/Popup/Popup.vue +21 -64
- package/src/components/Utils/common/color-util.js +159 -0
- package/src/components/Utils/util.js +311 -231
- package/src/components/WebGlobe/manager.js +81 -3
- package/src/components/WebGlobe/mixins/withPrivateMethods.js +4 -2
- package/src/components/WebGlobe/util.js +173 -0
- package/src/components/service/comprehensive-query/ComprehensiveQuery.vue +156 -0
- package/src/components/service/comprehensive-query/PlaceNameCesium.vue +102 -0
- package/src/components/service/comprehensive-query/util/catalog/document.js +626 -0
- package/src/components/service/comprehensive-query/util/feature/arcgis-feature-query.js +448 -0
- package/src/components/service/comprehensive-query/util/feature/feature-convert.js +408 -0
- package/src/components/service/comprehensive-query/util/feature/feature-edit.js +50 -0
- package/src/components/service/comprehensive-query/util/feature/feature-geojson.js +100 -0
- package/src/components/service/comprehensive-query/util/feature/feature-query.js +723 -0
- package/src/components/service/comprehensive-query/util/feature/feature.js +1 -0
- package/src/components/service/comprehensive-query/util/feature/index.js +9 -0
- package/src/components/service/comprehensive-query/util/objects/geometry.js +58 -0
- package/src/components/Overlay/Mapv.vue +0 -142
- package/src/components/Overlay/MapvHeater.vue +0 -98
|
@@ -1,19 +1,8 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
3
|
-
<
|
|
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"
|
|
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
|
|
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 "
|
|
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: {
|
|
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
|
-
|
|
92
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
.
|
|
273
|
-
|
|
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
|
-
.
|
|
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;
|