From 7d57b0fef0f220dfe7c868ce1113a7ce6eb6c468 Mon Sep 17 00:00:00 2001
From: suerprisePlus <15810472099@163.com>
Date: 星期三, 21 八月 2024 11:23:06 +0800
Subject: [PATCH] 添加本地矢量地图服务,初始化视角切换

---
 src/assets/js/mapSdk/index.js |   76 +++++++++++++++++++++++++++++++++++++-
 1 files changed, 74 insertions(+), 2 deletions(-)

diff --git a/src/assets/js/mapSdk/index.js b/src/assets/js/mapSdk/index.js
index 6980051..e1610a9 100644
--- a/src/assets/js/mapSdk/index.js
+++ b/src/assets/js/mapSdk/index.js
@@ -1,15 +1,87 @@
+import mapConfig from './mapConfig';
+import mapData from './mapData';
+import mapServer from './mapServe';
+import * as turf from '@turf/turf';
+import store from '@/store';
 const mapInit = {
-    Init() {
+    async Init() {
         window.earthCtrl = new SmartEarth.EarthCtrl('sdkContainer', {
             // 闅愯棌榛樿搴曞浘
             defaultImagery: false,
             // 闅愯棌logo
             printLog: false,
             // sceneMode: SmartEarth.Cesium.SceneMode.SCENE2D
+            StaticFileBaseUrl: '/CimSDK/',
         });
+        // 鍒濆鍖朇esium
         window.Cesium = SmartEarth.Cesium;
+        // 鍒濆鍖朧iewer
         window.Viewer = earthCtrl.viewer;
-        Viewer.scene.globe.baseColor = Cesium.Color.fromCssColorString('#A9A9A9'); //璁剧疆鍦扮悆棰滆壊
+        //璁剧疆鍦扮悆棰滆壊
+        Viewer.scene.globe.baseColor = Cesium.Color.fromCssColorString('#A9A9A9');
+        Viewer.imageryLayers.removeAll()
+        // 鍦板舰鍔犺浇
+        const terrain = config.terrain;
+        if (terrain.isShow && terrain.isUrl) {
+            const terrainProvider = await Cesium.CesiumTerrainProvider.fromUrl(terrain.isUrl, {
+                requestWaterMask: true,
+                requestVertexNormals: true,
+            });
+
+            Viewer.terrainProvider = terrainProvider;
+        }
+        // Viewer.scene.screenSpaceCameraController.maximumZoomDistance =50000
+        // 榛樿璁剧疆搴曞浘
+        this.addImageLayer();
+        // 娣诲姞榧犳爣鐐瑰嚮浜嬩欢
+        this.addMapClick();
+    },
+    addImageLayer() {
+        const baseLayer = mapData.baseLayer;
+        // 娣诲姞澶╁湴鍥惧簳鍥�
+        // mapServer.addLayer({
+        //     serveType: 'tdMap',
+        //     url: baseLayer.sUrl + baseLayer.vecLayer + baseLayer.lUrl,
+        // });
+
+        mapServer.addLayer({
+            serveType: 'WMS',
+            url: config.geoServer.layers[1],
+        });
+        // 娣诲姞澶╁湴鍥炬爣娉�
+        // mapServer.addLayer({
+        //     serveType: 'tdMap',
+        //     url: baseLayer.sUrl + baseLayer.cvaLayer + baseLayer.lUrl,
+        // });
+        // 鍒濆鍖栬瑙�
+        this.setdefaultPerspective();
+    },
+    setdefaultPerspective() {
+        mapConfig.sertCameraTo(mapData.defaultPerspective);
+    },
+    addMapClick() {
+        // 涓簐iewer娣诲姞榧犳爣鐐瑰嚮浜嬩欢鐩戝惉
+        Viewer.screenSpaceEventHandler.setInputAction((event) => {
+            // 鑾峰彇鐐瑰嚮浣嶇疆鐨勪笘鐣屽潗鏍�
+            var pickedFeature = Viewer.scene.pick(event.position);
+            if (Cesium.defined(pickedFeature)) {
+                console.log(pickedFeature);
+                if (pickedFeature.id) {
+                    const obj = pickedFeature.id;
+                    var arr=[];
+                    for(var key in obj){
+                        arr.push({
+                            name: key,
+                            val: obj[key],
+                        });
+                        store.dispatch('mapLayers/changeMapInfo', []);
+                        if (arr.length > 0) {
+                            store.dispatch('mapLayers/changeMapInfo', arr);
+                        }
+                    }
+                }
+            }
+        }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
     },
 };
 export default mapInit;

--
Gitblit v1.9.3