核心链路:UWB 平台输出标签坐标与质量信息,服务端完成协议适配和状态聚合,空间服务进行坐标转换与楼层判断,前端三维引擎负责点位、轨迹和事件的可视化。
一条完整的数据链路
UWB 系统通常由定位标签、基站、定位引擎和业务接口组成。定位引擎通过 TDoA、TWR 或 AoA 等方式解算标签坐标,再以 WebSocket、MQTT、TCP 或 HTTP 接口向外提供数据。三维可视化平台不应直接把接口返回值画到模型上,而要经过稳定的数据处理链路。

- 协议接入
解析标签编号、时间戳、X/Y/Z、定位质量、电量和在线状态。 - 数据清洗
过滤重复包、异常跳点和超时数据,统一标签与人员、设备的业务关系。 - 空间转换
把 UWB 本地坐标转换为模型坐标,并判断楼层和业务区域。 - 状态分发
服务端按订阅范围向浏览器推送最新状态,避免每个客户端直接连接定位平台。 - 增量渲染
前端复用点位对象,只更新位置和状态,不在每一帧反复创建模型。
坐标校准是接入成败的关键
UWB 坐标通常以项目现场某个点为原点,BIM 或三维模型可能采用设计坐标、工程坐标甚至建模软件内部坐标。两者的原点、方向、单位和高程都可能不同。
二维平面至少需要两个控制点确定旋转、缩放和平移;复杂项目建议使用三个或更多分散的控制点做拟合,并保留残差用于验收。若涉及多楼层,还要单独核对 Z 轴方向、首层标高与层高。
单点只能修正平移,无法发现比例和旋转误差。距离原点越远,误差会越明显,最终出现标签沿错误方向移动或跨楼层漂移。
实时数据如何传到浏览器
| 方式 | 适用场景 | 特点 |
|---|---|---|
| WebSocket | 持续更新的实时点位 | 双向长连接,浏览器支持好,是常用选择 |
| MQTT over WebSocket | 已有物联网消息体系 | 主题订阅灵活,需要规划权限与消息粒度 |
| HTTP 轮询 | 低频、少量点位 | 实现简单,但延迟和请求开销较高 |
| SSE | 服务端单向状态推送 | 协议轻量,适合不需要客户端上行的场景 |
无论使用哪种协议,都应带上服务端时间戳与递增序列,便于客户端识别乱序和过期数据。浏览器断线重连后,先获取一次全量快照,再继续接收增量更新,可以避免状态缺失。
让点位移动既实时又稳定
将数据频率与渲染帧率分开
定位数据可能每秒更新 1 到 10 次,而浏览器通常以 60 帧渲染。前端可以保存相邻两个定位采样,用插值计算视觉位置,让移动连续,同时保持原始采样不被篡改。
对抖动和跳点进行分级处理
小范围抖动可使用指数平滑或卡尔曼滤波;超过合理速度的跳点应标记为异常,不宜直接做长距离动画。出现长时间无数据时,点位应切换为离线状态,而不是停在场景中继续显示为实时。
大规模点位使用批量渲染
几十个标签可以使用独立对象;上千标签则应考虑 InstancedMesh、精灵或合批标记。名称标签仅在选中、靠近或符合筛选条件时显示,避免 DOM 标签和文字纹理成为性能瓶颈。
从点位展示到业务能力
- 人员与设备检索:按名称、标签、部门或状态定位目标,并自动切换到所在楼层。
- 历史轨迹:按时间区间抽稀轨迹,展示停留点、速度与进出区域事件。
- 电子围栏:在服务端完成空间判断,向三维端推送进入、离开和滞留告警。
- 聚合统计:按楼层、区域和类别统计数量,远距离看聚合,近距离看具体对象。
- 联动视频:根据人员位置或告警区域推荐附近摄像头,缩短处置路径。
可靠性与安全设计
定位数据涉及人员轨迹时,应实施最小权限、传输加密、访问审计和保留期限管理。浏览器只应收到当前用户有权查看的区域与字段,标签身份映射也不应由前端自行拼接。
系统还要考虑基站故障、消息堆积、客户端断网和模型版本变更。建议监控定位延迟、在线标签数、异常点比例、推送连接数和渲染帧率,并为模型与校准参数建立版本关联。
上线验收清单
- 控制点校准误差满足项目要求,远端位置没有累积偏差。
- 普通区域、楼梯、电梯和楼层边界均完成实走测试。
- 断线重连、乱序、重复与超时数据有明确处理。
- 目标点位数量下,首屏时间、交互帧率和内存占用稳定。
- 搜索、筛选、告警和轨迹功能与业务权限一致。
未之鸢三维引擎可对接 UWB、蓝牙、卫星与业务定位数据,并在多楼层场景中提供统一的空间映射与可视化。
咨询 UWB 三维接入