使用Cesium for Unreal插件构建航班轨迹
使用Cesium for Unreal插件构建航班轨迹
Build a Flight Tracker with Cesium for Unreal
使用航班ADS-B
数据创建USplineComponent
(样条曲线组件)构建航班轨迹,并通过Timeline
控制动画飞行的速度。
航班ADS-B数据
导入航班Excel
或者csv
数据到FAircraftRawData
。
USTRUCT(BlueprintType)
struct FAircraftRawData : public FTableRowBase
{GENERATED_USTRUCT_BODY()public:FAircraftRawData(): Longitude(0.0), Latitude(0.0), Height(0.0){}UPROPERTY(EditAnywhere, Category = "FlightTracker")double Longitude;UPROPERTY(EditAnywhere, Category = "FlightTracker")double Latitude;UPROPERTY(EditAnywhere, Category = "FlightTracker")double Height;
};
生成曲线轨迹
void APlaneTrack::LoadSplineTrackPoints(){if (this->AircraftsRawDataTable != nullptr && this->CesiumGeoreference != nullptr){int32 PointIndex = 0;for (auto& row : this->AircraftsRawDataTable->GetRowMap()){FAircraftRawData* Point = (FAircraftRawData*)row.Value;// Get row data point in lat/long/alt and transform it into UE4 pointsdouble PointLatitude = Point->Latitude;double PointLongitude = Point->Longitude;double PointHeight = Point->Height;// Compute the position in UE coordinatesglm::dvec3 UECoords = this->CesiumGeoreference->TransformLongitudeLatitudeHeightToUe(glm::dvec3(PointLongitude, PointLatitude, PointHeight));FVector SplinePointPosition = FVector(UECoords.x, UECoords.y, UECoords.z);this->SplineTrack->AddSplinePointAtIndex(SplinePointPosition, PointIndex, ESplineCoordinateSpace::World, false);// Get the up vector at the position to orient the aircraftconst CesiumGeospatial::Ellipsoid& Ellipsoid = CesiumGeospatial::Ellipsoid::WGS84;glm::dvec3 upVector = Ellipsoid.geodeticSurfaceNormal(CesiumGeospatial::Cartographic(FMath::DegreesToRadians(PointLongitude), FMath::DegreesToRadians(PointLatitude), FMath::DegreesToRadians(PointHeight)));// Compute the up vector at each point to correctly orient the planeglm::dvec4 ecefUp(upVector, 0.0);const glm::dmat4& ecefToUnreal = this->CesiumGeoreference->GetEllipsoidCenteredToUnrealWorldTransform();glm::dvec4 unrealUp = ecefToUnreal * ecefUp;this->SplineTrack->SetUpVectorAtSplinePoint(PointIndex, FVector(unrealUp.x, unrealUp.y, unrealUp.z), ESplineCoordinateSpace::World, false);PointIndex++;}this->SplineTrack->UpdateSpline();}}
蓝图实现控制动画
蓝图控制不同角度观察飞机姿态
参考文档
- Build a Flight Tracker with Cesium for Unreal
- Cesium for Unreal Getting Started Tutorials
- 使用Cesium for Unreal插件构建航班轨迹
使用Cesium for Unreal插件构建航班轨迹相关推荐
- 解决UE4(使用Cesium for unreal插件)拖入三维控件actor时,显示设置为场景后在界面中变为黑方块的解决办法
点击进入"batch_point_actor" 选中"widget" 右侧细节面板分别搜索"硬件"和"双面",勾选搜索结 ...
- Cesium for Unreal 数据加载 场景漫游 粒子效果 视频监控 VR预览
Cesium for Unreal: Cesium出了UE插件后一直没有时间学习体验,而且也从来没有接触过UE开发,只是在网上看过一些用UE做的数字孪生的案例,看上去确实是十分炫酷,正好最近工作不是很 ...
- matlab如何打开dcm_MATLAB结合Unreal Engine构建用以自动驾驶仿真测试的逼真驾驶场景...
之前的文章<MATLAB/Simulink自动驾驶工具箱之Driving Scenario Designer>提到了MathWorks自己开发的场景构建工具Driving Scenario ...
- 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
一个用于构建和推送Docker镜像的Maven插件. 使用Maven插件构建Docker镜像,将Docker镜像push到DockerHub上,或者私有仓库,上一篇文章是手写Dockerfile,这篇 ...
- 地区的json数据_Python 连接开放航空交通数据,轻松构建航班跟踪应用!
作者 | geomatics译者 | 弯月,责编 | 郑丽媛头图 | CSDN 下载自视觉中国出品 | CSDN(ID:CSDNnews) 以下为译文: 我喜欢跟踪位置这个主题,因为感觉像是我有第六感 ...
- Docker学习总结(31)——使用Maven插件构建docker镜像
Maven是一个强大的项目管理与构建工具.如果可以使用Maven构建Docker镜像,以下几款Maven的Docker插件比较常用. 插件名称 官方地址 docker-maven-plugin htt ...
- Python 连接开放航空交通数据,轻松构建航班跟踪应用!
作者 | geomatics 译者 | 弯月,责编 | 郑丽媛 头图 | CSDN 下载自视觉中国 出品 | CSDN(ID:CSDNnews) 以下为译文: 我喜欢跟踪位置这个主题,因为感觉像是我有 ...
- Cesium矢量地图插件CesiumVectorTile 发布新版本
Cesium矢量地图插件CesiumVectorTile 发布新版本 一周前CesiumVectorTile 1.2.1版本就已经更新到npm里了,本次更新主要解决Cesium最新版本适配问题. Ce ...
- IDEA中使用Docker插件构建镜像并推送至私服Harbor
IDEA中使用Docker插件构建镜像并推送至私服Harbor 一.开启Docker服务器的远程访问 1.1 开启2375远程访问 1.2 添加harbor镜像配置 1.3 重启docker服务 二. ...
最新文章
- 第二课_课后习题解答
- “金主爸爸快回来交学费吧!”疫情让中国留学生难以返校,国外高校面临资金短缺...
- Spring Cloud Stream消费失败后的处理策略(三):使用DLQ队列(RabbitMQ)
- 学python需要学数据库吗-python支持哪些数据库
- B1277 [HNOI2002]Tinux系统 树形dp
- 软考-信息系统项目管理师-信息系统项目管理基础
- windows10配置php7.1+apache2.4+mysql5.7
- 4 读写文件_和尧名大叔一起从0开始学Python编程-简单读写文件
- 如何解决常见的 Active Directory 复制错误
- python类内置装饰器(一分钟读懂)
- jQuery Mobile中的页面加载与跳转机制
- 关于如何将多个Cpp文件关联起来
- Spark学习内容介绍
- 服务器能打开其他网站打不开,为什么有的网页打不开其他能打开(浏览器网页打不开的原因有哪些)...
- mysql什么情况用引号_sql中什么时候需要用双引号,什么时候用单引号;
- arm9开发板学习笔记之程序烧录
- 【历史上的今天】8 月 18 日:硅谷神话的衰落;微软发布 QuickBASIC;Adobe Audition 问世
- 智慧消防物联网落地案例(云南、福建、陕西) java 物联网智慧消防
- scrapy——抓取知乎
- C# 实现WinForm窗口最小化到系统托盘代码
热门文章
- 你根本不会用搜索引擎
- 【Pygame实战】经典的坦克大战游戏,勾起童年无限回忆《坦克大战小霸王版》
- Source Code Pro字体使用
- python中info的功能_在python中,模块对象的info属性包含什么?
- [电动智能汽车-5]:原理 - 动力系统-电机控制器MCU与驱动电机(马达)
- 计算机网络原理 课后题2
- html飞机动画,html5 canvas纸飞机跟随鼠标飞行动画
- RedHat 6.4使用yum安装出现This system is not registered to Red Hat Sub
- 东南大学计算机科学与工程专业,东南大学的计算机系怎么样?
- 吴文俊: 中国古代数学对世界文化的伟大贡献