¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">æ
æ¥é¾è·¯è¡å¨å½±ååæ</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="10-1" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">ææ¥é¾è·¯è¡å¨å½±ååæ</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="10-2" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">æå»é¾è·¯è¡å¨å½±ååæ</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="10-3" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">ä¿éé¾è·¯è¡å¨å½±ååæåè¯ä¼°åæç»æå±ç¤º</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="10-4" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">éç¨æ¨¡ç管ç</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="6-1" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">éä¿¡èµæºç®¡ç</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="6-2" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">éä¿¡ç½ç³»ç®¡ç</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="6-3" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">éä¿¡æ³å®ç®¡ç</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="6-4" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">å¤åªä½ç´ æç®¡ç</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="6-5" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">ä»¿çæ¨¡å管ç</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="6-6" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">ç¨æ·ç®¡çåç³»ç»è®¾ç½®</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="6-7" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">zcTS\ç¹åæ¥éª¤</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="7-1" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">ZCç¯å¢æ¾ç¤º-ä¸å沿海ãTD</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="7-2-1" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">éä¿¡æå¿æ¾ç¤º-åºç«ãçæµç«</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="7-3-1" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">ä¿¡æ¯é¾è·¯æ¾ç¤º</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="7-4" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">使æå¿æ¾ç¤º</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="7-5" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">æ³å®èµææ¾ç¤º</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="7-6" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">æå¿æ¾ç¤ºæ§å¶</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="7-7" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">å¤åªä½ç´ ææµè§</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="7-8" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">æå¿æ ç»</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="7-9" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">éä¿¡æ¹æ¡ç®¡ç</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="8-1" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">éä¿¡æ¹æ¡æå¶</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="8-2" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">éä¿¡ç½ç³»æå»º</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="8-3" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">éä¿¡æ¹æ¡è®²è¯</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="8-4" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">éä¿¡æ¯ä¼¤å½±åè¯ä¼°</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="9-1" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">éä¿¡å¹²æ°å½±åè¯ä¼°</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="9-2" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">è¾
å©è®¡ç®åæ</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | return { |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | | endTime: new Date("2016-06-30"), |
| | | radio: "è°é¢å¹¿æ", |
| | | freqStart: "87", |
| | | freqEnd: "108", |
| | | analysisType: "é¢ç¹", |
| | | }, |
| | | nowfile: "", |
| | | showsituation: false, |
| | | imageid: null, |
| | | showpic: false, |
| | | pickerOptions: {}, |
| | | chooseplase: "", |
| | | options: [], |
| | | regions: [], |
| | | radios: [], |
| | | colorContainer: {}, |
| | | innerbac: { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | | showdata1: true, |
| | | showdata2: true, |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="9-3" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | | 23.104708355136264, |
| | | 4109.8492337442767 |
| | | ), |
| | | orientation: { |
| | | heading: 0.8349372341578318, |
| | | pitch: -0.85222154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | | 30.314431916707203, |
| | | 101204.78027978493 |
| | | ), |
| | | orientation: { |
| | | heading: 0.149372341578318, |
| | | pitch: -0.8022154573481174, |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | | analysisType: "1", |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | | </div> |
| | | `, |
| | | near: 0, |
| | | far: 100000, |
| | | } |
| | | ); |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | let data={ |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | | freqStart: 87000000, |
| | | freqEnd: 108000000, |
| | | freqPoint: 87000000, |
| | | points: |
| | | "[[30.5504351,120.5667114],[32.0499889,120.5667114],[32.0499889,122.4453735],[30.5504351,122.4453735]]", |
| | | radius: 0, |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | | maxValue: 100, |
| | | minColor: "0000FF", |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | | points.ymin, |
| | | points.xmax, |
| | | points.ymax |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | }, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .bot { |
| | | width: 1000px; |
| | | height: 1150px; |
| | | background: url(~@/assets/image/test/22.png); |
| | | background-size: 100% 100%; |
| | | background-repeat: no-repeat; |
| | | position: absolute; |
| | | left: 3920px; |
| | | top: 680px; |
| | | } |
| | | .top1 { |
| | | width: 95%; |
| | | height: 11%; |
| | | font-size: 40px; |
| | | font-weight: bold; |
| | | margin: 0px auto; |
| | | border-bottom: 2px solid #fff; |
| | | color: #fff; |
| | | letter-spacing: 3px; |
| | | } |
| | | .icon { |
| | | position: absolute; |
| | | left: 50px; |
| | | width: 50px; |
| | | height: 50px; |
| | | top: 39px; |
| | | background-size: 100% 100% !important; |
| | | background-repeat: no-repeat !important; |
| | | background-position: center !important; |
| | | background: url(~@/assets/image/subject/颿 .png); |
| | | } |
| | | .text { |
| | | display: inline-block; |
| | | margin-left: 90px; |
| | | } |
| | | .close { |
| | | position: absolute; |
| | | font-size: 60px; |
| | | font-weight: 400; |
| | | right: 60px; |
| | | top: 20px; |
| | | } |
| | | .close:hover { |
| | | color: red; |
| | | transition: color 1s; |
| | | cursor: pointer; |
| | | } |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | | } |
| | | .btns { |
| | | margin-top: 100px; |
| | | width: 100%; |
| | | height: 70px; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .btns > span { |
| | | display: block; |
| | | width: 200px; |
| | | height: 70px; |
| | | border: 1px solid #000; |
| | | text-align: center; |
| | | font-size: 35px; |
| | | margin: 0 50px; |
| | | line-height: 70px; |
| | | cursor: pointer; |
| | | } |
| | | .btns > span:nth-child(3) { |
| | | color: #fff; |
| | | background-image: linear-gradient(#76c2f6, #6a9cf1); |
| | | } |
| | | .btns > span:nth-child(-n + 2) { |
| | | color: #000; |
| | | background: #cadaea; |
| | | } |
| | | .showpic { |
| | | width: 260px; |
| | | height: 400px; |
| | | background: url(~@/assets/image/botbtn/bac.png); |
| | | background-position: center; |
| | | background-size: 100% 100%; |
| | | position: absolute; |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | </style> |
| | |
| | | light, |
| | | } from "@/utils/work"; |
| | | import bus from "@/utils/bus"; |
| | | import { getVectorList,getRadio } from "@/api/http"; |
| | | import { getVectorList, getRadio } from "@/api/http"; |
| | | export default { |
| | | name: "App", |
| | | data () { |
| | | data() { |
| | | return {}; |
| | | }, |
| | | methods: { |
| | | init () { |
| | | const that=this; |
| | | window.currentsubindex=1; |
| | | let _core=new SmartEarth.Core(); |
| | | window.tedp=new this.$trame({ |
| | | init() { |
| | | const that = this; |
| | | window.currentsubindex = 1; |
| | | let _core = new SmartEarth.Core(); |
| | | window.tedp = new this.$trame({ |
| | | elem: "app1", |
| | | width: 4992, |
| | | prop: [0,0], |
| | | prop: [0, 0], |
| | | height: 2560, |
| | | navtop: 300, |
| | | gisType: "hf", |
| | |
| | | }, |
| | | gisInit: (webgis) => { |
| | | //è¿åå°å¾å¯¹è±¡ |
| | | window.Sgworld=webgis; |
| | | window.sgworld=webgis; |
| | | window.Viewer=webgis.Viewer; |
| | | window.viewer=webgis.Viewer; |
| | | window.Cesium=Cesium; |
| | | window.Sgworld = webgis; |
| | | window.sgworld = webgis; |
| | | window.Viewer = webgis.Viewer; |
| | | window.viewer = webgis.Viewer; |
| | | window.Cesium = Cesium; |
| | | |
| | | window.layers=window.sgworld.Viewer.scene.imageryLayers; |
| | | window.layers = window.sgworld.Viewer.scene.imageryLayers; |
| | | // const blackMarble = layers.addImageryProvider( |
| | | // new Cesium.IonImageryProvider({ assetId: 3812 }) |
| | | // ); |
| | |
| | | // blackMarble.alpha = 0.0; |
| | | // blackMarble.brightness = 2.0; |
| | | // å°çé¢è² |
| | | Viewer.scene.globe.baseColor= |
| | | Viewer.scene.globe.baseColor = |
| | | Cesium.Color.fromCssColorString("#272d39"); |
| | | // //é£åå¹¿å· |
| | | // window.Viewer.camera.flyTo({ |
| | |
| | | roll: 0, |
| | | }, |
| | | }); |
| | | let urldian1= |
| | | let urldian1 = |
| | | "http://183.162.245.49:8099/geoserver/SHwuxiandian/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=SHwuxiandian:1GZ_POI&maxFeatures=50&outputFormat=application%2Fjson"; |
| | | let urldian= |
| | | let urldian = |
| | | "http://183.162.245.49:8099/geoserver/SHP/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=SHP:SH_POI1&maxFeatures=50&outputFormat=application%2Fjson"; |
| | | try { |
| | | loaddian(urldian1,"[TE_DESC]","[height]"); |
| | | loaddian(urldian,"[name]","[Height]"); |
| | | loaddian(urldian1, "[TE_DESC]", "[height]"); |
| | | loaddian(urldian, "[name]", "[Height]"); |
| | | loadBaimo(1); |
| | | loadLW(); |
| | | addRightMouseEvent(); |
| | | SPPM(); |
| | | loadYH(); |
| | | juhe(true,"çæµç«"); |
| | | juhe(true, "çæµç«"); |
| | | addMpt(true); |
| | | } catch(error) { } |
| | | } catch (error) {} |
| | | //å¼å¯æ¥ç
§ |
| | | viewer.scene.globe.enableLighting=false; |
| | | viewer.shadows=false; |
| | | viewer.scene.globe.enableLighting = false; |
| | | viewer.shadows = false; |
| | | addMouseEvent(); |
| | | light(); |
| | | getVectorList().then((res) => { |
| | | if(res.message==="Success") { |
| | | let region=res.rows; |
| | | if (res.message === "Success") { |
| | | let region = res.rows; |
| | | region.forEach((item) => { |
| | | let arr=[]; |
| | | let arr = []; |
| | | JSON.parse(item.vlatlngs).forEach((item2) => { |
| | | arr.push([item2[1],item2[0]]); |
| | | arr.push([item2[1], item2[0]]); |
| | | }); |
| | | item.vlatlngs=JSON.stringify(arr); |
| | | item.vlatlngs = JSON.stringify(arr); |
| | | }); |
| | | bus.$emit("areaData",region); |
| | | bus.$emit("areaData", region); |
| | | } |
| | | }); |
| | | //è·åæ çº¿çµæ°æ® |
| | | getRadio().then((res) => { |
| | | if(res.message==="Success") { |
| | | let radio=res.rows; |
| | | bus.$emit("radioData",radio); |
| | | if (res.message === "Success") { |
| | | let radio = res.rows; |
| | | bus.$emit("radioData", radio); |
| | | console.log(radio); |
| | | } |
| | | }); |
| | |
| | | // window.Viewer.scene.primitives.add(baimo); |
| | | //å¿åè¾¹ç,ç½æ ¼ |
| | | }, |
| | | subClick (index) { |
| | | subClick(index) { |
| | | let showindex; |
| | | switch(index) { |
| | | switch (index) { |
| | | case 0: |
| | | showindex=1; |
| | | showindex = 1; |
| | | break; |
| | | case 1: |
| | | showindex=2; |
| | | showindex = 2; |
| | | break; |
| | | case 2: |
| | | showindex=3; |
| | | showindex = 3; |
| | | break; |
| | | case 3: |
| | | showindex=4; |
| | | showindex = 4; |
| | | break; |
| | | case 4: |
| | | showindex=5; |
| | | showindex = 5; |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | bus.$emit("showindex",showindex); |
| | | bus.$emit("showindex", showindex); |
| | | }, |
| | | prop: [970,970], |
| | | prop: [970, 970], |
| | | nav: { |
| | | navTop: () => import("@/components/top/navTop"), |
| | | }, |
| | |
| | | freeAnalyse: () => import("@/components/props/freeAnalyse"), //空é²èµæºå±ç¤º |
| | | moreTZ: () => import("@/components/props/moreTZ"), //空é²èµæºå±ç¤º |
| | | // SurprisePlus |
| | | showMilitaryPlot: () => import("@/components/props/militaryPlot"),//åäºæ ç» |
| | | situationComparison: () => import("@/components/props/situationComparison"),//æå¿å¯¹æ¯ |
| | | occupancyAnalysis: () => import("@/components/props/occupancyAnalysis"), //é¢è°±å ç¨åº¦åæ |
| | | showMilitaryPlot: () => import("@/components/props/militaryPlot"), //åäºæ ç» |
| | | situationComparison: () => |
| | | import("@/components/props/situationComparison"), //æå¿å¯¹æ¯ |
| | | occupancyAnalysis: () => |
| | | import("@/components/props/occupancyAnalysis"), //é¢è°±å ç¨åº¦åæ |
| | | |
| | | densityAnalysis: () => import("@/components/props/densityAnalysis"), //ç¨é¢å¯åº¦åæ |
| | | |
| | | SC1: () => import("@/components/props/situationComparison6-1"), |
| | | SC2: () => import("@/components/props/situationComparison6-2"), |
| | | SC3: () => import("@/components/props/situationComparison6-3"), |
| | | SC4: () => import("@/components/props/situationComparison6-4"), |
| | | SC5: () => import("@/components/props/situationComparison6-5"), |
| | | SC6: () => import("@/components/props/situationComparison6-6"), |
| | | SC7: () => import("@/components/props/situationComparison6-7"), |
| | | SC8: () => import("@/components/props/situationComparison7-1"), |
| | | SC9: () => import("@/components/props/situationComparison7-2-1"), |
| | | SC10: () => import("@/components/props/situationComparison7-3-1"), |
| | | SC11: () => import("@/components/props/situationComparison7-4"), |
| | | SC12: () => import("@/components/props/situationComparison7-5"), |
| | | SC13: () => import("@/components/props/situationComparison7-6"), |
| | | SC14: () => import("@/components/props/situationComparison7-7"), |
| | | SC15: () => import("@/components/props/situationComparison7-8"), |
| | | SC16: () => import("@/components/props/situationComparison7-9"), |
| | | SC17: () => import("@/components/props/situationComparison8-1"), |
| | | SC18: () => import("@/components/props/situationComparison8-2"), |
| | | SC19: () => import("@/components/props/situationComparison8-3"), |
| | | SC20: () => import("@/components/props/situationComparison8-4"), |
| | | SC21: () => import("@/components/props/situationComparison9-1"), |
| | | SC22: () => import("@/components/props/situationComparison9-2"), |
| | | SC23: () => import("@/components/props/situationComparison9-3"), |
| | | SC24: () => import("@/components/props/situationComparison10-1"), |
| | | SC25: () => import("@/components/props/situationComparison10-2"), |
| | | SC26: () => import("@/components/props/situationComparison10-3"), |
| | | SC27: () => import("@/components/props/situationComparison10-4"), |
| | | }, |
| | | }); |
| | | }, |
| | | }, |
| | | mounted () { |
| | | mounted() { |
| | | this.init(); |
| | | }, |
| | | }; |
| | |
| | | <template> |
| | | <div class="content"> |
| | | |
| | | <div class="container" |
| | | id="moved"> |
| | | <el-menu default-active="2" |
| | | :unique-opened="true" |
| | | @select="handleSelect" |
| | | class="el-menu-vertical-demo"> |
| | | <div class="container" id="moved"> |
| | | <el-menu |
| | | default-active="2" |
| | | :unique-opened="true" |
| | | @select="handleSelect" |
| | | class="el-menu-vertical-demo" |
| | | > |
| | | <el-submenu index="1"> |
| | | <template slot="title"> |
| | | <i class="el-icon-location"></i> |
| | |
| | | </template> |
| | | <el-menu-item-group> |
| | | <el-menu-item index="5-1">æ°æ®åææ¥å</el-menu-item> |
| | | |
| | | </el-menu-item-group> |
| | | </el-submenu> |
| | | <el-submenu index="6"> |
| | | <template slot="title"> |
| | | <i class="el-icon-location"></i> |
| | | <span>æ°æ®èµæºç®¡çåç³»ç»</span> |
| | | </template> |
| | | <el-menu-item-group> |
| | | <el-menu-item index="6-1">éç¨æ¨¡ç管ç</el-menu-item> |
| | | <el-menu-item index="6-2">éä¿¡èµæºç®¡ç</el-menu-item> |
| | | <el-menu-item index="6-3">éä¿¡ç½ç³»ç®¡ç</el-menu-item> |
| | | <el-menu-item index="6-4">éä¿¡æ³å®ç®¡ç</el-menu-item> |
| | | <el-menu-item index="6-5">å¤åªä½ç´ æç®¡ç</el-menu-item> |
| | | <el-menu-item index="6-6">ä»¿çæ¨¡å管ç</el-menu-item> |
| | | <el-menu-item index="6-7">ç¨æ·ç®¡çåç³»ç»è®¾ç½®</el-menu-item> |
| | | </el-menu-item-group> |
| | | </el-submenu> |
| | | <el-submenu index="7"> |
| | | <template slot="title"> |
| | | <i class="el-icon-location"></i> |
| | | <span>综åæå¿æ¾ç¤ºåç³»ç»</span> |
| | | </template> |
| | | <el-menu-item-group> |
| | | <el-menu-item index="7-1">zcTS\ç¹åæ¥éª¤</el-menu-item> |
| | | <el-submenu index="7-2"> |
| | | <template slot="title">ZCç¯å¢æ¾ç¤º</template> |
| | | <el-menu-item index="7-2-1">ä¸å沿海ãTD</el-menu-item> |
| | | </el-submenu> |
| | | <el-submenu index="7-3"> |
| | | <template slot="title">éä¿¡æå¿æ¾ç¤º</template> |
| | | <el-menu-item index="7-3-1">åºç«ãçæµç«</el-menu-item> |
| | | </el-submenu> |
| | | <el-menu-item index="7-4">ä¿¡æ¯é¾è·¯æ¾ç¤º</el-menu-item> |
| | | <el-menu-item index="7-5">使æå¿æ¾ç¤º</el-menu-item> |
| | | <el-menu-item index="7-6">æ³å®èµææ¾ç¤º</el-menu-item> |
| | | <el-menu-item index="7-7">æå¿æ¾ç¤ºæ§å¶</el-menu-item> |
| | | <el-menu-item index="7-8">å¤åªä½ç´ ææµè§</el-menu-item> |
| | | <el-menu-item index="7-9">æå¿æ ç»</el-menu-item> |
| | | </el-menu-item-group> |
| | | </el-submenu> |
| | | <el-submenu index="8"> |
| | | <template slot="title"> |
| | | <i class="el-icon-location"></i> |
| | | <span>éä¿¡æ¹æ¡ç¹ååç³»ç»</span> |
| | | </template> |
| | | <el-menu-item-group> |
| | | <el-menu-item index="8-1">éä¿¡æ¹æ¡ç®¡ç</el-menu-item> |
| | | <el-menu-item index="8-2">éä¿¡æ¹æ¡æå¶</el-menu-item> |
| | | <el-menu-item index="8-3">éä¿¡ç½ç³»æå»º</el-menu-item> |
| | | <el-menu-item index="8-4">éä¿¡æ¹æ¡è®²è¯</el-menu-item> |
| | | </el-menu-item-group> |
| | | </el-submenu> |
| | | <el-submenu index="9"> |
| | | <template slot="title"> |
| | | <i class="el-icon-location"></i> |
| | | <span>éä¿¡æè½è¯ä¼°åç³»ç»</span> |
| | | </template> |
| | | <el-menu-item-group> |
| | | <el-menu-item index="9-1">éä¿¡æ¯ä¼¤å½±åè¯ä¼°</el-menu-item> |
| | | <el-menu-item index="9-2">éä¿¡å¹²æ°å½±åè¯ä¼°</el-menu-item> |
| | | <el-menu-item index="9-3">è¾
å©è®¡ç®åæ</el-menu-item> |
| | | </el-menu-item-group> |
| | | </el-submenu> |
| | | <el-submenu index="10"> |
| | | <template slot="title"> |
| | | <i class="el-icon-location"></i> |
| | | <span>使è¡å¨å½±ååæåç³»ç»</span> |
| | | </template> |
| | | <el-menu-item-group> |
| | | <el-menu-item index="10-1">æ
æ¥é¾è·¯è¡å¨å½±ååæ</el-menu-item> |
| | | <el-menu-item index="10-2">ææ¥é¾è·¯è¡å¨å½±ååæ</el-menu-item> |
| | | <el-menu-item index="10-3">æå»é¾è·¯è¡å¨å½±ååæ</el-menu-item> |
| | | <el-menu-item index="10-4" |
| | | >ä¿éé¾è·¯è¡å¨å½±ååæåè¯ä¼°åæç»æå±ç¤º |
| | | </el-menu-item> |
| | | </el-menu-item-group> |
| | | </el-submenu> |
| | | </el-menu> |
| | | |
| | | </div> |
| | | <div class="bot"> |
| | | |
| | | <div :class="istrue ? 'botImg1' : 'botImg'" |
| | | @mousemove="makebig" |
| | | @mouseout="makeSmall"> |
| | | <span id="img" |
| | | @click="changeMap"> |
| | | <div |
| | | :class="istrue ? 'botImg1' : 'botImg'" |
| | | @mousemove="makebig" |
| | | @mouseout="makeSmall" |
| | | > |
| | | <span id="img" @click="changeMap"> |
| | | <span class="mapinner">è¡éå¾</span> |
| | | </span> |
| | | <span id="img1" |
| | | @click="changeMap1" |
| | | :style="move1"> |
| | | <span id="img1" @click="changeMap1" :style="move1"> |
| | | <span class="mapinner1">å½±åå¾</span> |
| | | </span> |
| | | </div> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | let gdMap=null; |
| | | let gdMap = null; |
| | | |
| | | import { addMpt } from "../../../utils/work"; |
| | | import bus from "../../../utils/bus"; |
| | | export default { |
| | | data () { |
| | | data() { |
| | | return { |
| | | move1: { |
| | | transform: "translateX(-230px)", |
| | |
| | | }; |
| | | }, |
| | | methods: { |
| | | handleSelect (key,keyPath) { |
| | | var val=keyPath[1] |
| | | switch(val) { |
| | | handleSelect(key, keyPath) { |
| | | var val = keyPath[1]; |
| | | switch (val) { |
| | | case "1-3": |
| | | this.nowchoose=2; |
| | | bus.$emit("showdio",this.nowchoose); |
| | | this.nowchoose = 2; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "1-2"://null |
| | | this.nowchoose=7; |
| | | bus.$emit("showdio",this.nowchoose); |
| | | case "1-2": //null |
| | | this.nowchoose = 7; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "1-1": |
| | | this.nowchoose=1; |
| | | bus.$emit("showdio",this.nowchoose); |
| | | this.nowchoose = 1; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "2-6"://null |
| | | this.nowchoose=8; |
| | | bus.$emit("showdio",this.nowchoose); |
| | | case "2-6": //null |
| | | this.nowchoose = 8; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "2-5": |
| | | this.nowchoose=3; |
| | | bus.$emit("showdio",this.nowchoose); |
| | | this.nowchoose = 3; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "2-4"://null |
| | | this.nowchoose=9; |
| | | bus.$emit("showdio",this.nowchoose); |
| | | case "2-4": //null |
| | | this.nowchoose = 9; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "2-3"://null |
| | | this.nowchoose=10; |
| | | bus.$emit("showdio",this.nowchoose); |
| | | case "2-3": //null |
| | | this.nowchoose = 10; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "2-2": |
| | | this.nowchoose='1-4'; |
| | | bus.$emit("showdio",this.nowchoose); |
| | | this.nowchoose = "1-4"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | |
| | | case "3-4": |
| | | this.nowchoose=5; |
| | | bus.$emit("showdio",this.nowchoose); |
| | | this.nowchoose = 5; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "3-3": |
| | | this.nowchoose="1-2"; |
| | | bus.$emit("showdio",this.nowchoose); |
| | | this.nowchoose = "1-2"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "3-2": |
| | | this.nowchoose=4; |
| | | bus.$emit("showdio",this.nowchoose); |
| | | this.nowchoose = 4; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "3-1": |
| | | this.nowchoose=6; |
| | | bus.$emit("showdio",this.nowchoose); |
| | | this.nowchoose = 6; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | |
| | | case "4-1": |
| | | this.nowchoose = "4-1"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "4-2": |
| | | this.nowchoose = "4-2"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "4-3": |
| | | this.nowchoose = "4-3"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "4-4": |
| | | this.nowchoose = "4-4"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "4-5": |
| | | this.nowchoose = "4-5"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "5-1": |
| | | this.nowchoose = "5-1"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "6-1": |
| | | this.nowchoose = "6-1"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "6-2": |
| | | this.nowchoose = "6-2"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "6-3": |
| | | this.nowchoose = "6-3"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "6-4": |
| | | this.nowchoose = "6-4"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "6-5": |
| | | this.nowchoose = "6-5"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "6-6": |
| | | this.nowchoose = "6-6"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "6-7": |
| | | this.nowchoose = "6-7"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | |
| | | case "7-1": |
| | | this.nowchoose = "7-1"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "7-2-1": |
| | | this.nowchoose = "7-2-1"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "7-3-1": |
| | | this.nowchoose = "7-3-1"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "7-4": |
| | | this.nowchoose = "7-4"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "7-5": |
| | | this.nowchoose = "7-5"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "7-6": |
| | | this.nowchoose = "7-6"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "7-7": |
| | | this.nowchoose = "7-7"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "7-8": |
| | | this.nowchoose = "7-8"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "7-9": |
| | | this.nowchoose = "7-9"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "8-1": |
| | | this.nowchoose = "8-1"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "8-2": |
| | | this.nowchoose = "8-2"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "8-3": |
| | | this.nowchoose = "8-3"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "8-4": |
| | | this.nowchoose = "8-4"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "9-1": |
| | | this.nowchoose = "9-1"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "9-2": |
| | | this.nowchoose = "9-2"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "9-3": |
| | | this.nowchoose = "9-3"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "10-1": |
| | | this.nowchoose = "10-1"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "10-2": |
| | | this.nowchoose = "10-2"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "10-3": |
| | | this.nowchoose = "10-3"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | case "10-4": |
| | | this.nowchoose = "10-4"; |
| | | bus.$emit("showdio", this.nowchoose); |
| | | break; |
| | | } |
| | | },makebig () { |
| | | this.istrue=false; |
| | | this.move1.transform="translateX(0px)"; |
| | | }, |
| | | makeSmall () { |
| | | this.istrue=true; |
| | | this.move1.transform="translateX(-230px)"; |
| | | makebig() { |
| | | this.istrue = false; |
| | | this.move1.transform = "translateX(0px)"; |
| | | }, |
| | | changeMap1 () { |
| | | Viewer.imageryLayers._layers[0].show=true; |
| | | makeSmall() { |
| | | this.istrue = true; |
| | | this.move1.transform = "translateX(-230px)"; |
| | | }, |
| | | changeMap1() { |
| | | Viewer.imageryLayers._layers[0].show = true; |
| | | addMpt(true); |
| | | if(gdMap) { |
| | | if (gdMap) { |
| | | gdMap.setVisibility(false); |
| | | this.move1["z-index"]=2; |
| | | this.move1["z-index"] = 2; |
| | | } else { |
| | | return; |
| | | } |
| | | }, |
| | | changeMap () { |
| | | this.move1["z-index"]=0; |
| | | Viewer.imageryLayers._layers[0].show=false; |
| | | changeMap() { |
| | | this.move1["z-index"] = 0; |
| | | Viewer.imageryLayers._layers[0].show = false; |
| | | addMpt(false); |
| | | if(gdMap) { |
| | | if (gdMap) { |
| | | gdMap.setVisibility(true); |
| | | } else { |
| | | var base={ |
| | | var base = { |
| | | url: "https://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer", |
| | | enablePickFeatures: false, |
| | | usePreCachedTilesIfAvailable: false, // æ¯å¦ä½¿ç¨æå¡çå
ç½®çåçæ¹æ¡ï¼åç§»çº æ£éè¦ä½¿ç¨å¦ä¸èªå®ä¹çæ¹æ¡ |
| | | tilingScheme: sgworld.Core.getOffsetTilingScheme(), // åç§»çº æ£ |
| | | }; |
| | | gdMap=sgworld.Creator.createArcGisImageryLayer( |
| | | gdMap = sgworld.Creator.createArcGisImageryLayer( |
| | | "è¡é", |
| | | base, |
| | | "0", |
| | |
| | | true, |
| | | "" |
| | | ); |
| | | this.isshowGD=true; |
| | | this.isshowGD = true; |
| | | } |
| | | }, |
| | | |
| | | },mounted () { |
| | | bus.$on("showindex",(e) => { |
| | | if(this.boxindex==e) { |
| | | this.boxindex=0; |
| | | }, |
| | | mounted() { |
| | | bus.$on("showindex", (e) => { |
| | | if (this.boxindex == e) { |
| | | this.boxindex = 0; |
| | | } else { |
| | | this.boxindex=e; |
| | | this.boxindex = e; |
| | | } |
| | | }); |
| | | }, |