From c1514cfc69b679d05398bb1def6b24c772426aa0 Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期二, 14 二月 2023 09:11:46 +0800 Subject: [PATCH] 综合展示图层管理图标切换 --- src/components/MapView/mapMenuTop.vue | 102 ++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 76 insertions(+), 26 deletions(-) diff --git a/src/components/MapView/mapMenuTop.vue b/src/components/MapView/mapMenuTop.vue index 0280977..5ba0202 100644 --- a/src/components/MapView/mapMenuTop.vue +++ b/src/components/MapView/mapMenuTop.vue @@ -43,7 +43,7 @@ </el-option> </el-select> </el-form-item> - + <el-form-item> <el-select @change="changeValue($event)" @@ -87,6 +87,19 @@ plain >閲嶇疆</el-button> </el-form-item> + <!-- <el-form-item> + <el-button + plain + size="small" + @click="flyQuery" + >鏌ョ湅</el-button> + <el-button + plain + size="small" + @click="flyRemove" + >鍙栨秷</el-button> + </el-form-item> --> + </el-form> <queryinfo ref="queryinfo" /> </div> @@ -122,7 +135,7 @@ children: [], }, ], - + queryOption: [ { value: 'point', @@ -154,16 +167,45 @@ label: 'label', }, graphicLayer: null, + flyEntity: null, }; }, - + mounted() { // sgworld.Creator.SimpleGraphic.edit(false, { editProp: false }); - + this.menuTopFrom.queryType = 'rectangle'; this.getAllTable(); }, methods: { + flyRemove() { + + }, + flyQuery() { + // Viewer.flyTo( sgworld.Creator.SimpleGraphic._viewer.entities._entities._array[0]) + // switch (this.menuTopFrom.queryType) { + // case 'point': //鐐� + // Viewer.camera.flyTo({ + // destination: Cesium.Cartesian3.fromDegrees(this.flyEntity.lng, this.flyEntity.lat, 3000), + + // }); + + // break; + // case 'polyline': //绾� + // debugger + // break; + // case 'rectangle': //鐭╁舰 + + // debugger + // break; + // case 'circle': //鍦� + // debugger + // break; + // case 'polygon': //澶氳竟褰� + // debugger + // break; + // } + }, changeValue(value) { // var obj = {}; // obj = this.queryOption.find(function (item) { @@ -179,11 +221,11 @@ this.$message.error('鍒楄〃璋冪敤澶辫触'); } var option = data.result; - + for (var i in option) { var val_Data = option[i]; val_Data.id = '1' + i; - val_Data.label = val_Data.tabDesc ; + val_Data.label = val_Data.tabDesc; if (option[i].ns == 'bd') { this.layerData[0].children.push(val_Data); } else { @@ -195,7 +237,7 @@ getCheckedNodes() { var valTree = this.$refs.tree.getCheckedNodes(); if (valTree.length == 0) return; - + this.menuTopFrom.queryLayer = valTree[0].tabDesc; for (var i = 0; i < valTree.length; i++) { this.treeChange.push(valTree[i]); @@ -206,7 +248,7 @@ this.treeChange = []; this.menuTopFrom.queryLayer = null; this.$refs.tree.setCheckedKeys([]); - + }, //瀵煎叆shp鏂囦欢 async setMenuTopFile() { @@ -224,7 +266,7 @@ } } if (count != 4) { - + this.$message({ message: 'ShapeFile鏂囦欢閫夋嫨涓嶅叏锛�', type: 'warning' @@ -258,7 +300,7 @@ //娓呯┖鏍囩粯 sgworld.Creator.SimpleGraphic.edit(false, { editProp: false }); sgworld.Creator.SimpleGraphic.clear(); - + if (this.treeChange.length == 0) { this.$message.error('璇烽�夋嫨瑕佹煡璇㈢殑鏁版嵁'); return; @@ -272,6 +314,7 @@ outlineWidth: 5, }, (entity) => { + this.setTurfGeometry(entity); } ); @@ -281,36 +324,42 @@ }, setTurfGeometry(res) { var that = this; + var res_val; switch (this.menuTopFrom.queryType) { case 'point': //鐐� var val = that.setCartesianToEightFour(res.position.getValue()); + res_val = val; that.setTurfCircle([val.lng, val.lat], 10); break; case 'polyline': //绾� var polyline = res.polyline.positions.getValue(); - + res_val = polyline; that.setTurfPolyOrLine(polyline, 'polyline'); break; case 'rectangle': //鐭╁舰 let rectangle = res.rectangle.coordinates.getValue(); + res_val = rectangle; var result = new Cesium.Rectangle.subsample( rectangle, Cesium.Ellipsoid.WGS84, rectangle.height ); that.setTurfPolyOrLine(result, 'rectangle'); - + break; case 'circle': //鍦� var val = that.setCartesianToEightFour(res.position.getValue()); + res_val = res.position.getValue(); var radius = res.ellipse.semiMajorAxis.getValue(); that.setTurfCircle([val.lng, val.lat], radius); break; case 'polygon': //澶氳竟褰� var polygon = res.polygon.hierarchy.getValue().positions; + res_val = polygon; that.setTurfPolyOrLine(polygon, 'polygon'); break; } + this.flyEntity = res_val }, setTurfCircle(position, radius) { var options = { @@ -342,12 +391,12 @@ } this.setJonToWKT(restVal); }, - + setJonToWKT(res) { - console.log(res.geometry) + var jsonToWkt = this.$wkt.convert(res.geometry); this.$store.state.mapMenuShpFile = encr(jsonToWkt); - + this.showMapMenuPop(); }, showMapMenuPop() { @@ -356,12 +405,12 @@ // this.$refs && this.$refs.queryinfo && this.$refs.queryinfo.close(); this.$refs && this.$refs.queryinfo && this.$refs.queryinfo.open("绌洪棿鏌ヨ", null, { close: () => { - + if (this.$store.state.primitLayer != null) { - sgworld.Creator.DeleteObject(this.$store.state.primitLayer); + // sgworld.Creator.DeleteObject(this.$store.state.primitLayer); this.$store.state.primitLayer = null; } - + if (window.Viewer.scene.primitives.length != 0) { window.Viewer.scene.primitives.removeAll() } @@ -369,7 +418,7 @@ }); this.$bus.$emit('changeMapMenuTop', 'true'); sgworld.Creator.SimpleGraphic.edit(false, { editProp: false }); - // sgworld.Creator.SimpleGraphic.clear(); + // sgworld.Creator.SimpleGraphic.clear(); //娓呯┖inputFile // var file = document.getElementById('getMenuTopFile'); // file.outerHTML = file.outerHTML; @@ -381,8 +430,10 @@ this.menuTopFrom.queryLayer = null; this.menuTopFrom.queryType = 'rectangle'; this.$refs.tree.setCheckedKeys([]); - - + //娓呯┖鏍囩粯 + sgworld.Creator.SimpleGraphic.edit(false, { editProp: false }); + sgworld.Creator.SimpleGraphic.clear(); + // //娓呴櫎瀵硅薄 // if (window.Viewer.scene.primitives.length != null) { // window.Viewer.scene.primitives.removeAll(); @@ -393,10 +444,10 @@ // } //鍏抽棴绐楀彛 this.$refs && this.$refs.queryinfo && this.$refs.queryinfo.close("queryinfo"); - - - - + + + + }, setCartesianToEightFour(res) { var std = {}; @@ -426,5 +477,4 @@ padding: 4px 20px; font-weight: 400; } - </style> -- Gitblit v1.9.3