| | |
| | | import keyName from "@/utils/poiKeys"; |
| | | import LayerField from "@/utils/NameConf"; |
| | | |
| | | let handler, buildingPolygon, objdata, video, promiseS3M; |
| | | let handler, buildingPolygon, objdata = {}, video, promiseS3M; |
| | | window.divPoint3 = null; |
| | | window.instance = null; |
| | | let tooltipHTML; |
| | |
| | | handler = new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | handler.setInputAction(event => { |
| | | let nPickFeature = sgworld.Viewer.scene.pick(event.position); |
| | | console.log(nPickFeature); |
| | | if (Cesium.defined(nPickFeature)) { |
| | | this.resetImg(); |
| | | if (buildingPolygon) { |
| | |
| | | } |
| | | // this.resetBorder(); |
| | | window.pickFeature = nPickFeature; |
| | | // console.log(nPickFeature); |
| | | imgUrl = nPickFeature.primitive.image; |
| | | scale = nPickFeature.primitive.scale; |
| | | nPickFeature.primitive.image = |
| | | window.SmartEarthRootUrl + "Workers/image/point.png"; |
| | | nPickFeature.primitive.scale = 1; |
| | | //点击弹框 |
| | | |
| | | objdata = {} |
| | | let obj = {}; |
| | | let lon; |
| | | let lat; |
| | |
| | | } |
| | | if (!isCamera) { |
| | | tooltipHTML = ""; |
| | | //重置LayerField数据 |
| | | //重置LayerField数据(窨井和部件展示的字段表) |
| | | for (let item in LayerField) { |
| | | LayerField[item] = 0; |
| | | } |
| | | // 删除字段 |
| | | // 删除不需要的字段 剩下保存为userData |
| | | let { |
| | | OBJECTID, |
| | | ID, |
| | |
| | | } |
| | | // 展示LayerField数据 |
| | | for (let item in LayerField) { |
| | | let value = LayerField[item]; |
| | | value && (tooltipHTML += `<p>${item}:${value || "无"}</p>`); |
| | | LayerField[item] && (objdata[item] = LayerField[item]) |
| | | // (tooltipHTML += `<p>${item}:${LayerField[item] || "无"}</p>`); |
| | | } |
| | | } else if ( |
| | | userData.hasOwnProperty("当事人名称") || |
| | |
| | | 办案人员: userData["办案人员"], |
| | | 调查情形: userData["调查情形"] |
| | | }; |
| | | // 展示LayerField数据 |
| | | for (let itemName in newOBJ) { |
| | | let CnName = itemName; |
| | | let value = userData[itemName]; |
| | | |
| | | value && |
| | | (tooltipHTML += `<p style="margin-top:7px;">${CnName}:${value || |
| | | "无"}</p>`); |
| | | // console.log(tooltipHTML); |
| | | } |
| | | objdata = newOBJ |
| | | } else { |
| | | for (let itemName in userData) { |
| | | let CnName = itemName; |
| | | let value = userData[itemName]; |
| | | value && |
| | | (tooltipHTML += `<p style="margin-top:7px;">${CnName}:${value || |
| | | "无"}</p>`); |
| | | let CnName = keyName[itemName] || itemName; |
| | | userData[itemName] && (objdata[CnName] = userData[itemName]) |
| | | // (tooltipHTML += `<p style="margin-top:7px;">${itemName}:${ userData[itemName] || |
| | | // "无"}</p>`); |
| | | } |
| | | } |
| | | divPoint3 && divPoint3.deleteObject(); |
| | | store.setPoplayerShowAction(false); |
| | | store.setPoplayerListAction({}); |
| | | store.setPoplayerShowAction(true); |
| | | store.setPoplayerListAction(objdata); |
| | | window.instance = new PoiLayerConstructor({ |
| | | data: { |
| | | list: objdata, |
| | | }, |
| | | }); |
| | | window.instance.$mount(); |
| | | divPoint3 = window.sgworld.Creator.createDivPoint( |
| | | "", |
| | | { |
| | | lon: lon, |
| | | lat: lat, |
| | | height: 50, |
| | | }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c", 100], |
| | | description: window.instance.$el, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | //关闭地块信息弹窗 |
| | | Bus.$emit("closeLandInfoPop", true); |
| | | layuiLayer.close(SmartEarthPopupData.layerProp); |
| | | //发送给right-top.vue调用 |
| | | this.$store.commit("description", obj); |
| | | } |
| | | |
| | | 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 = ""; |
| | | // 删除字段 |
| | | 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> |
| | |
| | | offset: ["c", 50], |
| | | description, |
| | | onclick(data) { |
| | | // sgworld.Creator.DeleteObject(divPoint1); |
| | | divPoint1 && divPoint1.deleteObject(); |
| | | if (window.pickFeature && window.pickFeature.primitive) { |
| | | window.pickFeature.primitive.image = imgUrl; |
| | | window.pickFeature.primitive.scale = scale; |
| | | window.pickFeature = null; |
| | | } |
| | | } |
| | | } |
| | | ); |
| | | // if (tooltip) { |
| | | // tooltip.show(false); |
| | | // tooltip = null; |
| | | // } |
| | | // tooltip = sgworld.Core.CreateResultTooltip(window.Viewer, { |
| | | // color: "black", |
| | | // addY: -40, |
| | | // far: 200000, |
| | | // closeBtn: true, |
| | | // close: () => { |
| | | // this.resetImg(); |
| | | // }, |
| | | // }); |
| | | |
| | | // let description = `<div style='background: |
| | | // rgba(14, 50, 143, 0.6); |
| | | // border: 1px solid #205fbc; |
| | | // border-radius: 5px; |
| | | // color: #fff; |
| | | // padding: 15px; |
| | | // box-shadow: 0px 1px 10px 0px rgba(3, 10, 26, 0.38); |
| | | // '>${tooltipHTML}</div>`; |
| | | |
| | | // tooltip.showAt( |
| | | // Cesium.Cartesian3.fromDegrees(lon, lat, 0), |
| | | // description |
| | | // ); |
| | | } |
| | | //关闭地块信息弹窗 |
| | | Bus.$emit("closeLandInfoPop", true); |
| | | layuiLayer.close(SmartEarthPopupData.layerProp); |
| | | this.$store.commit("description", obj); |
| | | } else if (nPickFeature.primitive instanceof Cesium.Cesium3DTileset) { |
| | | } |
| | | // else if (nPickFeature.primitive instanceof Cesium.Cesium3DTileset) { |
| | | // // let cartographic = |
| | | // // window.Viewer.scene.globe.ellipsoid.cartesianToCartographic( |
| | | // // nPickFeature.content.tile.boundingSphere.center |
| | |
| | | // ); |
| | | // } |
| | | // }); |
| | | } 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) => { |
| | | // return item.name == "行政区划图"; |