|
@@ -54,6 +54,7 @@ export default {
|
|
|
flag: true,
|
|
|
xzqh_color_click: "rgba(46, 177, 251, 0.6)",
|
|
|
xzqh_color: "rgba(10, 95, 152, 0.5)",
|
|
|
+ primitivesL: [],
|
|
|
};
|
|
|
},
|
|
|
//监听属性 类似于data概念
|
|
@@ -62,11 +63,27 @@ export default {
|
|
|
watch: {},
|
|
|
//方法集合
|
|
|
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));
|
|
|
+
|
|
|
+ primitives.get(i).show = flag;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
bigViewerChange() {
|
|
|
store.setViewerFlagb(!store.state.viewer_flag);
|
|
|
store.setToolBarShow(!store.state.viewer_flag);
|
|
|
// store.setToolBarShow(true);
|
|
|
|
|
|
+ // 隐藏行政区划
|
|
|
+
|
|
|
+ this.hidden_xzqh(store.state.viewer_flag);
|
|
|
},
|
|
|
switch() {
|
|
|
this.flag = !this.flag;
|
|
@@ -204,9 +221,12 @@ export default {
|
|
|
|
|
|
if (pickObj.primitive instanceof Cesium.Primitive) {//点击primitive
|
|
|
//primitive相关操作
|
|
|
- let pri_name = pickObj.id.name;
|
|
|
- let adcode = pickObj.id.adcode
|
|
|
- console.log('pickObj: ', pickObj);
|
|
|
+
|
|
|
+ let obj = JSON.parse(pickObj.id);
|
|
|
+
|
|
|
+ let pri_name = obj.name;
|
|
|
+ // console.log('pickObj: ', pickObj.primitive.show = false);
|
|
|
+ let adcode = obj.adcode
|
|
|
that.params.id = adcode
|
|
|
that.setDatas()
|
|
|
// 驾驶舱海域使用权
|
|
@@ -313,12 +333,13 @@ export default {
|
|
|
|
|
|
const twoDArray = item[0];
|
|
|
const oneDArray = twoDArray.reduce((accumulator, currentValue) => accumulator.concat(currentValue), []);
|
|
|
-
|
|
|
+ that.primitivesL.push(JSON.stringify(obj));
|
|
|
// 行政区划
|
|
|
let polygon = new Cesium.GeometryInstance({
|
|
|
- id: obj,
|
|
|
-
|
|
|
+ id: JSON.stringify(obj),
|
|
|
geometry: new Cesium.PolygonGeometry({
|
|
|
+ minimum: new Cesium.Cartesian3(0, 0, 0),
|
|
|
+ maximum: new Cesium.Cartesian3(100000, 100000, 100000),
|
|
|
polygonHierarchy: new Cesium.PolygonHierarchy(
|
|
|
Cesium.Cartesian3.fromDegreesArray(oneDArray)
|
|
|
),
|
|
@@ -330,6 +351,8 @@ export default {
|
|
|
let addPolygonGeometry = new Cesium.Primitive({
|
|
|
geometryInstances: polygon,
|
|
|
appearance: that.colorFun(Cesium.Color.fromCssColorString('#139FF0')),
|
|
|
+ show: true,
|
|
|
+
|
|
|
})
|
|
|
|
|
|
viewer.scene.primitives.add(addPolygonGeometry)
|
|
@@ -458,7 +481,37 @@ 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实例)
|
|
@@ -482,8 +535,7 @@ export default {
|
|
|
this.pick_xzqh();
|
|
|
this.init_xzqh();
|
|
|
this.init_hyqy();
|
|
|
-
|
|
|
-
|
|
|
+ // this.listeningAltitude();
|
|
|
});
|
|
|
|
|
|
|