From f5763f787d5cc5aa0b7d248e0f494c4232f1e3f3 Mon Sep 17 00:00:00 2001 From: surprise <15810472099@163.com> Date: 星期一, 27 十一月 2023 16:31:21 +0800 Subject: [PATCH] 版本更新 --- src/assets/js/Map/index.js | 162 ++++++++++++++++++++++++++++++++---------------------- 1 files changed, 96 insertions(+), 66 deletions(-) diff --git a/src/assets/js/Map/index.js b/src/assets/js/Map/index.js index 5619b08..91803d7 100644 --- a/src/assets/js/Map/index.js +++ b/src/assets/js/Map/index.js @@ -1,105 +1,135 @@ //閰嶇疆鏂囦欢鍦板潃 -import config from "./config"; +// import config from "../../../../public/config/config"; //鏈嶅姟鍔犺浇閰嶇疆鏂囦欢 +import { Store } from "vuex"; import server from "./server"; - +import store from "@/store"; const InitMap = { earthCtrl: null, Viewer: null, + graticules: null, //鍦板浘鍒濆鍖� init3DMap() { - //璁剧疆鏈堢悆鍧愭爣绯� + SmartEarth.Cesium.ExternalParameter.eliminate = false; + SmartEarth.Cesium.ExternalParameter.changeApproximateTerrainHeights = true; + SmartEarth.Cesium.ExternalParameter.maxTerrainHeight = 2000000; + SmartEarth.Cesium.ExternalParameter.minTerrainHeight = -2000000; + SmartEarth.Cesium.ShadowMap.MAXIMUM_DISTANCE = 20000000000; + SmartEarth.Cesium.ExternalParameter.ellipsoidCoordinates = 'MOON2000' + window.Cesium = SmartEarth.Cesium; SmartEarth.Cesium.Ellipsoid.WGS84 = new SmartEarth.Cesium.Ellipsoid( 1737400.0, 1737400.0, 1737400.0 ); + + //椤甸潰鍒濆鍖� this.earthCtrl = new SmartEarth.EarthCtrl("cesiumContainer", { - StaticFileBaseUrl: "/CIMSDK/", + StaticFileBaseUrl: config.StaticFileBaseUrl, + ellipsoidCoordinates: 'MOON2000', + timeline: true, + shadowBackCul1: false }); - // this.earthCtrl.environment.disableAllEffect(); - - this.Viewer = this.earthCtrl._Viewer; - this.Viewer.scene.skyAtmosphere.show = false; - this.Viewer.scene.globe.depthTestAgainstTerrain = true; - + this.earthCtrl.Viewer.scene.debugShowFramesPerSecond = true + this.earthCtrl.coreMap.scene.screenSpaceCameraController.enableCollisionDetection = true; + this.earthCtrl.Viewer.scene.globe.terrainExaggeration = 1.00001 + // this.earthCtrl.shadowMap.maximumDistance = 10000.0; window.earthCtrl = this.earthCtrl; window.Viewer = this.earthCtrl._Viewer; + Viewer.scene.skyAtmosphere.show = false; window.Cesium = SmartEarth.Cesium; - // debugger; + window.sgworld = earthCtrl; + sgworld.Creator.SimpleGraphic.edit(true, { editProp: false }); - Viewer.imageryLayers.removeAll(); + // 鏈�灏忕缉鏀鹃珮搴︼紙绫筹級 + // Viewer.scene.screenSpaceCameraController.minimumZoomDistance =10000; + // 鏈�澶х缉鏀鹃珮搴︼紙绫筹級 + // Viewer.scene.screenSpaceCameraController.maximumZoomDistance = 5000000; + + //======================= + //闃村奖鍒嗘瀽 + Viewer.scene.globe.lightingFadeOutDistance = 5.8e+7; + Viewer.scene.globe.enableLighting = false; + earthCtrl.shadows = false; + //璁剧疆鐞冧綋棰滆壊 + window.Viewer.scene.globe.baseColor = new Cesium.Color.fromCssColorString('#A9A9A9'); + //娓呴櫎鎵�鏈夐粯璁ゅ浘灞� + window.Viewer.imageryLayers.removeAll(); + window.setLayer(); + + // Viewer.scene.globe.depthTestAgainstTerrain = true; + Viewer.scene.globe.depthTestAgainstTerrain = false; // 寮�鍚繁搴︽祴璇� + Viewer.animation.container.style.visibility = "hidden"; + Viewer.timeline.container.style.visibility = "hidden"; + //======================= + //澶ф皵灞� Viewer.scene.globe.showGroundAtmosphere = false; - - // let colorAll = { - // point: Cesium.Color.fromCssColorString("#ff0000"), - // polyline: Cesium.Color.fromCssColorString("#ffff0050"), - // polygon: Cesium.Color.fromCssColorString("#ffff0050"), - // }; - // this.earthCtrl.Analysis.spaceDistance(colorAll, () => {}); - - var terrain = new SmartEarth.Cesium.CesiumTerrainProvider({ - url: config.moonTerrain, - tilingScheme: new SmartEarth.Cesium.GeographicTilingScheme({ - ellipsoid: SmartEarth.Cesium.Ellipsoid.MOON, - }), - }); - Viewer.terrainProvider = terrain; - Viewer.scene.globe.terrainExaggeration = 5; - server.AddWmtesLayer(config.moonWmts); - // var param = { - // name: labelName, - // id: earthCtrl.factory.createUUID(), - // text: "鏂囧瓧宸ュ叿", - // font: '50pt monospace', - // outlineWidth: 2, - // fillColor: SmartEarth.Cesium.Color.RED, - // lon: 47.5087, - // lat: 23.6963, - // alt: 10 - // }; - // labelEntity = earthCtrl.factory.createLabel(param); - // server.AddTmsLayer(config.moonTms); - - - server.AddGeoWmsLayer(); - // server.AddTmsLayer('http://localhost:8080/abc'); - - // earthCtrl.camera.flyTo(47.5087, 23.6963, 300, 9.5, -45, 0.0, 5); - - // //娣诲姞榧犳爣宸﹀嚮浜嬩欢 - // this.addMouseLeftClickEvents(); - // this.addMouseMouseMoveEvents(); + sgworld._Viewer.scene.debugShowFramesPerSecond = false; + sgworld.Navigate.Stop(); //鍙栨秷椋炶鐘舵�� + sgworld.Navigate.setPosition(-1093596.38, 5729026.12, 4136590.41); + this.addMouseLeftClickEvents(); + this.addMouseLeftDownEvents(); }, - //榧犳爣宸﹂敭鐐瑰嚮浜嬩欢娣诲姞 - addMouseLeftClickEvents() { + addMouseLeftDownEvents() { if (window.handleLeftClick) { window.handleLeftClick.removeInputAction( Cesium.ScreenSpaceEventType.LEFT_CLICK ); //绉婚櫎浜嬩欢 window.handleLeftClick = null; } + const pickGlobeSlope = new SmartEarth.Cesium.PickGlobeSlope(earthCtrl.Viewer) window.handleLeftClick = new Cesium.ScreenSpaceEventHandler( window.Viewer.scene.canvas ); + var that = this; window.handleLeftClick.setInputAction(function (event) { - let cartesian = window.Viewer.camera.pickEllipsoid(event.position); - if (cartesian) { - let cartographic = Cesium.Cartographic.fromCartesian(cartesian); - let lng = Cesium.Math.toDegrees(cartographic.longitude); // 缁忓害 - let lat = Cesium.Math.toDegrees(cartographic.latitude); // 绾害 - let alt = cartographic.height; // 楂樺害锛屾き鐞冮潰height姘歌繙绛変簬0 - let coordinate = { - longitude: Number(lng.toFixed(6)), - latitude: Number(lat.toFixed(6)), - altitude: Number(alt.toFixed(2)), - }; + const angle = pickGlobeSlope.pickSlope(event.position) + if (store.state.slopeQueyFlag) { + if (!store.state.showSlopeQuey) { + store.state.showSlopeQuey = true; + } + store.state.slopeQueyValue = angle.toFixed(6); + } + }, Cesium.ScreenSpaceEventType.LEFT_CLICK); }, + //榧犳爣宸﹂敭鐐瑰嚮浜嬩欢娣诲姞 + addMouseLeftClickEvents() { + if (window.handleLeftDown) { + window.handleLeftDown.removeInputAction( + Cesium.ScreenSpaceEventType.LEFT_DOWN + ); //绉婚櫎浜嬩欢 + window.handleLeftDown = null; + } + window.handleLeftDown = new Cesium.ScreenSpaceEventHandler( + window.Viewer.scene.canvas + ); + var that = this; + window.handleLeftDown.setInputAction(function (event) { + let cartesian = window.Viewer.scene.pick(event.position); + if (Cesium.defined(cartesian)) { + + if (cartesian.id.shpType && cartesian.id.shpType == 'temporaryLayer') { + + that.setEditTemporaryLayer(cartesian.id._id) + } + + } + }, Cesium.ScreenSpaceEventType.LEFT_DOWN); + }, + setEditTemporaryLayer(res) { + // store.state.editTemporaryId = res; + // console.log(store.state.editTemporaryId) + + if (store.state.editTemporaryId && store.state.editTemporaryId == res) { + + store.state.setEditTemporaryShow = true; + } + }, addMouseMouseMoveEvents() { if (window.handleMouseMove) { window.handleMouseMove.removeInputAction( @@ -176,4 +206,4 @@ console.log(moonPosition); }, }; -export default InitMap; +export default InitMap; \ No newline at end of file -- Gitblit v1.9.3