|
@@ -41,7 +41,7 @@ import hyqy from "../../static/data/460200_hyqy.json";
|
|
|
import SerCenter from './cockpitNew1/serCenter.vue';
|
|
|
|
|
|
import { cockpitInfo } from '@/api/cockpit'
|
|
|
-
|
|
|
+let manager = {};
|
|
|
export default {
|
|
|
components: { serCenter, GKZB, BJXM, TDSC, HYSY, TDSY, GDBH, STXF, WPJG, datePicker, SerCenter },
|
|
|
data() {
|
|
@@ -64,17 +64,18 @@ export default {
|
|
|
//方法集合
|
|
|
methods: {
|
|
|
hidden_xzqh(flag) {
|
|
|
- this.primitivesL.forEach(element => {
|
|
|
-
|
|
|
- const primitives = viewer.scene.primitives;
|
|
|
-
|
|
|
- for (let i = 0; i < primitives.length; i++) {
|
|
|
|
|
|
- console.log(primitives.get(i));
|
|
|
+ for (let index = 0; index < manager._primitives.length; index++) {
|
|
|
+ const element = manager._primitives[index];
|
|
|
+ element.show = flag;
|
|
|
+ }
|
|
|
|
|
|
- primitives.get(i).show = flag;
|
|
|
+ }, hidden_wall(flag) {
|
|
|
+ viewer.entities.values.forEach((res) => {
|
|
|
+ if (res.name == "立体墙效果" || res.name == "海域") {
|
|
|
+ res.show = flag;
|
|
|
}
|
|
|
- });
|
|
|
+ })
|
|
|
},
|
|
|
bigViewerChange() {
|
|
|
store.setViewerFlagb(!store.state.viewer_flag);
|
|
@@ -82,8 +83,9 @@ export default {
|
|
|
// store.setToolBarShow(true);
|
|
|
|
|
|
// 隐藏行政区划
|
|
|
-
|
|
|
this.hidden_xzqh(store.state.viewer_flag);
|
|
|
+ // 隐藏墙体
|
|
|
+ this.hidden_wall(store.state.viewer_flag);
|
|
|
},
|
|
|
switch() {
|
|
|
this.flag = !this.flag;
|
|
@@ -354,7 +356,7 @@ export default {
|
|
|
show: true,
|
|
|
|
|
|
})
|
|
|
-
|
|
|
+ manager.add(addPolygonGeometry)
|
|
|
viewer.scene.primitives.add(addPolygonGeometry)
|
|
|
|
|
|
// 墙体流动效果
|
|
@@ -371,8 +373,6 @@ export default {
|
|
|
fillColor: Cesium.Color.fromCssColorString("#ffffff"),
|
|
|
pixelOffset: new Cesium.Cartesian2(5, -15),
|
|
|
zIndex: 3,
|
|
|
- // 设置远近裁条件
|
|
|
- distanceDisplayCondition: new Cesium.DistanceDisplayCondition(20000, 9999999999.0),
|
|
|
},
|
|
|
billboard: {
|
|
|
// 图像地址,URI或Canvas的属性
|
|
@@ -381,7 +381,6 @@ export default {
|
|
|
width: 150,
|
|
|
scale: 1.0,
|
|
|
zIndex: 2,
|
|
|
- distanceDisplayCondition: new Cesium.DistanceDisplayCondition(20000, 9999999999.0),
|
|
|
show: false
|
|
|
},
|
|
|
wall: {
|
|
@@ -393,8 +392,6 @@ export default {
|
|
|
color: Cesium.Color.fromBytes(19, 159, 240).withAlpha(0.7),
|
|
|
duration: 3000
|
|
|
}),
|
|
|
- distanceDisplayCondition: new Cesium.DistanceDisplayCondition(20000, 9999999999.0)
|
|
|
-
|
|
|
}
|
|
|
})
|
|
|
})
|
|
@@ -417,6 +414,7 @@ export default {
|
|
|
viewer.entities.add({
|
|
|
position: Cesium.Cartesian3.fromDegrees(res.properties.centroid[0], res.properties.centroid[1], 500),
|
|
|
properties: obj,
|
|
|
+ name: "海域",
|
|
|
polygon: {
|
|
|
zIndex: 1,
|
|
|
hierarchy: {
|
|
@@ -430,8 +428,6 @@ export default {
|
|
|
outline: true,
|
|
|
// outlineColor : Cesium.Color.BLACK
|
|
|
outlineColor: Cesium.Color.fromCssColorString('#55A1E3'),
|
|
|
- // 设置远近裁条件
|
|
|
- distanceDisplayCondition: new Cesium.DistanceDisplayCondition(20000, 9999999999.0),
|
|
|
}
|
|
|
});
|
|
|
|
|
@@ -482,60 +478,20 @@ export default {
|
|
|
// 如果需要保持原始顺序,可以在压入栈时使用unshift代替push,但这样会降低性能
|
|
|
return result;
|
|
|
},
|
|
|
- getHeightByLevel(level) {
|
|
|
- var A = 40487.57;
|
|
|
- var B = 0.00007096758;
|
|
|
- var C = 91610.74;
|
|
|
- var D = -40467.74;
|
|
|
- // console.log(
|
|
|
- // "获取level层级" + Math.round(D + (A - D) / (1 + Math.pow(level / C, B)))
|
|
|
- // );
|
|
|
- return Math.round(D + (A - D) / (1 + Math.pow(level / C, B)));
|
|
|
- },
|
|
|
- listeningAltitude() {
|
|
|
- const that = this;
|
|
|
- viewer.scene.postRender.addEventListener(() => {
|
|
|
- const canvasHeight = viewer.scene.canvas.height;
|
|
|
- const windowPosition = new Cesium.Cartesian2();
|
|
|
-
|
|
|
- // 获取当前地图层级
|
|
|
- var level = Math.ceil(viewer.camera.positionCartographic.height);
|
|
|
- var mapLevel = that.getHeightByLevel(level);
|
|
|
- if (mapLevel >= 14) {
|
|
|
- console.log('viewer.scene.primitives: ', viewer.scene.primitives);
|
|
|
-
|
|
|
- } else {
|
|
|
- // viewer.scene.primitives
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- }, this);
|
|
|
- },
|
|
|
-
|
|
|
},
|
|
|
beforeCreate() { }, //生命周期 - 创建之前
|
|
|
created() { }, //生命周期 - 创建完成(可以访问当前this实例)
|
|
|
beforeMount() { }, //生命周期 - 挂载之前
|
|
|
async mounted() {
|
|
|
|
|
|
- // let obj = { beginTime: '20230612', endTime: '20230817', jscType: 'jsc_wpjc_yelx', id: '46' };
|
|
|
- // let data = await cockpitInfo(obj);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- // let obj1 = { beginTime: '20230612', endTime: '20230817', jscType: 'jsc_wpjc_ztsh', id: '46' }
|
|
|
- // let data1 = await cockpitInfo(obj1);
|
|
|
-
|
|
|
- // console.log(data, "asda");
|
|
|
- // console.log(data1, "asda");
|
|
|
- // 三亚行政区划加载
|
|
|
-
|
|
|
|
|
|
this.$nextTick((res) => {
|
|
|
+ manager = new Cesium.PrimitiveCollection();
|
|
|
+ manager.destroyPrimitives = false;
|
|
|
+ viewer.scene.primitives.add(manager);
|
|
|
this.pick_xzqh();
|
|
|
this.init_xzqh();
|
|
|
this.init_hyqy();
|
|
|
- // this.listeningAltitude();
|
|
|
});
|
|
|
|
|
|
|