TextLayer

文本可视化图层,用于在地图上批量绘制文字标注,适合文本量较大的场景。 几何类型支持 Point / MultiPoint。

构造函数

  • 创建文本图层

    参数类型说明
    options 可选TextLayerOptions配置项
    属性类型说明
    anchorStyleValue<TextAnchor>锚点,决定坐标点落在文字的哪个位置
    collidesboolean是否开启碰撞剔除(密集时自动隐藏互相压盖的文字)
    colorStyleValue<string>文字颜色,css 字符串
    dataany初始数据,同 TextLayer.setData 的入参
    enablePickedboolean是否开启鼠标交互(命中光标 + 事件派发)
    fillOpacityStyleValue<number>透明度 [0,1],与图层级 opacity 相乘
    fontFamilyStyleValue<string>字体
    fontSizeStyleValue<number>字号(px)
    fontWeightStyleValue<string | number>字重
    idKeystring取要素 id 的字段名
    isFlatbooleantrue 贴地(大小随缩放变化);false 屏幕固定像素大小
    lineHeightnumber行高(px)
    margin[number, number]碰撞盒外扩 [x, y],控制文字之间的最小间距
    maxZoomnumber最大显示缩放等级
    minZoomnumber最小显示缩放等级
    mouseStyleChangeboolean命中后是否更换鼠标光标
    offsetStyleValue<[number, number]>像素偏移 [x, y]
    opacitynumber图层级透明度 [0,1],与逐条 fillOpacity 相乘
    padding[number, number]图集槽位内边距 [x, y]
    pickThroughboolean命中后是否继续向下层派发
    pickTolerancenumber命中容差(css px)
    referCenterPoint图层参考中心点,规避大坐标浮点抖动
    renderStageRenderStage绘制阶段,取值见 RenderStage
    rotationStyleValue<number>旋转角度(度)
    scaleStyleValue<number>缩放比例
    strokeColorStyleValue<string>描边色,css 字符串
    strokeWeightStyleValue<number>描边宽度(px),0 表示不描边
    textStyleValue<string>文案,不设则读要素的 properties.text
    textAlign"center" | "left" | "right"多行时的对齐方式
    textMaxWidthnumber超过该宽度(px)换行,0 表示不换行
    visibleboolean是否显示
    waitTimenumber碰撞剔除的节流间隔(ms)
    zIndexnumber显示层级,小的先画

    返回值 TextLayer

    示例代码1

    const layer = new BMap.TextLayer({
    text: (properties) => properties.name,
    fontSize: 14,
    color: '#333',
    referCenter: new BMap.Point(116.404, 39.915)
    });
    layer.setData({
    type: 'FeatureCollection',
    features: [
    { type: 'Feature', geometry: { type: 'Point', coordinates: [116.404, 39.915] }, properties: { name: '北京' } }
    ]
    });
    map.addLayer(layer);

事件

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

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

    返回值 void

  • 移除事件监听

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

    返回值 void

拾取

  • 返回值 boolean

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

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

    返回值 TextLayerItem

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

    参数类型说明
    enableboolean

    返回值 TextLayer

数据

  • 返回原始数据

    返回值 any

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

    参数类型说明
    geojsonany

    返回值 TextLayer

显示属性

  • 返回值 number

  • 返回值 "building" | "poi"

  • 返回值 boolean

  • 返回值 number

  • 参数类型说明
    opacitynumber

    返回值 void

  • 参数类型说明
    centerPoint

    返回值 void

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

    返回值 void

  • 参数类型说明
    visibleboolean

    返回值 void

  • 参数类型说明
    zIndexnumber

    返回值 void

枚举

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

样式

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

    参数类型说明
    optionsTextLayerOptions
    属性类型说明
    anchorStyleValue<TextAnchor>锚点,决定坐标点落在文字的哪个位置
    collidesboolean是否开启碰撞剔除(密集时自动隐藏互相压盖的文字)
    colorStyleValue<string>文字颜色,css 字符串
    dataany初始数据,同 TextLayer.setData 的入参
    enablePickedboolean是否开启鼠标交互(命中光标 + 事件派发)
    fillOpacityStyleValue<number>透明度 [0,1],与图层级 opacity 相乘
    fontFamilyStyleValue<string>字体
    fontSizeStyleValue<number>字号(px)
    fontWeightStyleValue<string | number>字重
    idKeystring取要素 id 的字段名
    isFlatbooleantrue 贴地(大小随缩放变化);false 屏幕固定像素大小
    lineHeightnumber行高(px)
    margin[number, number]碰撞盒外扩 [x, y],控制文字之间的最小间距
    maxZoomnumber最大显示缩放等级
    minZoomnumber最小显示缩放等级
    mouseStyleChangeboolean命中后是否更换鼠标光标
    offsetStyleValue<[number, number]>像素偏移 [x, y]
    opacitynumber图层级透明度 [0,1],与逐条 fillOpacity 相乘
    padding[number, number]图集槽位内边距 [x, y]
    pickThroughboolean命中后是否继续向下层派发
    pickTolerancenumber命中容差(css px)
    referCenterPoint图层参考中心点,规避大坐标浮点抖动
    renderStageRenderStage绘制阶段,取值见 RenderStage
    rotationStyleValue<number>旋转角度(度)
    scaleStyleValue<number>缩放比例
    strokeColorStyleValue<string>描边色,css 字符串
    strokeWeightStyleValue<number>描边宽度(px),0 表示不描边
    textStyleValue<string>文案,不设则读要素的 properties.text
    textAlign"center" | "left" | "right"多行时的对齐方式
    textMaxWidthnumber超过该宽度(px)换行,0 表示不换行
    visibleboolean是否显示
    waitTimenumber碰撞剔除的节流间隔(ms)
    zIndexnumber显示层级,小的先画

    返回值 TextLayer