| | |
| | | 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/', |
| | | }); |
| | | // 初始化Cesium |
| | | window.Cesium = SmartEarth.Cesium; |
| | |
| | | window.Viewer = earthCtrl.viewer; |
| | | //设置地球颜色 |
| | | 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: '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() { |
| | | // 为viewer添加鼠标点击事件监听 |
| | | 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; |