Appearance
动态网络拼接图层
该功能依赖 joCPL 提供 WDMS Services 实现;
如何使用
javascript
import { WDMSLayer } from "@jodvf/cesium-3d";
// 视频拼接实例
const videoMosaicer = new WDMSLayer(viewer, {
url: "http://47.92.252.186:8880/fcgi-bin/WDMServer",
videoUrl: "C:\\vid-f220731131737_15.ts"
});
// 开始视频拼接
videoMosaicer.start();
// 获取视频拼接状态
videoMosaicer.statusEvent.addEventListener((arg) => {
console.log(`驱动状态:${arg[0].msg}`);
});
videoMosaicer.mosaicerEvent.addEventListener((arg) => {
console.log(`拼接状态:${arg[0].textInfo}`);
});
// 关闭视频拼接
videoMosaicer.stop();WDMS 是什么
将 WMS 服务进行扩展,通过动态更新地图的原始数据,然后根据动态更新的原始数据通过 GetMap 方法获取更新的数据进行展示;

WDMS 服务组成
实现 WDMS 服务核心由网络请求调度器、地图图像渲染器、地图数据驱动器和时空数据驱动器组成;
- 网络请求调度器:负责解析
URL中的具体服务类型、操作请求以及操作请求的参数键值对集合,并根据解析出的具体网络服务类型,将请求分发给对应的请求处理模块;当请求处理模块响应了请求之后,还要负责将响应的结果返回给客户端。 - 地图图像渲染器:负责响应渲染指定地图数据的请求,即根据地图原始数据和指定样式去渲染地图图像并返回给请求方;
- 地图数据驱动器:负责响应对自身运行状态的请求,同时根据自身实现的业务;独立请求时空数据驱动器对指定地图原始数据进行读写操作;
- 时空数据驱动器:负责响应对指定地图原始数据进行读写操作的请求,其必须确保实现多进程/多线程并发读写的机制;
目前地图 WDMS 服务器是基于 MapServer 平台开发实现;将 MapServer 提供的地图绘制接口封装成地图图像渲染器;以视频拼接器(videoMosaicer)作为地图数据驱动器,**以 GDAL 极其插件作为**时空数据驱动器,提供跨进程数据读写机制;也就是基于 MapService 新增了 WDMS 接口,比如支持 PutDrive 和 GetDriver 接口,以及增加了一个驱动管理配置文件(DriverConfig.xml)其他 WMS 功能也可以使用;
WDMSLayer 请求流程
视频拼接整个渲染流程入下:


