PolygonLayer

面可视化图层,用于在地图上批量绘制 GeoJSON 面数据,适合面量较大的场景。

几何类型支持 Polygon / MultiPolygon(含洞)。可选描边(strokeWeight > 0, 内部用 PolylineLayer 实现)。支持纯色填充与整张图平铺填充,见 PolygonLayerOptions。

构造函数

  • 创建面图层

    参数类型说明
    options 可选PolygonLayerOptions配置项
    属性类型说明
    dataany初始数据,同 PolygonLayer.setData 的入参
    enablePickedboolean是否开启鼠标交互(命中光标 + 事件派发)
    fillColorStyleValue<string>填充色,css 字符串
    fillOpacityStyleValue<number>填充透明度 [0,1]
    fillTextureAlphaOnlybooleantrue 只用纹理 alpha 做镂空、颜色取 fillColor;false 用纹理自身颜色
    fillTextureSizenumber平铺时单张图在屏幕上的宽度(px),不传取图片真实宽度
    fillTextureUrlstring纹理图片地址,非空即启用平铺填充
    idKeystring取要素 id 的字段名
    maxZoomnumber最大显示缩放等级
    minZoomnumber最小显示缩放等级
    mouseStyleChangeboolean命中后是否更换鼠标光标
    pickThroughboolean命中后是否继续向下层派发
    pickTolerancenumber命中容差(css px)
    referCenterPoint图层参考中心点,规避大坐标浮点抖动
    renderStageRenderStage绘制阶段,取值见 RenderStage
    strokeColorStyleValue<string>描边色,css 字符串
    strokeOpacitynumber描边透明度 [0,1]
    strokeWeightStyleValue<number>描边宽度(px),0 表示不描边
    visibleboolean是否显示
    zIndexnumber显示层级,小的先画

    返回值 PolygonLayer

    示例代码1

    const layer = new BMap.PolygonLayer({
    fillColor: 'rgba(25, 25, 250, 0.6)',
    fillOpacity: 1,
    strokeColor: 'rgba(250, 250, 25, 1)',
    strokeWeight: 2,
    referCenter: new BMap.Point(116.404, 39.915)
    });
    layer.setData({
    type: 'FeatureCollection',
    features: [
    {
    type: 'Feature',
    geometry: {
    type: 'Polygon',
    coordinates: [[[116.40, 39.91], [116.42, 39.91], [116.42, 39.92], [116.40, 39.91]]]
    },
    properties: {}
    }
    ]
    });
    map.addLayer(layer);

事件

  • 添加事件监听(需 enablePicked 为 true)

    参数类型说明
    eventK事件名称
    handler(e: PolygonLayerEventMap[K]) => void事件处理函数

    返回值 void

  • 移除事件监听

    参数类型说明
    eventK事件名称
    handler(e: PolygonLayerEventMap[K]) => void事件处理函数

    返回值 void

拾取

  • 返回值 boolean

  • 命中测试:容器像素坐标 → 命中的多边形,未命中返回 null

    参数类型说明
    xnumber容器坐标 x(css px)
    ynumber容器坐标 y(css px)

    返回值 PolygonLayerItem

  • 开关鼠标交互(命中光标 + 事件派发)

    参数类型说明
    enableboolean

    返回值 PolygonLayer

数据

  • 返回原始数据

    返回值 any

  • 设置数据,支持 FeatureCollection / Feature / Feature[] / 裸 Geometry。 几何类型支持 Polygon / MultiPolygon

    参数类型说明
    geojsonany

    返回值 PolygonLayer

显示属性

  • 返回值 "building" | "poi"

  • 返回值 boolean

  • 返回值 number

  • 参数类型说明
    centerPoint

    返回值 void

  • 参数类型说明
    stage"building" | "poi"

    返回值 void

  • 参数类型说明
    visibleboolean

    返回值 void

  • 参数类型说明
    zIndexnumber

    返回值 void

样式

  • 批量更新样式。仅更新已声明的样式键;visible / zIndex / renderStage / referCenter / enablePicked 转发到对应 setter,其余未知键忽略并告警一次

    参数类型说明
    optionsPolygonLayerOptions
    属性类型说明
    dataany初始数据,同 PolygonLayer.setData 的入参
    enablePickedboolean是否开启鼠标交互(命中光标 + 事件派发)
    fillColorStyleValue<string>填充色,css 字符串
    fillOpacityStyleValue<number>填充透明度 [0,1]
    fillTextureAlphaOnlybooleantrue 只用纹理 alpha 做镂空、颜色取 fillColor;false 用纹理自身颜色
    fillTextureSizenumber平铺时单张图在屏幕上的宽度(px),不传取图片真实宽度
    fillTextureUrlstring纹理图片地址,非空即启用平铺填充
    idKeystring取要素 id 的字段名
    maxZoomnumber最大显示缩放等级
    minZoomnumber最小显示缩放等级
    mouseStyleChangeboolean命中后是否更换鼠标光标
    pickThroughboolean命中后是否继续向下层派发
    pickTolerancenumber命中容差(css px)
    referCenterPoint图层参考中心点,规避大坐标浮点抖动
    renderStageRenderStage绘制阶段,取值见 RenderStage
    strokeColorStyleValue<string>描边色,css 字符串
    strokeOpacitynumber描边透明度 [0,1]
    strokeWeightStyleValue<number>描边宽度(px),0 表示不描边
    visibleboolean是否显示
    zIndexnumber显示层级,小的先画

    返回值 PolygonLayer