外观
图层体系与显隐控制
约 1104 字大约 4 分钟
2026-10-28
各渲染大类图层之间的固定优先级是怎样的
回复优先级由高到低依次为:矢量图层(GraphicLayer、GeoJsonLayer)、二维瓦片图层(WMS、ArcGIS、XYZ、WMTS 均属此类)、三维模型(3D Tiles、S3M)。该优先级由底层渲染机制决定,不受添加顺序影响。zIndex 参数的有效作用范围是什么
回复仅在同一渲染大类内部生效。瓦片与矢量分属不同渲染大类,修改 zIndex 无法改变二者的压盖关系。界面上也可在图层列表中直接拖拽调整顺序。如何调整同一大类图层之间的叠加顺序
回复添加zIndex 属性,或使用图层列表拖拽调整。影像图层与路网图层的层级调整同理。图层的 show:false 代表未加载还是未渲染
回复这是一个高频误解:show: false 的含义是实例已创建并载入内存,只是不渲染显示,并非未加载。该逻辑对所有继承 BaseLayer 的图层生效,包括 arcgis、geojson、3dtiles、graphic 等各类图层。图层控件取消勾选后显存是否会释放
回复不释放。系统通过 show 控制显示隐藏,图层对象仍驻留内存,并未从场景移除。getLayers 为何读不到 config.json 中配置的图层
回复需显式传参指定要取的范围:const layers = map.getLayers({
basemaps: true, // 是否取 config.json 中的 basemaps
layers: true, // 是否取 config.json 中的 layers
})show:false 的图层后续如何正确显示
回复不能只设置layer.show = true,因为该图层可能尚未 add 到 map。正确写法是先判断是否已添加:export function updateLayerShow(layer, show) {
if (show) {
if (!layer.isAdded) {
map.addLayer(layer)
}
layer.show = true
layer.flyTo() // 若不想勾选即定位,注释该行
} else {
layer.show = false
}
}多图层管理时应该控制显隐还是控制加载
回复树形结构多图层场景下,先判断图层是否已加载:未加载则加载,已加载则控制显隐。这样既避免重复加载,也避免内存堆积。如何获取地图上已加载的图层
回复调用map.getLayers() 即可。如何一次性清除地图上的所有图层
回复没有专用的一键清除方法,取map.getLayers() 后循环移除即可。移除矢量图层时若不能清空,可加 eachGraphic 遍历删除:graphicLayer.eachGraphic((graphic) => {
// 逐个处理
})图层能否分组进行统一操作
回复可以,使用 GroupLayer。适用于按组 id 索引、对组整体显示隐藏或销毁的场景,组内可混放模型图层与 geojson 等矢量图层。如何让图层不出现在图层管理树中
回复图层配置添加noLayerManage: true。如何为图层配置随机颜色
回复配置randomColor: true。如何设置同一文件夹下的图层互斥显示
回复可以,参照图层管理中的地形切换,使用 radio 类型。如何重载图层控制控件
回复调用mars3d.widget.activate(uri)。图层控制面板的显示隐藏参数在哪里
回复它不是一个现成的参数,需通过代码实现,可参考 widget 内的源码,图层控制面板亦然。能否加载自定义切片规则的图层服务
回复可以,参考示例 layer-tile/manage/edit。实体图层能否加载到自建的 viewer 上
回复不可以。只有 Cesium 原生的图层能加到 map.viewer 上。能否同时加载多个倾斜摄影图层
回复一张底图上可以加载多个倾斜摄影模型图层,但同一位置上的倾斜摄影只能加载一个。多相机同步或分屏对比场景可参考 map/double/compare 与 control/basis/mapSplit 示例。TMS 图层如何加载
回复使用 xyz 图层并添加tms: true,可在 config.json 中直接配置。ImageLayer 支持哪些图片格式
回复仅支持 png 与 jpg,不支持 psd 与 eps。GeoJsonLayer 能否替代 KmlLayer 加载文字标注
回复可以,参考 kml2json 示例。EchartsLayer 是否支持点击事件
回复支持点击事件,但没有 popup,需自行实现。czmlLayer 能否使用其他图层中的对象
回复可以,只要拿到对象即可跨图层使用,用 graphicLayer 的getGraphic 或 getGraphicByAttr 方法获取。