From fcb9ad20cfb4f1d691f76f575e3bcf09729be7c9 Mon Sep 17 00:00:00 2001 From: lixuliang <lixuliang_hd@126.com> Date: 星期三, 13 十二月 2023 16:51:16 +0800 Subject: [PATCH] 最新 --- static/NameConf.js | 21 + src/utils/poiKeys.js | 11 config/index.js | 5 src/components/map/history.vue | 2 src/components/map/viewer1.vue | 230 ++++++++++++----- src/components/left/leftmenu.vue | 5 src/components/left/left-ztfx.vue | 2 src/components/menu/tools/special.vue | 487 +++++++++++++++++++++++++++++++----- 8 files changed, 617 insertions(+), 146 deletions(-) diff --git a/config/index.js b/config/index.js index 96f07f4..f4c8d16 100644 --- a/config/index.js +++ b/config/index.js @@ -65,7 +65,10 @@ * Source Maps */ - productionSourceMap: true, + + + productionSourceMap: true,//娴忚鍣ㄦ簮浠g爜鍙互鐪嬪埌 + // productionSourceMap: false, // https://webpack.js.org/configuration/devtool/#production devtool: '#source-map', diff --git a/src/components/left/left-ztfx.vue b/src/components/left/left-ztfx.vue index a870d38..7a78aab 100644 --- a/src/components/left/left-ztfx.vue +++ b/src/components/left/left-ztfx.vue @@ -405,7 +405,7 @@ } pickFeature = nPickFeature; imgUrl = nPickFeature.primitive.image; - nPickFeature.primitive.image = "http://10.10.4.116:8080/YZXNCS/static/SmartEarthSDK/Workers/image/red.png" + nPickFeature.primitive.image = window.SmartEarthRootUrl + "Workers/image/point.png"; // console.log(nPickFeature); this.$store.commit("description", nPickFeature.id.attributes); } diff --git a/src/components/left/leftmenu.vue b/src/components/left/leftmenu.vue index 3d1ffed..f5ea46b 100644 --- a/src/components/left/leftmenu.vue +++ b/src/components/left/leftmenu.vue @@ -2682,8 +2682,7 @@ // }, initCluster(treeNode) { - this.$set(treeNode, "disabled", true); //缁檛reeNode娣诲姞disabled灞炴�� - + // this.$set(treeNode, "disabled", true); //缁檛reeNode娣诲姞disabled灞炴�� let that = this; let imgUrl; new Cesium.GeoJsonDataSource.load( @@ -2691,7 +2690,7 @@ "?version=1.3.0&request=GetFeature&format=json&typename=" + treeNode.layer ).then((dataSource) => { - that.$set(treeNode, "disabled", false); + // that.$set(treeNode, "disabled", false); Viewer.dataSources.add(dataSource); clusterItemList.push({ name: treeNode.id, dataSource: dataSource }); // window.clusterItem = dataSource; diff --git a/src/components/map/history.vue b/src/components/map/history.vue index 8de9fa9..40e4d72 100644 --- a/src/components/map/history.vue +++ b/src/components/map/history.vue @@ -54,7 +54,7 @@ } let LwSource = new Tile({ source: new WMTS({ - url: "http://172.26.64.84:80/service/ImageEngine/picdis/abc?user=jjjskfq&password=Jjjskfq@2022", + url: "http://172.26.64.84/service/ImageEngine/picdis/abc?user=jjjskfq&password=Jjjskfq@2022", layer: "Shiliang_Lw_2019", style: "", format: "image/png", diff --git a/src/components/map/viewer1.vue b/src/components/map/viewer1.vue index e98b143..52090a8 100644 --- a/src/components/map/viewer1.vue +++ b/src/components/map/viewer1.vue @@ -3,12 +3,19 @@ <div id="sdkContainer1" style="height: 100%"></div> <div class="listBox" v-show="!isLand"> <ul id="viewer1_lsyx"> - <li v-for="(item, index) in arr" :key="index" @click="changeLeftMap($event, item, index)"> + <li + v-for="(item, index) in arr" + :key="index" + @click="changeLeftMap($event, item, index)" + > {{ item }} </li> </ul> </div> - <layerTreeTwoScreenRight v-if="layerTreeTwoScreen" id="layerTreeTwoScreen111" /> + <layerTreeTwoScreenRight + v-if="layerTreeTwoScreen" + id="layerTreeTwoScreen111" + /> <div class="tdInfo" v-if="showTDinfo"> <div class="tdInfo_close" @click="tdInfoClose">脳</div> <p v-if="dikuanxinxi" class="noInfo">鏆傛棤璇ュ湴鍧椾俊鎭�</p> @@ -45,7 +52,12 @@ <div v-else class="title"> <li> 浼佷笟 - <el-tooltip class="item" effect="dark" content="鐐瑰嚮鏌ョ湅浼佷笟淇℃伅" placement="bottom"> + <el-tooltip + class="item" + effect="dark" + content="鐐瑰嚮鏌ョ湅浼佷笟淇℃伅" + placement="bottom" + > <a @click="showYZCQY"> {{ qysl }}</a> </el-tooltip> 瀹� @@ -82,11 +94,19 @@ :model="queryForm" :inline="true" > - <el-form-item label="鏌ヨ鍐呭" prop="name"> - <el-input v-model="queryForm.content" placeholder="璇疯緭鍏ユ煡璇㈠唴瀹�" /> + <el-form-item label="鏌ヨ鏉′欢" prop="name"> + <el-input + v-model="queryForm.content" + placeholder="璇疯緭鍏ヨ鏌ヨ鐨勪紒涓氬悕绉�" + /> </el-form-item> <el-form-item> - <el-button @click="queryInfo('queryForm')" icon="el-icon-search" class="primary">鏌ヨ</el-button> + <el-button + @click="queryInfo('queryForm')" + icon="el-icon-search" + class="primary" + >鏌ヨ</el-button + > </el-form-item> </el-form> </div> @@ -101,34 +121,35 @@ <el-table-column property="浼佷笟鍚嶇О" label="浼佷笟鍚嶇О" - min-width="240" + min-width="220" ></el-table-column> <el-table-column property="浼佷笟绫诲瀷" label="浼佷笟绫诲瀷" - min-width="240" + min-width="220" ></el-table-column> <el-table-column property="鎴愮珛鏃堕棿" label="鎴愮珛鏃堕棿" - width="120" + min-width="90" ></el-table-column> <!-- <el-table-column property="鎵�灞炶涓�" label="鎵�灞炶涓�" ></el-table-column> --> - <el-table-column - property="娉曚汉" - label="娉曚汉" - width="80" - ></el-table-column> + <el-table-column property="娉曚汉" label="娉曚汉"></el-table-column> <!-- <el-table-column property="娉ㄥ唽鍦板潃" label="娉ㄥ唽鍦板潃" ></el-table-column> --> - <el-table-column label="鎿嶄綔" width="80"> + <el-table-column label="鎿嶄綔" width="60"> <template slot-scope="scope"> - <el-button @click="handleClick(scope.row)" type="text" size="small">璇︽儏</el-button> + <el-button + @click="handleClick(scope.row)" + type="text" + size="small" + >璇︽儏</el-button + > </template> </el-table-column> </el-table> @@ -219,7 +240,7 @@ offset: "0%", }; }, - created() { }, + created() {}, computed: { ...mapState(["viewer1Show", "isLand", "layerTreeTwoScreen"]), }, @@ -240,8 +261,6 @@ ); } }, 2000); - - }, }, isLand(newvalue, oldvalue) { @@ -309,8 +328,7 @@ ); if (this.isLand) { this.loadTDGLLayer(); - } - else { + } else { this.initLSYX(); } var p = { @@ -354,7 +372,7 @@ methods: { initLSYX() { let ul = document.getElementById("viewer1_lsyx"); - let lis = ul.getElementsByTagName('li'); + let lis = ul.getElementsByTagName("li"); lis[9].click(); }, setImageComparison(isStart) { @@ -395,8 +413,7 @@ nLayer = this.loadBJ54ImageLayer(year); if (!LWLayer1 || Viewer1.imageryLayers.indexOf(LWLayer1) < 0) { - if(LWLayer1) - { + if (LWLayer1) { LWLayer1.destroy(); } LWLayer1 = this.loadBJ54LWLayer1(); @@ -512,8 +529,6 @@ } else { p = sgworld1.Navigate.getMousePosition(event); } - // alert(JSON.stringify(p)) - // console.log(p); if (p) { if (line) { sgworld.Creator.DeleteObject(line); @@ -534,10 +549,10 @@ axios .get( "http://10.10.4.115:8022/geowinmap_xncs/ds?r=0.9158559377752831&serviceproviderid=map.vectorserviceprovider&serviceid=queryfeature&featcls=225%25E8%258C%2583%25E5%259B%25B4%25E5%2588%2586%25E5%258C%25BA%25E8%25A7%2584%25E5%2588%2592.geojson&lng=" + - p.lon + - "&lat=" + - p.lat + - "&geom=true&requesttype=json" + p.lon + + "&lat=" + + p.lat + + "&geom=true&requesttype=json" ) .then((response) => { let center = { lon: 0, lat: 0 }; @@ -582,7 +597,7 @@ axios .get( "http://10.10.4.115:8022//poisearch/guihuacon/getInfo?ydbm=" + - response.data.NO + response.data.NO ) .then( (info) => { @@ -618,10 +633,10 @@ } try { this.ydlx = data.yongdishuju["ydlxmc"]; - } catch (e) { } + } catch (e) {} try { this.cyfx = data.yongdishuju["cyfx"]; - } catch (e) { } + } catch (e) {} try { // this.crzt = response.data["ZT"]; switch (response.data["ZT"]) { @@ -632,28 +647,28 @@ this.crzt = "鏈嚭璁�"; break; } - } catch (e) { } + } catch (e) {} try { this.ydmj = parseFloat( "" + data.yongdishuju["ydmj"] ).toFixed(0); - } catch (e) { } + } catch (e) {} try { this.crnx = data.churangxinxi["crnx"]; - } catch (e) { } + } catch (e) {} try { this.crnf = data.churangxinxi["crnf"]; - } catch (e) { } + } catch (e) {} try { this.rjl = data.yongdishuju["rjl"]; - } catch (e) { } + } catch (e) {} try { this.jzxg = data.yongdishuju["jzxg"]; - } catch (e) { } + } catch (e) {} try { this.jzmd = data.yongdishuju["jzmd"]; - } catch (e) { } - } catch (e) { } + } catch (e) {} + } catch (e) {} }, (info) => { this.$notify.error({ @@ -737,8 +752,8 @@ handleClick(row) { window.open( "https://qylweb.bda.gov.cn/alldetails/#/newEnterprisedetails?uscc=" + - row["缁熶竴绀句細淇$敤浠g爜"] + - "&systemName=涓皬寰�" + row["缁熶竴绀句細淇$敤浠g爜"] + + "&systemName=涓皬寰�" ); }, detectZoom() { @@ -1256,7 +1271,7 @@ box-shadow: 0px 1px 10px 0px rgba(3, 10, 26, 0.38); } -.aboutDialog>>>.el-dialog__body { +.aboutDialog >>> .el-dialog__body { height: 77%; padding: 0px !important; padding: 10px 10px 8px !important; @@ -1271,30 +1286,32 @@ background: transparent; } -.aboutDialog>>>.el-dialog__title { +.aboutDialog >>> .el-dialog__title { color: #fff; - font-size: 1.1rem; + font-size: 18px; } -.aboutDialog>>>.el-dialog__headerbtn .el-dialog__close { +.aboutDialog >>> .el-dialog__headerbtn .el-dialog__close { color: #fff; } -.aboutDialog>>>.el-dialog__headerbtn:hover .el-dialog__close { +.aboutDialog >>> .el-dialog__headerbtn:hover .el-dialog__close { color: #fff; } -.aboutDialog>>>.el-dialog__headerbtn { +.aboutDialog >>> .el-dialog__headerbtn { top: 13px; } -.aboutDialog>>>.el-form-item { +.aboutDialog >>> .el-form-item { + margin-top: 5px; margin-bottom: 10px; } -.el-form>>>.el-form-item__label { +.el-form >>> .el-form-item__label { color: #fff; margin-left: 10px; + font-size: 16px; } .aboutDialog .el-dialog-div { @@ -1350,41 +1367,42 @@ background-color: transparent; } -.el-table /deep/ .el-table__body tr.current-row>td { +.el-table /deep/ .el-table__body tr.current-row > td { background-color: transparent; } -.el-table--enable-row-hover /deep/ .el-table__body tr:hover>td { +.el-table--enable-row-hover /deep/ .el-table__body tr:hover > td { background-color: rgba(0, 32, 70, 0.7) !important; } -.el-table__body /deep/ tr.current-row>td { +.el-table__body /deep/ tr.current-row > td { background-color: rgba(0, 32, 70, 0.7) !important; } -.aboutDialog .el-dialog-div .dialog-footer {} +.aboutDialog .el-dialog-div .dialog-footer { +} .el-pagination { color: #fff; } -.el-pagination>>>.el-pagination__total, -.el-pagination>>>.btn-next, -.el-pagination>>>.btn-prev { +.el-pagination >>> .el-pagination__total, +.el-pagination >>> .btn-next, +.el-pagination >>> .btn-prev { background: transparent; color: #fff; - font-size: 1rem; + font-size: 14px; } -.el-pagination>>>.el-pager li { +.el-pagination >>> .el-pager li { line-height: 27px; background-color: transparent; - font-size: 1rem; + font-size: 14px; } -.el-pagination>>>.el-pager li.btn-quicknext, -.el-pagination>>>.el-pager li.btn-quickprev { - font-size: 1rem; +.el-pagination >>> .el-pager li.btn-quicknext, +.el-pagination >>> .el-pager li.btn-quickprev { + font-size: 14px; line-height: 28px; color: #fff; } @@ -1411,13 +1429,95 @@ /* 灞忓箷鍒嗚鲸鐜囨斁澶т负 125 */ @media (-webkit-min-device-pixel-ratio: 1.25) { + .tdInfo_close { + position: absolute; + right: 10px; + top: 8px; + border-radius: 3px; + width: 20px; + height: 20px; + background-color: rgba(0, 0, 0, 0.2); + cursor: pointer; + text-align: center; + line-height: 19px; + font-size: 20px; + } + + .tdInfo .title li { + margin-left: 25px; + line-height: 25px; + font-size: 15px; + font-weight: bold; + background: linear-gradient(0deg, #9cd2ff 0%, #ffffff 100%); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + } + + .content1, + .content2, + .content3 { + /* width: 100%; */ + box-sizing: border-box; + /* margin-left: 42px; */ + min-width: 220px; + max-width: 280px; + margin: 0 25px; + display: flex; + padding: 10px 0; + } + + .content1 li, + .content2 li, + .content3 li { + font-size: 13px; + } + + .tdInfo a { + font-size: 16px; + } .listBox li { font-size: 12px; } - + .aboutDialog >>> .el-dialog__title { + color: #fff; + font-size: 14px; + } .el-table { font-size: 12px; } + .el-table /deep/ .el-button--text { + font-size: 12px; + } + .el-form >>> .el-form-item__label { + font-size: 13px; + } + .el-pagination >>> .el-pager li { + font-size: 13px; + } + .el-pagination >>> .el-pagination__total, + .el-pagination >>> .btn-next, + .el-pagination >>> .btn-prev { + font-size: 12px; + } + .el-pagination >>> .el-pager li.btn-quicknext, + .el-pagination >>> .el-pager li.btn-quickprev { + font-size: 12px; + } + + .inquire >>> .el-form-item--mini .el-form-item__content, + .inquire >>> .el-form-item--mini .el-form-item__label { + line-height: 24px; + } + .inquire >>> .el-input__inner { + height: 26px; + line-height: 26px; + } + .inquire >>> .el-button--mini { + padding: 6px 11px; + } + .inquire >>> .el-form-item { + margin-right: 5px; + } } .listBox li:hover { diff --git a/src/components/menu/tools/special.vue b/src/components/menu/tools/special.vue index f82c78e..e9ef033 100644 --- a/src/components/menu/tools/special.vue +++ b/src/components/menu/tools/special.vue @@ -2,28 +2,52 @@ <div class="special" id="special"> <div class="specialTools"> <div class="specialTool" @click="tdglHandle"> - <el-tooltip class="item" effect="dark" content="鍦熷湴绠$悊" placement="top-start" popper-class="item_tooltip"> + <el-tooltip + class="item" + effect="dark" + content="鍦熷湴绠$悊" + placement="top-start" + popper-class="item_tooltip" + > <el-button> <img src="@/assets/img/left/ztfx/tdgl.png" /> </el-button> </el-tooltip> </div> <div class="specialTool" @click="stdsj"> - <el-tooltip class="item" effect="dark" content="瑙嗗浘澶ф暟鎹钩鍙�" placement="top-start" popper-class="item_tooltip"> + <el-tooltip + class="item" + effect="dark" + content="瑙嗗浘澶ф暟鎹钩鍙�" + placement="top-start" + popper-class="item_tooltip" + > <el-button> <img src="@/assets/img/left/ztfx/dashuju.png" /> </el-button> </el-tooltip> </div> <div class="specialTool" @click="spjkHandle"> - <el-tooltip class="item" effect="dark" content="瑙嗛鐩戞帶" placement="top-start" popper-class="item_tooltip"> + <el-tooltip + class="item" + effect="dark" + content="瑙嗛鐩戞帶" + placement="top-start" + popper-class="item_tooltip" + > <el-button> <img src="@/assets/img/left/ztfx/spjk.png" /> </el-button> </el-tooltip> </div> <div class="specialTool" @click="jjHandle"> - <el-tooltip class="item" effect="dark" content="琛楁櫙" placement="top-start" popper-class="item_tooltip"> + <el-tooltip + class="item" + effect="dark" + content="琛楁櫙" + placement="top-start" + popper-class="item_tooltip" + > <el-button> <img src="@/assets/img/left/ztfx/jiejing.png" /> </el-button> @@ -31,12 +55,26 @@ </div> <div class="specialTool" @click="qytj"> - <el-tooltip class="item" effect="dark" content="鏁版嵁姹囪仛" placement="top-start" popper-class="item_tooltip"> - <el-button> <img src="@/assets/img/left/ztfx/yqfk.png" /> </el-button></el-tooltip> + <el-tooltip + class="item" + effect="dark" + content="鏁版嵁姹囪仛" + placement="top-start" + popper-class="item_tooltip" + > + <el-button> <img src="@/assets/img/left/ztfx/yqfk.png" /> </el-button + ></el-tooltip> </div> <div class="specialTool" @click="rangeQuery()"> - <el-tooltip class="item" effect="dark" content="鑼冨洿鏌ヨ" placement="top-start" popper-class="item_tooltip"> - <el-button> <img src="@/assets/img/left/ztfx/sjxq.png" /> </el-button></el-tooltip> + <el-tooltip + class="item" + effect="dark" + content="鑼冨洿鏌ヨ" + placement="top-start" + popper-class="item_tooltip" + > + <el-button> <img src="@/assets/img/left/ztfx/sjxq.png" /> </el-button + ></el-tooltip> </div> <!-- <div class="specialTool" @click="guanxian(openGX)"> <el-tooltip @@ -186,25 +224,35 @@ background: rgba(0, 168, 255, 0.16); } </style> - +<style> +#pointInfoBox { + /* width: 350px; */ + padding: 20px; + text-align: left; + background-image: url("~@/assets/img/new/listbg.png"); + /* border: 5px #08235f solid; */ + /* border-radius: 7px; */ + box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.5); + color: #fff; +} +</style> <script> 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; -let pickFeature; let tooltipHTML; -let divPoint1; -let imgUrl; -let scale; +window.divPoint1 = null; +window.pickFeature = null; +window.imgUrl = null; +window.scale = null; +let buildingPolygon; let tooltip; let lineArr = []; let video; -let video2; -let video3; -let video4; let promiseS3M; //浜ら�氬浘灞� let panoramaLayer; @@ -318,7 +366,7 @@ ...mapState(["viewer1Show", "yqfk", "cesiumInit"]), ...mapState(["viewer1Show", "yqfk", "qyEchartsShow"]), }, - mounted() { }, + mounted() {}, watch: { cesiumInit: { handler(newVal, oldVal) { @@ -393,7 +441,7 @@ sgworld.drawObj && (sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(), - sgworld.drawObj.end && sgworld.drawObj.end()); + sgworld.drawObj.end && sgworld.drawObj.end()); let props = pick.id.properties; let screenHeight = @@ -472,7 +520,7 @@ {}, "0", true, - function () { } + function () {} ); window.panoramaHandler = new Cesium.ScreenSpaceEventHandler( Viewer.scene.canvas @@ -484,7 +532,7 @@ panorama.open({ id: "qjMap", closeId: "panoramaClose", - lng: p.lon, + lon: p.lon, lat: p.lat, }); @@ -498,7 +546,7 @@ } else { try { window.panoramaLayer.deleteObject(); - } catch (e) { } + } catch (e) {} window.panoramaHandler.destroy(); window.panoramaHandler = undefined; } @@ -521,26 +569,34 @@ } }, clearSelectObject() { - if (pickFeature && pickFeature.primitive) { - pickFeature.primitive.image = imgUrl; - pickFeature.primitive.scale = scale; - pickFeature = null; + if (window.pickFeature && window.pickFeature.primitive) { + window.pickFeature.primitive.image = imgUrl; + window.pickFeature.primitive.scale = scale; + window.pickFeature = null; } }, 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) { + sgworld.Creator.DeleteObject(buildingPolygon); + buildingPolygon = null; + } if (nPickFeature.primitive instanceof Cesium.Billboard) { if (nPickFeature.id.length > 0) { return; } - this.resetImg(); - this.resetBorder(); - pickFeature = nPickFeature; + // this.resetBorder(); + window.pickFeature = nPickFeature; + // console.log(nPickFeature); imgUrl = nPickFeature.primitive.image; scale = nPickFeature.primitive.scale; nPickFeature.primitive.scale = 1; @@ -548,7 +604,7 @@ window.SmartEarthRootUrl + "Workers/image/point.png"; //鐐瑰嚮寮规 let obj = {}; - let lng; + let lon; let lat; let isCamera = false; if (nPickFeature.id.tag) { @@ -572,55 +628,136 @@ window.Viewer.scene.globe.ellipsoid.cartesianToCartographic( nPickFeature.id.position._value ); - lng = Cesium.Math.toDegrees(cartographic.longitude); + lon = Cesium.Math.toDegrees(cartographic.longitude); lat = Cesium.Math.toDegrees(cartographic.latitude); } else { obj = nPickFeature.id.attributes; - lng = nPickFeature.id.positions[0]; + lon = nPickFeature.id.positions[0]; lat = nPickFeature.id.positions[1]; + } + if (divPoint1) { + divPoint1.deleteObject(); } if (!isCamera) { tooltipHTML = ""; - // console.log(obj); - - for (let i in obj) { - let value = obj[i]; - value && (tooltipHTML += `<p>${i}锛�${value || "鏃�"}</p>`); + // 鍒犻櫎瀛楁 + 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 (tooltip) { - tooltip.show(false); - tooltip = null; - } - tooltip = sgworld.Core.CreateResultTooltip(window.Viewer, { - color: "black", - addY: -40, - far: 200000, - closeBtn: true, - close: () => { - this.resetImg(); - this.resetBorder(); + 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, }, - }); - - 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(lng, lat, 0), - description + { + 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; + } + }, + } ); + // 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) { + // 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) => { @@ -718,20 +855,20 @@ this.$parent.$parent.$parent.isShowSpeAnalyse = false; }, resetImg() { - if (pickFeature && pickFeature.primitive) { - pickFeature.primitive.image = imgUrl; - pickFeature.primitive.scale = scale; - pickFeature = null; + if (window.pickFeature && window.pickFeature.primitive) { + window.pickFeature.primitive.image = imgUrl; + window.pickFeature.primitive.scale = scale; + window.pickFeature = null; } }, - resetBorder() { - lineArr.forEach((item, index) => { - if (lineArr[index]) { - sgworld.Creator.DeleteObject(lineArr[index]); - lineArr[index] = null; - } - }); - }, + // resetBorder() { + // lineArr.forEach((item, index) => { + // if (lineArr[index]) { + // sgworld.Creator.DeleteObject(lineArr[index]); + // lineArr[index] = null; + // } + // }); + // }, stdsjHandle() { window.open( "http://10.9.2.29:8080/#/login?token=1ed14c5157acb8088efe65bc93a032c3" @@ -873,6 +1010,206 @@ }); } }, + read(wkt) { + var regExes = { + typeStr: /^\s*(\w+)\s*\(\s*(.*)\s*\)\s*$/, + emptyTypeStr: /^\s*(\w+)\s*EMPTY\s*$/, + spaces: /\s+/, + parenComma: /\)\s*,\s*\(/, + doubleParenComma: /\)\s*\)\s*,\s*\(\s*\(/, // can't use {2} here + trimParens: /^\s*\(?(.*?)\)?\s*$/, + }; + /** + * Object with properties corresponding to the geometry types. Property values + * are functions that do the actual parsing. + * @private + */ + var parse$1 = { + /** + * Return point geometry given a point WKT fragment. + * + * @param {String} str A WKT fragment representing the point. + * @return {Point} A point geometry. + * @private + */ + point: function point(str) { + if (str === undefined) { + return []; + } + + var coords = str.trim().split(regExes.spaces); + return [Number.parseFloat(coords[0]), Number.parseFloat(coords[1])]; + }, + + /** + * Return a multipoint geometry given a multipoint WKT fragment. + * + * @param {String} str A WKT fragment representing the multipoint. + * @return {Point} A multipoint feature. + * @private + */ + multipoint: function multipoint(str) { + var this$1 = this; + + if (str === undefined) { + return []; + } + + var point; + var points = str.trim().split(","); + var components = []; + for (var i = 0, len = points.length; i < len; ++i) { + point = points[i].replace(regExes.trimParens, "$1"); + components.push(parse$1.point(point)); + } + return components; + }, + + /** + * Return a linestring geometry given a linestring WKT fragment. + * + * @param {String} str A WKT fragment representing the linestring. + * @return {LineString} A linestring geometry. + * @private + */ + linestring: function linestring(str) { + if (str === undefined) { + return []; + } + + var points = str.trim().split(","); + var components = []; + var coords; + for (var i = 0, len = points.length; i < len; ++i) { + coords = points[i].trim().split(regExes.spaces); + components.push([ + Number.parseFloat(coords[0]), + Number.parseFloat(coords[1]), + ]); + } + return components; + }, + + /** + * Return a linearring geometry given a linearring WKT fragment. + * + * @param {String} str A WKT fragment representing the linearring. + * @return {LinearRing} A linearring geometry. + * @private + */ + linearring: function linearring(str) { + if (str === undefined) { + return []; + } + + var points = str.trim().split(","); + var components = []; + var coords; + for (var i = 0, len = points.length; i < len; ++i) { + coords = points[i].trim().split(regExes.spaces); + components.push([ + Number.parseFloat(coords[0]), + Number.parseFloat(coords[1]), + ]); + } + return components; + }, + + /** + * Return a multilinestring geometry given a multilinestring WKT fragment. + * + * @param {String} str A WKT fragment representing the multilinestring. + * @return {MultiLineString} A multilinestring geometry. + * @private + */ + multilinestring: function multilinestring(str) { + var this$1 = this; + + if (str === undefined) { + return []; + } + + var line; + var lines = str.trim().split(regExes.parenComma); + var components = []; + for (var i = 0, len = lines.length; i < len; ++i) { + line = lines[i].replace(regExes.trimParens, "$1"); + components.push(parse$1.linestring(line)); + } + return components; + }, + + /** + * Return a polygon geometry given a polygon WKT fragment. + * + * @param {String} str A WKT fragment representing the polygon. + * @return {Polygon} A polygon geometry. + * @private + */ + polygon: function polygon(str) { + var this$1 = this; + + if (str === undefined) { + return []; + } + + var ring, linestring, linearring; + var rings = str.trim().split(regExes.parenComma); + var shell; + var holes = []; + //for (var i = 0, len = rings.length; i < len; ++i) { + ring = rings[0].replace(regExes.trimParens, "$1"); + linestring = ring; + //} + return linestring; + }, + + /** + * Return a multipolygon geometry given a multipolygon WKT fragment. + * + * @param {String} str A WKT fragment representing the multipolygon. + * @return {MultiPolygon} A multipolygon geometry. + * @private + */ + multipolygon: function multipolygon(str) { + var this$1 = this; + + if (str === undefined) { + return []; + } + + var polygon; + var polygons = str.trim().split(regExes.doubleParenComma); + var components = []; + for (var i = 0, len = polygons.length; i < len; ++i) { + polygon = polygons[i].replace(regExes.trimParens, "$1"); + components.push(parse$1.polygon(polygon)); + } + return components; + }, + }; + + var geometry, type, str; + wkt = wkt.replace(/[\n\r]/g, " "); + var matches = regExes.typeStr.exec(wkt); + if (wkt.search("EMPTY") !== -1) { + matches = regExes.emptyTypeStr.exec(wkt); + matches[2] = undefined; + } + if (matches) { + type = matches[1].toLowerCase(); + str = matches[2]; + if (parse$1[type]) { + geometry = parse$1[type].apply(this, [str]); + } + } + + if (geometry === undefined) { + throw new Error("Could not parse WKT " + wkt); + } + + return geometry; + }, }, }; </script> diff --git a/src/utils/poiKeys.js b/src/utils/poiKeys.js new file mode 100644 index 0000000..255402f --- /dev/null +++ b/src/utils/poiKeys.js @@ -0,0 +1,11 @@ +const keyName = { + SSDW: "鎵�灞炲崟浣�", + LXR: "鑱旂郴浜�", + DIZHI: "鍦板潃", + DZ: "鍦板潃", + QYMC: "浼佷笟鍚嶇О", + XYDM: "淇$敤浠g爜", + Name: "鍚嶇О", + +} +export default keyName \ No newline at end of file diff --git a/static/NameConf.js b/static/NameConf.js new file mode 100644 index 0000000..586b07e --- /dev/null +++ b/static/NameConf.js @@ -0,0 +1,21 @@ +const LayerField = { + + ID: 0, + 浜曞悕绉�: 0, + 浜曠紪鍙�: 0, + 鏍囨澶�: 0, + 浣嶇疆: 0, + 琛屾斂鍖�: 0, + + 閮ㄤ欢鍚嶇О: 0, + 閮ㄤ欢缂栫爜: 0, + 瀹夎鍦板潃: 0, + 璺悕: 0, + 璁惧鏉冨睘: 0, + 閮ㄤ欢绫诲瀷: 0, + 鎵�灞炲尯鍩�: 0, + 缁忓害: 0, + 绾害: 0 + +} +export default LayerField \ No newline at end of file -- Gitblit v1.9.3