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 | 49 +++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 41 insertions(+), 8 deletions(-) diff --git a/src/assets/js/mapSdk/index.js b/src/assets/js/mapSdk/index.js index 9ea164b..e1610a9 100644 --- a/src/assets/js/mapSdk/index.js +++ b/src/assets/js/mapSdk/index.js @@ -1,10 +1,10 @@ import mapConfig from './mapConfig'; import mapData from './mapData'; import mapServer from './mapServe'; - +import * as turf from '@turf/turf'; +import store from '@/store'; const mapInit = { async Init() { - console.log(location) window.earthCtrl = new SmartEarth.EarthCtrl('sdkContainer', { // 闅愯棌榛樿搴曞浘 defaultImagery: false, @@ -19,6 +19,7 @@ window.Viewer = earthCtrl.viewer; //璁剧疆鍦扮悆棰滆壊 Viewer.scene.globe.baseColor = Cesium.Color.fromCssColorString('#A9A9A9'); + Viewer.imageryLayers.removeAll() // 鍦板舰鍔犺浇 const terrain = config.terrain; if (terrain.isShow && terrain.isUrl) { @@ -29,26 +30,58 @@ 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: 'tdMap', - url: baseLayer.sUrl + baseLayer.vecLayer + baseLayer.lUrl, + serveType: 'WMS', + url: config.geoServer.layers[1], }); // 娣诲姞澶╁湴鍥炬爣娉� - mapServer.addLayer({ - serveType: 'tdMap', - url: baseLayer.sUrl + baseLayer.cvaLayer + baseLayer.lUrl, - }); + // 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