数字孪生遇上GIS系统,艰难的融合之路
创始人
2024-06-03 14:59:03
0

1.数字孪生与GIS的关系

在数字孪生技术的实际项目应用中,有大量GIS系统的相关需求。例如大部分智慧城市项目几乎都有自己的测绘数据、DEM、DOM、倾斜摄影等数据,都需要接入到数字孪生系统当中。数字孪生需要的功能可以用类似山海鲸可视化这样的软件来实现,但是GIS系统能否接入到数字孪生软件当中,同时还能共享数字孪生软件中所有的功能呢?这里便引出了我们的下一个话题。

2.道阻且长的融合之路

这里以山海鲸可视化这款比较典型的数字孪生软件为例,它的3D引擎专门用于数字孪生,同时支持在软件内进行3D场景编辑,非常契合GIS融合这方面的需求。

(贴一下山海鲸可视化官网,有兴趣的朋友可以自己试试看,反正是免费的。)

目前,数字孪生软件和GIS系统的融合大概有以下三条路可以走:

1.整合CesiumJS到系统中

优势:CesiumJS非常成熟,几乎支持了大部分常用的GIS协议,且性能优化较好

劣势:CesiumJS自己实现了底层的渲染功能,无法直接嫁接到软件的渲染引擎当中

2.给iTown写一个中间件

优势:iTown底层基于Threejs,易于嫁接

劣势:iTown本身不成熟,即使整合成功也可能会面临额外工作

3.使用loaders.gl加载成功后,直接写入渲染引擎

优势:开发起来自由灵活,类似自研

劣势:对tiles的加载几乎需要自己实现

最终,考虑到市场对于稳定性的需求,以及研发时间上的限制,还是决定选择CesiumJS整合这条路径。然后经过一番深入的研究发现这条路实际也是道阻且长,网上仅搜索到了几篇文章谈到了ThreeJS和CesiumJS的整合方式。

(1) 直接将两个Canvas叠加到一起,并同步相机实现。但这种实现方式远不能满足深度整合的需求。

(2) 采用CesiumJS的DrawCommand来实现ThreeJS的渲染底层,这种方式整合程度更深,但是软件已经在自己的渲染引擎中做了太多的定制,几乎不可能在这个时候迁移到CesiumJS的DrawCommand当中去。

那么有没有既不需要动目前的渲染引擎底层,又不至于像是两个Canvas这种非常浅的整合方式呢?当然是有的。实际上,无论是CesiumJS还是类似ThreeJS,他们底层目前都是基于WebGL/WebGL2绘制到Canvas来实现的(WebGPU还远没有成熟),那么我们是不是可以直接在一个Canvas让CesiumJS先画,ThreeJS后画呢?答案显然是可以的。但是依然会面临非常多的整合问题和技术难关,这个在后面的文章中会逐一给大家解释。

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...
带头循环双向链表来咯!!! 前言:继上文,我们了解了结构最简单的一种链表---单链表那么我们今天就来...