cesium画飞线_Cesium+earthSD实现相机飞行动画

本文介绍如何利用Cesium和earthSD库创建相机跟随的飞行轨迹动画。首先,通过DtoR和RtoD函数转换经纬度,计算飞行距离和获取飞线路径。然后,使用getFlyLine创建飞线,createCylinder添加管道效果。最后,通过cameraFly函数实现相机贴线飞行,并调整飞行速度和路径显示。此外,还提供了清除管道和解除摄像机绑定的方法。
摘要由CSDN通过智能技术生成

//创建相机跟随

createCameraFollow(line) {//var p1 = [

//[[DtoR(-122.174699), DtoR(37.433888), 0], [ 2.0991215, 0.5497211,50] ]

//];

if (line.tgtIp === '' || line.srcIp ===line.tgtIp) {return}var p1 =[

[

[this.DtoR(line.srcIpLon * 1), this.DtoR(line.srcIpLat * 1), 0],

[this.DtoR(line.clueLon * 1), this.DtoR(line.clueLat * 1), 0]

]

];//获取飞行距离

//let distance = this.getDistance(p1[0])

let parms =[this.RtoD(p1[0][0][0]),this.RtoD(p1[0][0][1]),this.RtoD(p1[0][1][0]),this.RtoD(p1[0][1][1]),

]

let distance= this.getFlatternDistance(...parms)//获取飞线路径

let flyLine = this.getFlyLine(this._earth, p1)//添加管道

this.createCylinder(this._earth, flyLine)//摄像机贴线飞行

setTimeout(() =>{this.cameraFly(flyLine, distance)

},100)

},//摄像机贴线飞行

cameraFly (flyL

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现Cesium的三维漫游飞行效果可以通过以下步骤实现: 1. 创建一个Cesium Viewer对象: ``` var viewer = new Cesium.Viewer('cesiumContainer'); ``` 2. 通过Camera控制视角和位置: ``` viewer.camera.setView({ destination: Cesium.Cartesian3.fromDegrees(longitude, latitude, height), orientation: { heading: Cesium.Math.toRadians(heading), pitch: Cesium.Math.toRadians(pitch), roll: Cesium.Math.toRadians(roll) } }); ``` 3. 为视角添加动画效果: ``` var duration = 5.0; // 动画时间,单位为秒 Cesium.CameraFlightPath.createAnimationCartographic(viewer.scene, { destination: Cesium.Cartographic.fromDegrees(longitude, latitude, height), orientation: { heading: Cesium.Math.toRadians(heading), pitch: Cesium.Math.toRadians(pitch), roll: Cesium.Math.toRadians(roll) }, duration: duration }); ``` 4. 添加键盘和鼠标事件: ``` // 飞行到指定位置 function flyTo(longitude, latitude, height, heading, pitch, roll) { viewer.camera.flyTo({ destination: Cesium.Cartesian3.fromDegrees(longitude, latitude, height), orientation: { heading: Cesium.Math.toRadians(heading), pitch: Cesium.Math.toRadians(pitch), roll: Cesium.Math.toRadians(roll) } }); } // 监听键盘和鼠标事件 document.addEventListener('keydown', function(event) { switch (event.keyCode) { case 87: // W viewer.camera.moveForward(1000.0); break; case 83: // S viewer.camera.moveBackward(1000.0); break; case 65: // A viewer.camera.moveLeft(1000.0); break; case 68: // D viewer.camera.moveRight(1000.0); break; case 38: // Up arrow viewer.camera.lookUp(0.1); break; case 40: // Down arrow viewer.camera.lookDown(0.1); break; case 37: // Left arrow viewer.camera.lookLeft(0.1); break; case 39: // Right arrow viewer.camera.lookRight(0.1); break; default: return; } event.preventDefault(); }, false); ``` 通过以上步骤,即可实现Cesium的三维漫游飞行效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值