Skip to content

terrain-flat-mask渲染插件

在带有地形的图层上,将指定区域内的地形拉平为平面效果的地形遮罩渲染插件。

terrain-flat-mask渲染插件用面数据生成地形遮罩:在遮罩范围内绘制一个平面,配合fill渲染插件(先画fill,再画遮罩)可实现地形开挖、削平等效果。遮罩平面默认绘制在要素自身高度上,可通过dataConfig的altitudeOffset调整高度。

注:该插件需要图层开启 awareOfTerrain 选项(感知地形)时才作为地形遮罩生效(源码 TerrainFlatMaskPainter.isTerrainMask 返回 layer.options.awareOfTerrain)。

配置说明

js
{
  // [必填] 渲染插件对象
  renderPlugin: {
    // [必填] 插件类型,固定为terrain-flat-mask
    type: "terrain-flat-mask",
    // [必填] 数据配置
    dataConfig: {
      // [必填] 数据类型,固定为fill
      type: "fill",
      // [可选] 默认为0,单位米
      // 遮罩平面的垂直偏移高度
      altitudeOffset: 3500
    },
    // [可选] 默认为null
    // 渲染场景配置
    sceneConfig: {
      // [可选] 默认为 "one"
      // WebGL的blendEquation的src参数,可选的值有:
      // 0, 1, "src color", "one minus src color", "src alpha", "one minus dst color", "dst alpha",
      // "one minus dst alpha", "constant color", "one minus constant color", "constant alpha",
      // "one minus constant alpha", "src alpha saturate"
      blendSrc: "one",
      // [可选] 默认为 "one minus src alpha"
      // WebGL的blendEquation的dst参数,可选的值有:
      // 0, 1, "src color", "one minus src color", "src alpha", "one minus dst color", "dst alpha",
      // "one minus dst alpha", "constant color", "one minus constant color", "constant alpha",
      // "one minus constant alpha", "src alpha saturate"
      blendDst: "one minus src alpha",
      // [可选] 默认为[0, 1]
      // WebGL深度值范围
      depthRange: [0, 1],
      // 【可选],默认为null
      // feature-filter类型,符合条件的数据将不被渲染
      excludes: null
      // [可选] 默认为[0, 1]
      // WebGL深度值范围
      depthRange: [0, 1]
    }
  },
  // [可选] 默认为true
  // 数据过滤条件
  filter: true,
  // 样式属性
  symbol: {}
}

filter 数据过滤条件的具体说明请点击这里

支持的数据类型

  • 如果是矢量瓦片数据,支持type为Polygon或者MultiPolygon类型的Feature
  • 如果是GeoJSON数据,支持type为Polygon或者MultiPolygon类型的Feature
  • 如果是矢量图层,则支持maptalks.Polygon, maptalks.MultiPolygon.

支持的Symbol样式属性

terrain-flat-mask渲染插件没有symbol样式属性,symbol可以设为空对象 {}

本文档已与 @maptalks/gl-layers 2026 源码核对(api-notes-others.md)