11
lixuliang
2024-01-09 cbde2b4fb938ce62c204390544c52935906c8962
src/assets/js/Layer/model.js
@@ -11,6 +11,10 @@
        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++) {
@@ -21,9 +25,18 @@
    },
    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',
@@ -42,11 +55,10 @@
                    id: id,
                    sourceType: 'GLB',
                }
            }
            Bus.$emit("addOtherData", "对象", obj);
        }
    },
    setModelMouseMove() {
        if (store.state.addModelFlag) {
@@ -76,8 +88,8 @@
            id: res.id,
            url: url,
            scale: res.scale,
            minimumPixelSize : 200,
            maximumScale : 200000,
            minimumPixelSize: 200,
            maximumScale: 200000,
            modelMatrix: modelMatrix
        }));
@@ -166,7 +178,6 @@
        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);
@@ -176,7 +187,6 @@
            new Cesium.Matrix4());
        return modelMatrix;
    },
    getModelLayer() {
        if (this.modelLayer == null) {
            this.modelLayer = new Cesium.PrimitiveCollection();