飞机飞行以及飞行驶过轨迹cesium+vue项目

现在使用了udp接收数据(经度纬度高度和时间等数据),已经有一个飞机移动方法

    //改成飞机位置
    editModelPos(data) {
      for (let item of data) {
        let modelFJ = window.sceneIdMap[item.id]
        // 飞机老位置
        let onePosFJ = modelFJ.onePos;
        let pos = {x: item.x, y: item.y, z: item.z};
        let julianDate2 = this.addSampleData(modelFJ, pos, item.time);

        if (modelFJ.linkId) {
          for (let linkItem of modelFJ.linkId) {
            // 获取天线
            let modelTX = window.tianXianMap[linkItem];
            if(!modelTX){
                continue
            }

            // 天线老位置
            let onePosTx = modelTX.onePos;
            // 最终方向
            let orientation = modelFJ.orientation.getValue(julianDate2);
            // 最终位置
            let position = modelFJ.position.getValue(julianDate2);


            let chaju = Cesium.Cartesian3.subtract(onePosTx, onePosFJ, new Cesium.Cartesian3());
            let zuizhongPos = Cesium.Cartesian3.add(chaju, position, new Cesium.Cartesian3());
            // let p2 = this.toDegrees(zuizhongPos.x, zuizhongPos.y, zuizhongPos.z);

            // 绿盒子的位置
            var A = zuizhongPos;
            // 飞机的位置
            var B = position;
            var localToWorld_Matrix = Cesium.Transforms.eastNorthUpToFixedFrame(B);
            //求世界坐标到局部坐标的变换矩阵
            var worldToLocal_Matrix = Cesium.Matrix4.inverse(localToWorld_Matrix, new Cesium.Matrix4());
            //B点在局部坐标的位置,其实就是局部坐标原点
            var localPosition_B = Cesium.Matrix4.multiplyByPoint(worldToLocal_Matrix, A, new Cesium.Cartesian3());
            //A点在以B点为原点的局部的坐标位置
            var localPosition_A = Cesium.Matrix4.multiplyByPoint(worldToLocal_Matrix, B, new Cesium.Cartesian3());
            var m3 = Cesium.Matrix3.fromQuaternion(orientation);
            var m4 = Cesium.Matrix4.fromRotationTranslation(m3);
            // 计算盒子A点相对B点的向量
            var A1 = Cesium.Cartesian3.subtract(localPosition_A, localPosition_B, new Cesium.Cartesian3());
            //对A1向量应用旋转矩阵
            var p = Cesium.Matrix4.multiplyByPoint(m4, A1, new Cesium.Cartesian3());
            // 新的A的坐标
            var p2 = Cesium.Cartesian3.subtract(B, p, new Cesium.Cartesian3());
            let p3 = this.toDegrees(p2.x, p2.y, p2.z);

            this.addSampleData(modelTX, {x: p3.x, y: p3.y, z: p3.z}, item.time);
          }
        }
      }
    }

然后利用发过来的实时数据飞行以及显示飞行驶过轨迹

求大佬救命

可以用czml描绘轨迹还是其他方法

 

 

 

模型使用 路径的方式添加到场景中 , 处理position 用回调的方式, 实时处理你udp接收的 位置信息, 进行刷新飞机位置

我想知道这个功能实现了吗