From dbb352c9d988dfac83da979023fe81a0a02f88e9 Mon Sep 17 00:00:00 2001 From: lixuliang <lixuliang_hd@126.com> Date: 星期五, 12 四月 2024 16:34:20 +0800 Subject: [PATCH] 与数字人合并 --- src/components/menu/tools/special.vue | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 101 insertions(+), 15 deletions(-) diff --git a/src/components/menu/tools/special.vue b/src/components/menu/tools/special.vue index e9ef033..efe2c08 100644 --- a/src/components/menu/tools/special.vue +++ b/src/components/menu/tools/special.vue @@ -237,25 +237,33 @@ } </style> <script> +import Vue from "vue"; +import store from "@/utils/store"; +import poiLayer from "@/components/poplayer/main"; +import rpc from "@/assets/js/rpc"; +import mapData from "../../../../static/mapData"; +import mapMsg from "@/assets/js/mapMsg"; +import vueEvents from "@/utils/vueEvent.js"; +let PoiLayerConstructor = Vue.extend(poiLayer); + import axios from "axios"; import { mapState, mapMutations } from "vuex"; import Bus from "../../tools/Bus"; import { roman } from "../../../assets/json/index.js"; import URLInCode from "@/assets/js/urlInCode"; import keyName from "@/utils/poiKeys"; -let handler; +import LayerField from "@/utils/NameConf"; + +let handler, buildingPolygon, objdata, video, promiseS3M; +window.divPoint3 = null; +window.instance = null; let tooltipHTML; window.divPoint1 = null; window.pickFeature = null; window.imgUrl = null; window.scale = null; -let buildingPolygon; -let tooltip; -let lineArr = []; -let video; -let promiseS3M; //浜ら�氬浘灞� -let panoramaLayer; +window.panoramaLayer = null; export default { name: "special", data() { @@ -577,13 +585,11 @@ }, setCesuimHandle() { var that = this; - Bus.$on("clearSelectObject", this.clearSelectObject); handler && handler.destroy(); handler = new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); handler.setInputAction((event) => { let nPickFeature = sgworld.Viewer.scene.pick(event.position); - if (Cesium.defined(nPickFeature)) { this.resetImg(); if (buildingPolygon) { @@ -599,9 +605,9 @@ // console.log(nPickFeature); imgUrl = nPickFeature.primitive.image; scale = nPickFeature.primitive.scale; - nPickFeature.primitive.scale = 1; nPickFeature.primitive.image = window.SmartEarthRootUrl + "Workers/image/point.png"; + nPickFeature.primitive.scale = 1; //鐐瑰嚮寮规 let obj = {}; let lon; @@ -640,15 +646,46 @@ } if (!isCamera) { tooltipHTML = ""; + //閲嶇疆LayerField鏁版嵁 + for (let item in LayerField) { + LayerField[item] = 0; + } // 鍒犻櫎瀛楁 let { OBJECTID, ID, BZDZ, Latitude, Longtitude, ...userData } = obj; - for (let i in userData) { - let value = userData[i]; - let name = keyName[i] || i; - value && (tooltipHTML += `<p>${name}锛�${value || "鏃�"}</p>`); - console.log(tooltipHTML); + + // 鍒ゆ柇灞曠ず鐨勭被鍨� + if ( + userData.hasOwnProperty("閮ㄤ欢鍚嶇О") || + userData.hasOwnProperty("浜曠紪鍙�") + ) { + //淇敼LayerField鏁版嵁 + for (let itemName in userData) { + let CnName = keyName[itemName] || itemName; + if (LayerField.hasOwnProperty(CnName)) { + LayerField[CnName] = userData[itemName]; + if (CnName == "缁忓害" || CnName == "绾害") { + let str = Number(LayerField[CnName]); + LayerField[CnName] = str.toFixed(6); + } + } + } + // 灞曠ずLayerField鏁版嵁 + for (let item in LayerField) { + let value = LayerField[item]; + value && (tooltipHTML += `<p>${item}锛�${value || "鏃�"}</p>`); + } + } else { + // 鐩存帴灞曠ず + for (let itemName in userData) { + let value = userData[itemName]; + let CnName = keyName[itemName] || itemName; + value && + (tooltipHTML += `<p>${CnName}锛�${value || "鏃�"}</p>`); + console.log(tooltipHTML); + } } + let description = ` <div id="pointInfoBox" class="pointInfoBox" style="pointer-events:auto;"> <span style="position: absolute; right: 12px; top: 6px;">脳</span> @@ -758,6 +795,55 @@ ); } }); + } else if ( + nPickFeature.id.fid && + nPickFeature.id.fid.includes("鍏嶈垂浣忔墍绌洪棿0131") + ) { + let obj = nPickFeature.id.attributes; + let lon = 116.50592; + let lat = 39.798999; + if (divPoint1) { + divPoint1.deleteObject(); + } + tooltipHTML = ""; + //閲嶇疆LayerField鏁版嵁 + for (let item in LayerField) { + LayerField[item] = 0; + } + // 鍒犻櫎瀛楁 + let { Id, ...userData } = obj; + // 鐩存帴灞曠ず + for (let itemName in userData) { + let value = userData[itemName]; + let CnName = keyName[itemName] || itemName; + value && (tooltipHTML += `<p>${CnName}锛�${value || "鏃�"}</p>`); + } + let description = ` + <div id="pointInfoBox" class="pointInfoBox" style="pointer-events:auto;"> + <span style="position: absolute; right: 12px; top: 6px;">脳</span> + ${tooltipHTML} + </div> + `; + divPoint1 = sgworld.Creator.createDivPoint( + "璇︾粏淇℃伅", + { + lon: lon, + lat: lat, + height: 50, + }, + { + type: "custom", + offset: ["c", 50], + description, + onclick(data) { + divPoint1 && divPoint1.deleteObject(); + }, + } + ); + //鍏抽棴鍦板潡淇℃伅寮圭獥 + Bus.$emit("closeLandInfoPop", true); + layuiLayer.close(SmartEarthPopupData.layerProp); + this.$store.commit("description", obj); } // else if (nPickFeature.primitive instanceof Cesium.GroundPrimitive) { // let wmsLayer = this.$store.state.selectedLayers.filter((item) => { -- Gitblit v1.9.3