加载Maplibre style地图
“三维一张图”是自然资源部2021年提出的概念,要在原二维一张图基础上,扩充三维立体数据,包括DEM、倾斜摄影、激光点云、地下矿体等,成为完备的立体实景地图。 其中倾斜摄影,作为地表景观的首要细化数据,采集非常迅速,省一级的测绘成果,已经覆盖绝大部分城镇区域,面积超过数千平方公里。
Maplibre是全球领先的Web开源地图平台(从Mapbox1.x继承而来),通过矢量切片技术管理海量地图数据,通过style配置标准提供精美地图绘制, 成为二维一张图应用的优秀平台,被很多省级测绘单位,以及中国电建这样的大型行业用户所青睐。
Cesium则领衔三维WebGIS时代,通过3dtiles标准支持绝大多数三维数据,成为建设三维地球应用的基础,在各行业拥有大量的开发群体。 但它却不支持矢量切片,无法有效集成二维地图测绘成果。
省级三维一张图的核心问题,是要在倾斜摄影三维场景中,绘制海量地名地址标注,同时地表需要叠加线面图形,比如道路、水系、土地利用等传统二维地理要素。 下面分析主流webgis平台的支持现状。
Cesium:依靠对倾斜摄影的支持,在Web三维应用占据最大的份额,既然官方不支持矢量切片,开发社区就试图通过第三方扩展来渲染。 然而多年探索下来,也只是依靠Tileserver等工具发布瓦片服务,然后叠加到地形表面。性能大致还过得去, 但由于缺少立体标注,斜视观察的效果非常差,而且不能叠加到倾斜。如下图(点击图片看大图)
即使通过一些深度修改的第三方代码库,比如MapboxBasicRender,可以在本地渲染叠加纹理,依然不能解决立体标注的问题。 Cesium也可以通过GeoJson进行标注,通过贴地线面叠加倾斜摄影和地形,但应用仅限于小场景。对于省级平台动辄百万以上标注点的情况,其能力聊胜于无。
最近Cesium被并购,以后是否会增强对传统地图的支持,还有待观察,毕竟Bentley的主战场是数字基建方向。
Mapbox:走了商业化道路、淡出开源社区以后,快速转向三维地球,加上矢量切片的功底,做出了非常漂亮的场景, 甚至有些意见认为能够一统二三维webgis市场。然而对于3dtiles,Mapbox官方也是始终不予支持。
通过deck.gl等第三方图层,可以初步绘制倾斜,但由于缺少内核支持,深度融合能力受限。比如标注匹配地形高度, 叠加线面到倾斜摄影,实现起来就有较高难度。另外海量数据的深度性能优化,也需要核心层的管理调度。
可见两大平台各自拥有自己的数据标准,但目前并不能很好融合,成为制约三维一张图应用的问题。
Drawsee最初的矢量切片支持,是通过自己的接口,能够实现基本地图效果。后来经过更深入的需求调研,发现Maplibre拥有巨大的用户群体, 在许多行业应用中,style已经成为事实上的地图配置标准,只是还没有支持三维地球
Maplibre矢量切片渲染,立体标注会实时自动避让,地面线型丰富,沿线标注定位精准
于是Drawsee调整技术方向,开始直接支持Maplibre style文件加载,将矢量切片绘制融合到Drawsee的渲染流程中。
style地图 加载只需一行代码。线和面,通过纹理方式叠加到地形和倾斜表面;标注立体绘制到三维场景,自动避让,自动匹配高度,贴合地形和倾斜摄影。
返回的map对象,支持Maplibre原生API,实时控制图层显隐和颜色、线宽等绘制参数
let map = earthViewer.openStyleMap('/demodata/mvt/mpl/world.json');
直接使用style原始配色,渲染效果与maplibre最新的全球模式非常类似
影像背景 配置适合卫星影像背景的style,标注更为清晰,道路和水系贴合地形
城区密集标注依然能够流畅自动避让,动态调整道路沿线标定位置和文字方向
倾斜摄影 道路线条和面状区域,同样可以无缝叠加到倾斜摄影表面
标注自动匹配建筑物表面高度,根据观察距离计算遮挡关系,在一定范围内具有穿透性
GeoJson 通过geojson-vt动态切片,自动分层抽稀,点线面都可以支持高达数万实体,几十兆数据量。 中小规模的数据,就可以无需事先切片直接使用;调用服务返回的查询计算结果也可以实时绘制
放大时标注自动匹配地形高度
交互渲染 通过feature-state的概念,可以通过属性状态实时改变绘制参数,比如鼠标指取时立刻显示为高亮颜色。
不论是GeoJson还是预处理的切片,只要feature具有id就能查询;多个feature可以使用相同的id,形成组合实体, 比如一条国道由多个切片中的很多线段组成,选中时会同时高亮显示
Drawsee通过支持Maplibre style地图,支持原生API,加上原有的三维数字地球,倾斜摄影,模型光影特效,能够融合从宏观到微观,从二维到三维的各种海量数据, 没有明显短板,比其他WebGIS平台更全面,为三维一张图的应用,提供了强大的技术基础。
更多技术细节,请参考在线演示和开发示例。