| | |
| | | import { updateUserPwd } from "../../../api/api"; |
| | | import store from "../../../store"; |
| | | import Bus from "@tools/Bus"; |
| | | const model = { |
| | |
| | | this.title = item; |
| | | this.setModelMouseMove(); |
| | | }, |
| | | changeBatchLayer(item, res) { |
| | | store.state.addModelFlag = res; |
| | | this.title = item; |
| | | }, |
| | | deleteAll() { |
| | | if (!this.modelLayer) return; |
| | | for (var i = 0; i < this.modelLayer._primitives.length; i++) { |
| | |
| | | }, |
| | | setModelCoord(res) { |
| | | store.state.addModelFlag = false; |
| | | this.setModelMouseMove(); |
| | | // this.setModelMouseMove(); |
| | | if (res) { |
| | | var id = new Date().getTime(); |
| | | // 长度为62的数码数组 |
| | | var result = [] |
| | | var arr = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]; |
| | | for (var i = 0; i < 4; i++) { |
| | | var num = Math.floor(Math.random() * 62); |
| | | result.push(arr[num]); |
| | | } |
| | | result.join('') |
| | | var id = new Date().getTime() - Math.floor(Math.random() * 9000) + result; |
| | | |
| | | var obj = { |
| | | id: id, |
| | | sourceType: 'GLB', |
| | |
| | | name: this.title.name, |
| | | longitude: res.longitude, |
| | | latitude: res.latitude, |
| | | altitude: res.altitude, |
| | | altitude: 18.1, |
| | | heading: res.heading, |
| | | pitch: res.pitch, |
| | | roll: res.roll, |
| | |
| | | id: id, |
| | | sourceType: 'GLB', |
| | | } |
| | | |
| | | } |
| | | Bus.$emit("addOtherData", "对象", obj); |
| | | |
| | | } |
| | | |
| | | }, |
| | | setModelMouseMove() { |
| | | if (store.state.addModelFlag) { |
| | |
| | | this.getModelLayer(); |
| | | var modelMatrix = this.getModelMatrix(res.style); |
| | | var url = layerData.config.Model_URL + res.style.url; |
| | | |
| | | |
| | | var model = this.modelLayer.add(Cesium.Model.fromGltf({ |
| | | id: res.id, |
| | | url: url, |
| | | scale: res.scale, |
| | | minimumPixelSize: 64, |
| | | minimumPixelSize: 1, |
| | | maximumScale: 10, |
| | | modelMatrix: modelMatrix |
| | | |
| | | })); |
| | |
| | | var sm = Cesium.Matrix4.fromScale(new Cesium.Cartesian3(res.scale, res.scale, res.scale), new Cesium.Matrix4()); |
| | | model.modelMatrix = Cesium.Matrix4.multiply(model.modelMatrix, sm, model.modelMatrix); |
| | | }, |
| | | |
| | | getModelMatrix(res) { |
| | | var headingPitchRoll = new Cesium.HeadingPitchRoll(res.heading, res.pitch, res.roll); |
| | | var position = Cesium.Cartesian3.fromDegrees(res.longitude, res.latitude, res.altitude); |
| | |
| | | new Cesium.Matrix4()); |
| | | return modelMatrix; |
| | | }, |
| | | |
| | | getModelLayer() { |
| | | if (this.modelLayer == null) { |
| | | this.modelLayer = new Cesium.PrimitiveCollection(); |
| | |
| | | Viewer.scene.primitives.add(this.modelLayer); |
| | | } |
| | | }, |
| | | addImgUpLayer(res) { |
| | | var url = layerData.config.Model_URL + '/Data/img/mark1.png' |
| | | var citizensBankPark = viewer.entities.add({ |
| | | name: res.name, |
| | | id: res.id, |
| | | position: Cesium.Cartesian3.fromDegrees(res.x, res.y, res.z), |
| | | billboard: { //图标 |
| | | image: url, |
| | | width: 32, |
| | | height: 44, |
| | | pixelOffset: new Cesium.Cartesian3(0, -40, 0), |
| | | }, |
| | | properties: res, |
| | | }); |
| | | |
| | | }, |
| | | delImgUpLayer(res) { |
| | | var entity = Viewer.entities._entities._array; |
| | | for (var i = 0; i < entity.length; i++) { |
| | | var model = entity[i] |
| | | if (model.id === res.id) { |
| | | Viewer.entities.remove(model) |
| | | } |
| | | } |
| | | |
| | | }, |
| | | } |
| | | export default model; |