三维地图之DTS的实践探索

424 阅读3分钟

导览

  1. 什么是DTS,流程
  2. 应用场景,服务行业
  3. 上手体验,优劣势
  4. 使用体会等

上手

最近在工作中接触到了高渲染项目,其中用到的渲染引擎就是DTS平台,笔者也有一些心得体会,下面和大家分享下。

DTS平台是一套服务于三维场景的解决方案,包含Engine、Explorer、Cloud和SDK等模块。Engine支持将多种格式的地理数据转换为3DT(3D Twins Scenes Database);Explorer支持创建工程文件,设置坐标系,管理数据和场景展示等;Cloud可以渲染工程,并将渲染内容通过视频流提供web客户端使用;SDK则是前端同渲染服务器交互通信的封装库。简单来说,对于一个高渲染项目,我们需要将地形影像、DEM、倾斜模型、BIM模型等通过Engine转换为3DT格式,然后在Explorer中创建项目,导入前面转换出来的3DT数据,通过Cloud渲染工程,推送视频流,然后前端通过SDK开发系统,基于推送的视频流实现各种功能 。

DTS主要服务ToG行业,适用于各类大屏可视化项目,满足客户汇报需要。

SDK库推荐通过script引入,准备好视频流容器。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>DTS DEMO</title>
    <!-- 引入SDK库 -->
    <script src="/lib/ac.min.js"></script>
</head>
<body>
    <div id="player" style="width:800px;height:500px"></div>
    <script>...</script>
</body>
</html>

初始化视频流,加载场景,绑定地图事件等。

// 初始化视频流
const host = ''
const iid = ''
const options = {
    domId: 'player',
    iid, // 指定流
    apiOptions: {
        onReady: () => {
            // 一般执行重置场景、视角定位等操作
            __g.reset(1)
            // 此处坐标系需要同工程坐标系保持一致,此处选用EPSG:4547
            __g.camera.set(505610.585585, 2494064.020000, 100, 0, 0, 2)
        },
        onLog: (msg) => {},
        onEvent: (e) => {
            // 绑定LeftMouseButtonClick、camera相关事件和Tools相关事件等
        },
    },
    ui: {
        startupInfo: true,  // 是否现实页面加载详细信息
        statusButton: true,  // 是否显示状态按钮
    },
    events: {
        onVideoLoaded: () => {},  // 视频流加载成功回调
        onConnectClose: () => {}, // 连接断开回调
    },
}
const acPlayer = new DigitalTwinPlayer(host, options)

接下来就可以开发功能了,图层、标绘、日照、漫游、分析和测量等功能都可以通过SDK快速开发。

优点

  1. 可视化效果独一挡,下面是精修模型的效果 高渲染效果图.png
  2. 简单需求SDK够用,调API都能实现
  3. 客户端要求不高,相当于是播放视频

缺点

  1. 性能开销巨大,渲染服务器配置要求高
  2. 网络要求高,操作会有延迟
  3. 文档讲的不清楚,内部实现黑盒,难以排查问题
  4. 通用性差,从非高渲染项目迁移成本高,很多数据都需要经过坐标、格式转换才能应用(对于地理坐标系支持较差,很多数据都只支持投影坐标系,且要和工程坐标系保持一致)
  5. 拓展性不足,对于高度定制化的效果缺少实现途径

思考

首先,这是一套国产三维地图渲染引擎,相比于Cesium、或者2.5D地图,多了一种选择。 成本高昂与交互延迟限制了这套解决方案的使用场景,基本只能应用于局域网环境的可视化项目,而这契合了大部分政府项目的核心需求,因此也能在市场上占有一席之地。

我愿称之为不那么Web的三维场景解决方案。 以上。

参考

  1. DTS二次开发文档 Class: DigitalTwinPlayer