From 3dc278f10a4c3e3db7ce3a445bed710bdc88916e Mon Sep 17 00:00:00 2001
From: xiebin <123456>
Date: Wed, 16 Nov 2022 17:10:51 +0800
Subject: [PATCH] 基地信息坐标有误差的问题
---
src/components/remote/index.vue | 216 ++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 170 insertions(+), 46 deletions(-)
diff --git a/src/components/remote/index.vue b/src/components/remote/index.vue
index 505957a..a0e650f 100644
--- a/src/components/remote/index.vue
+++ b/src/components/remote/index.vue
@@ -2,11 +2,27 @@
<template>
<div style="height: 100%; width: 100%; position: relative;">
<div v-show="SelectTimeFlag">
- <select-time ref="leftRoller" :leftOrRight="'left'" class="l-time"></select-time>
+ <div class="selectname_left">
+ <select-name ref="selectNameLeft" @selectItem="selectItemLeft" :value="currentTitle" :selectList="farmSelectList"></select-name>
+ </div>
+ <select-time
+ ref="leftRoller"
+ :leftOrRight="'left'"
+ class="l-time"
+ :selectList="leftRollerLayers"
+ ></select-time>
</div>
<div v-show="SelectTimeFlag">
- <select-time ref="rightRoller" :leftOrRight="'right'" class="r-time"></select-time>
+ <div class="selectname_right">
+ <select-name ref="selectNameRight" @selectItem="selectItemRight" :selectList="farmSelectList" :value="currentTitle"></select-name>
+ </div>
+ <select-time
+ ref="rightRoller"
+ :leftOrRight="'right'"
+ class="r-time"
+ :selectList="rightRollerLayers"
+ ></select-time>
</div>
<div class="location-box" v-show="!rollerCloseShow && !screenShow">
@@ -17,6 +33,11 @@
>
<el-button slot="append" @click="setLocation" icon="el-icon-search"></el-button>
</el-input>
+
+ <div class="selectname_index">
+ <select-name ref="selectName" :value="currentTitle" :selectList="farmSelectList" @selectItem="selectItem"></select-name>
+ </div>
+
</div>
<div class="tool-box">
@@ -88,36 +109,49 @@
v-if="!rollerCloseShow && !screenShow"
style="position: fixed; top: auto; left: 0; right: 0; bottom: 44px; margin: auto; width: 610px; height: 68px;"
>
- <time-line></time-line>
+ <time-line :timeLineList="timeLineList" :currentObj="currentObj" :currentInd="currentInd"></time-line>
</div>
</div>
</template>
<script>
+// import SelectName from '@/components/selectName'
+import { getRemoteDetailsList,getFormat } from '@/assets/viewdata.js'
let baselayerElc = null
let num = 0
-
export default {
name: 'remote',
-
+ // components: { SelectName },
data () {
return {
+ // 左边集合
+ leftRollerLayers: [],
+ // 右边集合
+ rightRollerLayers: [],
SelectTimeFlag: false,
rollerCloseShow: false,
screenShow: false,
- location: ''
+ location: '',
+ // farmSelectList: viewdata,
+ // currentTitle: viewdata[0].name,
+ // timeLineList: viewdata[0].childItem,
+ // currentObj: viewdata[0].childItem[0],
+ farmSelectList: null,
+ currentTitle: null,
+ timeLineList: null,
+ currentObj: null,
+ currentInd: 0
}
},
-
- computed: {
-
- },
- mounted () {
+ created () {
+ this.settingViewdata()
+ },
+ mounted () {
if (global.viewer != null) {
global.viewer = null
}
-
+ var _this = this
function initViewer () {
global.viewer = new global.DC.Viewer('viewer-container', {
contextOptions: {
@@ -129,6 +163,10 @@
}
})
+ // 去除logo
+ const primitiveArr = global.viewer.scene.primitives._primitives
+ global.viewer.scene.primitives.remove(primitiveArr[0])
+
if (global.DC.Namespace.Cesium.FeatureDetection.supportsImageRenderingPixelated()) { // 判断是否支持图像渲染像素化处理
global.viewer.setOptions({
resolutionScale: window.devicePixelRatio
@@ -138,7 +176,7 @@
// 影像
global.viewer.imageryLayers.addImageryProvider(
new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
- url: 'http://t{s}.tianditu.gov.cn/DataServer?T=img_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0',
+ url: 'http://t{s}.tianditu.gov.cn/DataServer?T=img_w&x={x}&y={y}&l={z}&tk=e45274b0235bb913eceb393aabbf9c9c',
subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
format: 'image/jpeg',
show: true,
@@ -146,36 +184,30 @@
})
)
- // http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengdom/MapServer
- // 矢量电子
- // global.viewer.imageryLayers.addImageryProvider(
- // new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
- // url: 'http://t{s}.tianditu.gov.cn/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0',
- // subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
- // format: 'image/jpeg',
- // show: true,
- // maximumLevel: 18
- // })
- // )
-
- // global.viewer.imageryLayers.addImageryProvider(
- // new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
- // url: 'http://t{s}.tianditu.gov.cn/DataServer?T=cva_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0',
- // subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
- // format: 'image/jpeg',
- // show: true,
- // maximumLevel: 18
- // })
- // )
global.viewer.use(new global.DC.Measure())
+ // _this.$nextTick(() => {
+ // if (viewdata.length > 0) {
+ // _this.settingViewdata()
+ // }
+ // });
+
+ // global.viewer.locationBar.enable = true
+ }
+
+
+
+ global.DC.ready(initViewer)
+ },
+ methods: {
+ goToDcBylatlon (lat, lon) {
global.viewer.camera.setView({
// Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
// fromDegrees()方法,将经纬度和高程转换为世界坐标
destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
- 116.56705776, 27.42386903, 1800.0
+ lat, lon, 2800.0
),
orientation: {
// 指向
@@ -185,17 +217,45 @@
roll: 0.0
}
})
-
- // global.viewer.locationBar.enable = true
- }
-
- global.DC.ready(initViewer)
- },
- methods: {
+ },
deactivate () {
global.viewer.measure.deactivate()
},
-
+ // 遥感监测多时相基地下拉事件
+ selectItem (item, index) {
+ this.timeLineList = item.childItem
+ if(this.timeLineList.some(e=>{return e.type == "0"})){
+ for(var i = 0; i<this.timeLineList.length;i++){
+ if(this.timeLineList[i].type == "0"){
+ this.currentObj = this.timeLineList[i]
+ this.currentInd = i
+ break
+ }
+ }
+ }else{
+ this.currentObj = this.timeLineList[0]
+ this.currentInd = 0
+ }
+ this.goToDcBylatlon(item.latitude, item.longitude)
+ },
+ // 遥感监测卷帘左基地下拉事件
+ selectItemLeft (item, index) {
+ this.leftRollerLayers = item.childItem
+ this.rightRollerLayers = item.childItem
+ this.$refs.selectNameRight.currentTitle = item.name
+ this.$refs.leftRoller.init()
+ this.$refs.rightRoller.init()
+ this.goToDcBylatlon(item.latitude, item.longitude)
+ },
+ // 遥感监测卷帘右基地下拉事件
+ selectItemRight (item, index) {
+ this.leftRollerLayers = item.childItem
+ this.rightRollerLayers = item.childItem
+ this.$refs.selectNameLeft.currentTitle = item.name
+ this.$refs.rightRoller.init()
+ this.$refs.leftRoller.init()
+ this.goToDcBylatlon(item.latitude, item.longitude)
+ },
// 根据地址获取坐标
addrToGetCoordinate (addr) {
const that = this
@@ -205,7 +265,6 @@
address: addr
})
.then((res) => {
- console.log(res)
if (res.status === 0) {
// 用获取到的经纬度,修改地图的中心点
global.viewer.camera.flyTo({
@@ -324,8 +383,14 @@
this.rollerCloseShow = true
this.SelectTimeFlag = true
this.deactivate()
+
+ // 初始化数据
+ this.leftRollerLayers = this.farmSelectList[0].childItem
this.$refs.leftRoller.init()
+ this.rightRollerLayers = this.farmSelectList[0].childItem
this.$refs.rightRoller.init()
+ // this.$refs.leftRoller.init()
+ // this.$refs.rightRoller.init()
},
closeRollerShutters () {
@@ -337,6 +402,47 @@
this.$refs.rightRoller.clearLayer()
// global.viewer.imageryLayers.removeAll()
+ },
+ settingViewdata() {
+ getRemoteDetailsList().then(res => {
+ var dataTmp = []
+ dataTmp = getFormat(res.data.data,dataTmp)
+ dataTmp.forEach(item => {
+ global.viewer.imageryLayers.addImageryProvider(
+ new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
+ url: item.selectItem.url,
+ maximumLevel: 18
+ })
+ )
+ })
+ // this.farmSelectList = dataTmp
+ // this.currentTitle = dataTmp[0].name
+ // this.timeLineList = dataTmp[0].childItem
+ // this.currentObj = dataTmp[0].childItem[0]
+
+ this.farmSelectList=dataTmp
+ this.currentTitle= dataTmp[0].name
+ this.timeLineList= dataTmp[0].childItem
+ this.currentObj= dataTmp[0].selectItem
+ this.currentInd = dataTmp[0].selectItem.index
+ // 初始化地图坐标 默认显示第一个基地
+ global.viewer.camera.setView({
+ // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
+ // fromDegrees()方法,将经纬度和高程转换为世界坐标
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
+ dataTmp[0].latitude, dataTmp[0].longitude, 1800.0
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ })
+
+
}
}
}
@@ -360,7 +466,25 @@
top: 25px;
left: 50px;
z-index: 9;
- width: 320px;
+ width: 485px;
+ display: flex;
+}
+.selectname_left {
+ position: absolute;
+ top: 30px;
+ left: 15%;
+ transform: translate(-50%, 0);
+ z-index: 99;
+}
+.selectname_right {
+ position: absolute;
+ top: 30px;
+ right: 35%;
+ transform: translate(50%, 0);
+ z-index: 99;
+}
+.selectname_index {
+ padding-left: 20px;
}
.l-time {
@@ -422,7 +546,7 @@
margin-left: 30px;
width: 40px;
height: 40px;
- background: url(/img/icon/roller-close.png) no-repeat;
+ background: url(../../../public/img/icon/roller-close.png) no-repeat;
background-size: 100% 100%;
}
--
Gitblit v1.9.3