import store from "../../../store"; import mapInfo from "./mapInfo"; import model from "./model"; const mapViewer = { leftClick: null, rightClick: null, addClick() { this.addLeftClick(); this.addRightClick(); }, addLeftClick() { this.leftClick = new Cesium.ScreenSpaceEventHandler(window.Viewer.canvas); this.leftClick.setInputAction(function (event) { let nPickFeature = Viewer.scene.pick(event.position); let cartesian = window.Viewer.camera.pickEllipsoid(event.position); 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永远等于 let coordinate = { longitude: Number(lng.toFixed(6)), latitude: Number(lat.toFixed(6)), altitude: Number(alt.toFixed(2)), heading: 0, pitch: 0, roll: 0, scale: 1, }; store.state.coordinate = coordinate; if (store.state.addModelFlag) { model.setModelCoord(coordinate); } if(store.state.isMeasureFlag){ store.state.measureCoordObj = coordinate; store.state.isShowMeasureCoord= true; } if (Cesium.defined(nPickFeature)) { if(nPickFeature.id && nPickFeature.id.properties){ mapInfo.setGeoJsonInfo(nPickFeature.id.properties) }else if(nPickFeature && nPickFeature.getProperty("name")){ if(nPickFeature.getProperty("name") == "DLJQT0007"){ store.state.isShowVideo= true; } } } if(store.state.isQueryFalag){ store.state.isQyeryCoord = coordinate; } }, Cesium.ScreenSpaceEventType.LEFT_CLICK) }, addRightClick() { this.rightClick = new Cesium.ScreenSpaceEventHandler(window.Viewer.canvas); this.rightClick.setInputAction(function (event) { let pickedObject = window.Viewer.scene.pick(event.position); store.state.isMeasureFlag = false; }, Cesium.ScreenSpaceEventType.RIGHT_CLICK) }, } export default mapViewer;