diff --git a/docs/api/component/marker.zh.md b/docs/api/component/marker.zh.md
index dcba499aa9..acebab05f0 100644
--- a/docs/api/component/marker.zh.md
+++ b/docs/api/component/marker.zh.md
@@ -118,3 +118,7 @@ new L7.Marker({
```javascript
marker.on('click', (e) => {});
```
+
+## demo 地址
+
+[demo1](../../../examples/tutorial/marker)
diff --git a/docs/api/component/popup.en.md b/docs/api/component/popup.en.md
index ae3e7e9888..0b9bf6c9e0 100644
--- a/docs/api/component/popup.en.md
+++ b/docs/api/component/popup.en.md
@@ -93,4 +93,7 @@ popup.on('close', () => {});
const new L7.Popup().setLnglat([112, 32]).setHTML(html).addTo(scene);
```
-### FAQ
+## demo 地址
+
+[demo1](../../../examples/point/column)
+[demo2](../../../examples/line/path)
diff --git a/docs/api/component/popup.zh.md b/docs/api/component/popup.zh.md
index 81e1ad08b4..3155708790 100644
--- a/docs/api/component/popup.zh.md
+++ b/docs/api/component/popup.zh.md
@@ -93,4 +93,7 @@ popup.on('close', () => {});
const new L7.Popup().setLnglat([112, 32]).setHTML(html).addTo(scene);
```
-### FAQ
+## demo 地址
+
+[demo1](../../../examples/point/column)
+[demo2](../../../examples/line/path)
diff --git a/docs/api/layer/layer.en.md b/docs/api/layer/layer.en.md
index d274a4f841..af71db112b 100644
--- a/docs/api/layer/layer.en.md
+++ b/docs/api/layer/layer.en.md
@@ -1,5 +1,5 @@
---
-title: Map Layer
+title: Layer
order: 0
---
@@ -26,6 +26,10 @@ scene.addLayer(layer);
## 配置项
+### name
+
+设置图层名称,可根据 name 获取 layer;
+
### visable
图层是否可见 {bool } default true
@@ -42,23 +46,16 @@ scene.addLayer(layer);
图层显示最大缩放等级 (0-18) {number} default 18
-## 鼠标事件
+### blend
-⚠️ beta 版当前不支持,正式版会支持
+图层元素混合效果
-```javascript
-layer.on('click', (ev) => {}); // 鼠标左键点击图层事件
-layer.on('dblclick', (ev) => {}); // 鼠标左键双击图层事件
-layer.on('mousemove', (ev) => {}); // 鼠标在图层上移动时触发
-layer.on('mouseover', (ev) => {}); // 鼠标移入图层要素内时触发
-layer.on('mouseout', (ev) => {}); // 鼠标移出图层要素时触发
-layer.on('mouseup', (ev) => {}); // 鼠标在图层上单击抬起时触发
-layer.on('mousedown', (ev) => {}); // 鼠标在图层上单击按下时触发
-layer.on('mouseleave', (ev) => {}); // 鼠标离开图层要素
-layer.on('rightclick', (ev) => {}); // 鼠标右键图层要素
-```
+- normal 正常效果 默认
+- additive 叠加模式
+- subtractive 相减模式
+- max 最大值
-## 方法
+# 方法
### source
@@ -103,8 +100,6 @@ layer.source(data, {
});
```
-###
-
### scale
cscle('field', scaleConfig)
@@ -123,21 +118,15 @@ cscle('field', scaleConfig)
}
```
+## 视觉编码方法
+
+可视化编码是将数据转换为可视形式的过程,L7 目前支持形状,大小,颜色 3 种视觉通过,你可以指定数据字段,为不同要素设置不同的图形属性。
+
### size
-将数据值映射到图形的大小上的方法。
+将数据值映射到图形的大小上的方法,具体 size 的表示具体意义可以查看对应图层的文档
-**注意:**
-
-不同图层的 size 的含义有所差别:
-
-- point 图形的 size 影响点的半径大小和高度;
-
-- line, arc, path 中的 size 影响线的粗细,和高度;
-
-- polygon size 影响的是高度
-
-```javascript
+```
pointLayer.size(10); // 常量
pointLayer.size('type'); // 使用字段映射到大小
pointLayer.size('type', [0, 10]); // 使用字段映射到大小,并指定最大值和最小值
@@ -267,24 +256,58 @@ layer.color('gender*age', (gender, age) => {
### style
-用于配置几何体显示图像属性目前支持以下属性,其他属性会逐步开放
-
-- fill
+全局设置图形显示属性
- opacity 设置透明度
-- stroke 线填充颜色
+- stroke 线填充颜色 仅点图层支持
-- strokeWidth 线的宽度
+- strokeWidth 线的宽度 仅点图层支持
```javascript
layer.style({
- fill: 'red',
opacity: 0.8,
stroke: 'white',
});
```
+## 图层更新方法
+
+如果已经添加了图层,需要修改图层显示样式可以再次调用图形映射方法,然后调用 `scene.render()`更新渲染即可
+
+### 样式更新
+
+```javascript
+layer.color('blue');
+layer.size(10);
+layer.style({});
+scene.render();
+```
+
+### setData
+
+更新 Source 数据
+
+参数:
+
+- data 数据
+- option 默认和初始配置项一致,如果数据格式相同可不设置
+
+调用 setData 方法会自动更新图层渲染
+
+```javascript
+layer.setData(data);
+```
+
+### setBlend(type)
+
+设置图层叠加方法
+参数:
+
+- type blend 类型
+
+## 图层控制方法
+
### show
图层显示
@@ -301,6 +324,16 @@ layer.show();
layer.hide();
```
+### isVisable
+
+图层是否可见
+
+return `true | false`
+
+### setIndex
+
+设置图层绘制顺序
+
### fitBounds
缩放到图层范围
@@ -308,3 +341,181 @@ layer.hide();
```javascript
layer.fitBounds();
```
+
+### setMinZoom
+
+### setMaxZoom
+
+## 图层交互方法
+
+### active
+
+开启或者关闭 mousehover 元素高亮效果
+
+参数: activeOption | boolean
+
+activeOption
+-color 填充颜色
+
+```javascript
+// 开启 Active 使用默认高亮颜色
+layer.active(true);
+
+// 开启 Active 自定义高亮颜色
+
+layer.active({
+ color: 'red',
+});
+
+// 关闭高亮效果
+layer.active(false);
+```
+
+### setActive
+
+根据元素 ID 设置指定元素 hover 高亮
+
+```javascript
+layer.setActive(id);
+```
+
+### select
+
+开启或者关闭 mouseclick 元素选中高亮效果
+
+参数: selectOption | boolean
+
+selectOption
+-color 填充颜色
+
+```javascript
+// 开启 Active 使用默认高亮颜色
+layer.select(true);
+
+// 开启 Active 自定义高亮颜色
+
+layer.select({
+ color: 'red',
+});
+
+// 关闭高亮效果
+layer.select(false);
+```
+
+### setSelect
+
+根据元素 ID 设置指定元素 click 选中 高亮
+
+```javascript
+layer.setSelect(id);
+```
+
+## 鼠标事件
+
+鼠标事件回调参数 target
+
+```typescript
+```
+
+- x: number 鼠标 在地图位置 x 坐标
+- y: number 鼠标 在地图位置 y 坐标
+- type: string 鼠标事件类型
+- lngLat: ILngLat {lng:number, lat: number }; 鼠标所在位置经纬度
+- feature: any; 数据选中的地理要素信息
+- featureId: number | null; 数据选中的地理要素的 ID
+
+### click
+
+点击事件
+
+### mousemove
+
+鼠标移动事件
+
+### mouseout
+
+鼠标移除
+
+### mouseup
+
+鼠标按下
+
+### mousedown
+
+鼠标向下
+
+### contextmenu
+
+鼠标右键
+
+### unclick
+
+点击未拾取到元素
+
+### unmousemove
+
+鼠标移动未拾取到元素
+
+### unmouseup
+
+鼠标抬起未拾取到元素
+
+### unmousedown
+
+鼠标按下未拾取到元素
+
+### uncontextmenu
+
+鼠标右键位拾取到元素
+
+### unpick
+
+所有鼠标事件未拾取到
+
+使用示例
+
+```javascript
+layer.on('click', (ev) => {}); // 鼠标左键点击图层事件
+layer.on('mousemove', (ev) => {}); // 鼠标在图层上移动时触发
+layer.on('mouseout', (ev) => {}); // 鼠标移出图层要素时触发
+layer.on('mouseup', (ev) => {}); // 鼠标在图层上单击抬起时触发
+layer.on('mousedown', (ev) => {}); // 鼠标在图层上单击按下时触发
+layer.on('contextmenu', (ev) => {}); // 图层要素点击右键菜单
+
+// 鼠标在图层外的事件
+layer.on('unclick', (ev) => {}); // 图层外点击
+layer.on('unmousemove', (ev) => {}); // 图层外移动
+layer.on('unmouseup', (ev) => {}); // 图层外鼠标抬起
+layer.on('unmousedown', (ev) => {}); // 图层外单击按下时触发
+layer.on('uncontextmenu', (ev) => {}); // 图层外点击右键
+layer.on('unpick', (ev) => {}); // 图层外的操作的所有事件
+```
+
+## 图层事件
+
+### inited
+
+option
+
+- target ILayer 当前 layer
+- type 事件类型
+
+图层初始化完成后触发
+
+### add
+
+图层添加到 scene
+
+option
+
+- target ILayer 当前 layer
+- type 事件类型
+
+### remove
+
+图层移除时触发
+
+option
+
+- target ILayer 当前 layer
+- type 事件类型
diff --git a/docs/api/layer/layer.zh.md b/docs/api/layer/layer.zh.md
index 609129b134..af71db112b 100644
--- a/docs/api/layer/layer.zh.md
+++ b/docs/api/layer/layer.zh.md
@@ -495,8 +495,27 @@ layer.on('unpick', (ev) => {}); // 图层外的操作的所有事件
### inited
+option
+
+- target ILayer 当前 layer
+- type 事件类型
+
图层初始化完成后触发
+### add
+
+图层添加到 scene
+
+option
+
+- target ILayer 当前 layer
+- type 事件类型
+
### remove
图层移除时触发
+
+option
+
+- target ILayer 当前 layer
+- type 事件类型
diff --git a/docs/tutorial/data.en.md b/docs/tutorial/data.en.md
index 483c3af048..45470c92aa 100644
--- a/docs/tutorial/data.en.md
+++ b/docs/tutorial/data.en.md
@@ -55,7 +55,7 @@ GeoJSON 支持点、线、面,等所有的空间数据格式。
CSV 支
}
```
-## 地理统计分析工具
+#### 全国行政区划GeoJON 支持省市县维度
[turfjs](http://turfjs.org/): 地理数据计算,处理,统计,分析的Javascript 库
## 在线工具
diff --git a/docs/tutorial/data.zh.md b/docs/tutorial/data.zh.md
index ac63abf260..7860943c6e 100644
--- a/docs/tutorial/data.zh.md
+++ b/docs/tutorial/data.zh.md
@@ -66,8 +66,8 @@ GeoJSON 支持点、线、面,等所有的空间数据格式。
CSV 支
## 数据资源
-#### 全国行政区划边界
-[支持 geojson, svg下载](http://datav.aliyun.com/tools/atlas/#&lat=33.50475906922609&lng=104.32617187499999&zoom=4)
+#### 全国行政区划GeoJON 支持省市县维度
+[geojson, svg下载](http://datav.aliyun.com/tools/atlas/#&lat=33.50475906922609&lng=104.32617187499999&zoom=4)
#### HighCharts 全球行政区划数据集
diff --git a/docs/tutorial/map/amap.en.md b/docs/tutorial/map/amap.en.md
index 7995376140..2225453942 100644
--- a/docs/tutorial/map/amap.en.md
+++ b/docs/tutorial/map/amap.en.md
@@ -18,7 +18,7 @@ order: 0
2.0版本在L7内部动态引入了高德地图JS API,因此不再需要单独引入高德JS API,只需设置 type 为 ```amap``` 并且传入token
```html
-
+
```
### 添加div 标签指定地图容器
@@ -106,7 +106,7 @@ fetch('https://gw.alipayobjects.com/os/rmsportal/oVTMqfzuuRFKiDwhPSFL.json')
-
+
+
```
### 添加div 标签指定地图容器
@@ -106,7 +106,7 @@ fetch('https://gw.alipayobjects.com/os/rmsportal/oVTMqfzuuRFKiDwhPSFL.json')
-
+
+
```
@@ -118,7 +118,7 @@ fetch('https://gw.alipayobjects.com/os/rmsportal/oVTMqfzuuRFKiDwhPSFL.json')
-
+
+
```
@@ -116,7 +116,7 @@ fetch('https://gw.alipayobjects.com/os/rmsportal/oVTMqfzuuRFKiDwhPSFL.json')
-
+
```
diff --git a/docs/tutorial/quickstart.zh.md b/docs/tutorial/quickstart.zh.md
index b658e47e10..84ef167c45 100644
--- a/docs/tutorial/quickstart.zh.md
+++ b/docs/tutorial/quickstart.zh.md
@@ -20,7 +20,7 @@ Include the L7 JS JavaScript of your HTML file.
```html
-
```
diff --git a/gatsby-config.js b/gatsby-config.js
index 27d8be0234..d8ca9b9665 100644
--- a/gatsby-config.js
+++ b/gatsby-config.js
@@ -220,7 +220,7 @@ module.exports = {
playground: {
container: '',
dependencies: {
- '@antv/l7': 'beta',
+ '@antv/l7': 'latest',
'@antv/l7-maps': 'latest'
}
},
diff --git a/lerna.json b/lerna.json
index 05e677dfb6..b839450121 100644
--- a/lerna.json
+++ b/lerna.json
@@ -14,7 +14,7 @@
"message": "chore: publish"
}
},
- "version": "2.0.4",
+ "version": "2.0.5",
"npmClient": "yarn",
"useWorkspaces": true,
"publishConfig": {
diff --git a/package.json b/package.json
index 7f39d1369f..7cd3690df6 100644
--- a/package.json
+++ b/package.json
@@ -145,7 +145,7 @@
"test-live": "cross-env BABEL_ENV=test DEBUG_MODE=1 jest --watch packages/scene/__tests__/index.spec.ts ",
"coveralls": "jest --coverage && cat ./tests/coverage/lcov.info | coveralls",
"tsc": "tsc",
- "watch": "yarn clean && lerna exec --parallel -- cross-env BABEL_ENV=cjs NODE_ENV=production babel --watch src --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments",
+ "watch": "yarn clean && lerna exec --parallel -- cross-env BABEL_ENV=cjs babel --watch src --root-mode upward --out-dir lib --source-maps --extensions .ts,.tsx --delete-dir-on-start --no-comments",
"bundle": "cross-env BABEL_ENV=bundle node_modules/.bin/rollup -c ./build/rollup.config.js",
"bundle:watch": "cross-env BABEL_ENV=bundle node_modules/.bin/rollup -c ./build/rollup.config.js --watch",
"glsl-minify": "node_modules/.bin/glsl-minifier -i ./build/example.frag -o ./build/example.min.frag",
diff --git a/packages/component/package.json b/packages/component/package.json
index 558231135a..1007c927fa 100644
--- a/packages/component/package.json
+++ b/packages/component/package.json
@@ -1,6 +1,6 @@
{
"name": "@antv/l7-component",
- "version": "2.0.4",
+ "version": "2.0.5",
"description": "",
"main": "lib/index.js",
"module": "es/index.js",
@@ -24,7 +24,7 @@
"author": "lzxue",
"license": "ISC",
"dependencies": {
- "@antv/l7-core": "^2.0.4",
+ "@antv/l7-core": "^2.0.5",
"@antv/l7-utils": "^2.0.1",
"@babel/runtime": "^7.7.7",
"eventemitter3": "^4.0.0",
diff --git a/packages/core/package.json b/packages/core/package.json
index 5eecf6077a..88027f0045 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -1,6 +1,6 @@
{
"name": "@antv/l7-core",
- "version": "2.0.4",
+ "version": "2.0.5",
"description": "",
"main": "lib/index.js",
"module": "es/index.js",
diff --git a/packages/core/src/services/layer/ILayerService.ts b/packages/core/src/services/layer/ILayerService.ts
index a2ac525aa6..e9fda0a895 100644
--- a/packages/core/src/services/layer/ILayerService.ts
+++ b/packages/core/src/services/layer/ILayerService.ts
@@ -109,6 +109,8 @@ export interface ILayer {
setContainer(container: Container): void;
setCurrentPickId(id: number | null): void;
getCurrentPickId(): number | null;
+ prepareBuildModel(): void;
+ buildModels(): void;
buildLayerModel(
options: ILayerModelInitializationOptions &
Partial,
diff --git a/packages/core/src/services/log/LogService.ts b/packages/core/src/services/log/LogService.ts
index fd419c2200..4d0e4e84e3 100644
--- a/packages/core/src/services/log/LogService.ts
+++ b/packages/core/src/services/log/LogService.ts
@@ -1,7 +1,6 @@
import { injectable } from 'inversify';
import Probe, { Log } from 'probe.gl';
import { ILogService } from './ILogService';
-
const Logger = new Log({ id: 'L7' }).enable(false);
// // 只输出 debug 级别以上的日志信息
Logger.priority = 5;
diff --git a/packages/core/src/services/scene/SceneService.ts b/packages/core/src/services/scene/SceneService.ts
index 52ef208091..006f46230e 100644
--- a/packages/core/src/services/scene/SceneService.ts
+++ b/packages/core/src/services/scene/SceneService.ts
@@ -144,7 +144,7 @@ export default class Scene extends EventEmitter implements ISceneService {
this.markerService.addMarkerLayers();
// 地图初始化之后 才能初始化 container 上的交互
this.interactionService.init();
- this.logger.debug('map loaded');
+ this.logger.debug(`map ${this.id} loaded`);
});
/**
diff --git a/packages/l7/package.json b/packages/l7/package.json
index fa6f3201bd..98ee2c0f99 100644
--- a/packages/l7/package.json
+++ b/packages/l7/package.json
@@ -1,6 +1,6 @@
{
"name": "@antv/l7",
- "version": "2.0.4",
+ "version": "2.0.5",
"description": "A Large-scale WebGL-powered Geospatial Data Visualization",
"main": "lib/index.js",
"module": "es/index.js",
@@ -24,11 +24,11 @@
"author": "antv",
"license": "MIT",
"dependencies": {
- "@antv/l7-component": "^2.0.4",
- "@antv/l7-core": "^2.0.4",
- "@antv/l7-layers": "^2.0.4",
- "@antv/l7-maps": "^2.0.4",
- "@antv/l7-scene": "^2.0.4",
+ "@antv/l7-component": "^2.0.5",
+ "@antv/l7-core": "^2.0.5",
+ "@antv/l7-layers": "^2.0.5",
+ "@antv/l7-maps": "^2.0.5",
+ "@antv/l7-scene": "^2.0.5",
"@babel/runtime": "^7.7.7"
},
"gitHead": "9fabb78790428d2025b89fb6146fc555cb1d987d",
diff --git a/packages/layers/package.json b/packages/layers/package.json
index 0848f61c9a..10e0d9a941 100644
--- a/packages/layers/package.json
+++ b/packages/layers/package.json
@@ -1,6 +1,6 @@
{
"name": "@antv/l7-layers",
- "version": "2.0.4",
+ "version": "2.0.5",
"description": "L7's collection of built-in layers",
"main": "lib/index.js",
"module": "es/index.js",
@@ -22,8 +22,8 @@
"author": "xiaoiver",
"license": "ISC",
"dependencies": {
- "@antv/l7-core": "^2.0.4",
- "@antv/l7-source": "^2.0.4",
+ "@antv/l7-core": "^2.0.5",
+ "@antv/l7-source": "^2.0.5",
"@antv/l7-utils": "^2.0.1",
"@babel/runtime": "^7.7.7",
"@mapbox/martini": "^0.1.0",
diff --git a/packages/layers/src/citybuliding/building.ts b/packages/layers/src/citybuliding/building.ts
index cc1b30c082..02fb7ae7eb 100644
--- a/packages/layers/src/citybuliding/building.ts
+++ b/packages/layers/src/citybuliding/building.ts
@@ -4,6 +4,10 @@ import CityBuildModel from './models/build';
export default class CityBuildingLayer extends BaseLayer {
public type: string = 'PolygonLayer';
+ public buildModels() {
+ this.layerModel = new CityBuildModel(this);
+ this.models = this.layerModel.buildModels();
+ }
protected getConfigSchema() {
return {
@@ -16,10 +20,6 @@ export default class CityBuildingLayer extends BaseLayer {
},
};
}
- protected buildModels() {
- this.layerModel = new CityBuildModel(this);
- this.models = this.layerModel.buildModels();
- }
protected getModelType(): string {
return 'citybuilding';
diff --git a/packages/layers/src/core/BaseLayer.ts b/packages/layers/src/core/BaseLayer.ts
index 8494eeef23..85d5e58fdb 100644
--- a/packages/layers/src/core/BaseLayer.ts
+++ b/packages/layers/src/core/BaseLayer.ts
@@ -301,26 +301,36 @@ export default class BaseLayer extends EventEmitter
// 触发 init 生命周期插件
this.hooks.init.call();
+ this.hooks.afterInit.call();
+
+ // 触发初始化完成事件;
+ this.emit('inited', {
+ target: this,
+ type: 'inited',
+ });
+ this.emit('add', {
+ target: this,
+ type: 'add',
+ });
+ return this;
+ }
+ /**
+ * Model初始化前需要更新Model样式
+ */
+ public prepareBuildModel() {
this.inited = true;
- // 更新 model 样式
this.updateLayerConfig({
...(this.getDefaultConfig() as object),
...this.rawConfig,
});
- this.hooks.afterInit.call();
+
// 启动动画
const { animateOption } = this.getLayerConfig();
if (animateOption?.enable) {
this.layerService.startAnimate();
this.aniamateStatus = true;
}
- this.buildModels();
- // 触发初始化完成事件;
- this.emit('inited');
- this.emit('added');
- return this;
}
-
public color(
field: StyleAttributeField,
values?: StyleAttributeOption,
@@ -655,6 +665,11 @@ export default class BaseLayer extends EventEmitter
this.hooks.afterDestroy.call();
+ this.emit('remove', {
+ target: this,
+ type: 'remove',
+ });
+
this.removeAllListeners();
// 解绑图层容器中的服务
@@ -773,11 +788,11 @@ export default class BaseLayer extends EventEmitter
return this.layerService.clock.getElapsedTime() - this.animateStartTime;
}
- protected getConfigSchema() {
+ public buildModels() {
throw new Error('Method not implemented.');
}
- protected buildModels() {
+ protected getConfigSchema() {
throw new Error('Method not implemented.');
}
diff --git a/packages/layers/src/heatmap/index.ts b/packages/layers/src/heatmap/index.ts
index f5253f2318..86042d222d 100644
--- a/packages/layers/src/heatmap/index.ts
+++ b/packages/layers/src/heatmap/index.ts
@@ -6,6 +6,12 @@ interface IHeatMapLayerStyleOptions {
}
export default class HeatMapLayer extends BaseLayer {
public type: string = 'HeatMapLayer';
+
+ public buildModels() {
+ const shape = this.getModelType();
+ this.layerModel = new HeatMapModels[shape](this);
+ this.models = this.layerModel.buildModels();
+ }
protected getConfigSchema() {
return {
properties: {
@@ -21,7 +27,15 @@ export default class HeatMapLayer extends BaseLayer {
protected renderModels() {
const shape = this.getModelType();
if (shape === 'heatmap') {
- this.layerModel.render(); // 独立的渲染流程
+ // if (this.layerModelNeedUpdate) {
+ // this.layerModel.buildModels();
+ // this.buildModels();
+ // this.layerModelNeedUpdate = false;
+ // }
+ if (this.layerModel) {
+ this.layerModel.render(); // 独立的渲染流程
+ }
+
return this;
}
if (this.layerModelNeedUpdate) {
@@ -35,12 +49,6 @@ export default class HeatMapLayer extends BaseLayer {
);
return this;
}
-
- protected buildModels() {
- const shape = this.getModelType();
- this.layerModel = new HeatMapModels[shape](this);
- this.models = this.layerModel.buildModels();
- }
protected getModelType(): HeatMapModelType {
const shapeAttribute = this.styleAttributeService.getLayerStyleAttribute(
'shape',
diff --git a/packages/layers/src/image/index.ts b/packages/layers/src/image/index.ts
index dccec6301f..7aad124e61 100644
--- a/packages/layers/src/image/index.ts
+++ b/packages/layers/src/image/index.ts
@@ -5,6 +5,11 @@ interface IImageLayerStyleOptions {
}
export default class ImageLayer extends BaseLayer {
public type: string = 'ImageLayer';
+ public buildModels() {
+ const modelType = this.getModelType();
+ this.layerModel = new ImageModels[modelType](this);
+ this.models = this.layerModel.buildModels();
+ }
protected getConfigSchema() {
return {
properties: {
@@ -23,11 +28,6 @@ export default class ImageLayer extends BaseLayer {
};
return defaultConfig[type];
}
- protected buildModels() {
- const modelType = this.getModelType();
- this.layerModel = new ImageModels[modelType](this);
- this.models = this.layerModel.buildModels();
- }
protected getModelType(): ImageModelType {
return 'image';
diff --git a/packages/layers/src/index.ts b/packages/layers/src/index.ts
index b9a487a8b1..0ee206820b 100644
--- a/packages/layers/src/index.ts
+++ b/packages/layers/src/index.ts
@@ -14,6 +14,7 @@ import DataMappingPlugin from './plugins/DataMappingPlugin';
import DataSourcePlugin from './plugins/DataSourcePlugin';
import FeatureScalePlugin from './plugins/FeatureScalePlugin';
import LayerAnimateStylePlugin from './plugins/LayerAnimateStylePlugin';
+import LayerModelPlugin from './plugins/LayerModelPlugin';
import LayerStylePlugin from './plugins/LayerStylePlugin';
import LightingPlugin from './plugins/LightingPlugin';
import MultiPassRendererPlugin from './plugins/MultiPassRendererPlugin';
@@ -119,6 +120,13 @@ container
.bind(TYPES.ILayerPlugin)
.to(PixelPickingPlugin)
.inRequestScope();
+/**
+ * 初始化Model
+ */
+container
+ .bind(TYPES.ILayerPlugin)
+ .to(LayerModelPlugin)
+ .inRequestScope();
export {
BaseLayer,
diff --git a/packages/layers/src/line/index.ts b/packages/layers/src/line/index.ts
index 2f1054c0ed..6280b78af3 100644
--- a/packages/layers/src/line/index.ts
+++ b/packages/layers/src/line/index.ts
@@ -5,6 +5,12 @@ import LineModels, { LineModelType } from './models';
export default class LineLayer extends BaseLayer {
public type: string = 'LineLayer';
+ public buildModels() {
+ const shape = this.getModelType();
+ this.layerModel = new LineModels[shape](this);
+ this.models = this.layerModel.buildModels();
+ }
+
protected getConfigSchema() {
return {
properties: {
@@ -26,12 +32,6 @@ export default class LineLayer extends BaseLayer {
};
return defaultConfig[type];
}
-
- protected buildModels() {
- const shape = this.getModelType();
- this.layerModel = new LineModels[shape](this);
- this.models = this.layerModel.buildModels();
- }
protected getModelType(): LineModelType {
const shapeAttribute = this.styleAttributeService.getLayerStyleAttribute(
'shape',
diff --git a/packages/layers/src/plugins/DataMappingPlugin.ts b/packages/layers/src/plugins/DataMappingPlugin.ts
index 8123bb6604..25fa07b7c6 100644
--- a/packages/layers/src/plugins/DataMappingPlugin.ts
+++ b/packages/layers/src/plugins/DataMappingPlugin.ts
@@ -87,7 +87,7 @@ export default class DataMappingPlugin implements ILayerPlugin {
coordinates: record.coordinates,
};
attributes
- // .filter((attribute) => attribute.name !== 'filter')
+ .filter((attribute) => attribute.scale !== undefined)
.forEach((attribute: IStyleAttribute) => {
let values = this.applyAttributeMapping(attribute, record);
attribute.needRemapping = false;
diff --git a/packages/layers/src/plugins/DataSourcePlugin.ts b/packages/layers/src/plugins/DataSourcePlugin.ts
index b9683f93b5..2ca89a5efb 100644
--- a/packages/layers/src/plugins/DataSourcePlugin.ts
+++ b/packages/layers/src/plugins/DataSourcePlugin.ts
@@ -10,6 +10,9 @@ export default class DataSourcePlugin implements ILayerPlugin {
layer.hooks.init.tap('DataSourcePlugin', () => {
const { data, options } = layer.sourceOption;
layer.setSource(new Source(data, options));
+ // if (layer.getSource().data.dataArray.length === 0) {
+ // return true;
+ // }
this.updateClusterData(layer);
});
diff --git a/packages/layers/src/plugins/LayerModelPlugin.ts b/packages/layers/src/plugins/LayerModelPlugin.ts
new file mode 100644
index 0000000000..4dccd8056c
--- /dev/null
+++ b/packages/layers/src/plugins/LayerModelPlugin.ts
@@ -0,0 +1,26 @@
+import { ILayer, ILayerPlugin, IMapService, TYPES } from '@antv/l7-core';
+import { injectable } from 'inversify';
+/**
+ * Layer Model 初始化,更新,销毁
+ */
+@injectable()
+export default class LayerModelPlugin implements ILayerPlugin {
+ public apply(layer: ILayer) {
+ layer.hooks.init.tap('LayerModelPlugin', () => {
+ // 更新Model 配置项
+ layer.prepareBuildModel();
+ // 初始化 Model
+ layer.buildModels();
+ });
+
+ layer.hooks.beforeRenderData.tap('DataSourcePlugin', (flag) => {
+ // 更新Model 配置项
+ if (flag) {
+ layer.prepareBuildModel();
+ // 初始化 Model
+ layer.buildModels();
+ }
+ return false;
+ });
+ }
+}
diff --git a/packages/layers/src/plugins/LayerStylePlugin.ts b/packages/layers/src/plugins/LayerStylePlugin.ts
index 2df6c7a27f..45e38793aa 100644
--- a/packages/layers/src/plugins/LayerStylePlugin.ts
+++ b/packages/layers/src/plugins/LayerStylePlugin.ts
@@ -9,6 +9,7 @@ import { injectable } from 'inversify';
export default class LayerStylePlugin implements ILayerPlugin {
public apply(layer: ILayer) {
layer.hooks.afterInit.tap('LayerStylePlugin', () => {
+ // 更新图层默认状态
layer.updateLayerConfig({});
const { autoFit } = layer.getLayerConfig();
if (autoFit) {
diff --git a/packages/layers/src/point/index.ts b/packages/layers/src/point/index.ts
index fc5242dba6..e95b792e73 100644
--- a/packages/layers/src/point/index.ts
+++ b/packages/layers/src/point/index.ts
@@ -8,6 +8,11 @@ interface IPointLayerStyleOptions {
}
export default class PointLayer extends BaseLayer {
public type: string = 'PointLayer';
+ public buildModels() {
+ const modelType = this.getModelType();
+ this.layerModel = new PointModels[modelType](this);
+ this.models = this.layerModel.buildModels();
+ }
protected getConfigSchema() {
return {
properties: {
@@ -34,11 +39,6 @@ export default class PointLayer extends BaseLayer {
};
return defaultConfig[type];
}
- protected buildModels() {
- const modelType = this.getModelType();
- this.layerModel = new PointModels[modelType](this);
- this.models = this.layerModel.buildModels();
- }
protected getModelType(): PointType {
// pointlayer
diff --git a/packages/layers/src/polygon/index.ts b/packages/layers/src/polygon/index.ts
index a0d20033bb..f8e7d36cb7 100644
--- a/packages/layers/src/polygon/index.ts
+++ b/packages/layers/src/polygon/index.ts
@@ -9,6 +9,11 @@ interface IPolygonLayerStyleOptions {
export default class PolygonLayer extends BaseLayer {
public type: string = 'PolygonLayer';
+ public buildModels() {
+ const shape = this.getModelType();
+ this.layerModel = new PolygonModels[shape](this);
+ this.models = this.layerModel.buildModels();
+ }
protected getConfigSchema() {
return {
@@ -21,11 +26,6 @@ export default class PolygonLayer extends BaseLayer {
},
};
}
- protected buildModels() {
- const shape = this.getModelType();
- this.layerModel = new PolygonModels[shape](this);
- this.models = this.layerModel.buildModels();
- }
protected getModelType(): PolygonModelType {
const shapeAttribute = this.styleAttributeService.getLayerStyleAttribute(
diff --git a/packages/layers/src/raster/image.ts b/packages/layers/src/raster/image.ts
index 164b9417bb..0722b79a59 100644
--- a/packages/layers/src/raster/image.ts
+++ b/packages/layers/src/raster/image.ts
@@ -45,7 +45,7 @@
// return this;
// }
-// protected buildModels() {
+// public buildModels() {
// this.registerBuiltinAttributes();
// const source = this.getSource();
// const { createTexture2D } = this.rendererService;
diff --git a/packages/layers/src/raster/index.ts b/packages/layers/src/raster/index.ts
index 24514ae65b..f6c0692877 100644
--- a/packages/layers/src/raster/index.ts
+++ b/packages/layers/src/raster/index.ts
@@ -11,6 +11,11 @@ interface IRasterLayerStyleOptions {
}
export default class RaterLayer extends BaseLayer {
public type: string = 'RasterLayer';
+ public buildModels() {
+ const modelType = this.getModelType();
+ this.layerModel = new RasterModels[modelType](this);
+ this.models = this.layerModel.buildModels();
+ }
protected getConfigSchema() {
return {
properties: {
@@ -30,11 +35,6 @@ export default class RaterLayer extends BaseLayer {
};
return defaultConfig[type];
}
- protected buildModels() {
- const modelType = this.getModelType();
- this.layerModel = new RasterModels[modelType](this);
- this.models = this.layerModel.buildModels();
- }
protected getModelType(): RasterModelType {
return 'raster';
diff --git a/packages/layers/src/raster/raster.ts b/packages/layers/src/raster/raster.ts
index 45fb71957c..c91f142845 100644
--- a/packages/layers/src/raster/raster.ts
+++ b/packages/layers/src/raster/raster.ts
@@ -35,6 +35,28 @@ export default class RasterLayer extends BaseLayer {
public getAnimateUniforms(): IModelUniform {
return {};
}
+
+ public buildModels() {
+ const parserDataItem = this.getSource().data.dataArray[0];
+ const { createTexture2D } = this.rendererService;
+ this.texture = createTexture2D({
+ data: parserDataItem.data,
+ width: parserDataItem.width,
+ height: parserDataItem.height,
+ format: gl.LUMINANCE,
+ type: gl.FLOAT,
+ aniso: 4,
+ });
+ const { rampColors } = this.getLayerConfig();
+ const imageData = generateColorRamp(rampColors as IColorRamp);
+ this.colorTexture = createTexture2D({
+ data: imageData.data,
+ width: imageData.width,
+ height: imageData.height,
+ flipY: true,
+ });
+ this.models = [this.buildRasterModel()];
+ }
protected getConfigSchema() {
return {
properties: {
@@ -69,28 +91,6 @@ export default class RasterLayer extends BaseLayer {
return this;
}
-
- protected buildModels() {
- const parserDataItem = this.getSource().data.dataArray[0];
- const { createTexture2D } = this.rendererService;
- this.texture = createTexture2D({
- data: parserDataItem.data,
- width: parserDataItem.width,
- height: parserDataItem.height,
- format: gl.LUMINANCE,
- type: gl.FLOAT,
- aniso: 4,
- });
- const { rampColors } = this.getLayerConfig();
- const imageData = generateColorRamp(rampColors as IColorRamp);
- this.colorTexture = createTexture2D({
- data: imageData.data,
- width: imageData.width,
- height: imageData.height,
- flipY: true,
- });
- this.models = [this.buildRasterModel()];
- }
private buildRasterModel() {
const source = this.getSource();
const sourceFeature = source.data.dataArray[0];
diff --git a/packages/layers/src/raster/raster2d.ts b/packages/layers/src/raster/raster2d.ts
index 17ca71129b..e7f26d8093 100644
--- a/packages/layers/src/raster/raster2d.ts
+++ b/packages/layers/src/raster/raster2d.ts
@@ -16,40 +16,7 @@ export default class Raster2dLayer extends BaseLayer {
protected texture: ITexture2D;
protected colorTexture: ITexture2D;
- protected getConfigSchema() {
- return {
- properties: {
- opacity: {
- type: 'number',
- minimum: 0,
- maximum: 1,
- },
- },
- };
- }
-
- protected renderModels() {
- const { opacity } = this.getLayerConfig();
- const parserDataItem = this.getSource().data.dataArray[0];
- const { min, max } = parserDataItem;
- if (this.texture) {
- this.models.forEach((model) =>
- model.draw({
- uniforms: {
- u_opacity: opacity || 1,
- u_texture: this.texture,
- u_min: min,
- u_max: max,
- u_colorTexture: this.colorTexture,
- },
- }),
- );
- }
-
- return this;
- }
-
- protected buildModels() {
+ public buildModels() {
this.registerBuiltinAttributes();
const source = this.getSource();
const { createTexture2D } = this.rendererService;
@@ -91,6 +58,39 @@ export default class Raster2dLayer extends BaseLayer {
];
}
+ protected getConfigSchema() {
+ return {
+ properties: {
+ opacity: {
+ type: 'number',
+ minimum: 0,
+ maximum: 1,
+ },
+ },
+ };
+ }
+
+ protected renderModels() {
+ const { opacity } = this.getLayerConfig();
+ const parserDataItem = this.getSource().data.dataArray[0];
+ const { min, max } = parserDataItem;
+ if (this.texture) {
+ this.models.forEach((model) =>
+ model.draw({
+ uniforms: {
+ u_opacity: opacity || 1,
+ u_texture: this.texture,
+ u_min: min,
+ u_max: max,
+ u_colorTexture: this.colorTexture,
+ },
+ }),
+ );
+ }
+
+ return this;
+ }
+
private registerBuiltinAttributes() {
// point layer size;
this.styleAttributeService.registerStyleAttribute({
diff --git a/packages/maps/package.json b/packages/maps/package.json
index 2b2badf005..e230aad234 100644
--- a/packages/maps/package.json
+++ b/packages/maps/package.json
@@ -1,6 +1,6 @@
{
"name": "@antv/l7-maps",
- "version": "2.0.4",
+ "version": "2.0.5",
"description": "",
"main": "lib/index.js",
"module": "es/index.js",
@@ -23,7 +23,7 @@
"author": "xiaoiver",
"license": "ISC",
"dependencies": {
- "@antv/l7-core": "^2.0.4",
+ "@antv/l7-core": "^2.0.5",
"@antv/l7-utils": "^2.0.1",
"@babel/runtime": "^7.7.7",
"gl-matrix": "^3.1.0",
diff --git a/packages/maps/src/amap/index.ts b/packages/maps/src/amap/index.ts
index 5ba8b609be..ef143e776d 100644
--- a/packages/maps/src/amap/index.ts
+++ b/packages/maps/src/amap/index.ts
@@ -159,11 +159,11 @@ export default class AMapService
public getMinZoom(): number {
const zooms = this.map.get('zooms') as [number, number];
- return zooms[0];
+ return zooms[0] - 1;
}
public getMaxZoom(): number {
const zooms = this.map.get('zooms') as [number, number];
- return zooms[1];
+ return zooms[1] - 1;
}
public setRotation(rotation: number): void {
return this.map.setRotation(rotation);
@@ -209,8 +209,8 @@ export default class AMapService
const ll = new AMap.Pixel(pixel[0], pixel[1]);
const lngLat = this.map.containerToLngLat(ll);
return {
- lng: lngLat.getLng(),
- lat: lngLat.getLat(),
+ lng: lngLat?.getLng(),
+ lat: lngLat?.getLat(),
};
}
public lngLatToContainer(lnglat: [number, number]): IPoint {
@@ -248,43 +248,40 @@ export default class AMapService
this.$mapContainer = this.creatAmapContainer(
id as string | HTMLDivElement,
);
- // @ts-ignore
- this.map = new AMap.Map(this.$mapContainer, {
+
+ const map = new AMap.Map(this.$mapContainer, {
mapStyle: this.getMapStyle(style as string),
zooms: [minZoom, maxZoom],
viewMode: '3D',
...rest,
});
// 监听地图相机事件
- this.map.on('camerachange', this.handleCameraChanged);
- resolve();
+ map.on('camerachange', this.handleCameraChanged);
+ // @ts-ignore
+ this.map = map;
+ setTimeout(() => {
+ resolve();
+ }, 10);
}
};
- if (!document.getElementById(AMAP_SCRIPT_ID) || !mapInstance) {
- // 异步加载高德地图
- // @see https://lbs.amap.com/api/javascript-api/guide/abc/load
- // @ts-ignore
- window.initAMap = (): void => {
- amapLoaded = true;
+ if (!amapLoaded && !mapInstance) {
+ if (token === AMAP_API_KEY) {
+ this.logger.warn(this.configService.getSceneWarninfo('MapToken'));
+ }
+ amapLoaded = true;
+ this.loadAMapScript(
+ `https://webapi.amap.com/maps?v=${AMAP_VERSION}&key=${token}&plugin=Map3D${plugin.join(
+ ',',
+ )}`,
+ ).then(() => {
resolveMap();
if (pendingResolveQueue.length) {
pendingResolveQueue.forEach((r) => r());
pendingResolveQueue = [];
}
- };
- if (token === AMAP_API_KEY) {
- this.logger.warn(this.configService.getSceneWarninfo('MapToken'));
- }
- const url: string = `https://webapi.amap.com/maps?v=${AMAP_VERSION}&key=${token}&plugin=Map3D${plugin.join(
- ',',
- )}&callback=initAMap`;
- const $jsapi = document.createElement('script');
- $jsapi.id = AMAP_SCRIPT_ID;
- $jsapi.charset = 'utf-8';
- $jsapi.src = url;
- document.head.appendChild($jsapi);
+ });
} else {
- if (amapLoaded || mapInstance) {
+ if ((amapLoaded && window.AMap) || mapInstance) {
resolveMap();
} else {
pendingResolveQueue.push(resolveMap);
@@ -381,4 +378,15 @@ export default class AMapService
$wrapper.appendChild($amapdiv);
return $amapdiv;
}
+ private loadAMapScript(src: string) {
+ return new Promise((resolve, reject) => {
+ const script = document.createElement('script');
+ script.src = src;
+ script.onload = () => {
+ resolve();
+ };
+ script.onerror = reject;
+ document.head.appendChild(script);
+ });
+ }
}
diff --git a/packages/renderer/package.json b/packages/renderer/package.json
index d8a6d97212..70d35d934a 100644
--- a/packages/renderer/package.json
+++ b/packages/renderer/package.json
@@ -1,6 +1,6 @@
{
"name": "@antv/l7-renderer",
- "version": "2.0.4",
+ "version": "2.0.5",
"description": "",
"main": "lib/index.js",
"module": "es/index.js",
@@ -25,7 +25,7 @@
"gl": "^4.4.0"
},
"dependencies": {
- "@antv/l7-core": "^2.0.4",
+ "@antv/l7-core": "^2.0.5",
"@babel/runtime": "^7.7.7",
"inversify": "^5.0.1",
"lodash": "^4.17.15",
diff --git a/packages/scene/package.json b/packages/scene/package.json
index d93fd0cc0d..bdbc9aa312 100644
--- a/packages/scene/package.json
+++ b/packages/scene/package.json
@@ -1,6 +1,6 @@
{
"name": "@antv/l7-scene",
- "version": "2.0.4",
+ "version": "2.0.5",
"description": "",
"main": "lib/index.js",
"module": "es/index.js",
@@ -22,10 +22,10 @@
"author": "xiaoiver",
"license": "ISC",
"dependencies": {
- "@antv/l7-component": "^2.0.4",
- "@antv/l7-core": "^2.0.4",
- "@antv/l7-maps": "^2.0.4",
- "@antv/l7-renderer": "^2.0.4",
+ "@antv/l7-component": "^2.0.5",
+ "@antv/l7-core": "^2.0.5",
+ "@antv/l7-maps": "^2.0.5",
+ "@antv/l7-renderer": "^2.0.5",
"@antv/l7-utils": "^2.0.1",
"@babel/runtime": "^7.7.7",
"inversify": "^5.0.1",
diff --git a/packages/source/package.json b/packages/source/package.json
index de18f389cb..afc9269a5d 100644
--- a/packages/source/package.json
+++ b/packages/source/package.json
@@ -1,6 +1,6 @@
{
"name": "@antv/l7-source",
- "version": "2.0.4",
+ "version": "2.0.5",
"description": "",
"main": "lib/index.js",
"module": "es/index.js",
@@ -24,7 +24,7 @@
"author": "lzxue",
"license": "ISC",
"dependencies": {
- "@antv/l7-core": "^2.0.4",
+ "@antv/l7-core": "^2.0.5",
"@antv/l7-utils": "^2.0.1",
"@babel/runtime": "^7.7.7",
"@mapbox/geojson-rewind": "^0.4.0",
diff --git a/packages/source/src/parser/geojson.ts b/packages/source/src/parser/geojson.ts
index bf050352be..f02798c2b6 100644
--- a/packages/source/src/parser/geojson.ts
+++ b/packages/source/src/parser/geojson.ts
@@ -34,6 +34,12 @@ export default function geoJSON(
geometry.coordinates.length > 0
);
});
+ if (data.features.length === 0) {
+ return {
+ dataArray: [],
+ featureKeys,
+ };
+ }
// 数据为空时处理
const i = 0;
// multi polygon 拆分
diff --git a/stories/Components/components/Zoom.tsx b/stories/Components/components/Zoom.tsx
index 5b7407e0ac..9e11c6dd96 100644
--- a/stories/Components/components/Zoom.tsx
+++ b/stories/Components/components/Zoom.tsx
@@ -1,6 +1,6 @@
// @ts-ignore
import { PolygonLayer, Scene, Zoom } from '@antv/l7';
-import { Mapbox } from '@antv/l7-maps';
+import { GaodeMap } from '@antv/l7-maps';
import * as React from 'react';
@@ -18,10 +18,12 @@ export default class ZoomComponent extends React.Component {
const data = await response.json();
const scene = new Scene({
id: 'map',
- map: new Mapbox({
+ map: new GaodeMap({
style: 'dark',
center: [110.19382669582967, 30.258134],
pitch: 0,
+ minZoom: 2,
+ maxZoom: 6,
zoom: 3,
}),
});
diff --git a/stories/Layers/components/Arcline.tsx b/stories/Layers/components/Arcline.tsx
index 5a350fd5eb..7203d26b97 100644
--- a/stories/Layers/components/Arcline.tsx
+++ b/stories/Layers/components/Arcline.tsx
@@ -41,6 +41,9 @@ export default class ArcLineDemo extends React.Component {
.select({
color: 'red',
})
+ .active({
+ color: 'red',
+ })
.color('rgb(13,64,140)')
.animate({
enable: true,
diff --git a/stories/Layers/components/HeatMap.tsx b/stories/Layers/components/HeatMap.tsx
index 0ca9fdf800..db5caea45a 100644
--- a/stories/Layers/components/HeatMap.tsx
+++ b/stories/Layers/components/HeatMap.tsx
@@ -20,40 +20,42 @@ export default class HeatMapLayerDemo extends React.Component {
map: new Mapbox({
center: [121.268, 30.3628],
pitch: 0,
- style: 'mapbox://styles/mapbox/dark-v10',
+ style: 'dark',
zoom: 2,
}),
});
- const layer = new HeatmapLayer({
- enableTAA: false,
- });
+ const data = await response.json();
+
+ const layer = new HeatmapLayer();
layer
- .source(await response.json())
- .size('mag', [0, 1]) // weight映射通道
+ .source({
+ type: 'FeatureCollection',
+ features: [],
+ })
+ .shape('heatmap')
+ .size('mag', [0, 1.0]) // weight映射通道
.style({
intensity: 2,
radius: 20,
- opacity: 0.6,
+ opacity: 1.0,
rampColors: {
colors: [
- '#2E8AE6',
- '#69D1AB',
- '#DAF291',
- '#FFD591',
- '#FF7A45',
- '#CF1D49',
- ],
+ '#FF4818',
+ '#F7B74A',
+ '#FFF598',
+ '#91EABC',
+ '#2EA9A1',
+ '#206C7C',
+ ].reverse(),
positions: [0, 0.2, 0.4, 0.6, 0.8, 1.0],
},
});
scene.addLayer(layer);
- // requestAnimationFrame(run);
- scene.render();
+ layer.setData({
+ type: 'FeatureCollection',
+ features: data.features.slice(0, 100),
+ });
this.scene = scene;
- // function run() {
- // scene.render();
- // requestAnimationFrame(run);
- // }
}
public render() {
diff --git a/stories/Layers/components/data_update.tsx b/stories/Layers/components/data_update.tsx
index 4325d7a105..1610e537b8 100644
--- a/stories/Layers/components/data_update.tsx
+++ b/stories/Layers/components/data_update.tsx
@@ -55,13 +55,13 @@ export default class DataUpdate extends React.Component {
scene.addLayer(layer);
layer.setData(pointOnCircle(1000));
scene.render();
- // function animateMarker(timestamp: number) {
- // layer.setData(pointOnCircle(timestamp / 1000));
- // scene.render();
- // requestAnimationFrame(animateMarker);
- // }
+ function animateMarker(timestamp: number) {
+ layer.setData(pointOnCircle(timestamp / 1000));
+ scene.render();
+ requestAnimationFrame(animateMarker);
+ }
// layer.on('inited', () => {
- // animateMarker(0);
+ animateMarker(0);
// });
}
diff --git a/stories/MapAdaptor/components/MultiAMap.tsx b/stories/MapAdaptor/components/MultiAMap.tsx
index 45cbe6cdc8..73837a61af 100644
--- a/stories/MapAdaptor/components/MultiAMap.tsx
+++ b/stories/MapAdaptor/components/MultiAMap.tsx
@@ -1,5 +1,5 @@
// @ts-ignore
-import { Scene } from '@antv/l7';
+import { PointLayer, Scene } from '@antv/l7';
import { GaodeMap } from '@antv/l7-maps';
import * as React from 'react';
@@ -14,26 +14,86 @@ export default class MultiGaodeMap extends React.Component {
public async componentDidMount() {
const response = await fetch(
- 'https://gw.alipayobjects.com/os/basement_prod/d2e0e930-fd44-4fca-8872-c1037b0fee7b.json',
+ 'https://gw.alipayobjects.com/os/basement_prod/893d1d5f-11d9-45f3-8322-ee9140d288ae.json',
);
+ const data = await response.json();
const scene1 = new Scene({
id: 'map1',
map: new GaodeMap({
- center: [110.19382669582967, 50.258134],
- pitch: 0,
+ center: [121.435159, 31.256971],
+ zoom: 14.89,
style: 'light',
- zoom: 3,
}),
});
const scene2 = new Scene({
id: 'map2',
map: new GaodeMap({
- center: [110.19382669582967, 50.258134],
- pitch: 0,
+ center: [121.435159, 31.256971],
+ zoom: 14.89,
style: 'dark',
- zoom: 3,
}),
});
+
+ const pointLayer = new PointLayer({})
+ .source(data, {
+ parser: {
+ type: 'json',
+ x: 'longitude',
+ y: 'latitude',
+ },
+ })
+ .shape('name', [
+ 'circle',
+ 'triangle',
+ 'square',
+ 'pentagon',
+ 'hexagon',
+ 'octogon',
+ 'hexagram',
+ 'rhombus',
+ 'vesica',
+ ])
+ .size('unit_price', [10, 25])
+ .active(true)
+ .color('name', ['#5B8FF9', '#5CCEA1', '#5D7092', '#F6BD16', '#E86452'])
+ .style({
+ opacity: 0.3,
+ strokeWidth: 2,
+ });
+
+ const pointLayer2 = new PointLayer({})
+ .source(data, {
+ parser: {
+ type: 'json',
+ x: 'longitude',
+ y: 'latitude',
+ },
+ })
+ .shape('name', [
+ 'circle',
+ 'triangle',
+ 'square',
+ 'pentagon',
+ 'hexagon',
+ 'octogon',
+ 'hexagram',
+ 'rhombus',
+ 'vesica',
+ ])
+ .size('unit_price', [10, 25])
+ .active(true)
+ .color('#5B8FF9')
+ .style({
+ opacity: 0.3,
+ strokeWidth: 2,
+ });
+ scene1.on('loaded', () => {
+ scene1.addLayer(pointLayer);
+ });
+ scene2.on('loaded', () => {
+ scene2.addLayer(pointLayer2);
+ });
+
this.scene1 = scene1;
this.scene2 = scene2;
}
diff --git a/yarn.lock b/yarn.lock
index 5c4a08ca77..a318065296 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2750,7 +2750,7 @@
mkdirp "^0.5.1"
rimraf "^2.5.2"
-"@mikaelkristiansson/domready@^1.0.9":
+"@mikaelkristiansson/domready@^1.0.10":
version "1.0.10"
resolved "https://registry.npmjs.org/@mikaelkristiansson/domready/-/domready-1.0.10.tgz#f6d69866c0857664e70690d7a0bfedb72143adb5"
integrity sha512-6cDuZeKSCSJ1KvfEQ25Y8OXUjqDJZ+HgUs6dhASWbAX8fxVraTfPsSeRe2bN+4QJDsgUaXaMWBYfRomCr04GGg==
@@ -2962,31 +2962,31 @@
resolved "https://registry.npmjs.org/@stackblitz/sdk/-/sdk-1.3.0.tgz#519ab810df811a5b9fe60c3e69112d6fa713ec1d"
integrity sha512-dTqbGKHLowJokC+mbjHMH/9mEd0AJCxOXmsfuKGEWOjnVTnxHjJKXL+bL/vxBSjMwBaUFPUNGmHojPPd2OxADQ==
-"@storybook/addons@5.3.3":
- version "5.3.3"
- resolved "https://registry.npmjs.org/@storybook/addons/-/addons-5.3.3.tgz#d1383379c27c205bd36961a5a833f1eec3850dd4"
- integrity sha512-B7X21g+mlH0SMmP9MEgLPJltRjr36n9OtUtXkMhPae/B4AwiAm+krXmE4OxC5IEyl6m9Tmp4DJDYyZ2afzLBDg==
+"@storybook/addons@5.3.5":
+ version "5.3.5"
+ resolved "https://registry.npmjs.org/@storybook/addons/-/addons-5.3.5.tgz#0ee41838d8fde8787ca7366bc42039adae55cab3"
+ integrity sha512-s7zWmnNxpwnEpb3kG1+dRudaK+RRezOH6WC3QlNqU8j1trlhFgbooqV2nIsC6yj57OZn4MLHtzuFelxs9jqTzg==
dependencies:
- "@storybook/api" "5.3.3"
- "@storybook/channels" "5.3.3"
- "@storybook/client-logger" "5.3.3"
- "@storybook/core-events" "5.3.3"
+ "@storybook/api" "5.3.5"
+ "@storybook/channels" "5.3.5"
+ "@storybook/client-logger" "5.3.5"
+ "@storybook/core-events" "5.3.5"
core-js "^3.0.1"
global "^4.3.2"
util-deprecate "^1.0.2"
-"@storybook/api@5.3.3":
- version "5.3.3"
- resolved "https://registry.npmjs.org/@storybook/api/-/api-5.3.3.tgz#a9d4f6a61167bfc2bf1197f361f4d3c5ae7d9143"
- integrity sha512-ZxehdzUelOABCWvDT33PukMD1eJhum3K60NMb5Pf46zvMJYbLLgPPszf6hBPjv1FmeZlYzfReyLVOhhUixYUyQ==
+"@storybook/api@5.3.5":
+ version "5.3.5"
+ resolved "https://registry.npmjs.org/@storybook/api/-/api-5.3.5.tgz#0641daac9b734e5260397b8789b774026126636a"
+ integrity sha512-fDRxpD1fUD/16Z+OnG6rFD71o9A2TyCXGS0Ey1yaNiqnroPplD2kwjz2T4iLsJwvIu3pSnvDCjijbLqYsfeaPg==
dependencies:
"@reach/router" "^1.2.1"
- "@storybook/channels" "5.3.3"
- "@storybook/client-logger" "5.3.3"
- "@storybook/core-events" "5.3.3"
+ "@storybook/channels" "5.3.5"
+ "@storybook/client-logger" "5.3.5"
+ "@storybook/core-events" "5.3.5"
"@storybook/csf" "0.0.1"
- "@storybook/router" "5.3.3"
- "@storybook/theming" "5.3.3"
+ "@storybook/router" "5.3.5"
+ "@storybook/theming" "5.3.5"
"@types/reach__router" "^1.2.3"
core-js "^3.0.1"
fast-deep-equal "^2.0.1"
@@ -3001,34 +3001,34 @@
telejson "^3.2.0"
util-deprecate "^1.0.2"
-"@storybook/channel-postmessage@5.3.3":
- version "5.3.3"
- resolved "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-5.3.3.tgz#085e0af0ebe2b32d2ba0efced90a1036ac5614a3"
- integrity sha512-2MxXF/7TI8QXi+ATr5kzU06SsOSFuzX5s244Lp016VFdBj5o93rEpOdpDjanh+2AWYTeJY1lvk6QLUzuMqydpA==
+"@storybook/channel-postmessage@5.3.5":
+ version "5.3.5"
+ resolved "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-5.3.5.tgz#cdf6b41d5e07ba913443c37b1d0e5c978eebfbfb"
+ integrity sha512-wpKXbrh3lYgZc7RFHyyFvxyYaf1XLiIz1tN5ANpahjF1vp0rnZbNcUDqTHFAG1EDvIPMPcIdrUfdfu4RDXG44A==
dependencies:
- "@storybook/channels" "5.3.3"
- "@storybook/client-logger" "5.3.3"
+ "@storybook/channels" "5.3.5"
+ "@storybook/client-logger" "5.3.5"
core-js "^3.0.1"
global "^4.3.2"
telejson "^3.2.0"
-"@storybook/channels@5.3.3":
- version "5.3.3"
- resolved "https://registry.npmjs.org/@storybook/channels/-/channels-5.3.3.tgz#839b02ce5527326e73af2e9003b3ab5d4642e1d6"
- integrity sha512-HmIviGw9yv3T19PNBizHW0H67exqQQcwk82AJ76upEJ6iE5CMRZd7WYU7UM6ul00yfy8F+afAVlYCg2p79bQ+g==
+"@storybook/channels@5.3.5":
+ version "5.3.5"
+ resolved "https://registry.npmjs.org/@storybook/channels/-/channels-5.3.5.tgz#8c9959aa8d8281d6416605f276f85082ceee8afb"
+ integrity sha512-er5H7xklnQEuY1E+Ai20ROgsIIu0vSVL3TgvHUGBn5x4gjJnZay86l5qYwknXHMDZdiZjLjIzTez1KRPT/vtnQ==
dependencies:
core-js "^3.0.1"
-"@storybook/client-api@5.3.3":
- version "5.3.3"
- resolved "https://registry.npmjs.org/@storybook/client-api/-/client-api-5.3.3.tgz#e9693c0c765d00e6dd1522350ff7ee03c1a815ee"
- integrity sha512-CexHAvfdHvYVJbVvEwDA+2WGKeVr+QDIHgI/n16CPPSQ4LwWbe2DXD4Iy7lZj5+WiziZ7B6jAzpM+lTwhbSQHQ==
+"@storybook/client-api@5.3.5":
+ version "5.3.5"
+ resolved "https://registry.npmjs.org/@storybook/client-api/-/client-api-5.3.5.tgz#4388e85f99b63c128989b82dcb7be60fe515b14c"
+ integrity sha512-tRw2gPi8IVEhQw6G26ppyudd/ThDk2KJbzWHDru8Tbl8f75Ir2Z1PMmRe5XVhy689NYYT/fBfuhOlignjkrlWw==
dependencies:
- "@storybook/addons" "5.3.3"
- "@storybook/channel-postmessage" "5.3.3"
- "@storybook/channels" "5.3.3"
- "@storybook/client-logger" "5.3.3"
- "@storybook/core-events" "5.3.3"
+ "@storybook/addons" "5.3.5"
+ "@storybook/channel-postmessage" "5.3.5"
+ "@storybook/channels" "5.3.5"
+ "@storybook/client-logger" "5.3.5"
+ "@storybook/core-events" "5.3.5"
"@storybook/csf" "0.0.1"
core-js "^3.0.1"
eventemitter3 "^4.0.0"
@@ -3041,20 +3041,20 @@
ts-dedent "^1.1.0"
util-deprecate "^1.0.2"
-"@storybook/client-logger@5.3.3":
- version "5.3.3"
- resolved "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-5.3.3.tgz#c4cffb0523c2a5ca53c9ec2060e9433d135172e6"
- integrity sha512-iyW8aZBNWm2xN4vfRsNC27/b6i7s8hg6aWvtJ+7y91MPn+NL6QgWi5YOaNc8hA3RY5fe+yEOM6H6fkLk0PsWEQ==
+"@storybook/client-logger@5.3.5":
+ version "5.3.5"
+ resolved "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-5.3.5.tgz#6709098482b69d248df6908f6b25f172def62ca9"
+ integrity sha512-KBLSZCELjaktkDVuPw6qe+P1V4CPev/JyYsCkaGwkVUVudFJd0pZQ2tNHWLdEXpwn95k2OFoG3oLtzox5LptlA==
dependencies:
core-js "^3.0.1"
-"@storybook/components@5.3.3":
- version "5.3.3"
- resolved "https://registry.npmjs.org/@storybook/components/-/components-5.3.3.tgz#06e18f8b4872b17cd0a303cee7e989221ac7ba57"
- integrity sha512-8S02WhMHBHD7CRpQTmWQXUWcbWiJ7kJ6fy0arTzM3MGe/TD9sR2691F0aXeZPljodkPBqj4JKUSTi+HujLAT5A==
+"@storybook/components@5.3.5":
+ version "5.3.5"
+ resolved "https://registry.npmjs.org/@storybook/components/-/components-5.3.5.tgz#3b2e93ed140c351775f43f4c8e4947144feb3a05"
+ integrity sha512-B8z5GwL5LL9lCwCTuJ1Amod6QJC1FfRfnTZYxUgRxG1EfiYsejoFeB2tOKlIy/EaX8Lmm3XE47A9I1FhBWvCHw==
dependencies:
- "@storybook/client-logger" "5.3.3"
- "@storybook/theming" "5.3.3"
+ "@storybook/client-logger" "5.3.5"
+ "@storybook/theming" "5.3.5"
"@types/react-syntax-highlighter" "11.0.2"
"@types/react-textarea-autosize" "^4.3.3"
core-js "^3.0.1"
@@ -3075,33 +3075,33 @@
simplebar-react "^1.0.0-alpha.6"
ts-dedent "^1.1.0"
-"@storybook/core-events@5.3.3":
- version "5.3.3"
- resolved "https://registry.npmjs.org/@storybook/core-events/-/core-events-5.3.3.tgz#ab09b2dc1219253888e11dd85fd58005121b8e9c"
- integrity sha512-D1NpSMUCmd4N1n6iiIo3E2S5bGgZUao8EvQRgQUC15yX/cgvUwZ2bN5QLoekK0ybxTzLQMcicMxt+ti3tiTBSg==
+"@storybook/core-events@5.3.5":
+ version "5.3.5"
+ resolved "https://registry.npmjs.org/@storybook/core-events/-/core-events-5.3.5.tgz#ec09846ec21a130906014837bdd755cc1e4eb9e0"
+ integrity sha512-+nXv/yh6RiVQXO0OzkdclDmHrYUS42ora5xyeoEmWc6z6i46wi8KG4XQSrWQ+gHi+ORY6poGIFYMNlk78fmb9g==
dependencies:
core-js "^3.0.1"
-"@storybook/core@5.3.3":
- version "5.3.3"
- resolved "https://registry.npmjs.org/@storybook/core/-/core-5.3.3.tgz#4fae6ddce6a84fb181b98867c468329c54676958"
- integrity sha512-JO9iTeRCYWeqF7Gtl00lru0Zx69dCGhFPAvP/deGI12ZQX3psdyS3Vq9IgLUpqXTs4uf/aGAzsbxq56vaAdrbg==
+"@storybook/core@5.3.5":
+ version "5.3.5"
+ resolved "https://registry.npmjs.org/@storybook/core/-/core-5.3.5.tgz#4e91e4eeac0edb69d0f5bbfff251ab7e0ed00ae7"
+ integrity sha512-3J//vbJkgqQ7xXBt78Hku+BN2xwNOalVw1RseBc9JQvNnFagYbl83REwldb24jkL+4lsGdxEY2ALEBSDdh8coQ==
dependencies:
"@babel/plugin-proposal-class-properties" "^7.7.0"
"@babel/plugin-proposal-object-rest-spread" "^7.6.2"
"@babel/plugin-syntax-dynamic-import" "^7.2.0"
"@babel/plugin-transform-react-constant-elements" "^7.2.0"
"@babel/preset-env" "^7.4.5"
- "@storybook/addons" "5.3.3"
- "@storybook/channel-postmessage" "5.3.3"
- "@storybook/client-api" "5.3.3"
- "@storybook/client-logger" "5.3.3"
- "@storybook/core-events" "5.3.3"
+ "@storybook/addons" "5.3.5"
+ "@storybook/channel-postmessage" "5.3.5"
+ "@storybook/client-api" "5.3.5"
+ "@storybook/client-logger" "5.3.5"
+ "@storybook/core-events" "5.3.5"
"@storybook/csf" "0.0.1"
- "@storybook/node-logger" "5.3.3"
- "@storybook/router" "5.3.3"
- "@storybook/theming" "5.3.3"
- "@storybook/ui" "5.3.3"
+ "@storybook/node-logger" "5.3.5"
+ "@storybook/router" "5.3.5"
+ "@storybook/theming" "5.3.5"
+ "@storybook/ui" "5.3.5"
airbnb-js-shims "^2.2.1"
ansi-to-html "^0.6.11"
autoprefixer "^9.7.2"
@@ -3168,10 +3168,10 @@
dependencies:
lodash "^4.17.15"
-"@storybook/node-logger@5.3.3":
- version "5.3.3"
- resolved "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-5.3.3.tgz#7a28519b485a89da668743e8ca974751bb3b7dd1"
- integrity sha512-x2bvZQomd/XFp7TIdeLjaY0SEfNxEu3Z/PQwvwCV2RHaxc7teKuKRDMY6OzDrFEdxX3qzCO6Qe9lc/pL0Q0O9Q==
+"@storybook/node-logger@5.3.5":
+ version "5.3.5"
+ resolved "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-5.3.5.tgz#412e6fc76c2e76e458121d76cd128e51b1a65ddc"
+ integrity sha512-kTXUTKNwLr+sofFJlM7iLc3C5b1JctL9T06fQZ7rMHKvDj5fQA4tQB2nLO1DcGm97k7PBo2khJwLouAW9Fvojg==
dependencies:
chalk "^3.0.0"
core-js "^3.0.1"
@@ -3180,16 +3180,16 @@
regenerator-runtime "^0.13.3"
"@storybook/react@^5.1.9":
- version "5.3.3"
- resolved "https://registry.npmjs.org/@storybook/react/-/react-5.3.3.tgz#0a0c1482ec55323e4aa6da000ec018355a0e1c2f"
- integrity sha512-Oup5+NhP6R5Uo10U7oWKTZFVhrA8fSdxPjYu2lGPrhd5gJ4Pm3jwQXCpl+VrkJNBo/ZQehVqRc13hw87PIBBkw==
+ version "5.3.5"
+ resolved "https://registry.npmjs.org/@storybook/react/-/react-5.3.5.tgz#bd9096c60ade6cd3fe033b4cf2fd6647ce7b8d73"
+ integrity sha512-E2Ux1WqFELl+2THxBnGMT47mThSHHGB4qTij8mIUE2yXqBNGkz+RDO5TMaQjsbF1no8JvNKK+ePAMvUR1wPXIA==
dependencies:
"@babel/plugin-transform-react-constant-elements" "^7.6.3"
"@babel/preset-flow" "^7.0.0"
"@babel/preset-react" "^7.0.0"
- "@storybook/addons" "5.3.3"
- "@storybook/core" "5.3.3"
- "@storybook/node-logger" "5.3.3"
+ "@storybook/addons" "5.3.5"
+ "@storybook/core" "5.3.5"
+ "@storybook/node-logger" "5.3.5"
"@svgr/webpack" "^4.0.3"
"@types/webpack-env" "^1.15.0"
babel-plugin-add-react-displayname "^0.0.5"
@@ -3206,10 +3206,10 @@
ts-dedent "^1.1.0"
webpack "^4.33.0"
-"@storybook/router@5.3.3":
- version "5.3.3"
- resolved "https://registry.npmjs.org/@storybook/router/-/router-5.3.3.tgz#841c988620678366bcc483ccfc19324a2534cbf7"
- integrity sha512-zmZ3TIU5wBsn3ez5f7n9XkUGpS0guszvFcFx5Q1vpSj6WJr0f6lyLG+Sj6hNPLoBXhUtXPRmIPHn5+vPQ7UDMg==
+"@storybook/router@5.3.5":
+ version "5.3.5"
+ resolved "https://registry.npmjs.org/@storybook/router/-/router-5.3.5.tgz#fd75cc3c3f5c9dd3cb815158d50934338389449f"
+ integrity sha512-XiLMybUhccm8mkO9KKec95wNNUgWnRpeO4f2q2RH8ii41HP2f3jd6SgDrBHdjEaNVeoeNvl1N3XbaBM9h/MYOA==
dependencies:
"@reach/router" "^1.2.1"
"@storybook/csf" "0.0.1"
@@ -3221,14 +3221,14 @@
qs "^6.6.0"
util-deprecate "^1.0.2"
-"@storybook/theming@5.3.3":
- version "5.3.3"
- resolved "https://registry.npmjs.org/@storybook/theming/-/theming-5.3.3.tgz#3c58b696a608143cf436d6c511c3454c48c8087f"
- integrity sha512-K5UK8xMlX2VQcSv4+5NM3MgUyHa5VGZ5lVTAFp8YYW30gdt3rskO1aih8TVx9HI4gpn+6OdMVp1I+IN+hvk5/Q==
+"@storybook/theming@5.3.5":
+ version "5.3.5"
+ resolved "https://registry.npmjs.org/@storybook/theming/-/theming-5.3.5.tgz#b53f87357c92aa85f149e33651fe85ad86b3fdf6"
+ integrity sha512-7L26KJn1tNIMrH+Lu6Y2Uiyk/q9QBQO+uFrOg6x8sNj0YY5ENU+pgA6EG8XF8itHZbw88iJvJ1da+mY406I4+g==
dependencies:
"@emotion/core" "^10.0.20"
"@emotion/styled" "^10.0.17"
- "@storybook/client-logger" "5.3.3"
+ "@storybook/client-logger" "5.3.5"
core-js "^3.0.1"
deep-object-diff "^1.1.0"
emotion-theming "^10.0.19"
@@ -3239,20 +3239,20 @@
resolve-from "^5.0.0"
ts-dedent "^1.1.0"
-"@storybook/ui@5.3.3":
- version "5.3.3"
- resolved "https://registry.npmjs.org/@storybook/ui/-/ui-5.3.3.tgz#a8e2d8ade181dfe09822176d7858f98a7f16ba90"
- integrity sha512-p0qGYncwKLshzLZYq/6X8PntdUD1Sz73BI6XpLTwfV3jJYZMZD3v7QwXjucOyd/VfVF8gmJXZmhd/GCfVBdmMw==
+"@storybook/ui@5.3.5":
+ version "5.3.5"
+ resolved "https://registry.npmjs.org/@storybook/ui/-/ui-5.3.5.tgz#3958d337da6314fa5e8683876eb5a9a75b34ed05"
+ integrity sha512-7oWXcWRAaKlf59YV24pJ8dMrkJpe0IeMBCS8kR3EsAdGVF6zSbNCFSKdzED6y2l14jIFyBo4eRCHCpZLKc9m4w==
dependencies:
"@emotion/core" "^10.0.20"
- "@storybook/addons" "5.3.3"
- "@storybook/api" "5.3.3"
- "@storybook/channels" "5.3.3"
- "@storybook/client-logger" "5.3.3"
- "@storybook/components" "5.3.3"
- "@storybook/core-events" "5.3.3"
- "@storybook/router" "5.3.3"
- "@storybook/theming" "5.3.3"
+ "@storybook/addons" "5.3.5"
+ "@storybook/api" "5.3.5"
+ "@storybook/channels" "5.3.5"
+ "@storybook/client-logger" "5.3.5"
+ "@storybook/components" "5.3.5"
+ "@storybook/core-events" "5.3.5"
+ "@storybook/router" "5.3.5"
+ "@storybook/theming" "5.3.5"
copy-to-clipboard "^3.0.8"
core-js "^3.0.1"
core-js-pure "^3.0.1"
@@ -4615,7 +4615,7 @@ array-ify@^1.0.0:
resolved "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece"
integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=
-array-includes@^3.0.3:
+array-includes@^3.0.3, array-includes@^3.1.1:
version "3.1.1"
resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348"
integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==
@@ -8780,9 +8780,9 @@ electron-download@^4.1.0:
sumchecker "^2.0.2"
electron-to-chromium@^1.3.247, electron-to-chromium@^1.3.322, electron-to-chromium@^1.3.47:
- version "1.3.335"
- resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.335.tgz#5fb6084a25cb1e2542df91e62b62e1931a602303"
- integrity sha512-ngKsDGd/xr2lAZvilxTfdvfEiQKmavyXd6irlswaHnewmXoz6JgbM9FUNwgp3NFIUHHegh1F87H8f5BJ8zABxw==
+ version "1.3.336"
+ resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.336.tgz#f0e7a3e78f1c9a0385b6693a4a4b7453f0ae6aaf"
+ integrity sha512-FtazvnXAizSVMxQNPqUcTv2UElY5r3uRPQwiU1Tyg/Yc2UFr+/3wqDoLIV9ES6ablW3IrCcR8uEK2ppxaNPWhw==
electron@^6.0.7:
version "6.1.7"
@@ -9078,7 +9078,7 @@ error-stack-parser@^2.0.0, error-stack-parser@^2.0.6:
dependencies:
stackframe "^1.1.1"
-es-abstract@^1.13.0, es-abstract@^1.17.0, es-abstract@^1.17.0-next.0, es-abstract@^1.17.0-next.1:
+es-abstract@^1.13.0, es-abstract@^1.17.0, es-abstract@^1.17.0-next.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2:
version "1.17.2"
resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.2.tgz#965b10af56597b631da15872c17a405e86c1fd46"
integrity sha512-YoKuru3Lyoy7yVTBSH2j7UxTqe/je3dWAruC0sHvZX1GNd5zX8SSLvQqEgO9b3Ex8IW+goFI9arEEsFIbulhOw==
@@ -9250,11 +9250,6 @@ eslint-plugin-eggache@^1.0.0:
resolved "https://registry.npmjs.org/eslint-plugin-eggache/-/eslint-plugin-eggache-1.0.0.tgz#1f8f98c698d2b511519fbdefbae78fe230487aa4"
integrity sha512-LPTrTvITFDZggiXAIdMPL4bJo0wvXUgJqC3f6UIskJxzHZze2aBTvjWQJ7TgEbkfpk++KWhcOl+lels+qAPKDg==
-eslint-plugin-eslint-plugin@^2.1.0:
- version "2.2.0"
- resolved "https://registry.npmjs.org/eslint-plugin-eslint-plugin/-/eslint-plugin-eslint-plugin-2.2.0.tgz#6cac90a8085f658e892b155dda130deac54cfa51"
- integrity sha512-X5+NT9a2GuwWyb3sHJdEEe6aD/30Fhi3/9XCmYHe/OSnWKUhmKOxFTfFM1AXZfJXjAoX7811bnoLI3fZr5AX5Q==
-
eslint-plugin-flowtype@^3.13.0:
version "3.13.0"
resolved "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-3.13.0.tgz#e241ebd39c0ce519345a3f074ec1ebde4cf80f2c"
@@ -9333,20 +9328,19 @@ eslint-plugin-react-hooks@^1.7.0:
integrity sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA==
eslint-plugin-react@^7.11.1, eslint-plugin-react@^7.17.0:
- version "7.17.0"
- resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.17.0.tgz#a31b3e134b76046abe3cd278e7482bd35a1d12d7"
- integrity sha512-ODB7yg6lxhBVMeiH1c7E95FLD4E/TwmFjltiU+ethv7KPdCwgiFuOZg9zNRHyufStTDLl/dEFqI2Q1VPmCd78A==
+ version "7.18.0"
+ resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.18.0.tgz#2317831284d005b30aff8afb7c4e906f13fa8e7e"
+ integrity sha512-p+PGoGeV4SaZRDsXqdj9OWcOrOpZn8gXoGPcIQTzo2IDMbAKhNDnME9myZWqO3Ic4R3YmwAZ1lDjWl2R2hMUVQ==
dependencies:
- array-includes "^3.0.3"
+ array-includes "^3.1.1"
doctrine "^2.1.0"
- eslint-plugin-eslint-plugin "^2.1.0"
has "^1.0.3"
jsx-ast-utils "^2.2.3"
- object.entries "^1.1.0"
- object.fromentries "^2.0.1"
- object.values "^1.1.0"
+ object.entries "^1.1.1"
+ object.fromentries "^2.0.2"
+ object.values "^1.1.1"
prop-types "^15.7.2"
- resolve "^1.13.1"
+ resolve "^1.14.2"
eslint-scope@3.7.1:
version "3.7.1"
@@ -10830,9 +10824,9 @@ gatsby-plugin-sharp@^2.2.22:
uuid "^3.3.3"
gatsby-plugin-sitemap@^2.2.21:
- version "2.2.25"
- resolved "https://registry.npmjs.org/gatsby-plugin-sitemap/-/gatsby-plugin-sitemap-2.2.25.tgz#c3960fbd5eb42501dcad848c50afbfb4e8788cea"
- integrity sha512-W1yz5EhEBT1je0a7+fr5T8/SxSfg9xGkVV6VV4Jt7RFBE8j2fNMcpfHpxcp1iiYM19y1fTJmM3OUNjBXANMCdQ==
+ version "2.2.26"
+ resolved "https://registry.npmjs.org/gatsby-plugin-sitemap/-/gatsby-plugin-sitemap-2.2.26.tgz#d0b9a9064966fd31b9ae46e769b05c904c20fd2f"
+ integrity sha512-0kqMM6zD4IWha7Af6kfzwk78870S8XGpOVNJojgtQ83eUu6mKQXdRuae/i52hjclSDsEprbvUfQT0yMxgOotGw==
dependencies:
"@babel/runtime" "^7.7.6"
minimatch "^3.0.4"
@@ -11004,9 +10998,9 @@ gatsby-transformer-sharp@^2.2.14:
sharp "^0.23.4"
gatsby@^2.15.16, gatsby@^2.17.7:
- version "2.18.22"
- resolved "https://registry.npmjs.org/gatsby/-/gatsby-2.18.22.tgz#1cbe78e58cdf1bf49ebbde778f22867176b962b1"
- integrity sha512-eKhU3u/4qGbZrB57tNxHkmLROE+RK6PKaOYzj+hlDn2bDoo/Tbub3VUUeIuKX5wRGzNNDKOH49PHSKd0Ldrv5Q==
+ version "2.18.23"
+ resolved "https://registry.npmjs.org/gatsby/-/gatsby-2.18.23.tgz#1e590cba0fd405f0bb0d1417503556c30ed60904"
+ integrity sha512-BSM6hv9Qp8HKyAUPg6ow2vWIMHgaoRLCbwYdQzIhgqCapEUyH73gM9E/3saSOYgoYuiRCzKMJr/2MOAapjWxVQ==
dependencies:
"@babel/code-frame" "^7.5.5"
"@babel/core" "^7.7.5"
@@ -11015,7 +11009,7 @@ gatsby@^2.15.16, gatsby@^2.17.7:
"@babel/runtime" "^7.7.6"
"@babel/traverse" "^7.7.4"
"@hapi/joi" "^15.1.1"
- "@mikaelkristiansson/domready" "^1.0.9"
+ "@mikaelkristiansson/domready" "^1.0.10"
"@pieh/friendly-errors-webpack-plugin" "1.7.0-chalk-2"
"@reach/router" "^1.2.1"
"@typescript-eslint/eslint-plugin" "^2.11.0"
@@ -14446,9 +14440,9 @@ kind-of@^5.0.0:
integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
kind-of@^6.0.0, kind-of@^6.0.2:
- version "6.0.2"
- resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051"
- integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==
+ version "6.0.3"
+ resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
+ integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
klaw@^1.0.0:
version "1.3.1"
@@ -16333,9 +16327,9 @@ node-releases@^1.1.29, node-releases@^1.1.44:
semver "^6.3.0"
node-sass@^4.12.0:
- version "4.13.0"
- resolved "https://registry.npmjs.org/node-sass/-/node-sass-4.13.0.tgz#b647288babdd6a1cb726de4545516b31f90da066"
- integrity sha512-W1XBrvoJ1dy7VsvTAS5q1V45lREbTlZQqFbiHb3R3OTTCma0XBtuG6xZ6Z4506nR4lmHPTqVRwxT6KgtWC97CA==
+ version "4.13.1"
+ resolved "https://registry.npmjs.org/node-sass/-/node-sass-4.13.1.tgz#9db5689696bb2eec2c32b98bfea4c7a2e992d0a3"
+ integrity sha512-TTWFx+ZhyDx1Biiez2nB0L3YrCZ/8oHagaDalbuBSlqXgUPsdkUSzJsVxeDO9LtPB49+Fh3WQl3slABo6AotNw==
dependencies:
async-foreach "^0.1.3"
chalk "^1.1.1"
@@ -16712,7 +16706,7 @@ object.entries@^1.1.0, object.entries@^1.1.1:
function-bind "^1.1.1"
has "^1.0.3"
-"object.fromentries@^2.0.0 || ^1.0.0", object.fromentries@^2.0.1, object.fromentries@^2.0.2:
+"object.fromentries@^2.0.0 || ^1.0.0", object.fromentries@^2.0.2:
version "2.0.2"
resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9"
integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==
@@ -16722,7 +16716,7 @@ object.entries@^1.1.0, object.entries@^1.1.1:
function-bind "^1.1.1"
has "^1.0.3"
-object.getownpropertydescriptors@^2.0.3:
+object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0:
version "2.1.0"
resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649"
integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==
@@ -17748,9 +17742,9 @@ postcss-html@^0.36.0:
htmlparser2 "^3.10.0"
postcss-jsx@^0.36.0:
- version "0.36.3"
- resolved "https://registry.npmjs.org/postcss-jsx/-/postcss-jsx-0.36.3.tgz#c91113eae2935a1c94f00353b788ece9acae3f46"
- integrity sha512-yV8Ndo6KzU8eho5mCn7LoLUGPkXrRXRjhMpX4AaYJ9wLJPv099xbtpbRQ8FrPnzVxb/cuMebbPR7LweSt+hTfA==
+ version "0.36.4"
+ resolved "https://registry.npmjs.org/postcss-jsx/-/postcss-jsx-0.36.4.tgz#37a68f300a39e5748d547f19a747b3257240bd50"
+ integrity sha512-jwO/7qWUvYuWYnpOb0+4bIIgJt7003pgU3P6nETBLaOyBXuTD55ho21xnals5nBrlpTIFodyd3/jBi6UO3dHvA==
dependencies:
"@babel/core" ">=7.2.2"
@@ -19425,9 +19419,9 @@ react-hotkeys@2.0.0:
prop-types "^15.6.1"
react-i18next@^11.0.0, react-i18next@^11.0.1:
- version "11.3.0"
- resolved "https://registry.npmjs.org/react-i18next/-/react-i18next-11.3.0.tgz#8c827b084708924fd2e8c787aca78e0f7966fa44"
- integrity sha512-ahpEF2wYmTHkrZiz/Kgh6qW7KT0ZV2Kd0PEr7277V9+qBmBQIYXwsCWjKEDNY/nTxFpfz4DlLPdVvjerWt7uqQ==
+ version "11.3.1"
+ resolved "https://registry.npmjs.org/react-i18next/-/react-i18next-11.3.1.tgz#9269282c3f566015f0bdf8fdbf46782bbe50f5a7"
+ integrity sha512-S/CWHcnew1lXo8HeniGhBU5kTmPhZ4w4rtA4m/gDN07soCtKKYSAcLNm7zhwjI2OSR4Skd0vOtzNp/FzEEjxIw==
dependencies:
"@babel/runtime" "^7.3.1"
html-parse-stringify2 "2.0.1"
@@ -19557,9 +19551,9 @@ react-textarea-autosize@^7.1.0:
prop-types "^15.6.0"
react-use@^13.8.0:
- version "13.17.0"
- resolved "https://registry.npmjs.org/react-use/-/react-use-13.17.0.tgz#5c4c2e3c85d586833dc6c10a5cadddb8b40a5d6d"
- integrity sha512-0VY4H9RFavqMc5edYliSNUauXesM9K7wcnjqG0VfY+bPO/uOAqJRAdOUSg2tvdyLVR6IuKjk2F4dyOlHQ40y+w==
+ version "13.19.0"
+ resolved "https://registry.npmjs.org/react-use/-/react-use-13.19.0.tgz#00c7650012021e75b5cf9ea8c1b1b4e1c22eb076"
+ integrity sha512-By7d8ZhdWo0Ns2BW/Gla5EDrj9rTJ8p/ueJKv7SbqlDQvu9lpwovWGWKjY5Vjz5gAG3tZrSSxd1gK+gw7gZniQ==
dependencies:
"@types/js-cookie" "2.2.4"
"@xobotyi/scrollbar-width" "1.5.0"
@@ -20346,7 +20340,7 @@ resolve@1.1.7:
resolved "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=
-resolve@1.x, resolve@^1.1.6, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1, resolve@~1.14.2:
+resolve@1.x, resolve@^1.1.6, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1, resolve@~1.14.2:
version "1.14.2"
resolved "https://registry.npmjs.org/resolve/-/resolve-1.14.2.tgz#dbf31d0fa98b1f29aa5169783b9c290cb865fea2"
integrity sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ==
@@ -21458,9 +21452,9 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
sourcemap-codec@^1.4.1, sourcemap-codec@^1.4.4:
- version "1.4.7"
- resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.7.tgz#5b2cd184e3fe51fd30ba049f7f62bf499b4f73ae"
- integrity sha512-RuN23NzhAOuUtaivhcrjXx1OPXsFeH9m5sI373/U7+tGLKihjUyboZAzOadytMjnqHp1f45RGk1IzDKCpDpSYA==
+ version "1.4.8"
+ resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
+ integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
space-separated-tokens@^1.0.0:
version "1.1.4"
@@ -22263,9 +22257,9 @@ supports-color@^5.3.0, supports-color@^5.4.0:
has-flag "^3.0.0"
svg-parser@^2.0.0:
- version "2.0.2"
- resolved "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.2.tgz#d134cc396fa2681dc64f518330784e98bd801ec8"
- integrity sha512-1gtApepKFweigFZj3sGO8KT8LvVZK8io146EzXrpVuWCDAbISz/yMucco3hWTkpZNoPabM+dnMOpy6Swue68Zg==
+ version "2.0.3"
+ resolved "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.3.tgz#a38f2e4e5442986f7ecb554c11f1411cfcf8c2b9"
+ integrity sha512-fnCWiifNhK8i2Z7b9R5tbNahpxrRdAaQbnoxKlT2KrSCj9Kq/yBSgulCRgBJRhy1dPnSY5slg5ehPUnzpEcHlg==
svg-react-loader@^0.4.4:
version "0.4.6"
@@ -23048,9 +23042,9 @@ typedarray@^0.0.6:
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
typescript@^3.7.0-beta, typescript@^3.7.4:
- version "3.7.4"
- resolved "https://registry.npmjs.org/typescript/-/typescript-3.7.4.tgz#1743a5ec5fef6a1fa9f3e4708e33c81c73876c19"
- integrity sha512-A25xv5XCtarLwXpcDNZzCGvW2D1S3/bACratYBx2sax8PefsFhlYmkQicKHvpYflFS8if4zne5zT5kpJ7pzuvw==
+ version "3.7.5"
+ resolved "https://registry.npmjs.org/typescript/-/typescript-3.7.5.tgz#0692e21f65fd4108b9330238aac11dd2e177a1ae"
+ integrity sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==
ua-parser-js@^0.7.18:
version "0.7.21"
@@ -23556,7 +23550,7 @@ util-promisify@^2.1.0:
dependencies:
object.getownpropertydescriptors "^2.0.3"
-util.promisify@1.0.0, util.promisify@^1.0.0, util.promisify@~1.0.0:
+util.promisify@1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030"
integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==
@@ -23564,6 +23558,16 @@ util.promisify@1.0.0, util.promisify@^1.0.0, util.promisify@~1.0.0:
define-properties "^1.1.2"
object.getownpropertydescriptors "^2.0.3"
+util.promisify@^1.0.0, util.promisify@~1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee"
+ integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.2"
+ has-symbols "^1.0.1"
+ object.getownpropertydescriptors "^2.1.0"
+
util@0.10.3:
version "0.10.3"
resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
@@ -23588,11 +23592,16 @@ utils-merge@1.0.1:
resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
-uuid@3.3.3, uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0, uuid@^3.3.2, uuid@^3.3.3:
+uuid@3.3.3:
version "3.3.3"
resolved "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866"
integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==
+uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0, uuid@^3.3.2, uuid@^3.3.3:
+ version "3.4.0"
+ resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
+ integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
+
v8-compile-cache@2.0.3:
version "2.0.3"
resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe"