From 9a57dec9a7b520f349781991eb2bf3c1b294825f Mon Sep 17 00:00:00 2001 From: lixuliang <lixuliang_hd@126.com> Date: 星期一, 18 十一月 2024 10:36:51 +0800 Subject: [PATCH] 最新 --- src/components/menu/tools/special.vue | 206 +++++++++++++++++++++------------------------------ 1 files changed, 84 insertions(+), 122 deletions(-) diff --git a/src/components/menu/tools/special.vue b/src/components/menu/tools/special.vue index c981328..1d9a7a8 100644 --- a/src/components/menu/tools/special.vue +++ b/src/components/menu/tools/special.vue @@ -222,7 +222,7 @@ 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; @@ -558,6 +558,7 @@ 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) { @@ -570,13 +571,14 @@ } // 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; @@ -613,11 +615,11 @@ } if (!isCamera) { tooltipHTML = ""; - //閲嶇疆LayerField鏁版嵁 + //閲嶇疆LayerField鏁版嵁锛堢浜曞拰閮ㄤ欢灞曠ず鐨勫瓧娈佃〃锛� for (let item in LayerField) { LayerField[item] = 0; } - // 鍒犻櫎瀛楁 + // 鍒犻櫎涓嶉渶瑕佺殑瀛楁 鍓╀笅淇濆瓨涓簎serData let { OBJECTID, ID, @@ -644,8 +646,8 @@ } // 灞曠ず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("褰撲簨浜哄悕绉�") || @@ -663,135 +665,50 @@ 鍔炴浜哄憳: 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>`); } } - - 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( - "璇︾粏淇℃伅", + 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 + height: 50, }, { type: "custom", - 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; - } - } + offset: ["c", 100], + description: window.instance.$el, + near: 0, + far: 100000, } ); - // 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); + //鍙戦�佺粰right-top.vue璋冪敤 this.$store.commit("description", obj); - } else if (nPickFeature.primitive instanceof Cesium.Cesium3DTileset) { - // // let cartographic = - // // window.Viewer.scene.globe.ellipsoid.cartesianToCartographic( - // // nPickFeature.content.tile.boundingSphere.center - // // ); - // // let lon = Cesium.Math.toDegrees(cartographic.longitude); - // // let lat = Cesium.Math.toDegrees(cartographic.latitude); - // let p = sgworld.Navigate.getMouseDegrees(event); - // let lon = p.lon; - // let lat = p.lat; - // axios - // .get( - // "http://10.10.4.121:8070/gisserver/wfsserver/yizhuang-building-wfs-1207", - // { - // params: { - // version: "1.3.0", - // request: "GetFeature", - // typename: `浜﹀簞寤虹瓚澶栬疆寤�4326`, - // propertyname: "*", - // format: "json", - // filter: `<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"><ogc:Intersects><ogc:PropertyName>SAHEP</ogc:PropertyName><gml:Point > <gml:pos>${lon} ${lat}</gml:pos></gml:Point></ogc:Intersects></ogc:Filter>` - // } - // } - // ) - // .then(response => { - // if (response.data.features.length > 0) { - // var geometry = []; - // let POIs = response.data.features[0].geometry.coordinates[0]; - // for (let i = 0; i < POIs.length; i++) { - // geometry.push({ - // x: parseFloat(POIs[i][0]), - // y: parseFloat(POIs[i][1]), - // z: 0 - // }); - // } - // buildingPolygon = sgworld.Creator.createPolygon( - // geometry, - // { - // fillColor: "#00ff0050", - // outlineColor: "#ff0000", - // outlineWidth: 2 - // }, - // 1, - // 0, - // "闈�" - // ); - // } - // }); - } else if ( + } + + else if ( nPickFeature.id.fid && nPickFeature.id.fid.includes("鍏嶈垂浣忔墍绌洪棿0131") ) { @@ -802,10 +719,6 @@ divPoint1.deleteObject(); } tooltipHTML = ""; - //閲嶇疆LayerField鏁版嵁 - for (let item in LayerField) { - LayerField[item] = 0; - } // 鍒犻櫎瀛楁 let { Id, ...userData } = obj; // 鐩存帴灞曠ず @@ -841,6 +754,55 @@ layuiLayer.close(SmartEarthPopupData.layerProp); this.$store.commit("description", obj); } + // else if (nPickFeature.primitive instanceof Cesium.Cesium3DTileset) { + // // let cartographic = + // // window.Viewer.scene.globe.ellipsoid.cartesianToCartographic( + // // nPickFeature.content.tile.boundingSphere.center + // // ); + // // let lon = Cesium.Math.toDegrees(cartographic.longitude); + // // let lat = Cesium.Math.toDegrees(cartographic.latitude); + // let p = sgworld.Navigate.getMouseDegrees(event); + // let lon = p.lon; + // let lat = p.lat; + // axios + // .get( + // "http://10.10.4.121:8070/gisserver/wfsserver/yizhuang-building-wfs-1207", + // { + // params: { + // version: "1.3.0", + // request: "GetFeature", + // typename: `浜﹀簞寤虹瓚澶栬疆寤�4326`, + // propertyname: "*", + // format: "json", + // filter: `<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"><ogc:Intersects><ogc:PropertyName>SAHEP</ogc:PropertyName><gml:Point > <gml:pos>${lon} ${lat}</gml:pos></gml:Point></ogc:Intersects></ogc:Filter>` + // } + // } + // ) + // .then(response => { + // if (response.data.features.length > 0) { + // var geometry = []; + // let POIs = response.data.features[0].geometry.coordinates[0]; + // for (let i = 0; i < POIs.length; i++) { + // geometry.push({ + // x: parseFloat(POIs[i][0]), + // y: parseFloat(POIs[i][1]), + // z: 0 + // }); + // } + // buildingPolygon = sgworld.Creator.createPolygon( + // geometry, + // { + // fillColor: "#00ff0050", + // outlineColor: "#ff0000", + // outlineWidth: 2 + // }, + // 1, + // 0, + // "闈�" + // ); + // } + // }); + // } // else if (nPickFeature.primitive instanceof Cesium.GroundPrimitive) { // let wmsLayer = this.$store.state.selectedLayers.filter((item) => { // return item.name == "琛屾斂鍖哄垝鍥�"; -- Gitblit v1.9.3