From 626003e9beb59cf711f59f3b48087300070f121e Mon Sep 17 00:00:00 2001 From: lixuliang <lixuliang_hd@126.com> Date: 星期五, 15 三月 2024 09:49:31 +0800 Subject: [PATCH] 优化 --- src/components/leftMenu/sousuo.vue | 399 +++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 275 insertions(+), 124 deletions(-) diff --git a/src/components/leftMenu/sousuo.vue b/src/components/leftMenu/sousuo.vue index 993092d..07aeca6 100644 --- a/src/components/leftMenu/sousuo.vue +++ b/src/components/leftMenu/sousuo.vue @@ -58,6 +58,14 @@ @input="changeInput" clearable > + <el-select v-model="select" slot="prepend" placeholder="璇烽�夋嫨"> + <el-option + v-for="(item, index) in options" + :key="index" + :label="item.label" + :value="item.value" + ></el-option> + </el-select> <el-button slot="append" icon="el-icon-search" @@ -90,7 +98,7 @@ </div> </div> <div v-else> - <div class="ssjg" v-show="ssjgxs">璇疯緭鍏ュ叧閿瘝鎼滅储鍦板浘</div> + <div class="ssjg" v-show="ssjgxs">鏈悳绱㈠埌缁撴灉</div> </div> </div> </div> @@ -128,7 +136,10 @@ height: 100%; top: 0; background-color: #f3f3f3; - z-index: 3000; + z-index: 99; +} +.el-select { + width: 80px; } /* 姣忔潯鎼滅储缁撴灉 */ @@ -172,14 +183,16 @@ background: rgba(218, 218, 218, 0.1); } </style> + + <script> let timers = null; - import axios from "axios"; import store from "@/utils/store.js"; import common from "@/components/common"; -let flyPoint; -let flyLine; + +window.flyPoint = null; +window.flyLine = null; let Allresults = []; export default { @@ -193,25 +206,40 @@ showList: false, total: 0, poiList: [], + select: "鍏ㄩ儴", + options: [ + { + label: "鍏ㄩ儴", + value: "鍏ㄩ儴", + }, + { + label: "POI", + value: "POI", + }, + { + label: "鍦板潡", + value: "鍦板潡", + }, + ], }; }, methods: { clearval() { this.syssval = "璇疯緭鍏ュ叧閿瘝鎼滅储鍦板浘"; - flyPoint && Viewer.entities.remove(flyPoint); - flyPoint = undefined; - flyLine && sgworld.Creator.DeleteObject(flyLine); - flyLine = undefined; + window.flyPoint && Viewer.entities.remove(window.flyPoint); + window.flyPoint = undefined; + window.flyLine && sgworld.Creator.DeleteObject(window.flyLine); + window.flyLine = undefined; this.poi_text = ""; this.ssjgxs = false; }, changeInput() { if (this.poi_text === "") { this.ssjgxs = false; - flyPoint && Viewer.entities.remove(flyPoint); - flyPoint = undefined; - flyLine && sgworld.Creator.DeleteObject(flyLine); - flyLine = undefined; + window.flyPoint && Viewer.entities.remove(window.flyPoint); + window.flyPoint = undefined; + window.flyLine && sgworld.Creator.DeleteObject(window.flyLine); + window.flyLine = undefined; } else { clearTimeout(timers); timers = setTimeout(() => { @@ -254,6 +282,100 @@ rectangle.maxy > 31.182515322 && (rectangle.maxy = 31.182515322); return `RECT(${rectangle.minx} ${rectangle.miny},${rectangle.maxx} ${rectangle.maxy})`; }, + getGdPoi() { + axios + .get(common.poiserve, { + params: { + request: "GdPoi", + keywords: this.poi_text, + output: "json", + coord: "cgcs2000", + offset: 20, + page: 1, + }, + }) + .then((res) => { + // 楂樺痉 + if (res.data.status == 1) { + res.data.pois && + res.data.pois + .filter((item) => { + var reg = new RegExp("[\\u4E00-\\u9FFF]+", "g"); + return ( + item.pname.includes("鍖椾含") && + item.name.includes(this.poi_text) && + !reg.test(item.typecode) + ); + }) + .forEach((val) => { + let poiarr = val.location.split(","); + let poi = { + lon: parseFloat(poiarr[0]), + lat: parseFloat(poiarr[1]), + }; + let obj = { + adcode: val.adcode, + address: val.address, + adname: val.area, + citycode: val.citycode, + cityname: val.cityname, + id: val.uid, + lat: poi.lat, + lng: poi.lon, + name: val.name, + pcode: val.pcode, + pname: val.province, + type: val.type, + typecode: val.typecode, + }; + Allresults.push(obj); + }); + } + this.total = Allresults.length; + this.poiList = Allresults; + this.showList = true; + }); + }, + getData() { + axios + .post(common.poiserve2, { + adcode: "110115", + address: { + name: "", + type: "", + }, + adname: "澶у叴鍖�", + cityname: "鍖椾含甯�", + name: { + name: this.poi_text, + type: "", + }, + page: 1, + perPageCount: 20, + pcode: "110000", + pname: "", + resType: "", + }) + .then((res) => { + if (res.status == 200) { + res.data.data.res && + res.data.data.res + .filter((item) => { + // 鍒ゆ柇鍦板潡鏄惁鏈夋眽瀛� + var reg = new RegExp("[\\u4E00-\\u9FFF]+", "g"); + return ( + item.name.includes(this.poi_text) && reg.test(item.typecode) + ); + }) + .forEach((val) => { + Allresults.push(val); + }); + } + this.total = Allresults.length; + this.poiList = Allresults; + this.showList = true; + }); + }, search() { if (this.poi_text === "") { this.poiList = []; @@ -262,111 +384,140 @@ this.ssjgxs = true; Allresults = []; this.poiList = []; - axios - .all([ - // 115鎺ュ彛锛堝彲鏌ュ湴鍧楀悕锛� - axios.post(common.poiserve2, { - adcode: "110115", - address: { - name: "", - type: "", - }, - adname: "澶у叴鍖�", - cityname: "鍖椾含甯�", - name: { - name: this.poi_text, - type: "", - }, - page: 1, - perPageCount: 20, - pcode: "110000", - pname: "", - resType: "", - }), - // // 甯傜骇骞冲彴锛堢櫨搴︼細浼氭煡鍒板鍦帮級 - // axios.get(common.poiserve, { - // params: { - // request: "bdPoi", - // query: this.poi_text, - // output: "json", - // coord: "cgcs2000", - // page_num: 0, - // page_size: 20, - // }, - // }), - // 甯傜骇骞冲彴锛堥珮寰凤級 - axios.get(common.poiserve, { - params: { - request: "GdPoi", - keywords: this.poi_text, - output: "json", - coord: "cgcs2000", - offset: 20, - page: 1, - }, - }), - ]) - .then( - (data) => { - // this.total = data.data.pois.length; - // this.poiList = - // data.data && data.data.pois; - //115鎺ュ彛 - if (data[0].status == 200) { - data[0].data.data.res - .filter((item) => { - return item.name.includes(this.poi_text); - }) - .forEach((val) => { - Allresults.push(val); - }); - } - // 甯傜骇骞冲彴 - // // 鐧惧害 - // if (data[1].data.status == 0) { - // data[1].data.results.forEach((val) => { - // let obj = { - // address: val.address, - // adname: val.area, - // cityname: val.city, - // id: val.uid, - // lat: val.location.lat, - // lng: val.location.lng, - // name: val.name, - // pname: val.province, - // }; - // Allresults.push(obj); - // }); - // } - // 楂樺痉 - if (data[1].data.status == 1) { - data[1].data.pois.forEach((val) => { - let poiarr = val.location.split(","); - let poi = { - lon: parseFloat(poiarr[0]), - lat: parseFloat(poiarr[1]), - }; - let obj = { - address: val.address, - adname: val.area, - cityname: val.city, - id: val.uid, - lat: poi.lat, - lng: poi.lon, - name: val.name, - pname: val.province, - }; - Allresults.push(obj); - }); - } - this.total = Allresults.length; - this.poiList = Allresults; - this.showList = true; - }, - (response) => { - console.log("error"); - } - ); + switch (this.select) { + case "鍏ㄩ儴": + this.getGdPoi(); + this.getData(); + // axios + // .all([ + // // 115鎺ュ彛锛堝彲鏌ュ湴鍧楀悕锛� + // axios.post(common.poiserve2, { + // adcode: "110115", + // address: { + // name: "", + // type: "", + // }, + // adname: "澶у叴鍖�", + // cityname: "鍖椾含甯�", + // name: { + // name: this.poi_text, + // type: "", + // }, + // page: 1, + // perPageCount: 20, + // pcode: "110000", + // pname: "", + // resType: "", + // }), + // // // 甯傜骇骞冲彴锛堢櫨搴︼細浼氭煡鍒板鍦帮級 + // // axios.get(common.poiserve, { + // // params: { + // // request: "bdPoi", + // // query: this.poi_text, + // // output: "json", + // // coord: "cgcs2000", + // // page_num: 0, + // // page_size: 20, + // // }, + // // }), + // // 甯傜骇骞冲彴锛堥珮寰凤級 + // axios.get(common.poiserve, { + // params: { + // request: "GdPoi", + // keywords: this.poi_text, + // output: "json", + // coord: "cgcs2000", + // offset: 20, + // page: 1, + // }, + // }), + // ]) + // .then( + // (data) => { + // // this.total = data.data.pois.length; + // // this.poiList = + // // data.data && data.data.pois; + // //115鎺ュ彛 + // if (data[0].status == 200) { + // data[0].data.data.res && + // data[0].data.data.res + // .filter((item) => { + // return item.name.includes(this.poi_text); + // }) + // .forEach((val) => { + // Allresults.push(val); + // }); + // } + // // 甯傜骇骞冲彴 + // // // 鐧惧害 + // // if (data[1].data.status == 0) { + // // data[1].data.results.forEach((val) => { + // // let obj = { + // // address: val.address, + // // adname: val.area, + // // cityname: val.city, + // // id: val.uid, + // // lat: val.location.lat, + // // lng: val.location.lng, + // // name: val.name, + // // pname: val.province, + // // }; + // // Allresults.push(obj); + // // }); + // // } + // // 楂樺痉 + + // console.log(data, "鏁版嵁"); + // if (data[0].data.status == 1) { + // data[0].data.pois && + // data[0].data.pois + // .filter((item) => { + // return ( + // item.pname.includes("鍖椾含") && + // item.name.includes(this.poi_text) + // ); + // }) + // .forEach((val) => { + // let poiarr = val.location.split(","); + // let poi = { + // lon: parseFloat(poiarr[0]), + // lat: parseFloat(poiarr[1]), + // }; + // let obj = { + // adcode: val.adcode, + // address: val.address, + // adname: val.area, + // citycode: val.citycode, + // cityname: val.cityname, + // id: val.uid, + // lat: poi.lat, + // lng: poi.lon, + // name: val.name, + // pcode: val.pcode, + // pname: val.province, + // type: val.type, + // typecode: val.typecode, + // }; + // Allresults.push(obj); + // }); + // } + // this.total = Allresults.length; + // this.poiList = Allresults; + // this.showList = true; + // console.log(Allresults); + // }, + // (response) => { + // console.log("error"); + // } + // ); + break; + case "POI": + this.getGdPoi(); + break; + case "鍦板潡": + this.getData(); + break; + } } }, getPosition(geo) { @@ -380,8 +531,8 @@ // let degrees = item.location.split(','); // let degrees = [item.location.lng, item.location.lat]; let degrees = [item.lng, item.lat]; - flyPoint && Viewer.entities.remove(flyPoint); - flyLine && sgworld.Creator.DeleteObject(flyLine); + window.flyPoint && Viewer.entities.remove(window.flyPoint); + window.flyLine && sgworld.Creator.DeleteObject(window.flyLine); sgworld.Navigate.flyToPointsInterest({ destination: Cesium.Cartesian3.fromDegrees( degrees[0], @@ -390,16 +541,16 @@ ), }); // 娣诲姞鐐逛綅 - flyPoint = Viewer.entities.add({ + window.flyPoint = Viewer.entities.add({ position: Cesium.Cartesian3.fromDegrees(degrees[0], degrees[1]), billboard: { verticalOrigin: Cesium.VerticalOrigin.BOTTOM, scale: 1, - image: window.SmartEarthRootUrl + "/Workers/image/mark.png", + image: window.SmartEarthRootUrl + "/Workers/image/mark1.png", heightReference: 1, disableDepthTestDistance: Number.POSITIVE_INFINITY, }, - properties:item + properties: item, }); // 濡傛灉鏄湴鍧楋紝娣诲姞鑼冨洿绾� if (item.type == "澶у叴鐢ㄥ湴") { @@ -428,7 +579,7 @@ z: 0, }); } - flyLine = sgworld.Creator.createPolyline( + window.flyLine = sgworld.Creator.createPolyline( geometry, "#ff0000", 1, -- Gitblit v1.9.3