Skip to content

SVGSymbol 类

此类表示通过 svg 的 path string 创建的矢量图标类,继承 Symbol 类。

构造函数

构造函数描述
SVGSymbol(path: String | SymbolShapeType, opts: SymbolOptions)创建一个矢量图标实例。path 为 svg 中的 path 字符串或者已定义的符号常量,opts 为矢量图标的样式

SymbolOptions

属性类型描述
anchorSize符号的位置偏移值
fillColorstring设置矢量图标的填充颜色。支持颜色常量字符串、十六进制、RGB、RGBA 等格式
fillOpacityNumber设置矢量图标填充透明度,范围 0~1
scaleNumber设置矢量图标的缩放比例
rotationNumber设置矢量图标的旋转角度,参数为角度
strokeColorstring设置矢量图标的线填充颜色,支持颜色常量字符串、十六进制、RGB、RGBA 等格式
strokeOpacityNumber设置矢量图标线的透明度,opacity 范围 0~1
strokeWeightNumber设置线宽。如果此属性没有指定,则线宽跟 scale 数值相同

方法

方法返回值描述
setPath(path: string | SymbolShape)none设置矢量图标的路径
setAnchor(anchor: Size)none设置矢量图标的定位点,该定位点的位置以图标自身为基准
setRotation(rotation: number)none设置矢量图标的旋转角度,参数为角度
setScale(scale: number)none设置矢量图标的缩放比例
setStrokeWeight(strokeWeight: number)none设置矢量图标的线宽
setStrokeColor(color: string)none设置矢量图标的线填充颜色,支持颜色常量字符串、十六进制、RGB、RGBA 等格式
setStrokeOpacity(opacity: number)none设置矢量图标线的透明度,opacity 范围 0~1
setFillOpacity(opacity: number)none设置矢量图标填充透明度,opacity 范围 0~1
setFillColor(color: string)none设置矢量图标的填充颜色。支持颜色常量字符串、十六进制、RGB、RGBA 等格式

示例

javascript
// 使用预定义形状创建矢量图标
var symbol = new BMapGL.SVGSymbol(BMap_Symbol_SHAPE_CIRCLE, {
    scale: 2,
    fillColor: '#ff0000',
    fillOpacity: 0.8,
    strokeColor: '#000000',
    strokeOpacity: 1,
    strokeWeight: 2
});

// 使用自定义 SVG 路径创建矢量图标
var path = 'M 0 0 L 10 10 L 20 0 Z';  // 简单的三角形
var symbol = new BMapGL.SVGSymbol(path, {
    anchor: new BMapGL.Size(10, 5),
    fillColor: '#00ff00'
});

// 动态修改图标样式
symbol.setRotation(45);        // 旋转 45 度
symbol.setScale(1.5);         // 放大 1.5 倍
symbol.setFillColor('#0000ff'); // 修改填充颜色

常见用途

  1. 创建预定义形状的图标
javascript
var symbol = new BMapGL.SVGSymbol(BMap_Symbol_SHAPE_STAR, {
    scale: 2,
    fillColor: '#ffff00'
});
  1. 自定义矢量图标样式
javascript
var symbol = new BMapGL.SVGSymbol(BMap_Symbol_SHAPE_CIRCLE, {
    strokeColor: '#ff0000',
    strokeWeight: 2,
    strokeOpacity: 0.8,
    fillColor: '#ffffff',
    fillOpacity: 0.5,
    scale: 1.5
});

注意事项

  1. SVGSymbol 继承自 Symbol 类,可以使用 Symbol 类的所有方法
  2. 可以使用预定义的 SymbolShapeType 常量或自定义 SVG 路径
  3. 所有样式属性都可以通过对应的 set 方法动态修改
  4. 颜色值支持多种格式,包括颜色名称、十六进制、RGB、RGBA
  5. 透明度的取值范围是 0~1,0 表示完全透明,1 表示完全不透明
  6. 旋转角度以度为单位,正值表示顺时针旋转

基于 MIT 许可发布