首页 / OpenLayers / 使用示例
逐帧动画图标
用 canvas 生成 8 帧光点图标,定时替换要素样式形成循环动画,图标保持屏幕像素尺寸,缩放地图不影响节奏。
源码与运行效果
说明
官方示例把一张 GIF 交给 ol.style.Icon,帧动画由浏览器播放,OpenLayers
只负责把当前帧绘到地图上。为了让示例不依赖外部图片,这里用 canvas 逐帧画出光圈扩散效果,
再取 toDataURL() 生成 8 个图标。
逐帧样式在初始化时缓存成 ol.style.Style 数组,切换时只调用
feature.setStyle(),避免每一帧都新建样式对象。图标默认以屏幕像素为单位,
缩放地图不会改变它的大小。
| 操作 | 结果 |
|---|---|
| 勾选「播放动画」 | 图标按 120 ms 的间隔循环切换 |
| 取消勾选 | 停在当前帧,状态栏保留帧号 |
| 缩放地图 | 图标尺寸不变,动画节奏不受影响 |