StyleImageInterface
定义于: src/style/style_image.ts:148
用于动态生成样式图像的接口;这是给实现者建模的规范,而不是导出的方法或类;
实现此接口的图像可以在每一帧中重新绘制;它们可以用于制作图标和图案的动画或使其响应用户输入;样式图像可以实现StyleImageInterface#render
方法;该方法在每一帧调用,可用于更新图像;
参见
向地图添加一个动画图标;
示例
`let flashingSquare = { width: 64, height: 64, data: new Uint8Array(64 * 64 * 4),
onAdd: function(map) {
this.map = map;
},
render: function() {
// 当图标在地图上时持续重绘
this.map.triggerRepaint();
// 根据时间在黑色和白色之间交替
let value = Math.round(Date.now() / 1000) % 2 === 0 ? 255 : 0;
// 检查图像是否需要更改
if (value !== this.previousValue) {
this.previousValue = value;
let bytesPerPixel = 4;
for (let x = 0; x < this.width; x++) {
for (let y = 0; y < this.height; y++) {
let offset = (y * this.width + x) * bytesPerPixel;
this.data[offset + 0] = value;
this.data[offset + 1] = value;
this.data[offset + 2] = value;
this.data[offset + 3] = 255;
}
}
// 返回true表示图像已更改
return true;
}
}
}
map.addImage('flashing_square', flashingSquare); `
属性
onAdd()?
optional
onAdd: (map
: Map,id
:string
) =>void
定义于: src/style/style_image.ts:170
当图层通过Map#addImage
添加到地图时调用的可选方法;
参数
参数 | 类型 | 描述 |
---|---|---|
map | Map | 刚刚添加此自定义图层的Map |
id | string | - |
返回值
void
onRemove()?
optional
onRemove: () =>void
定义于: src/style/style_image.ts:175
当图标通过Map#removeImage
从地图中移除时调用的可选方法;这给图像一个清理资源和事件监听器的机会;
返回值
void
render()?
optional
render: () =>boolean
定义于: src/style/style_image.ts:164
此方法在使用图标的每一帧之前调用一次;该方法可以选择用新图像更新图像的data
成员;
如果方法更新了图像,它必须返回true
来提交更改;如果方法返回false
或不返回任何内容,则假定图像没有更改;
如果更新不频繁,可能更容易使用Map#updateImage
来更新图像,而不是实现此方法;
返回值
boolean
如果此方法更新了图像,则为true
;如果图像未更改,则为false
;