PointLayer

点可视化图层,用于在地图上批量绘制 GeoJSON 点数据,适合点量较大的场景。 几何类型支持 Point / MultiPoint。 两种绘制模式(由 icon 是否配置决定,二者互斥):

  • 形状模式(默认):画纯几何形状(圆、方、三角、星形等),样式见 PointShape;
  • 图标模式(配置 icon):用图片或 canvas 出图,icon 可以是图片 url, 也可以是 canvas(用它来画文字/数字)。

构造函数

  • 创建点图层

    参数类型说明
    options 可选PointLayerOptions配置项
    属性类型说明
    anchorPointAnchor锚点,决定坐标点落在形状的哪个位置
    dataany初始数据,同 PointLayer.setData 的入参
    enablePickedboolean是否开启鼠标交互(命中光标 + 事件派发)
    fillColorStyleValue<string>填充色,css 字符串
    fillOpacityStyleValue<number>填充透明度 [0,1],与图层级 opacity 相乘
    iconStyleValue<PointIconSource>图标:图片 url、canvas(可用来画文字/数字),或 {canvas, id}。 配置后进入图标模式,与形状模式互斥
    iconSizeStyleValue<number | [number, number]>图标显示尺寸 [w, h] 或 number(px),不设则用图片/canvas 自身尺寸
    idKeystring取要素 id 的字段名
    isFlatbooleantrue 贴地(大小随缩放变化);false 屏幕固定像素大小
    maxZoomnumber最大显示缩放等级
    minZoomnumber最小显示缩放等级
    mouseStyleChangeboolean命中后是否更换鼠标光标
    offsetStyleValue<[number, number]>像素偏移 [x, y]
    opacitynumber图层级透明度 [0,1],与逐点 fillOpacity 相乘
    pickThroughboolean命中后是否继续向下层派发
    pickTolerancenumber命中容差(css px)
    referCenterPoint图层参考中心点,规避大坐标浮点抖动
    renderStageRenderStage绘制阶段,取值见 RenderStage
    rotationStyleValue<number>旋转角度(度)
    scaleStyleValue<number>缩放比例
    shapeStyleValue<PointShape>形状类型
    sizeStyleValue<number>形状大小(px)
    strokeColorStyleValue<string>描边色,css 字符串
    strokeWeightStyleValue<number>描边宽度(px),0 表示不描边
    visibleboolean是否显示
    zIndexnumber显示层级,小的先画

    返回值 PointLayer

    示例代码1

    const layer = new BMap.PointLayer({
    shape: 'circle',
    size: 20,
    fillColor: 'rgba(50, 50, 255, 1)',
    referCenter: new BMap.Point(116.404, 39.915)
    });
    layer.setData({
    type: 'FeatureCollection',
    features: [
    { type: 'Feature', geometry: { type: 'Point', coordinates: [116.404, 39.915] }, properties: {} }
    ]
    });
    map.addLayer(layer);

事件

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

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

    返回值 void

  • 移除事件监听

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

    返回值 void

拾取

  • 返回值 boolean

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

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

    返回值 PointLayerItem

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

    参数类型说明
    enableboolean

    返回值 PointLayer

数据

  • 返回原始数据

    返回值 any

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

    参数类型说明
    geojsonany

    返回值 PointLayer

显示属性

  • 返回值 "building" | "poi"

  • 返回值 boolean

  • 返回值 number

  • 参数类型说明
    centerPoint

    返回值 void

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

    返回值 void

  • 参数类型说明
    visibleboolean

    返回值 void

  • 参数类型说明
    zIndexnumber

    返回值 void

枚举

形状模式锚点枚举

图标模式锚点枚举,用 [-1,1] 区间的向量表达

形状类型枚举

样式

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

    参数类型说明
    optionsPointLayerOptions
    属性类型说明
    anchorPointAnchor锚点,决定坐标点落在形状的哪个位置
    dataany初始数据,同 PointLayer.setData 的入参
    enablePickedboolean是否开启鼠标交互(命中光标 + 事件派发)
    fillColorStyleValue<string>填充色,css 字符串
    fillOpacityStyleValue<number>填充透明度 [0,1],与图层级 opacity 相乘
    iconStyleValue<PointIconSource>图标:图片 url、canvas(可用来画文字/数字),或 {canvas, id}。 配置后进入图标模式,与形状模式互斥
    iconSizeStyleValue<number | [number, number]>图标显示尺寸 [w, h] 或 number(px),不设则用图片/canvas 自身尺寸
    idKeystring取要素 id 的字段名
    isFlatbooleantrue 贴地(大小随缩放变化);false 屏幕固定像素大小
    maxZoomnumber最大显示缩放等级
    minZoomnumber最小显示缩放等级
    mouseStyleChangeboolean命中后是否更换鼠标光标
    offsetStyleValue<[number, number]>像素偏移 [x, y]
    opacitynumber图层级透明度 [0,1],与逐点 fillOpacity 相乘
    pickThroughboolean命中后是否继续向下层派发
    pickTolerancenumber命中容差(css px)
    referCenterPoint图层参考中心点,规避大坐标浮点抖动
    renderStageRenderStage绘制阶段,取值见 RenderStage
    rotationStyleValue<number>旋转角度(度)
    scaleStyleValue<number>缩放比例
    shapeStyleValue<PointShape>形状类型
    sizeStyleValue<number>形状大小(px)
    strokeColorStyleValue<string>描边色,css 字符串
    strokeWeightStyleValue<number>描边宽度(px),0 表示不描边
    visibleboolean是否显示
    zIndexnumber显示层级,小的先画

    返回值 PointLayer