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