# wind-layer
**Repository Path**: T1M_YD/wind-layer
## Basic Information
- **Project Name**: wind-layer
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: ISC
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-08-13
- **Last Updated**: 2025-08-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# wind-layer
a [maptalks](https://maptalks.org/) | [mapbox-gl](https://github.com/mapbox/mapbox-gl-js) | [openlayers](http://openlayers.org) | [leaflet](https://leafletjs.com/) | [bmap](https://map.baidu.com/) | [amap](https://ditu.amap.com/)
extension to show wind field。
## 介绍
[wind-layer](./) 是一个专注于气象格点数据可视的插件,设计之处是参考了 [earth](http://earth.nullschool.net) [cambecc](https://github.com/cambecc/earth) 的一个气象数据的展示,他使用了流体场的方式去展示了全球的风速和风向,富有很强的
表现力, 这个插件的早期的很多核心代码也是来源于此。当然现在它不仅仅是做风场的展示,常规的气象数据都可以依赖此插件进行可视化。
## 特性 (1.x 通用版本相对于原始 [windy.js](https://github.com/Esri/wind-js))
* 易于配置粒子数量,原始 windy.js 只能给定一个系数,会根据地图元素的大小进行计算粒子数量;现在可以支持系数方式和固定粒子数量以及回调函数的的三种方式。
* 颜色配置支持三种方式:
String:固定颜色值
Function: 通过回调函数的风速值设定颜色(但是会有一定的性能损失)
String[]: 按照风速值范围等间隔渲染,无法做到精确匹配对应值的颜色。
* 线条宽度支持动态设置。
* 抽离了核心渲染库,便于扩展到其他地图渲染库。
## 2.x webgl 版本
`gl-core`扩展目前只针对 `mapbox`、`maplibre` 和 `maptalks` 做了相关适配,其他引擎适配欢迎 PR。
目前计划支持的图层如下:
- [x] 常规 raster 图层,为了解决多时次瓦片序列播放问题。
- [x] 常规 Image 图层,单张 raster 图层。
- [x] 色斑图渲染,支持瓦片和单张。
- [x] 多数据源支持(geotiff、灰度图-可解析带 exif 信息、png-多通道浮点数压缩)。
- geotiff 的支持需要配置 `configDeps`, `exif` 默认支持,因为在 `safari` 浏览器下 `configDeps` 有兼容性问题,所以默认打包了 exif 的解析库。
```ts
mapboxWind.configDeps(['https://unpkg.com/geotiff/dist-browser/geotiff.js']);
```
- [x] TimelineSource(时序数据源)支持。
- [x] 粒子渲染,支持瓦片和单张。
- [x] 箭头图层,支持瓦片和单张(矢量数据:风或洋流)。
- [x] 图层拾取。
- [x] 图层掩膜。
TIP: 注意 2.0 之后不再支持 `jsonArray` 数据和 `EPSG:4326` 的图片数据,如果有需求请使用 1.x 版本
https://github.com/sakitam-fdd/wind-layer/assets/19517451/b36b7eea-c647-42ed-91a4-e1f182d0343c
https://github.com/sakitam-fdd/wind-layer/assets/19517451/bf27d98e-68ed-4f9c-b1e4-812764665bff
https://github.com/sakitam-fdd/wind-layer/assets/19517451/90542837-b80c-450e-857d-4df6f52b6a49
https://github.com/sakitam-fdd/wind-layer/assets/19517451/064f0ea4-f72f-4e9a-80e7-7a0097f60013
## 示例图片

## 扩展
| Project | Version | Npm | CDN | Description |
|---------|---------|-----|------|-------------|
| [wind-core](https://github.com/sakitam-fdd/wind-layer/tree/master/packages/core) | [](https://www.npmjs.org/package/wind-core) | [](https://npmjs.org/package/wind-core) | [](https://www.jsdelivr.com/package/npm/wind-core) | 风场核心渲染,可扩展不可以直接使用 |
| [wind-gl-core](https://github.com/sakitam-fdd/wind-layer/tree/master/packages/gl-core) | [](https://www.npmjs.org/package/wind-gl-core) | [](https://npmjs.org/package/wind-gl-core) | [](https://www.jsdelivr.com/package/npm/wind-gl-core) | 色斑图核心渲染,可扩展不可以直接使用 |
| [ol-wind](https://github.com/sakitam-fdd/wind-layer/tree/master/packages/ol) | [](https://www.npmjs.org/package/ol-wind) | [](https://npmjs.org/package/ol-wind) | [](https://www.jsdelivr.com/package/npm/ol-wind) | `openlayers 6+` 风场扩展插件 |
| [ol5-wind](https://github.com/sakitam-fdd/wind-layer/tree/master/packages/ol5) | [](https://www.npmjs.org/package/ol5-wind) | [](https://npmjs.org/package/ol5-wind) | [](https://www.jsdelivr.com/package/npm/ol5-wind) | `openlayers 5` 风场扩展插件 |
| [openlayers-wind](https://github.com/sakitam-fdd/wind-layer/tree/master/packages/openlayers) | [](https://www.npmjs.org/package/openlayers-wind) | [](https://npmjs.org/package/openlayers-wind) | [](https://www.jsdelivr.com/package/npm/openlayers-wind) | `openlayers 3/4` 风场扩展插件 |
| [@sakitam-gis/maptalks-wind](https://github.com/sakitam-fdd/wind-layer/tree/master/packages/maptalks) | [](https://www.npmjs.org/package/@sakitam-gis/maptalks-wind) | [](https://npmjs.org/package/@sakitam-gis/maptalks-wind) | [](https://www.jsdelivr.com/package/npm/@sakitam-gis/maptalks-wind) | `maptalks` 风场扩展插件 |
| [amap-wind](https://github.com/sakitam-fdd/wind-layer/tree/master/packages/amap) | [](https://www.npmjs.org/package/amap-wind) | [](https://npmjs.org/package/amap-wind) | [](https://www.jsdelivr.com/package/npm/amap-wind) | 高德地图风场扩展插件 |
| [bmap-wind](https://github.com/sakitam-fdd/wind-layer/tree/master/packages/bmap) | [](https://www.npmjs.org/package/bmap-wind) | [](https://npmjs.org/package/bmap-wind) | [](https://www.jsdelivr.com/package/npm/bmap-wind) | 百度地图风场扩展插件 |
| [mapbox-wind](https://github.com/sakitam-fdd/wind-layer/tree/master/packages/mapbox-gl) | [](https://www.npmjs.org/package/@sakitam-gis/mapbox-wind) | [](https://npmjs.org/package/@sakitam-gis/mapbox-wind) | [](https://www.jsdelivr.com/package/npm/@sakitam-gis/mapbox-wind) | mapbox-gl 风场扩展插件 |
| [maplibre-wind](https://github.com/sakitam-fdd/wind-layer/tree/master/packages/maplibre-gl) | [](https://www.npmjs.org/package/@sakitam-gis/maplibre-wind) | [](https://npmjs.org/package/@sakitam-gis/maplibre-wind) | [](https://www.jsdelivr.com/package/npm/@sakitam-gis/maplibre-wind) | maplibre-gl 风场扩展插件 |
| [leaflet-wind](https://github.com/sakitam-fdd/wind-layer/tree/master/packages/leaflet) | [](https://www.npmjs.org/package/leaflet-wind) | [](https://npmjs.org/package/leaflet-wind) | [](https://www.jsdelivr.com/package/npm/leaflet-wind) | Leaflet风场扩展插件 |
### 特殊说明
cesium 相关集成请查看 [cesium-wind](https://github.com/QJvic/cesium-wind)
## 安装
### 使用 pnpm 或 yarn 安装
**我们推荐使用 pnpm 或 yarn 的方式进行开发**,
不仅可在开发环境轻松调试,也可放心地在生产环境打包部署使用,
享受整个生态圈和工具链带来的诸多好处。
相关插件:
```bash
# pnpm
pnpm install wind-core
pnpm install wind-gl-core
pnpm install src-wind
pnpm install ol5-wind
pnpm install openlayers-wind
pnpm install @sakitam-gis/maptalks-wind
pnpm install amap-wind
pnpm install bmap-wind
pnpm install leaflet-wind
pnpm install @sakitam-gis/mapbox-wind
pnpm install @sakitam-gis/maplibre-wind
# yarn
yarn add wind-core
yarn add wind-gl-core
yarn add src-wind
yarn add ol5-wind
yarn add openlayers-wind
yarn add @sakitam-gis/maptalks-wind
yarn add amap-wind
yarn add bmap-wind
yarn add leaflet-wind
yarn add @sakitam-gis/mapbox-wind
yarn add @sakitam-gis/maplibre-wind
```
### 部分插件亦可以通过浏览器引入
在浏览器中使用 `script` 标签直接引入文件,并使用全局变量。
我们在仓库发布包内的 `dist` 目录下提供了 `xxx.js` 以及 `xxx.min.js`;
| Project | unpkg | jsdelivr |
|----------------------------------------------------------------------------------------------------------------------------------------------|---------|-------------|
| [wind-core](https://cdn.jsdelivr.net/npm/wind-core/dist/) | https://unpkg.com/wind-core/dist/wind-core.js | https://cdn.jsdelivr.net/npm/wind-core/dist/wind-core.js |
| [wind-gl-core](https://cdn.jsdelivr.net/npm/wind-gl-core/dist/) | https://unpkg.com/wind-gl-core/dist/wind-gl-core.js | https://cdn.jsdelivr.net/npm/wind-gl-core/dist/wind-gl-core.js |
| [ol-wind](https://cdn.jsdelivr.net/npm/ol-wind/dist/) 因 `ol6` 重构原因,无法直接使用,你可以自行构建