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/splitScreen/index.vue | 437 ++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 406 insertions(+), 31 deletions(-)
diff --git a/src/components/splitScreen/index.vue b/src/components/splitScreen/index.vue
index 29d7def..acca634 100644
--- a/src/components/splitScreen/index.vue
+++ b/src/components/splitScreen/index.vue
@@ -2,16 +2,48 @@
<template>
<div class="current-wrapper" style="height: 100%; width: 100%; position: relative;">
<div class="map-box" id="viewer-container-one">
- <select-time ref="leftRoller" :type="'viewerOne'" class="time"></select-time>
+ <div class="selectname">
+ <select-name ref="selectNameOne" @selectItem="selectItemOne" :value="currentTitle" :selectList="farmSelectList"></select-name>
+ </div>
+ <select-time
+ ref="ViewerOne"
+ :type="'viewerOne'"
+ class="time"
+ :selectList="viewerOneLayers"
+ ></select-time>
</div>
<div class="map-box" id="viewer-container-two">
- <select-time ref="leftRoller" :type="'viewerTwo'" class="time"></select-time>
+ <div class="selectname">
+ <select-name ref="selectNameTwo" @selectItem="selectItemTwo" :value="currentTitle" :selectList="farmSelectList"></select-name>
+ </div>
+ <select-time
+ ref="ViewerTwo"
+ :type="'viewerTwo'"
+ class="time"
+ :selectList="viewerTwoLayers"
+ ></select-time>
</div>
<div class="map-box" id="viewer-container-three">
- <select-time ref="leftRoller" :type="'viewerThree'" class="time"></select-time>
+ <div class="selectname">
+ <select-name ref="selectNameThree" @selectItem="selectItemThree" :value="currentTitle" :selectList="farmSelectList"></select-name>
+ </div>
+ <select-time
+ ref="ViewerThree"
+ :type="'viewerThree'"
+ class="time"
+ :selectList="viewerThreeLayers"
+ ></select-time>
</div>
<div class="map-box" id="viewer-container-four">
- <select-time ref="leftRoller" :type="'viewerFour'" class="time"></select-time>
+ <div class="selectname">
+ <select-name ref="selectNameFour" @selectItem="selectItemFour" :value="currentTitle" :selectList="farmSelectList"></select-name>
+ </div>
+ <select-time
+ ref="ViewerFour"
+ :type="'viewerFour'"
+ class="time"
+ :selectList="viewerFourLayers"
+ ></select-time>
</div>
<div class="line-row"></div>
@@ -20,6 +52,7 @@
</template>
<script>
+import { viewdata } from '@/assets/viewdata.js'
window.viewerOne = null
window.viewerTwo = null
window.viewerThree = null
@@ -35,13 +68,283 @@
data () {
return {
- rollerCloseShow: false
+ rollerCloseShow: false,
+ viewerOneLayers: [],
+ viewerTwoLayers: [],
+ viewerThreeLayers: [],
+ viewerFourLayers: [],
+ farmSelectList: viewdata,
+ currentTitle: viewdata[0].name
}
},
- computed: {
-
+ created () {
+ // 初始化数据
+ this.viewerOneLayers = this.farmSelectList[0].childItem
+ this.viewerTwoLayers = this.farmSelectList[0].childItem
+ this.viewerThreeLayers = this.farmSelectList[0].childItem
+ this.viewerFourLayers = this.farmSelectList[0].childItem
+ this.$refs.ViewerOne.init()
+ this.$refs.ViewerTwo.init()
+ this.$refs.ViewerThree.init()
+ this.$refs.ViewerFour.init()
+ // this.viewerOneLayers = [{
+ // title: '2022年5月影像',
+ // url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengdom/MapServer/WMTS',
+ // layer: 'nanchengdom',
+ // style: 'default',
+ // tileMatrixSetID: 'default028mm',
+ // format: 'image/png',
+ // tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(),
+ // maximumLevel: 19,
+ // tileMatrixLabels: [
+ // '0',
+ // '1',
+ // '2',
+ // '3',
+ // '4',
+ // '5',
+ // '6',
+ // '7',
+ // '8',
+ // '9',
+ // '10',
+ // '11',
+ // '12',
+ // '13',
+ // '14',
+ // '15',
+ // '16',
+ // '17',
+ // '18',
+ // '19'
+ // ]
+ // }, {
+ // title: '2022年7月影像',
+ // url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengdomjuly/MapServer/WMTS',
+ // layer: 'nanchengdomjuly',
+ // style: 'default',
+ // tileMatrixSetID: 'default028mm',
+ // format: 'image/png',
+ // tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(),
+ // maximumLevel: 19,
+ // tileMatrixLabels: [
+ // '0',
+ // '1',
+ // '2',
+ // '3',
+ // '4',
+ // '5',
+ // '6',
+ // '7',
+ // '8',
+ // '9',
+ // '10',
+ // '11',
+ // '12',
+ // '13',
+ // '14',
+ // '15',
+ // '16',
+ // '17',
+ // '18',
+ // '19'
+ // ]
+ // }]
+ //
+ // this.viewerTwoLayers = [{
+ // title: '2022年5月影像',
+ // url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengdom/MapServer/WMTS',
+ // layer: 'nanchengdom',
+ // style: 'default',
+ // tileMatrixSetID: 'default028mm',
+ // format: 'image/png',
+ // tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(),
+ // maximumLevel: 19,
+ // tileMatrixLabels: [
+ // '0',
+ // '1',
+ // '2',
+ // '3',
+ // '4',
+ // '5',
+ // '6',
+ // '7',
+ // '8',
+ // '9',
+ // '10',
+ // '11',
+ // '12',
+ // '13',
+ // '14',
+ // '15',
+ // '16',
+ // '17',
+ // '18',
+ // '19'
+ // ]
+ // }, {
+ // title: '2022年7月影像',
+ // url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengdomjuly/MapServer/WMTS',
+ // layer: 'nanchengdomjuly',
+ // style: 'default',
+ // tileMatrixSetID: 'default028mm',
+ // format: 'image/png',
+ // tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(),
+ // maximumLevel: 19,
+ // tileMatrixLabels: [
+ // '0',
+ // '1',
+ // '2',
+ // '3',
+ // '4',
+ // '5',
+ // '6',
+ // '7',
+ // '8',
+ // '9',
+ // '10',
+ // '11',
+ // '12',
+ // '13',
+ // '14',
+ // '15',
+ // '16',
+ // '17',
+ // '18',
+ // '19'
+ // ]
+ // }]
+ //
+ // this.viewerThreeLayers = [{
+ // title: '2022年5月影像',
+ // url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengdom/MapServer/WMTS',
+ // layer: 'nanchengdom',
+ // style: 'default',
+ // tileMatrixSetID: 'default028mm',
+ // format: 'image/png',
+ // tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(),
+ // maximumLevel: 19,
+ // tileMatrixLabels: [
+ // '0',
+ // '1',
+ // '2',
+ // '3',
+ // '4',
+ // '5',
+ // '6',
+ // '7',
+ // '8',
+ // '9',
+ // '10',
+ // '11',
+ // '12',
+ // '13',
+ // '14',
+ // '15',
+ // '16',
+ // '17',
+ // '18',
+ // '19'
+ // ]
+ // }, {
+ // title: '2022年7月影像',
+ // url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengdomjuly/MapServer/WMTS',
+ // layer: 'nanchengdomjuly',
+ // style: 'default',
+ // tileMatrixSetID: 'default028mm',
+ // format: 'image/png',
+ // tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(),
+ // maximumLevel: 19,
+ // tileMatrixLabels: [
+ // '0',
+ // '1',
+ // '2',
+ // '3',
+ // '4',
+ // '5',
+ // '6',
+ // '7',
+ // '8',
+ // '9',
+ // '10',
+ // '11',
+ // '12',
+ // '13',
+ // '14',
+ // '15',
+ // '16',
+ // '17',
+ // '18',
+ // '19'
+ // ]
+ // }]
+ //
+ // this.viewerFourLayers = [{
+ // title: '2022年5月影像',
+ // url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengdom/MapServer/WMTS',
+ // layer: 'nanchengdom',
+ // style: 'default',
+ // tileMatrixSetID: 'default028mm',
+ // format: 'image/png',
+ // tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(),
+ // maximumLevel: 19,
+ // tileMatrixLabels: [
+ // '0',
+ // '1',
+ // '2',
+ // '3',
+ // '4',
+ // '5',
+ // '6',
+ // '7',
+ // '8',
+ // '9',
+ // '10',
+ // '11',
+ // '12',
+ // '13',
+ // '14',
+ // '15',
+ // '16',
+ // '17',
+ // '18',
+ // '19'
+ // ]
+ // }, {
+ // title: '2022年7月影像',
+ // url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengdomjuly/MapServer/WMTS',
+ // layer: 'nanchengdomjuly',
+ // style: 'default',
+ // tileMatrixSetID: 'default028mm',
+ // format: 'image/png',
+ // tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(),
+ // maximumLevel: 19,
+ // tileMatrixLabels: [
+ // '0',
+ // '1',
+ // '2',
+ // '3',
+ // '4',
+ // '5',
+ // '6',
+ // '7',
+ // '8',
+ // '9',
+ // '10',
+ // '11',
+ // '12',
+ // '13',
+ // '14',
+ // '15',
+ // '16',
+ // '17',
+ // '18',
+ // '19'
+ // ]
+ // }]
},
+
mounted () {
const that = this
@@ -86,6 +389,19 @@
}
}
})
+
+ // 去除logo
+ const primitiveArrOne = window.viewerOne.scene.primitives._primitives
+ window.viewerOne.scene.primitives.remove(primitiveArrOne[0])
+
+ const primitiveArrTwo = window.viewerTwo.scene.primitives._primitives
+ window.viewerTwo.scene.primitives.remove(primitiveArrTwo[0])
+
+ const primitiveArrThree = window.viewerThree.scene.primitives._primitives
+ window.viewerThree.scene.primitives.remove(primitiveArrThree[0])
+
+ const primitiveArrFour = window.viewerFour.scene.primitives._primitives
+ window.viewerFour.scene.primitives.remove(primitiveArrFour[0])
if (global.DC.Namespace.Cesium.FeatureDetection.supportsImageRenderingPixelated()) { // 判断是否支持图像渲染像素化处理
window.viewerOne.setOptions({
@@ -146,34 +462,33 @@
})
)
- // 矢量电子
- // 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,
+ // 设置默认的影像 遍历所有基地影像加载太慢
+ const UrlTemplateImageryProvider = new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
+ url: viewdata[0].childItem[0].url,
+ maximumLevel: 18
+ })
+ window.viewerOne.imageryLayers.addImageryProvider(UrlTemplateImageryProvider)
+ window.viewerTwo.imageryLayers.addImageryProvider(UrlTemplateImageryProvider)
+ window.viewerThree.imageryLayers.addImageryProvider(UrlTemplateImageryProvider)
+ window.viewerFour.imageryLayers.addImageryProvider(UrlTemplateImageryProvider)
+
+ // 遍历所有基地影像
+ // viewdata.forEach(item => {
+ // const UrlTemplateImageryProvider = new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
+ // url: item.childItem[0].url,
// 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
- // })
- // )
-
- that.initHandler(window.viewerOne, window.viewerTwo, window.viewerThree, window.viewerFour)
+ // window.viewerOne.imageryLayers.addImageryProvider(UrlTemplateImageryProvider)
+ // window.viewerTwo.imageryLayers.addImageryProvider(UrlTemplateImageryProvider)
+ // window.viewerThree.imageryLayers.addImageryProvider(UrlTemplateImageryProvider)
+ // window.viewerFour.imageryLayers.addImageryProvider(UrlTemplateImageryProvider)
+ // })
window.viewerOne.camera.setView({
// Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
// fromDegrees()方法,将经纬度和高程转换为世界坐标
destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
- 116.56705776, 27.42386903, 1800.0
+ viewdata[0].latitude, viewdata[0].longitude, 1800.0
),
orientation: {
// 指向
@@ -188,7 +503,7 @@
// Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
// fromDegrees()方法,将经纬度和高程转换为世界坐标
destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
- 116.56705776, 27.42386903, 1800.0
+ viewdata[0].latitude, viewdata[0].longitude, 1800.0
),
orientation: {
// 指向
@@ -203,7 +518,7 @@
// Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
// fromDegrees()方法,将经纬度和高程转换为世界坐标
destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
- 116.56705776, 27.42386903, 1800.0
+ viewdata[0].latitude, viewdata[0].longitude, 1800.0
),
orientation: {
// 指向
@@ -218,7 +533,7 @@
// Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
// fromDegrees()方法,将经纬度和高程转换为世界坐标
destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
- 116.56705776, 27.42386903, 1800.0
+ viewdata[0].latitude, viewdata[0].longitude, 1800.0
),
orientation: {
// 指向
@@ -233,9 +548,62 @@
}
global.DC.ready(initViewer)
+
+ this.$refs.ViewerOne.screenInit()
+ this.$refs.ViewerTwo.screenInit()
+ this.$refs.ViewerThree.screenInit()
+ this.$refs.ViewerFour.screenInit()
})
},
methods: {
+ setUrlTemplateImageryProvider (item, viewer) {
+ // 设置默认的影像 遍历所有基地影像加载太慢
+ const UrlTemplateImageryProvider = new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
+ url: item.url,
+ maximumLevel: 18
+ })
+ viewer.imageryLayers.addImageryProvider(UrlTemplateImageryProvider)
+ },
+ goToViewerOneBylatlon (lat, lon, viewer) {
+ viewer.camera.setView({
+ // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
+ // fromDegrees()方法,将经纬度和高程转换为世界坐标
+ destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
+ lat, lon, 1800.0
+ ),
+ orientation: {
+ // 指向
+ heading: global.DC.Namespace.Cesium.Math.toRadians(0, 0),
+ // 视角
+ pitch: global.DC.Namespace.Cesium.Math.toRadians(-90),
+ roll: 0.0
+ }
+ })
+ },
+ selectItemOne (item, index) {
+ this.viewerOneLayers = item.childItem
+ this.$refs.ViewerOne.init()
+ this.goToViewerOneBylatlon(item.latitude, item.longitude, window.viewerOne)
+ this.setUrlTemplateImageryProvider(item.selectItem, window.viewerOne)
+ },
+ selectItemTwo (item, index) {
+ this.viewerTwoLayers = item.childItem
+ this.$refs.ViewerTwo.init()
+ this.goToViewerOneBylatlon(item.latitude, item.longitude, window.viewerTwo)
+ this.setUrlTemplateImageryProvider(item.selectItem, window.viewerTwo)
+ },
+ selectItemThree (item, index) {
+ this.viewerThreeLayers = item.childItem
+ this.$refs.ViewerThree.init()
+ this.goToViewerOneBylatlon(item.latitude, item.longitude, window.viewerThree)
+ this.setUrlTemplateImageryProvider(item.selectItem, window.viewerThree)
+ },
+ selectItemFour (item, index) {
+ this.viewerFourLayers = item.childItem
+ this.$refs.ViewerFour.init()
+ this.goToViewerOneBylatlon(item.latitude, item.longitude, window.viewerFour)
+ this.setUrlTemplateImageryProvider(item.selectItem, window.viewerFour)
+ },
cameraSetView (viewer, camera) {
viewer.camera.setView({
destination: camera.position,
@@ -356,6 +724,13 @@
transform: translate(-50%, 0);
z-index: 99;
}
+ .selectname {
+ position: absolute;
+ top: 35px;
+ left: 30%;
+ transform: translate(-50%, 0);
+ z-index: 99;
+ }
}
.line-row {
--
Gitblit v1.9.3