之前写过相似的轨迹回放,按路径飞行demo的理解,但与实际数据结合起来的时候还是花了一些时间。

且之前的数据是已经处理成满足cesium要求的格式的了,实际上很多时候并不是,因此重新来梳理如何实现这个效果

先看数据格式

拿到这样的json之后,我们需要将时间与postion成对的存入property中

然后赋值给模型的position属性即可。

那么拿到这样的数据,首先对时间进行处理

设置漫游的起始时间与终止时间

时间与位置成对存储

加载模型

最后效果

代码

  var viewer = initCesium.initViewer('cesiumContainer',{animation: true,timeline: true,infoBox: false, //Disable InfoBox widgetselectionIndicator: false, //Disable selection indicatorshouldAnimate: true, // Enable animations// terrainProvider: Cesium.createWorldTerrain()});var url = "./onet.json"/*json文件url,本地的就写本地的位置,如果是服务器的就写服务器的路径*/var request = new XMLHttpRequest();request.open("get", url);/*设置请求方法与路径*/request.send(null);/*不发送数据到服务器*/request.onload = function () {/*XHR对象获取到返回信息后执行*/if (request.status == 200) {/*返回状态为200,即为数据获取成功*/var json = JSON.parse(request.responseText);let arr=json.RECORDSconsole.log(arr)let time=arr[0].f1let startTime=new Date(time.substring(0,4),time.substring(4,6),time.substring(6,8),time.substring(8,10),time.substring(10,12),time.substring(12,14))var start = Cesium.JulianDate.fromDate(startTime);time=arr[9].f1let endTime=new Date(time.substring(0,4),time.substring(4,6),time.substring(6,8),time.substring(8,10),time.substring(10,12),time.substring(12,14))var stop = Cesium.JulianDate.fromDate(endTime);viewer.clock.startTime = start.clone();viewer.clock.stopTime = stop.clone();viewer.clock.currentTime = start.clone();viewer.clock.clockRange = Cesium.ClockRange.LOOP_STOP; //Loop at the endviewer.clock.multiplier = 1;//arr=arr.slice(0,9)var position = computeCirclularFlight(arr);var entity = viewer.entities.add({//Set the entity availability to the same interval as the simulation time.availability : new Cesium.TimeIntervalCollection([new Cesium.TimeInterval({start : start,stop : stop})]),position : position,orientation : new Cesium.VelocityOrientationProperty(position),model : {uri : '../data/models/CesiumAir/Cesium_Air.gltf',minimumPixelSize : 64},path : {resolution : 1,material : new Cesium.PolylineGlowMaterialProperty({glowPower : 0.1,color : Cesium.Color.YELLOW}),width : 10}});viewer.trackedEntity=entityvar params={h:90,p:-90,r:0}// Object.defineProperty(params,"h", {//     set: function(newval){  // 通过set方法可以拿到新的值//          console.log(newval)//         this.h= newval//     }// })viewer.camera.setView({orientation: {heading : Cesium.Math.toRadians(180), // east, default value is 0.0 (north)pitch : Cesium.Math.toRadians(params.p),    // default value (looking down)roll : 0.0                             // default value}});//viewer.zoomTo(viewer.entities, new Cesium.HeadingPitchRange(0, Cesium.Math.toRadians(-90)));return}}

cesium 路径漫游相关推荐

  1. OSG路径漫游实现与应用

    路径漫游简介 路径漫游在OSG中即为视点或者模型按照我们自己设定的路径进行漫游的一种方法,原本在OsgViewer中就有,在第一次按键盘小写"z"开始记录动画路径,大写" ...

  2. Cesium上帝视角漫游

    Cesium上帝视角漫游 前言 在三维城市系统中,用户常常想要在无人操作的时候让三维场景自动播放漫游功能,这样能够让参观系统的人可以观看到三维城市模型的各个地区.漫游方式有很多种,比如跟随视角漫游.第 ...

  3. Cesium路径回放

    写项目时,有路径回放功能.但是网上资料有些不适用或者不全.写完之后想着放上来,共大家参考. 代码参考: cesium实现飞行漫游 cesium轨迹回放,按路径飞行 核心代码: 绘制轨迹线 const ...

  4. Cesium 飞行漫游 贴地漫游

    案例地址请看我的博客置顶文章(http://106.52.101.22/EasyGIS/index.html),此处列出了三个案例分别为 飞行漫游 贴地漫游 以及漫游信息实时展示. ========= ...

  5. Three.js指定路径漫游(站走切换、路径动画、展示路线、开始、暂停、继续、退出、镜头跟随)

    (由点生成曲线,npc沿曲线移动,相机跟随方式1)参考大佬: https://blog.csdn.net/weixin_40856652/article/details/125302355 (相机跟随 ...

  6. cesium实现自定义漫游路径

    cesium实现自定义漫游路径,实现cesium按照我们自己设置的路径漫游,也可以删除节点,添加节点,加速漫游,减速漫游.效果如下(记录) //公用时间czml,为后面的自定义路径提供模板 var c ...

  7. OSG 之学习五:OSG 漫游

    文章目录 说明 1. 操作器 2. 碰撞检测 3. 漫游实例 4. 制作路径漫游 5. 在 MFC 中编辑路径 6. 一些类参考,自行看之 说明 OSG 入门看的,大佬绕道 示例来源于<OSG程 ...

  8. matlab火星漫游车转向控制,OSG开发笔记(二十四):OSG漫游之平移与转向

    若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 本文章博客地址:https://blog.csdn.net/qq21497936/ ...

  9. 暴风魔镜VR自动漫游

    如何实现在暴风魔镜中自动路径漫游呢,很简单 1 禁用Mojing VR Head脚本组件 2 位MojingVrHead物体添加Animator组件 接下来就是K关键帧了!是不是很简单,呵呵! FR: ...

  10. 三维GIS/GIS开发学习路线、软件和数据、视频资源推荐

    GIS开发学习资源合集来了!!一份前所未有,全网都没有这么详细的资源合集来了,从基础入门视频.实战项目.GIS开发数据合集.开发软件等,囊括了GIS开发学习所以内容. 一.GIS和WebGIS简介: ...

最新文章

  1. 25. javacript高级程序设计-新兴的API
  2. Gradle 使用指南 -- 基础配置
  3. AOP基本概念、AOP底层实现原理、AOP经典应用【事务管理、异常日志处理、方法审计】...
  4. 艾欧币 不需繁琐存币不用学习使用钱包
  5. JAVA面试题(part7)--Integer类
  6. [css] 如何隐藏没有静音、自动播放的音视频?
  7. Boost学习之指针容器--pointer_container
  8. 信息学奥赛一本通 1358:中缀表达式值(expr)
  9. bootstrap 页面分成三列_20分钟成功编写bootstrap响应式页面 就这么简单
  10. 中科院开发者公开道歉:将木兰编程语言夸大为“完全自主开发”
  11. Windows 好用的护眼软件
  12. 深度学习入门——03 MNIST手写数字图像集识别实验
  13. 岁末年初,P2P网贷理财正当时
  14. 【三维CAD设计经验分享】CrownCAD设计:零件3D建模设计
  15. 和高手相处,能让你觉得自己也变得…
  16. 两台计算机的ip地址怎么配置,同一台电脑如何设置两个IP地址?电脑配置双ip地址图文教程...
  17. 不义联盟网站无法连接服务器,不义联盟:人间之神无法连接服务器如何解决
  18. 基于生理信号的多模态情绪识别模型
  19. 【新手教程】51Sim-One Cloud 2.0 构建标准案例2.0场景
  20. springboot,tkmybatis的逆向工程

热门文章

  1. (云之道知识产权侵权案)答 辩 状
  2. python图书馆抢座_Python爬虫——教你如何在大学图书馆抢座
  3. 2023年全球网络安全行业市场现状及发展趋势分析
  4. 利用防火墙搭建简单内外网
  5. Code Review 失败后总结出来的几个实践技巧
  6. 2022年云南医院三基考试神经外科疾病多选题及答案
  7. 数据采集(旅游蚂蜂窝)
  8. STTH1506DPI-ASEMI代理意法超快恢复二极管STTH1506DPI
  9. ICIP2020:VVC无损模式中ISP的快速实现
  10. oracle将结果集行转列显示