From 4aa41941b8f3ebb2c5524035ff6d2d8207c62ab6 Mon Sep 17 00:00:00 2001 From: TreeWish <1131093754@qq.com> Date: 星期一, 06 三月 2023 15:23:20 +0800 Subject: [PATCH] 空间查询线面附件 --- src/components/MapView/mapMenuPop.vue | 596 +++++++++++++++++++++++++++++++--------------------------- 1 files changed, 317 insertions(+), 279 deletions(-) diff --git a/src/components/MapView/mapMenuPop.vue b/src/components/MapView/mapMenuPop.vue index 777bcf5..48a7d58 100644 --- a/src/components/MapView/mapMenuPop.vue +++ b/src/components/MapView/mapMenuPop.vue @@ -1,10 +1,7 @@ <template> <div class="menuPop"> <div class="leftBox"> - <div - class="leftDown" - v-if="$store.state.download" - > + <div class="leftDown" v-if="$store.state.download"> <div @click="getDownloadDep"> <el-link icon="el-icon-download"> </el-link> </div> @@ -34,11 +31,7 @@ label="搴忓彿" width="50" /> - <el-table-column - label="瀹氫綅" - width="100" - align="center" - > + <el-table-column label="瀹氫綅" width="100" align="center"> <template slot-scope="scope"> <el-button icon="el-icon-map-location" @@ -57,10 +50,7 @@ ></el-table-column> </el-table> </div> - <div - class="pagination_box" - style="margin-top:10px" - > + <div class="pagination_box" style="margin-top: 10px"> <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" @@ -88,20 +78,14 @@ label-width="100px" class="codeForm" > - <el-form-item - :label="$t('common.passworld')" - prop="password" - > + <el-form-item :label="$t('common.passworld')" prop="password"> <el-input type="password" v-model="codeForm.password" show-password ></el-input> </el-form-item> - <el-form-item - :label="$t('common.SPassword')" - prop="repassword" - > + <el-form-item :label="$t('common.SPassword')" prop="repassword"> <el-input type="password" v-model="codeForm.repassword" @@ -113,12 +97,9 @@ class="primary" size="small" @click="download('codeForm')" - >{{ $t("common.confirm") }}</el-button> - <el-button - type="info" - size="small" - @click="closeDown('codeForm')" - >{{ + >{{ $t("common.confirm") }}</el-button + > + <el-button type="info" size="small" @click="closeDown('codeForm')">{{ $t("common.cancel") }}</el-button> </el-form-item> @@ -133,11 +114,7 @@ :before-close="handleInsertClose" > <div style="width: 100%; max-height: 450px; overflow-y: auto"> - <el-form - ref="form" - :model="ruleForm" - label-width="100px" - > + <el-form ref="form" :model="ruleForm" label-width="100px"> <el-form-item label="瀹℃牳鍗曚綅"> <div> <ul> @@ -174,18 +151,10 @@ </el-input> </el-form-item> <el-form-item> - <el-button - class="primary" - size="small" - @click="getInsertDown" - >{{ + <el-button class="primary" size="small" @click="getInsertDown">{{ $t("common.confirm") }}</el-button> - <el-button - type="info" - size="small" - @click="closeInsertDown" - >{{ + <el-button type="info" size="small" @click="closeInsertDown">{{ $t("common.cancel") }}</el-button> </el-form-item> @@ -213,30 +182,30 @@ decr, encr, dataLib_selectDepsByIds, -} from "../../api/api.js"; -import { getToken } from "@/utils/auth"; -import $ from "jquery"; -import { View } from "ol"; +} from "../../api/api.js" +import { getToken } from "@/utils/auth" +import $ from "jquery" +import { View } from "ol" export default { data() { var repasswordValidator = (rule, value, callback) => { if (value === "") { - callback(new Error("璇峰啀娆¤緭鍏ュ瘑鐮�")); + callback(new Error("璇峰啀娆¤緭鍏ュ瘑鐮�")) } else if (value !== this.codeForm.password) { - callback(new Error("涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!")); + callback(new Error("涓ゆ杈撳叆瀵嗙爜涓嶄竴鑷�!")) } else { - callback(); + callback() } - }; + } var passwordValidator = (rule, value, callback) => { var passwordreg = - /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![a-z0-9]+$)(?![a-z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![0-9\W!@#$%^&*`~()\\-_+=,.?;<>]+$)[a-zA-Z0-9\W!@#$%^&*`~()\\-_+=,.?;<>]{12,20}$/; + /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![a-z0-9]+$)(?![a-z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![0-9\W!@#$%^&*`~()\\-_+=,.?;<>]+$)[a-zA-Z0-9\W!@#$%^&*`~()\\-_+=,.?;<>]{12,20}$/ if (!passwordreg.test(value)) { - callback(new Error("瀵嗙爜蹇呴』鐢辨暟瀛椼�佸瓧姣嶃�佺壒娈婂瓧绗︾粍鍚�,璇疯緭鍏�13-20浣�")); + callback(new Error("瀵嗙爜蹇呴』鐢辨暟瀛椼�佸瓧姣嶃�佺壒娈婂瓧绗︾粍鍚�,璇疯緭鍏�13-20浣�")) } else { - callback(); + callback() } - }; + } return { ruleForm: { depname: [], @@ -294,19 +263,19 @@ optionx: [], imagePoint: null, Layerprimit: null, - }; + } }, methods: { getInsertDown() { - this.dialogInsertVisible = false; - this.dialogVisible = true; + this.dialogInsertVisible = false + this.dialogVisible = true }, handleInsertClose() { this.$confirm("纭鍏抽棴锛�") - .then((_) => { - this.closeInsertDown(); + .then(_ => { + this.closeInsertDown() }) - .catch((_) => { }); + .catch(_ => {}) }, closeInsertDown() { this.ruleForm = { @@ -316,72 +285,72 @@ repwd: null, wkt: null, descr: null, - }; - this.dialogInsertVisible = false; + } + this.dialogInsertVisible = false }, async getDownloadDep() { - var std = []; + var std = [] for (var i in this.option) { - std.push(this.option[i].entity); + std.push(this.option[i].entity) } var obj = { entities: std, wkt: this.listdata.wkt, - }; - const data = await dataQuery_selectDbOverflowDep(JSON.stringify(obj)); + } + const data = await dataQuery_selectDbOverflowDep(JSON.stringify(obj)) if (data.code != 200) { - this.$message.error("鏁版嵁璇锋眰澶辫触"); - return; + this.$message.error("鏁版嵁璇锋眰澶辫触") + return } if (data.result.length == 0 || data.result == null) { - this.insertFlag = 1; - this.dialogVisible = true; + this.insertFlag = 1 + this.dialogVisible = true } else { - this.insertFlag = 2; - var std = []; - this.insertOption.ids = data.result; - var val = ""; + this.insertFlag = 2 + var std = [] + this.insertOption.ids = data.result + var val = "" for (var i in data.result) { if (val == "") { - val += "codes=" + data.result[i]; + val += "codes=" + data.result[i] } else { - val += "&codes=" + data.result[i]; + val += "&codes=" + data.result[i] } std.push({ name: data.result[i], - }); + }) } - const data1 = await dataLib_selectDepsByIds(val); + const data1 = await dataLib_selectDepsByIds(val) - this.ruleForm.depid = data1.result; - this.ruleForm.depname = std; - this.ruleForm.wkt = decr(this.listdata.wkt); - this.ruleForm.tabs = this.option; - this.dialogInsertVisible = true; + this.ruleForm.depid = data1.result + this.ruleForm.depname = std + this.ruleForm.wkt = decr(this.listdata.wkt) + this.ruleForm.tabs = this.option + this.dialogInsertVisible = true } }, async signGetPublicKey() { - const res = await sign_getPublicKey(); + const res = await sign_getPublicKey() if (res && res.code == 200) { - window.encrypt = new JSEncrypt(); - encrypt.setPublicKey(res.result); + window.encrypt = new JSEncrypt() + encrypt.setPublicKey(res.result) } }, async download() { - if (this.codeForm.password == "") return; + if (this.codeForm.password == "") return if (this.insertFlag == 1) { var obj = { pwd: encrypt.encrypt(this.codeForm.password), entities: [], wkt: this.listdata.wkt, - }; - for (var i in this.option) { - obj.entities.push(this.option[i].entity); } - var token = getToken(); - var that = this; + for (var i in this.option) { + obj.entities.push(this.option[i].entity) + } + var token = getToken() + var that = this $.ajax(BASE_URL + "/dataLib/downloadDbReq?token=" + token, { type: "post", data: JSON.stringify(obj), @@ -389,19 +358,19 @@ cache: false, processData: false, contentType: false, - success: (res) => { + success: res => { if (res.code != 200) { - return; + return } - this.selectDownloadFile(res.result, obj.pwd); + this.selectDownloadFile(res.result, obj.pwd) }, - }); + }) } else if (this.insertFlag == 2) { - var std = []; - var std1 = []; + var std = [] + var std1 = [] for (var i in this.option) { - std.push(this.option[i].tabDesc); - std1.push(this.option[i].entity); + std.push(this.option[i].tabDesc) + std1.push(this.option[i].entity) } var obj = { depcodes: this.insertOption.ids, @@ -410,32 +379,32 @@ entities: std1, wkt: this.listdata.wkt, descr: this.ruleForm.descr, - }; - const data1 = await apply_insertApply(JSON.stringify(obj)); + } + const data1 = await apply_insertApply(JSON.stringify(obj)) if (data1.code != 200) { - this.$message.error("鏁版嵁鐢宠澶辫触"); - return; + this.$message.error("鏁版嵁鐢宠澶辫触") + return } this.$message({ message: "鏁版嵁鐢宠鎴愬姛", type: "success", - }); + }) - this.closeDown(); + this.closeDown() } }, async selectDownloadFile(rsid, rspwd) { var downObj = { guid: rsid, pwd: encodeURIComponent(rspwd), - }; - const data = await dataLib_selectDownloadFile(downObj); - if (data.code != 200) { - this.$message.error("涓嬭浇璇锋眰澶辫触"); - return; } - this.closeDown(); - var token = getToken(); + const data = await dataLib_selectDownloadFile(downObj) + if (data.code != 200) { + this.$message.error("涓嬭浇璇锋眰澶辫触") + return + } + this.closeDown() + var token = getToken() var url = BASE_URL + "/dataLib/downloadFile?token=" + @@ -443,73 +412,73 @@ "&guid=" + rsid + "&pwd=" + - encodeURIComponent(rspwd); - $("#Iframe1").attr("src", url).click(); + encodeURIComponent(rspwd) + $("#Iframe1").attr("src", url).click() }, handleCloseDown() { this.$confirm("纭鍏抽棴锛�") - .then((_) => { - this.closeDown(); + .then(_ => { + this.closeDown() }) - .catch((_) => { }); + .catch(_ => {}) }, closeDown() { - this.dialogVisible = false; - this.codeForm.password = ""; - this.codeForm.repassword = ""; - this.closeInsertDown(); + this.dialogVisible = false + this.codeForm.password = "" + this.codeForm.repassword = "" + this.closeInsertDown() }, startTableMssage() { - this.listdata.pageIndex = 1; - this.listdata.pageSize = 10; - this.listdata.name = null; - this.option = []; + this.listdata.pageIndex = 1 + this.listdata.pageSize = 10 + this.listdata.name = null + this.option = [] }, clearQuerInfo() { if (this.$store.state.queryInfo.length != 0) { - sgworld.Creator.SimpleGraphic.clear(); + sgworld.Creator.SimpleGraphic.clear() for (var i in this.$store.state.queryInfo) { - sgworld.Viewer.entities.remove(this.$store.state.queryInfo[i]); + sgworld.Viewer.entities.remove(this.$store.state.queryInfo[i]) } - this.$store.state.queryInfo = []; + this.$store.state.queryInfo = [] if (this.$store.state.primitLayer != null) { - sgworld.Viewer.entities.remove(this.$store.state.primitLayer); - sgworld.Creator.DeleteObject(this.$store.state.primitLayer); - this.$store.state.primitLayer = null; + sgworld.Viewer.entities.remove(this.$store.state.primitLayer) + sgworld.Creator.DeleteObject(this.$store.state.primitLayer) + this.$store.state.primitLayer = null } } }, setTableAll() { - this.clearQuerInfo(); - this.signGetPublicKey(); - this.startTableMssage(); - this.listdata.wkt = this.$store.state.mapMenuShpFile; - this.querylayer = this.$store.state.mapSpaceQueryLayer; + this.clearQuerInfo() + this.signGetPublicKey() + this.startTableMssage() + this.listdata.wkt = this.$store.state.mapMenuShpFile + this.querylayer = this.$store.state.mapSpaceQueryLayer // = this.$store.state.mapSpaceQueryLayer; - var arr = this.$store.state.mapSpaceQueryLayer; - var obj = {}; + var arr = this.$store.state.mapSpaceQueryLayer + var obj = {} arr = arr.reduce(function (item, next) { - obj[next.label] ? "" : (obj[next.label] = true && item.push(next)); - return item; - }, []); - this.option = arr; - this.listdata.name = this.option[0].entity; + obj[next.label] ? "" : (obj[next.label] = true && item.push(next)) + return item + }, []) + this.option = arr + this.listdata.name = this.option[0].entity - this.getTableDateHidder(); + this.getTableDateHidder() }, async getTableDateHidder() { - const data = await inquiry_selectFields({ name: this.listdata.name }); + const data = await inquiry_selectFields({ name: this.listdata.name }) if (data.code != 200) { - this.$message.error("鍒楄〃璋冪敤澶辫触"); + this.$message.error("鍒楄〃璋冪敤澶辫触") } - const data1 = await inquiry_selectDomains({ name: this.listdata.name }); + const data1 = await inquiry_selectDomains({ name: this.listdata.name }) if (data1.code != 200) { - this.$message.error("鍒楄〃璋冪敤澶辫触"); + this.$message.error("鍒楄〃璋冪敤澶辫触") } - this.optionx = []; - this.attributeData = []; - var valadata = data.result; - var laydomain = data1.result; + this.optionx = [] + this.attributeData = [] + var valadata = data.result + var laydomain = data1.result for (var i in valadata) { if (valadata[i].showtype == 1) { @@ -519,144 +488,203 @@ ) { for (var j in laydomain) { if (laydomain[j].domName == valadata[i].domainNa) { - valadata[i].domainNa = laydomain[j].codeDesc; + valadata[i].domainNa = laydomain[j].codeDesc } } } - this.optionx.push(valadata[i]); - this.attributeData.push(valadata[i]); + this.optionx.push(valadata[i]) + this.attributeData.push(valadata[i]) } } - this.getTableData(); + this.getTableData() }, async spaceLocation(index, row) { var param = { gid: row.gid, name: this.listdata.name, - }; - const data = await dataQuerySelectWktById(param); + } + const data = await dataQuerySelectWktById(param) if (data.code != 200) { - this.$message.error("鍒楄〃璋冪敤澶辫触"); + this.$message.error("鍒楄〃璋冪敤澶辫触") } - var val1 = decr(data.result); + var val1 = decr(data.result) if (val1) { if (this.imagePoint != null) { - sgworld.Creator.DeleteObject(this.imagePoint); - this.imagePoint = null; + sgworld.Creator.DeleteObject(this.imagePoint) + this.imagePoint = null } - var wkt = this.$wkt.parse(val1); - this.setMapLoaction(wkt, row); + var wkt = this.$wkt.parse(val1) + this.setMapLoaction(wkt, row) } }, - setMapLoaction(res) { - var coord = res.coordinates; - if (this.Layerprimit != null) { - window.Viewer.scene.primitives.remove(this.Layerprimit); - this.Layerprimit = null; + setMapLoaction(res, properties) { + if (this.$store.state.primitLayer != null) { + sgworld.Creator.DeleteObject(this.$store.state.primitLayer) + // this.$store.state.primitLayer = null; + sgworld.Viewer.entities.remove(this.$store.state.primitLayer) + this.$store.state.primitLayer = null } - if (res.type == "Point") { - Viewer.camera.flyTo({ - destination: Cesium.Cartesian3.fromDegrees(coord[0], coord[1], 2000), - orientation: { - heading: Cesium.Math.toRadians(0), // 姘村钩鍋忚锛岄粯璁ゆ鍖� 0 - pitch: Cesium.Math.toRadians(-90), // 淇瑙掞紝榛樿-90锛屽瀭鐩村悜涓� - roll: 0, // 鏃嬭浆瑙� - }, - }); - } else if (res.type == "MultiPolygon") { - var val = res.coordinates[0][0]; - var std = []; + var coord = res.coordinates - for (var i in val) { - std.push({ x: val[i][0], y: val[i][1], z: 1000 }); - } - this.$store.state.primitLayer = sgworld.Creator.createPolygon( - std, - { - fillColor: "#ffff00", - outlineColor: "#fff", - outlineWidth: 2, - }, - 1, - 0, - "闈�" - ); - sgworld.Navigate.flyToObj(this.$store.state.primitLayer.item); - } else if (res.type == "MultiLineString") { - var line = res.coordinates[0]; - var std = []; + switch (res.type) { + case "Point": + var val = Cesium.Cartesian3.fromDegrees( + res.coordinates[0], + res.coordinates[1] + ) + var point = Viewer.entities.add({ + properties: properties, + tag: "properties_point", + position: val, + billboard: { + // 鍥惧儚鍦板潃锛孶RI鎴朇anvas鐨勫睘鎬� + image: SmartEarthRootUrl + "Workers/image/mark.png", + heightReference: Cesium.HeightReference.CLAMP_TO_GROUND, + // 澶у皬鏄惁浠ョ背涓哄崟浣� + sizeInMeters: false, + // 鐩稿浜庡潗鏍囩殑鍨傜洿浣嶇疆 + verticalOrigin: Cesium.VerticalOrigin.CENTER, + // 鐩稿浜庡潗鏍囩殑姘村钩浣嶇疆 + horizontalOrigin: Cesium.HorizontalOrigin.LEFT, + // 搴旂敤浜庡浘鍍忕殑缁熶竴姣斾緥銆傛瘮渚嬪ぇ浜庝細1.0鏀惧ぇ鏍囩锛岃�屾瘮渚嬪皬浜庝細1.0缂╁皬鏍囩銆� + scale: 1.0, + // 鏄惁鏄剧ず + show: true, + }, + }) + point.billboard.disableDepthTestDistance = Number.POSITIVE_INFINITY + this.$store.state.queryInfo.push(point) + sgworld.Navigate.flyToObj(point) + this.$store.state.primitLayer = point - for (var i in line) { - std.push({ x: line[i][0], y: line[i][1], z: 1000 }); - } - this.$store.state.primitLayer = sgworld.Creator.createPolyline( - std, - "#ffff00", - 1, - 0, - "绾�" - ); - sgworld.Navigate.flyToObj(this.$store.state.primitLayer.item); + break + case "LineString": + case "MultiLineString": + var line = res.coordinates[0] + var std = [] + for (var i in line) { + std.push(line[i][0], line[i][1]) + } + var polyline = Viewer.entities.add({ + properties: properties, + tag: "properties_line", + polyline: { + positions: Cesium.Cartesian3.fromDegreesArray(std), + width: 5, + material: new Cesium.Color(1.0, 0.0, 0.0, 0.3), + clampToGround: true, + }, + }) + this.$store.state.queryInfo.push(polyline) + sgworld.Navigate.flyToObj(polyline) + this.$store.state.primitLayer = polyline + break + case "MultiPolygon": + var val = res.coordinates[0][0] + var std = [] + for (var i in val) { + std.push(val[i][0], val[i][1]) + } + var entity = Viewer.entities.add({ + properties: properties, + tag: "properties_polygon", + polygon: { + hierarchy: Cesium.Cartesian3.fromDegreesArray(std), + //height : 100000, + material: new Cesium.Color(1.0, 0.0, 0.0, 0.3), + outline: true, + outlineColor: new Cesium.Color(1.0, 0.0, 0.0, 0.3), + }, + }) + this.$store.state.queryInfo.push(entity) + sgworld.Navigate.flyToObj(entity) + this.$store.state.primitLayer = entity + break } + this.setMapHandler() + }, + setMapHandler() { + window.propertieshandler = new Cesium.ScreenSpaceEventHandler( + sgworld.Viewer.scene.canvas + ) + window.propertieshandler.setInputAction(event => { + let pick = sgworld.Viewer.scene.pick(event.position) + if (pick && pick.id && pick.id.tag && pick.id.tag.includes('properties_')) { + this.$store.state.propertiesFlag = "1" + let properties = pick.id.properties + let propertyNames = pick.id.properties.propertyNames + let obj = {} + obj["eventid"] = properties["_eventid"]._value + // + this.attributeData.forEach(item => { + propertyNames.forEach(itemElement => { + if (itemElement == item.field) { + obj[item.alias] = properties[itemElement]._value + } + }) + }) + this.$store.state.propertiesInfo = obj + } + }, Cesium.ScreenSpaceEventType.LEFT_CLICK) }, setTableChange(res) { - this.listdata.pageIndex = 1; - this.listdata.pageSize = 10; - this.listdata.name = res.entity; - this.$store.state.propertiesName = res; - this.getTableDateHidder(); + this.listdata.pageIndex = 1 + this.listdata.pageSize = 10 + this.listdata.name = res.entity + this.$store.state.propertiesName = res + this.getTableDateHidder() }, handleSizeChange(val) { - this.listdata.pageIndex = 1; - this.listdata.pageSize = val; - this.getTableData(); + this.listdata.pageIndex = 1 + this.listdata.pageSize = val + this.getTableData() }, handleCurrentChange(val) { - this.listdata.pageIndex = val; - this.getTableData(); + this.listdata.pageIndex = val + this.getTableData() }, async getTableData() { - this.tableData = []; + this.tableData = [] - const data = await dataQuery_selectByPage(this.listdata); + const data = await dataQuery_selectByPage(this.listdata) if (data.code != 200) { - this.$message.error("鍒楄〃璋冪敤澶辫触"); + this.$message.error("鍒楄〃璋冪敤澶辫触") } - var val_Data = data.result; + var val_Data = data.result for (var i in val_Data) { - var valste = val_Data[i]; + var valste = val_Data[i] for (var j in this.optionx) { if ( this.optionx[j].domainNa != null && this.optionx[j].domainNa != undefined ) { - valste[this.optionx[j].field] = this.optionx[j].domainNa; + valste[this.optionx[j].field] = this.optionx[j].domainNa } } } - this.pageCount = data.count; - this.tableData = data.result; - this.$refs.dialogPayChannel.doLayout(); - this.showAllImage(data.result); + this.pageCount = data.count + this.tableData = data.result + this.$refs.dialogPayChannel.doLayout() + // this.showAllImage(data.result) }, async showAllImage(res) { for (var i in res) { - let properties = res[i]; + let properties = res[i] var param = { gid: res[i].gid, name: this.listdata.name, - }; - const data = await dataQuerySelectWktById(param); - if (data.code != 200) { - this.$message.error("鍒楄〃璋冪敤澶辫触"); } - var val1 = decr(data.result); + const data = await dataQuerySelectWktById(param) + if (data.code != 200) { + this.$message.error("鍒楄〃璋冪敤澶辫触") + } + var val1 = decr(data.result) if (val1) { - var wkt = this.$wkt.parse(val1); + var wkt = this.$wkt.parse(val1) // this.getprimitiLayer(wkt); - this.primitivesAddLayer(wkt, properties); + this.primitivesAddLayer(wkt, properties) } } }, @@ -665,8 +693,8 @@ case "Point": this.$store.state.primitLayer = window.Viewer.scene.primitives.add( new Cesium.BillboardCollection() - ); - break; + ) + break } }, primitivesAddLayer(res, properties) { @@ -675,7 +703,7 @@ var val = Cesium.Cartesian3.fromDegrees( res.coordinates[0], res.coordinates[1] - ); + ) var point = Viewer.entities.add({ position: val, properties: properties, @@ -695,22 +723,22 @@ // 鏄惁鏄剧ず show: true, }, - }); - point.billboard.disableDepthTestDistance = Number.POSITIVE_INFINITY; - this.$store.state.queryInfo.push(point); + }) + point.billboard.disableDepthTestDistance = Number.POSITIVE_INFINITY + this.$store.state.queryInfo.push(point) //鐐瑰嚮浜嬩欢 window.propertieshandler = new Cesium.ScreenSpaceEventHandler( sgworld.Viewer.scene.canvas - ); + ) window.propertieshandler.setInputAction(event => { - let pick = sgworld.Viewer.scene.pick(event.position); + let pick = sgworld.Viewer.scene.pick(event.position) // ; if (pick && pick.id && pick.id.tag == "properties_point") { - this.$store.state.propertiesFlag = '1'; - let properties = pick.id.properties; - let propertyNames = pick.id.properties.propertyNames; - let obj = {}; - obj["eventid"] = properties['_eventid']._value; + this.$store.state.propertiesFlag = "1" + let properties = pick.id.properties + let propertyNames = pick.id.properties.propertyNames + let obj = {} + obj["eventid"] = properties["_eventid"]._value this.attributeData.forEach(item => { propertyNames.forEach(itemElement => { if (itemElement == item.field) { @@ -718,34 +746,38 @@ } }) }) - this.$store.state.propertiesInfo = obj; + this.$store.state.propertiesInfo = obj } - }, Cesium.ScreenSpaceEventType.LEFT_CLICK); - break; + }, Cesium.ScreenSpaceEventType.LEFT_CLICK) + break case "LineString": case "MultiLineString": - var line = res.coordinates[0]; - var std = []; + var line = res.coordinates[0] + var std = [] for (var i in line) { - std.push(line[i][0], line[i][1]); + std.push(line[i][0], line[i][1]) } var polyline = Viewer.entities.add({ polyline: { + properties: properties, + tag: "properties_line", positions: Cesium.Cartesian3.fromDegreesArray(std), width: 5, material: new Cesium.Color(1.0, 0.0, 0.0, 0.3), clampToGround: true, }, - }); - this.$store.state.queryInfo.push(polyline); - break; + }) + this.$store.state.queryInfo.push(polyline) + break case "MultiPolygon": - var val = res.coordinates[0][0]; - var std = []; + var val = res.coordinates[0][0] + var std = [] for (var i in val) { - std.push(val[i][0], val[i][1]); + std.push(val[i][0], val[i][1]) } var entity = Viewer.entities.add({ + properties: properties, + tag: "properties_polygon", polygon: { hierarchy: Cesium.Cartesian3.fromDegreesArray(std), //height : 100000, @@ -753,36 +785,42 @@ outline: true, outlineColor: new Cesium.Color(1.0, 0.0, 0.0, 0.3), }, - }); - this.$store.state.queryInfo.push(entity); - break; + }) + this.$store.state.queryInfo.push(entity) + break } }, closeMenuBox() { if (this.imagePoint != null) { - sgworld.Creator.DeleteObject(this.imagePoint); - this.imagePoint = null; + sgworld.Creator.DeleteObject(this.imagePoint) + this.imagePoint = null } - sgworld.Creator.SimpleGraphic.clear(); - this.$store.state.mapPopBoolean = false; - this.$store.state.mapPopBoxFlag = null; + sgworld.Creator.SimpleGraphic.clear() + this.$store.state.mapPopBoolean = false + this.$store.state.mapPopBoxFlag = null }, }, created() { - this.setTableAll(); + this.setTableAll() }, mounted() { - this.$bus.$on("changeMapMenuTop", (res) => { + this.$bus.$on("changeMapMenuTop", res => { if (res == "true") { - this.setTableAll(); + this.setTableAll() } - }); + }) }, destroyed() { - this.$store.state.propertiesFlag = null; - } -}; + this.$store.state.propertiesFlag = null + if (propertieshandler != null && Cesium.defined(propertieshandler)) { + window.propertieshandler.removeInputAction( + Cesium.ScreenSpaceEventType.LEFT_CLICK + ) + window.propertieshandler = null + } + }, +} </script> <style scoped lang="less"> -- Gitblit v1.9.3