1. 前言
高精地图(High Definition Map)作为自动驾驶安全性不可或缺的一部分,能有效强化自动驾驶的感知能力和决策能力,提升自动驾驶的等级。对于自动驾驶来说,高精地图主要是给机器用的,但是在制作和分析过程中依然需要人能够理解。本文将为大家简单介绍下,在过去的一段时间里高德高精地图业务团队,在WEB三维引擎技术方面的一些探索和实践,如何让复杂抽象的地理数据呈现在人们面前,满足其业务编辑和分析的诉求。
高精地图主要是对道路交通层对象(如:车道地面标线、交通灯、交通牌、防护栏、杆等)的精细化表达,包含其几何位置和属性。由于对精度要求极高,它的制作主要还是依赖激光点云,通常都是海量的数据,一个路口的点云量就可能上亿,这就对渲染引擎的性能有较高要求,要满足对海量点云实时渲染和拾取编辑。
起初,我们调研了市面上主流的Web三维地图引擎:Mapbox、Cesium、JS API、L7等,它们普遍对点云的加载处理能力支持不够,偏向于对抽象的点、线、面表达,精细化渲染能力不足,同时也满足不了作为编辑工具对复杂Topo关联关系的编辑能力。对于高德高精数据编辑分析的业务场景,需要更多的底层抽象能力建设。于是,我们在高精业务中开启了三维引擎eagle.gl的探索实践之路。
先通过一个视频简单了解下目前高德三维引擎eagle.gl的能力,它实现了一套2/3D统一的地图数据编辑和可视化解决方案,具备很好的可扩展能力,目前已应用在高德高精地图数据生产、数据分析、以及新基建项目等业务。
Figure 1.1 高精地图渲染引擎能力展示
2. 引擎方案设计实现
基于上面的分析,我们需要实现一套满足高德业务场景需求的数据制作引擎能力。为了不重复造轮子,最大程度利用已有的开源能力,我们最终选用Threejs当作渲染层框架依赖。基于该框架,在上层构建GIS可视化和复杂编辑能力,最终实现构建一套2/3D一体化渲染引擎。同时面向未来智慧城市、5G IOT方向,构建数据团队面向业界看齐的GIS 3D可视化能力。
Figure 2.1 面向高精地图的2/3D一体化数字引擎
整个引擎工作可以拆分为三个部分(点云地图、矢量地图、模型地图),前端团队整体工作需要围绕这三个点去展开。
点云地图:对接多种点云资料格式的可视化(las/laz/bc/xbc/rds/bin),支持海量点云的实时渲染和编辑,满足主产线对点云资料的作业吸附能力。
矢量地图:主要对接在线生产产线矢量化成图能力,通过数据快照、命令行编辑模式、空间数据索引等能力实现矢量化3D数据的增删改查能力。
模型地图:主要面向数据成果应用层,进行数据预处理建模、实时建模编辑等,实现数据能力与高德客户端车道级渲染能力拉齐。