| | |
| | | comprehensive_deletes, |
| | | comprehensive_selectModelByPageAndCount, |
| | | comprehensive_insertModel, |
| | | comprehensive_updateModel |
| | | } from "../../api/api.js"; |
| | | comprehensive_updateModel, selectByBuffer |
| | | } from '../../api/api.js' |
| | | import { |
| | | OverviewMap, |
| | | defaults as defaultControls, |
| | |
| | | name: "空间查询", |
| | | css: "twoMenu_imge52", |
| | | }, |
| | | { |
| | | id: "e3", |
| | | label: "synthesis.pickup", |
| | | name: "拾取", |
| | | css: "twoMenu_imge52", |
| | | }, |
| | | ], |
| | | [ |
| | | { |
| | |
| | | value: '其他模型', |
| | | label: '其他模型' |
| | | }], |
| | | targetY: 0.0, |
| | | modelClip:false, |
| | | clippingPlanes:null, |
| | | showPickUp:false, |
| | | }; |
| | | }, |
| | | methods: { |
| | |
| | | setIquery(res) { |
| | | switch (res) { |
| | | case "e2": |
| | | Viewer.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | this.$store.state.mapMenuBoolean = !this.$store.state.mapMenuBoolean; |
| | | this.$store.state.mapMenuBoxFlag = "1"; |
| | | break; |
| | | case "e1": |
| | | Viewer.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | this.$store.state.mapMenuBoolean = !this.$store.state.mapMenuBoolean; |
| | | this.$store.state.mapMenuBoxFlag = "2"; |
| | | break; |
| | | //拾取功能 |
| | | case "e3": |
| | | this.$store.state.mapMenuBoolean = false; |
| | | this.showPickUp = !this.showPickUp; |
| | | if (this.showPickUp){ |
| | | let that = this; |
| | | Viewer.screenSpaceEventHandler.setInputAction(function (event) { |
| | | let p = sgworld.Navigate.getMouseDegrees(event); |
| | | console.log(p); |
| | | that.getPickUpData(p); |
| | | }, Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }else { |
| | | this.$refs.queryinfo.closeAll(); |
| | | Viewer.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | } |
| | | break; |
| | | } |
| | | }, |
| | |
| | | // window.MXModel=null; |
| | | // } else { |
| | | var that = this; |
| | | if (window.model){ |
| | | that.modelClipping(); |
| | | }else { |
| | | var tileset = Viewer.scene.primitives.add( |
| | | new Cesium.Cesium3DTileset({ |
| | | name: res.cnName, |
| | | url: modelUrl+ "/tileset/m/SN/tileset.json", |
| | | maximumScreenSpaceError: 64, // 最大屏幕空间错误:16 |
| | | maximumMemoryUsage: 768, // 最大内存:512 |
| | | dynamicScreenSpaceError: true, // 减少离相机较远的屏幕空间错误:false |
| | | skipLevelOfDetail: true, // 在遍历时候跳过详情:false |
| | | }) |
| | | ); |
| | | tileset.readyPromise.then((tileset) => { |
| | | tileset.id = res.cnName; |
| | | tileset.layerId = res.id; |
| | | Viewer.flyTo(tileset); |
| | | that.modelClip = !that.modelClip; |
| | | if (that.modelClip){ |
| | | if (window.model){ |
| | | that.modelClipping(); |
| | | }); |
| | | window.model = tileset |
| | | } |
| | | else { |
| | | var tileset = Viewer.scene.primitives.add( |
| | | new Cesium.Cesium3DTileset({ |
| | | name: res.cnName, |
| | | url: modelUrl+ "/tileset/m/SN/tileset.json", |
| | | maximumScreenSpaceError: 64, // 最大屏幕空间错误:16 |
| | | maximumMemoryUsage: 768, // 最大内存:512 |
| | | dynamicScreenSpaceError: true, // 减少离相机较远的屏幕空间错误:false |
| | | skipLevelOfDetail: true, // 在遍历时候跳过详情:false |
| | | }) |
| | | ); |
| | | tileset.readyPromise.then((tileset) => { |
| | | tileset.id = res.cnName; |
| | | tileset.layerId = res.id; |
| | | Viewer.flyTo(tileset); |
| | | that.modelClipping(); |
| | | }); |
| | | window.model = tileset |
| | | } |
| | | } |
| | | else { |
| | | Viewer.entities.removeAll(); |
| | | } |
| | | // window.model = sgworld.Creator.create3DTilesets( |
| | | // "", |
| | |
| | | planes: [ // ClippingPlane对象数组集合 |
| | | new Cesium.ClippingPlane( // 裁切面 |
| | | new Cesium.Cartesian3(0.0, 0.0, -1.0), // 法线方向 |
| | | 0.0 // 原点到平面的最短距离,设置0就好 |
| | | 0// 原点到平面的最短距离,设置0就好 |
| | | ), |
| | | ], |
| | | enabled:true, |
| | | edgeWidth: 1.0, // 模型被裁切部分的截面线宽 |
| | | }); |
| | | let boundingSphere = window.model.boundingSphere; |
| | |
| | | }); |
| | | planeEntities.push(planeEntity); |
| | | } |
| | | this.clippingPlanes = clippingPlanes; |
| | | window.model.clippingPlanes = clippingPlanes; |
| | | |
| | | // Select plane when mouse down |
| | |
| | | handleAttatchChange(val) { |
| | | this.attacgSelection = val; |
| | | }, |
| | | //拾取数据获取 |
| | | async getPickUpData(info){ |
| | | let checkedLayers = JSON.parse(sessionStorage.getItem("checkedLayers")); |
| | | let showPop = false; |
| | | for (const item of checkedLayers) { |
| | | let name = item.url.replaceAll("LF:",""); |
| | | name = name.replaceAll("_",""); |
| | | let params = { |
| | | buffer:10, |
| | | limit:20, |
| | | name:name, |
| | | wkt:`POINT (${info.lon} ${info.lat})`, |
| | | } |
| | | const res = await selectByBuffer(params); |
| | | if (res.result && res.result.length > 0){ |
| | | this.$store.state.mapPopBoxFlag = "4"; |
| | | this.$store.state.pickUpPointInfo = info; |
| | | this.$refs && |
| | | this.$refs.queryinfo && |
| | | this.$refs.queryinfo.open("拾取分析", null,); |
| | | showPop = true; |
| | | break; |
| | | } |
| | | } |
| | | if (!showPop){ |
| | | this.$message.warning("暂无数据!"); |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.measureData = new Map(); |