SVGSymbol 类
此类表示通过 svg 的 path string 创建的矢量图标类,继承 Symbol 类。
构造函数
| 构造函数 | 描述 |
|---|---|
SVGSymbol(path: String | SymbolShapeType, opts: SymbolOptions) | 创建一个矢量图标实例。path 为 svg 中的 path 字符串或者已定义的符号常量,opts 为矢量图标的样式 |
SymbolOptions
| 属性 | 类型 | 描述 |
|---|---|---|
| anchor | Size | 符号的位置偏移值 |
| fillColor | string | 设置矢量图标的填充颜色。支持颜色常量字符串、十六进制、RGB、RGBA 等格式 |
| fillOpacity | Number | 设置矢量图标填充透明度,范围 0~1 |
| scale | Number | 设置矢量图标的缩放比例 |
| rotation | Number | 设置矢量图标的旋转角度,参数为角度 |
| strokeColor | string | 设置矢量图标的线填充颜色,支持颜色常量字符串、十六进制、RGB、RGBA 等格式 |
| strokeOpacity | Number | 设置矢量图标线的透明度,opacity 范围 0~1 |
| strokeWeight | Number | 设置线宽。如果此属性没有指定,则线宽跟 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'); // 修改填充颜色常见用途
- 创建预定义形状的图标
javascript
var symbol = new BMapGL.SVGSymbol(BMap_Symbol_SHAPE_STAR, {
scale: 2,
fillColor: '#ffff00'
});- 自定义矢量图标样式
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
});注意事项
- SVGSymbol 继承自 Symbol 类,可以使用 Symbol 类的所有方法
- 可以使用预定义的 SymbolShapeType 常量或自定义 SVG 路径
- 所有样式属性都可以通过对应的 set 方法动态修改
- 颜色值支持多种格式,包括颜色名称、十六进制、RGB、RGBA
- 透明度的取值范围是 0~1,0 表示完全透明,1 表示完全不透明
- 旋转角度以度为单位,正值表示顺时针旋转
