mirror of https://gitee.com/antv-l7/antv-l7
Merge branch 'master' of https://github.com/antvis/L7
This commit is contained in:
commit
2faff4b346
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
title: WindLayer
|
||||||
|
order: 3
|
||||||
|
---
|
||||||
|
|
||||||
|
`markdown:docs/api/wind.zh.md`
|
|
@ -0,0 +1,69 @@
|
||||||
|
---
|
||||||
|
title: 风场图层
|
||||||
|
order: 3
|
||||||
|
---
|
||||||
|
|
||||||
|
WindLayer 用于将存储风场信息的图片,设置其风速线采样相关参数,将采样后的风场线的走向、强度通过可视化的方式在地图上呈现出来。
|
||||||
|
|
||||||
|
<img width="60%" style="display: block;margin: 0 auto;" alt="案例" src='https://gw.alipayobjects.com/mdn/rms_816329/afts/img/A*CPveRqBxBwkAAAAAAAAAAAAAARQnAQ' />
|
||||||
|
|
||||||
|
## 使用
|
||||||
|
|
||||||
|
```jsx
|
||||||
|
import { WindLayer } from '@antv/l7';
|
||||||
|
```
|
||||||
|
|
||||||
|
## API
|
||||||
|
|
||||||
|
### source
|
||||||
|
|
||||||
|
(data, options) => WindLayer, 设置风场相关信息的函数
|
||||||
|
|
||||||
|
- data: string 存储风场信息的图片地址
|
||||||
|
- options:
|
||||||
|
|
||||||
|
```js
|
||||||
|
{
|
||||||
|
parser: {
|
||||||
|
type: 'image',
|
||||||
|
extent: [-180, -85, 180, 85], // 用于设置风场图片作用到地图上的经纬图区间
|
||||||
|
},
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### animate
|
||||||
|
|
||||||
|
开启动画效果
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
layer.animate(true);
|
||||||
|
```
|
||||||
|
|
||||||
|
### style
|
||||||
|
|
||||||
|
- uMin: 风速 X 轴/横向最小值
|
||||||
|
- uMax: 风速 X 轴/横向最大值
|
||||||
|
- vMin: 风速 Y 轴/纵向最小值
|
||||||
|
- vMax: 风速 Y 轴/纵向最大值
|
||||||
|
- sizeScale: 风场线条粗细缩放比,0-2
|
||||||
|
- fadeOpacity: 线条透明度,0-1
|
||||||
|
- numParticles: 线条数量
|
||||||
|
- rampColors: 线条填充颜色映射,例:
|
||||||
|
{
|
||||||
|
0.0: '#3288bd',
|
||||||
|
0.1: '#66c2a5',
|
||||||
|
0.2: '#abdda4',
|
||||||
|
0.3: '#e6f598',
|
||||||
|
0.4: '#fee08b',
|
||||||
|
0.5: '#fdae61',
|
||||||
|
0.6: '#f46d43',
|
||||||
|
1.0: '#d53e4f'
|
||||||
|
}
|
||||||
|
|
||||||
|
## 配置项
|
||||||
|
|
||||||
|
`markdown:docs/common/layer/options.md`
|
||||||
|
|
||||||
|
`markdown:docs/common/layer/layer_ctr.md`
|
||||||
|
|
||||||
|
`markdown:docs/common/layer/layer_event.md`
|
|
@ -0,0 +1 @@
|
||||||
|
`markdown:docs/api/wind.en.md`
|
|
@ -0,0 +1,2 @@
|
||||||
|
`markdown:docs/api/wind.zh.md`
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"title": {
|
||||||
|
"zh": "风场图层",
|
||||||
|
"en": "WindLayer"
|
||||||
|
},
|
||||||
|
"demos": [
|
||||||
|
{
|
||||||
|
"filename": "wind.js",
|
||||||
|
"title": "风场图层",
|
||||||
|
"screenshot": "https://gw.alipayobjects.com/mdn/rms_816329/afts/img/A*CPveRqBxBwkAAAAAAAAAAAAAARQnAQ"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
import { Scene, WindLayer } from '@antv/l7';
|
||||||
|
import { GaodeMap } from '@antv/l7-maps';
|
||||||
|
|
||||||
|
const scene = new Scene({
|
||||||
|
id: 'map',
|
||||||
|
map: new GaodeMap({
|
||||||
|
center: [ 105.732421875, 32.24997445586331 ],
|
||||||
|
pitch: 0,
|
||||||
|
style: 'dark',
|
||||||
|
zoom: 2,
|
||||||
|
viewMode: '3D'
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
scene.on('loaded', () => {
|
||||||
|
const layer = new WindLayer({});
|
||||||
|
layer
|
||||||
|
.source(
|
||||||
|
'https://gw.alipayobjects.com/mdn/rms_23a451/afts/img/A*wcU8S5xMEDYAAAAAAAAAAAAAARQnAQ',
|
||||||
|
{
|
||||||
|
parser: {
|
||||||
|
type: 'image',
|
||||||
|
extent: [ -180, -85, 180, 85 ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.animate(true)
|
||||||
|
.style({
|
||||||
|
uMin: -21.32,
|
||||||
|
uMax: 26.8,
|
||||||
|
vMin: -21.57,
|
||||||
|
vMax: 21.42,
|
||||||
|
numParticles: 35535,
|
||||||
|
fadeOpacity: 0.996,
|
||||||
|
sizeScale: 1.2,
|
||||||
|
rampColors: {
|
||||||
|
0.0: '#3288bd',
|
||||||
|
0.1: '#66c2a5',
|
||||||
|
0.2: '#abdda4',
|
||||||
|
0.3: '#e6f598',
|
||||||
|
0.4: '#fee08b',
|
||||||
|
0.5: '#fdae61',
|
||||||
|
0.6: '#f46d43', // f46d43
|
||||||
|
1.0: '#d53e4f'
|
||||||
|
}
|
||||||
|
});
|
||||||
|
scene.addLayer(layer);
|
||||||
|
});
|
|
@ -0,0 +1,4 @@
|
||||||
|
---
|
||||||
|
title: Wind Layer
|
||||||
|
order: 7
|
||||||
|
---
|
|
@ -0,0 +1,4 @@
|
||||||
|
---
|
||||||
|
title: 风场图层
|
||||||
|
order: 7
|
||||||
|
---
|
|
@ -220,6 +220,14 @@ module.exports = {
|
||||||
},
|
},
|
||||||
order: 3
|
order: 3
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
slug: 'api/wind',
|
||||||
|
title: {
|
||||||
|
zh: '风场图层',
|
||||||
|
en: 'WindLayer'
|
||||||
|
},
|
||||||
|
order: 3
|
||||||
|
},
|
||||||
{
|
{
|
||||||
slug: 'api/mini',
|
slug: 'api/mini',
|
||||||
title: {
|
title: {
|
||||||
|
@ -243,7 +251,7 @@ module.exports = {
|
||||||
en: 'map plugin'
|
en: 'map plugin'
|
||||||
},
|
},
|
||||||
order: 5
|
order: 5
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
examples: [
|
examples: [
|
||||||
{
|
{
|
||||||
|
@ -343,6 +351,14 @@ module.exports = {
|
||||||
en: 'Raster Layer'
|
en: 'Raster Layer'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
slug: 'wind',
|
||||||
|
icon: 'raster',
|
||||||
|
title: {
|
||||||
|
zh: '风场图层',
|
||||||
|
en: 'Wind Layer'
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
slug: 'tutorial',
|
slug: 'tutorial',
|
||||||
icon: 'map',
|
icon: 'map',
|
||||||
|
|
|
@ -122,6 +122,30 @@ export default class WindMap extends React.Component {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
pointFolder
|
||||||
|
.add(styleOptions, 'uMax', -100, 100, 1)
|
||||||
|
.onChange((num: number) => {
|
||||||
|
layer.style({
|
||||||
|
uMax: num,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
pointFolder
|
||||||
|
.add(styleOptions, 'vMin', -100, 100, 1)
|
||||||
|
.onChange((num: number) => {
|
||||||
|
layer.style({
|
||||||
|
vMin: num,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
pointFolder
|
||||||
|
.add(styleOptions, 'vMax', -100, 100, 1)
|
||||||
|
.onChange((num: number) => {
|
||||||
|
layer.style({
|
||||||
|
vMax: num,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
pointFolder
|
pointFolder
|
||||||
.add(styleOptions, 'fadeOpacity', 0.9, 1, 0.01)
|
.add(styleOptions, 'fadeOpacity', 0.9, 1, 0.01)
|
||||||
.onChange((num: number) => {
|
.onChange((num: number) => {
|
||||||
|
|
Loading…
Reference in New Issue