From 12075d0fa73d963ff5d6dbc4727fb95fb6084961 Mon Sep 17 00:00:00 2001 From: surprise <15810472099@163.com> Date: 星期五, 01 三月 2024 09:32:40 +0800 Subject: [PATCH] 代码更新 --- src/assets/js/Map/menuTool.js | 128 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 126 insertions(+), 2 deletions(-) diff --git a/src/assets/js/Map/menuTool.js b/src/assets/js/Map/menuTool.js index e8c1774..08e846a 100644 --- a/src/assets/js/Map/menuTool.js +++ b/src/assets/js/Map/menuTool.js @@ -6,6 +6,7 @@ // import { Store } from "vuex"; import store from "@/store"; import temporaryTool from "./temporaryTools"; +import { getToken } from "@/utils/auth"; const menuTool = { toolMenu: null, toolFlag: null, @@ -21,6 +22,7 @@ exportSquare: null, imageryProvider: null, legendBox: null, + Point1: false, topTools(res) { this.toolFlag = res.id; @@ -172,10 +174,19 @@ }); }, + getLayrUrl(res) { + var url; + if (res.indexOf('{token}')>-1) { + const token = getToken(); + url = config.proxy + res.replaceAll("{token}", token); + } else { + url = res; + } + return url; + }, addTMSLayer(obj) { - var esri = new Cesium.WebMapServiceImageryProvider({ url: config.esri, name: 'esriLayer', @@ -643,6 +654,8 @@ window.rightViewer.imageryLayers.removeAll(); window.rightViewer = DoubleScreen.right._Viewer; window.rightViewer.animation.container.style.visibility = "hidden"; + window.rightViewer.scene.sun.show = false; //闅愯棌澶槼鍜屾湀浜� + window.rightViewer.scene.moon.show = false; // window.rightViewer.timeline.container.style.visibility = "hidden"; //澶ф皵灞� window.rightViewer.scene.globe.showGroundAtmosphere = false; @@ -698,7 +711,118 @@ }, //鐐规极娓� pointRoam() { - earthCtrl.Analysis.setPointFly(); + store.state.menuFlag = "pointRoam" + + Viewer.scene.globe.depthTestAgainstTerrain = true; + let tooltip = earthCtrl.Core.CreateTooltip(); + let isFly = false, PointFly; + let distance = 2000 //璁剧疆璺濈閫夋嫨鐐硅瀵熺殑鍒濆楂樺害 + //璁剧疆榧犳爣鏍峰紡 + earthCtrl.Core.mouse(earthCtrl.Viewer.container, 1, SmartEarthRootUrl + 'Workers/image/cursor/draw.cur'); + const pickHandler = new Cesium.ScreenSpaceEventHandler(earthCtrl.Viewer.scene.canvas); + const end = () => { + //鎻愮ず璇嶅叧闂� + tooltip.show(false); + pickHandler && pickHandler.destroy(); + //榧犳爣鏍峰紡鎭㈠ + earthCtrl.Core.mouse(earthCtrl.Viewer.container, 0); + PointFly.end(); //绉婚櫎鏃嬭浆瑙嗚椋炶 + } + const fly = (degree) => { + const duration = 3 // 浠庤捣濮嬬偣椋炲埌閫夋嫨鐨勭偣浣嶆椂闂� + //鍥炶皟缁曢 + const callback = function () { + PointFly = earthCtrl.Analysis.setPointFly({ + position: Cesium.Cartesian3.fromDegrees(degree.lon, degree.lat, degree.height+2000), + distance: distance, + }) + } + earthCtrl.camera.flyTo(degree.lon, degree.lat, 100000, 0, -90, 0, duration, callback) + } + pickHandler.setInputAction(function (movement) { + if (!isFly) { + tooltip.showAt(movement.position, '鐐瑰嚮缁撴潫缁曢'); + isFly = true; + let degree = earthCtrl.Navigate.getMouseDegrees(movement); + fly(degree) + } else { + end(); + } + }, Cesium.ScreenSpaceEventType.LEFT_CLICK); + + pickHandler.setInputAction(function (movement) { + !isFly && tooltip.showAt(movement.endPosition, '鐐瑰嚮閫夋嫨瀹氫綅鐐�'); + isFly && tooltip.showAt(movement.endPosition, '鐐瑰嚮缁撴潫缁曢'); + }, Cesium.ScreenSpaceEventType.MOUSE_MOVE); + + pickHandler.setInputAction(function (movement) { + distance -= movement * distance / 300; + distance < 1 && (distance = 1); + PointFly.distance = distance + }, Cesium.ScreenSpaceEventType.WHEEL); + + // earthCtrl.Analysis.setPointFly({distance:5000}); + // earthCtrl.measure.pickPosition({}, (e) => { + // Viewer.scene.globe.depthTestAgainstTerrain = false; + // const lon = e.result.longitude + // const lat = e.result.latitude + // const alt = e.result.alt + // const hei = 10000 //椋炶鍒扮偣浣嶇殑楂樺害 + // const heading = 0 + // const pitch = -90 + // const roll = 0 + // const duration = 3 //椋炶鏃堕棿 + // //鏍囪閫夋嫨鐨勭偣浣嶄负绾㈢偣 + // const Point1 = earthCtrl.factory.createPoint({ + // id: earthCtrl.factory.createUUID(), + // name: '鐐瑰嚮鐨勭偣', + // lon: lon, + // lat: lat, + // alt: 300, + // pixelSize: 15, + // color: SmartEarth.Cesium.Color.fromCssColorString("#ff0000"), + // outlineColor: SmartEarth.Cesium.Color.BLACK, + // outlineWidth: 1, + // }); + // this.Point1 = earthCtrl.factory.createBillboard({ + // name: "鏍囩鐐�", + // id: earthCtrl.factory.createUUID(), + // image:imageUrl+"/img/mark.png", + // width:16, + // height:22, + // lon: lon, + // lat: lat, + // alt: 10, + // scale: 1.5, + // }); + + + + + + // //鍥炶皟缁曢 + // const callback = () => { + // earthCtrl.tools.clearTool();//缁撴潫鎷惧彇 + // const useTime = 5 //鍗曚綅绉� + // //鏃嬭浆缁曢 + // const roate = earthCtrl.camera.rotateCamera({ + // lon: lon, + // lat: lat, + // distance: hei, + // pitch: -30, + // time: useTime + // }) + // const timeout = setTimeout(() => { + // roate.removeFromMap(); //绉婚櫎鏃嬭浆瑙嗚閿佸畾 + // clearTimeout(timeout) + // this.Point1.removeFromMap() + // }, useTime * 1000); + // } + // //椋炶 + // earthCtrl.camera.flyTo(lon, lat, hei, heading, pitch, roll, duration, callback) + + + // }) }, //绾挎极娓� lineRoam() { -- Gitblit v1.9.3