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