百度地图开放平台
更新时间: 2026/10/27 19:36

地图上的元素按固定的层次自下而上叠加渲染,位于上层的元素会遮盖下层元素。了解渲染顺序,有助于理解“贴地的多边形被楼块挡住”“点标记压住地图 POI”这类显示效果。

整体渲染顺序

自上而下,各层次包含的内容如下:

层次内容相关类与配置

Marker(最上层)

点标记、文本标注、信息窗口等标注类元素,始终绘制在最上层

BMap.Marker、BMap.Label、BMap.InfoWindow

地图 POI

底图自带的 POI 图标与文字

BMap.DisplayOptions 的 poi、poiIcon、poiText

楼块

底图数据驱动的 3D 建筑物,仅 WebGL 渲染方式支持

BMap.DisplayOptions 的 building

覆盖物

折线、多边形、圆、矩形、图片覆盖物等绘制在地面上的图形

BMap.Polyline、BMap.Polygon、BMap.Circle、BMap.Rectangle、BMap.GroundOverlay

可视化图层

点、线、面数据可视化图层,用于展示大数据量的业务数据

BMap.PointLayer、BMap.PolylineLayer、BMap.PolygonLayer、

BMap.BarLayer、BMap.FlyLineLayer 等

默认位于瓦片图层之上、覆盖物之下,可通过 renderStage 属性调整所在层次,详见下文“调整可视化图层的层次”。

瓦片图层

叠加在底图之上的栅格或矢量瓦片图层,如自定义瓦片、第三方标准图层、实时路况

BMap.RasterTileLayer、BMap.WMTSLayer、BMap.WMSLayer

基础底图(最底层)

道路、水系、绿地、行政区划等底图要素,由地图实例自身渲染

BMap.Map、map.setMapStyle()

调整可视化图层的层次

可视化图层默认绘制在瓦片图层之上、覆盖物之下。通过图层的 renderStage 属性,可以把它放到其他层次,例如让图标图层叠在 POI 文字之上。
renderStage 的值表示该图层排在此阶段之后绘制,即叠在该阶段之上。

取值绘制位置

'basemap'

底图之后、瓦片图层之前,会被瓦片图层压住

'tilelayer'(默认)

瓦片图层之后、覆盖物之前

'overlay'

覆盖物之后

'building'

楼块之后、POI 文字之前

'poi'

POI 文字之后,仍在 Marker 之下

// 面图层叠在楼块之上、POI 文字之下
var polygonLayer = new BMap.PolygonLayer({ renderStage: 'building' });
// 图标图层叠在 POI 文字之上
var pointLayer = new BMap.PointLayer({ renderStage: 'poi' });
// 运行时调整,传入 null 恢复默认
pointLayer.setRenderStage('overlay');
pointLayer.getRenderStage(); // 'overlay'
pointLayer.setRenderStage(null);
  • 取值不合法时,控制台会输出告警,并按默认值 'tilelayer' 处理。

  • Marker 始终在最上层,没有能压住 Marker 的取值。

  • 同一取值内,其他类型图层先绘制,可视化图层后绘制;两类图层的 zIndex 不能互相比较,不能用 zIndex 调整它们之间的顺序。

控制各层的显示

通过 map.setDisplayOptions(options) 可以整体开关某一层的显示,常用于减少视觉干扰或排查遮挡问题。

参数说明

building

是否显示 3D 楼块,默认 true

poi

是否显示地图 POI,默认 true;为 false 时 poiIcon、poiText 不再生效

poiIcon

是否显示 POI 的图标,默认 true

poiText

是否显示 POI 的文字,默认 true

layer

是否显示图层,默认 true

overlay

是否显示覆盖物,默认 true

street

是否显示路网,仅对卫星图和地球模式有效,默认 true

indoor

是否显示室内图,默认 false

map.setDisplayOptions({
building: false, // 隐藏楼块,避免遮挡贴地绘制的覆盖物
poiText: false // 只保留 POI 图标,不显示文字
});
常见现象
  • 贴地绘制的多边形被建筑物遮挡:楼块位于覆盖物之上,可关闭 building 显示。

  • 点标记总是压在地图 POI 和楼块之上:Marker 处于最上层,属于预期表现;如需减少干扰可关闭 POI 显示。

  • 给可视化图层设置很大的 zIndex 仍然盖不住覆盖物:zIndex 只在同一层内生效,不能跨层调整。如需让可视化图层压在覆盖物之上,请设置 renderStage 为 'overlay'。

上一篇

地图常用名词

下一篇

展示地图
本篇文章对您是否有帮助?