@antv/l7-layers 2.17.4 → 2.17.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/Geometry/index.js +9 -31
- package/es/Geometry/models/billboard.js +51 -89
- package/es/Geometry/models/plane.js +81 -143
- package/es/Geometry/models/sprite.js +60 -118
- package/es/canvas/index.js +10 -33
- package/es/canvas/models/canvas.js +41 -97
- package/es/citybuliding/building.js +8 -27
- package/es/citybuliding/models/build.js +57 -82
- package/es/core/BaseLayer.js +325 -483
- package/es/core/BaseModel.js +51 -80
- package/es/core/CommonStyleAttribute.js +2 -5
- package/es/core/LayerPickService.js +21 -32
- package/es/core/TextureService.js +0 -13
- package/es/core/interface.js +17 -24
- package/es/core/shape/Path.js +13 -20
- package/es/core/shape/extrude.js +27 -39
- package/es/core/triangulation.js +99 -136
- package/es/earth/index.js +9 -33
- package/es/earth/models/atmosphere.js +30 -54
- package/es/earth/models/base.js +47 -85
- package/es/earth/models/bloomsphere.js +30 -54
- package/es/earth/utils.js +9 -13
- package/es/heatmap/index.js +10 -40
- package/es/heatmap/models/grid.js +28 -52
- package/es/heatmap/models/grid3d.js +28 -52
- package/es/heatmap/models/heatmap.js +92 -149
- package/es/heatmap/models/hexagon.js +28 -52
- package/es/heatmap/triangulation.js +0 -4
- package/es/image/index.js +9 -28
- package/es/image/models/image.js +66 -100
- package/es/index.js +9 -17
- package/es/line/index.js +9 -35
- package/es/line/models/arc.js +63 -112
- package/es/line/models/arc_3d.js +58 -102
- package/es/line/models/earthArc_3d.js +60 -105
- package/es/line/models/flow.js +36 -60
- package/es/line/models/great_circle.js +53 -94
- package/es/line/models/line.js +92 -144
- package/es/line/models/linearline.js +42 -74
- package/es/line/models/simpleLine.js +38 -67
- package/es/line/models/wall.js +52 -92
- package/es/line/shaders/dash/line_dash_vert.glsl +1 -2
- package/es/line/shaders/line_frag.glsl +1 -3
- package/es/line/shaders/line_vert.glsl +2 -0
- package/es/line/shaders/linear/line_linear_frag.glsl +1 -1
- package/es/mask/index.js +9 -28
- package/es/mask/models/fill.js +29 -54
- package/es/plugins/DataMappingPlugin.js +78 -114
- package/es/plugins/DataSourcePlugin.js +45 -68
- package/es/plugins/FeatureScalePlugin.js +67 -122
- package/es/plugins/LayerAnimateStylePlugin.js +0 -5
- package/es/plugins/LayerMaskPlugin.js +3 -11
- package/es/plugins/LayerModelPlugin.js +69 -118
- package/es/plugins/LayerStylePlugin.js +4 -9
- package/es/plugins/LightingPlugin.js +12 -18
- package/es/plugins/MultiPassRendererPlugin.js +11 -16
- package/es/plugins/PixelPickingPlugin.js +12 -21
- package/es/plugins/RegisterStyleAttributePlugin.js +5 -12
- package/es/plugins/ShaderUniformPlugin.js +13 -27
- package/es/plugins/UpdateModelPlugin.js +0 -5
- package/es/plugins/UpdateStyleAttributePlugin.js +5 -11
- package/es/point/index.js +26 -78
- package/es/point/models/earthExtrude.js +58 -95
- package/es/point/models/earthFill.js +52 -80
- package/es/point/models/extrude.js +57 -94
- package/es/point/models/fill.js +56 -81
- package/es/point/models/fillmage.js +60 -100
- package/es/point/models/image.js +47 -83
- package/es/point/models/index.js +2 -2
- package/es/point/models/normal.js +30 -54
- package/es/point/models/radar.js +38 -63
- package/es/point/models/simplePoint.js +38 -62
- package/es/point/models/text.js +199 -296
- package/es/point/shape/extrude.js +4 -13
- package/es/polygon/index.js +11 -41
- package/es/polygon/models/extrude.js +87 -135
- package/es/polygon/models/fill.js +50 -79
- package/es/polygon/models/index.js +3 -2
- package/es/polygon/models/ocean.js +42 -76
- package/es/polygon/models/water.js +37 -71
- package/es/raster/buffers/triangulation.js +2 -4
- package/es/raster/index.js +9 -32
- package/es/raster/models/raster.js +80 -116
- package/es/raster/models/rasterRgb.js +84 -127
- package/es/raster/models/rasterTerrainRgb.js +56 -84
- package/es/tile/interaction/getRasterData.js +14 -20
- package/es/tile/interaction/utils.js +7 -9
- package/es/tile/manager/base.js +63 -96
- package/es/tile/service/TileLayerService.js +33 -55
- package/es/tile/service/TilePickService.js +26 -40
- package/es/tile/service/TileSourceService.js +3 -7
- package/es/tile/tileFactory/DebugTile.js +29 -46
- package/es/tile/tileFactory/ImageTile.js +20 -38
- package/es/tile/tileFactory/MaskTile.js +22 -43
- package/es/tile/tileFactory/RasterRGBTile.js +22 -42
- package/es/tile/tileFactory/RasterTerrainRGBTile.js +20 -38
- package/es/tile/tileFactory/RasterTile.js +30 -53
- package/es/tile/tileFactory/Tile.js +63 -97
- package/es/tile/tileFactory/VectorTile.js +41 -68
- package/es/tile/tileFactory/index.js +0 -11
- package/es/tile/tileFactory/layers/TileDebugLayer.js +6 -27
- package/es/tile/tileFactory/util.js +0 -3
- package/es/tile/tileLayer/BaseLayer.js +105 -146
- package/es/tile/utils.js +1 -1
- package/es/utils/blend.js +0 -2
- package/es/utils/collision-index.js +9 -16
- package/es/utils/extrude_polyline.js +101 -149
- package/es/utils/grid-index.js +2 -27
- package/es/utils/identityScale.js +0 -8
- package/es/utils/layerData.js +30 -44
- package/es/utils/multiPassRender.js +11 -13
- package/es/utils/polylineNormal.js +31 -37
- package/es/utils/simpleLine.js +2 -16
- package/es/utils/stencil.js +2 -3
- package/es/utils/symbol-layout.js +27 -53
- package/es/wind/index.js +9 -29
- package/es/wind/models/utils.js +26 -51
- package/es/wind/models/wind.js +101 -147
- package/es/wind/models/windRender.js +53 -66
- package/lib/Geometry/index.js +9 -38
- package/lib/Geometry/models/billboard.js +51 -97
- package/lib/Geometry/models/index.js +0 -5
- package/lib/Geometry/models/plane.js +79 -151
- package/lib/Geometry/models/sprite.js +60 -127
- package/lib/canvas/index.js +10 -40
- package/lib/canvas/models/canvas.js +41 -101
- package/lib/canvas/models/index.js +0 -3
- package/lib/citybuliding/building.js +8 -35
- package/lib/citybuliding/models/build.js +57 -92
- package/lib/core/BaseLayer.js +325 -474
- package/lib/core/BaseModel.js +51 -90
- package/lib/core/CommonStyleAttribute.js +2 -7
- package/lib/core/LayerPickService.js +21 -37
- package/lib/core/TextureService.js +0 -16
- package/lib/core/interface.js +21 -31
- package/lib/core/schema.js +0 -1
- package/lib/core/shape/Path.js +14 -31
- package/lib/core/shape/extrude.js +27 -62
- package/lib/core/triangulation.js +98 -177
- package/lib/earth/index.js +9 -43
- package/lib/earth/models/atmosphere.js +30 -63
- package/lib/earth/models/base.js +47 -90
- package/lib/earth/models/bloomsphere.js +30 -63
- package/lib/earth/utils.js +7 -31
- package/lib/heatmap/index.js +10 -48
- package/lib/heatmap/models/grid.js +28 -60
- package/lib/heatmap/models/grid3d.js +28 -60
- package/lib/heatmap/models/heatmap.js +92 -166
- package/lib/heatmap/models/hexagon.js +28 -60
- package/lib/heatmap/models/index.js +0 -6
- package/lib/heatmap/triangulation.js +0 -5
- package/lib/image/index.js +9 -36
- package/lib/image/models/image.js +66 -109
- package/lib/image/models/index.js +0 -3
- package/lib/index.js +7 -61
- package/lib/line/index.js +9 -40
- package/lib/line/models/arc.js +61 -122
- package/lib/line/models/arc_3d.js +56 -113
- package/lib/line/models/earthArc_3d.js +58 -115
- package/lib/line/models/flow.js +36 -70
- package/lib/line/models/great_circle.js +53 -104
- package/lib/line/models/index.js +0 -11
- package/lib/line/models/line.js +90 -152
- package/lib/line/models/linearline.js +42 -86
- package/lib/line/models/simpleLine.js +38 -77
- package/lib/line/models/wall.js +52 -103
- package/lib/line/shaders/dash/line_dash_vert.glsl +1 -2
- package/lib/line/shaders/line_frag.glsl +1 -3
- package/lib/line/shaders/line_vert.glsl +2 -0
- package/lib/line/shaders/linear/line_linear_frag.glsl +1 -1
- package/lib/mask/index.js +9 -36
- package/lib/mask/models/fill.js +29 -63
- package/lib/mask/models/index.js +0 -3
- package/lib/plugins/DataMappingPlugin.js +78 -125
- package/lib/plugins/DataSourcePlugin.js +45 -76
- package/lib/plugins/FeatureScalePlugin.js +67 -138
- package/lib/plugins/LayerAnimateStylePlugin.js +0 -10
- package/lib/plugins/LayerMaskPlugin.js +4 -17
- package/lib/plugins/LayerModelPlugin.js +70 -127
- package/lib/plugins/LayerStylePlugin.js +5 -14
- package/lib/plugins/LightingPlugin.js +12 -25
- package/lib/plugins/MultiPassRendererPlugin.js +11 -22
- package/lib/plugins/PixelPickingPlugin.js +12 -27
- package/lib/plugins/RegisterStyleAttributePlugin.js +5 -19
- package/lib/plugins/ShaderUniformPlugin.js +13 -34
- package/lib/plugins/UpdateModelPlugin.js +1 -10
- package/lib/plugins/UpdateStyleAttributePlugin.js +5 -16
- package/lib/point/index.js +26 -83
- package/lib/point/models/earthExtrude.js +58 -106
- package/lib/point/models/earthFill.js +52 -110
- package/lib/point/models/extrude.js +57 -103
- package/lib/point/models/fill.js +54 -90
- package/lib/point/models/fillmage.js +58 -107
- package/lib/point/models/image.js +47 -92
- package/lib/point/models/index.js +1 -12
- package/lib/point/models/normal.js +30 -64
- package/lib/point/models/radar.js +38 -72
- package/lib/point/models/simplePoint.js +38 -72
- package/lib/point/models/text.js +199 -305
- package/lib/point/shape/extrude.js +4 -20
- package/lib/polygon/index.js +11 -48
- package/lib/polygon/models/extrude.js +87 -146
- package/lib/polygon/models/fill.js +50 -89
- package/lib/polygon/models/index.js +2 -14
- package/lib/polygon/models/ocean.js +42 -88
- package/lib/polygon/models/water.js +37 -82
- package/lib/raster/buffers/triangulation.js +3 -7
- package/lib/raster/index.js +9 -40
- package/lib/raster/models/index.js +0 -5
- package/lib/raster/models/raster.js +80 -125
- package/lib/raster/models/rasterRgb.js +84 -139
- package/lib/raster/models/rasterTerrainRgb.js +56 -93
- package/lib/tile/interaction/getRasterData.js +14 -25
- package/lib/tile/interaction/utils.js +7 -19
- package/lib/tile/manager/base.js +63 -104
- package/lib/tile/service/TileLayerService.js +33 -60
- package/lib/tile/service/TilePickService.js +26 -48
- package/lib/tile/service/TileSourceService.js +2 -16
- package/lib/tile/style/utils.js +0 -3
- package/lib/tile/tileFactory/DebugTile.js +29 -54
- package/lib/tile/tileFactory/ImageTile.js +20 -46
- package/lib/tile/tileFactory/MaskTile.js +22 -51
- package/lib/tile/tileFactory/RasterRGBTile.js +22 -50
- package/lib/tile/tileFactory/RasterTerrainRGBTile.js +20 -46
- package/lib/tile/tileFactory/RasterTile.js +30 -63
- package/lib/tile/tileFactory/Tile.js +63 -102
- package/lib/tile/tileFactory/VectorTile.js +41 -76
- package/lib/tile/tileFactory/index.js +0 -25
- package/lib/tile/tileFactory/layers/TileDebugLayer.js +6 -32
- package/lib/tile/tileFactory/util.js +0 -9
- package/lib/tile/tileLayer/BaseLayer.js +105 -153
- package/lib/tile/utils.js +1 -5
- package/lib/utils/blend.js +0 -5
- package/lib/utils/collision-index.js +9 -25
- package/lib/utils/extrude_polyline.js +101 -181
- package/lib/utils/grid-index.js +2 -28
- package/lib/utils/identityScale.js +0 -9
- package/lib/utils/layerData.js +30 -49
- package/lib/utils/multiPassRender.js +11 -16
- package/lib/utils/polylineNormal.js +31 -66
- package/lib/utils/simpleLine.js +2 -21
- package/lib/utils/stencil.js +0 -4
- package/lib/utils/symbol-layout.js +27 -55
- package/lib/wind/index.js +9 -37
- package/lib/wind/models/index.js +0 -3
- package/lib/wind/models/utils.js +26 -62
- package/lib/wind/models/wind.js +101 -157
- package/lib/wind/models/windRender.js +53 -71
- package/lib/wind/models/windShader.js +0 -1
- package/package.json +7 -7
|
@@ -1,74 +1,50 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
-
|
|
12
9
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
13
|
-
|
|
14
10
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
15
|
-
|
|
16
11
|
var _initializerDefineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/initializerDefineProperty"));
|
|
17
|
-
|
|
18
12
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
19
|
-
|
|
20
13
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
21
|
-
|
|
22
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
-
|
|
24
15
|
var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/helpers/applyDecoratedDescriptor"));
|
|
25
|
-
|
|
26
16
|
var _initializerWarningHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/initializerWarningHelper"));
|
|
27
|
-
|
|
28
17
|
var _l7Core = require("@antv/l7-core");
|
|
29
|
-
|
|
30
18
|
var _l7Maps = require("@antv/l7-maps");
|
|
31
|
-
|
|
32
19
|
var _l7Utils = require("@antv/l7-utils");
|
|
33
|
-
|
|
34
20
|
var _inversify = require("inversify");
|
|
35
|
-
|
|
36
21
|
var _lodash = require("lodash");
|
|
37
|
-
|
|
38
22
|
require("reflect-metadata");
|
|
39
|
-
|
|
40
23
|
var _dec, _dec2, _dec3, _class, _class2, _descriptor, _descriptor2;
|
|
41
|
-
|
|
42
24
|
var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inversify.inject)(_l7Core.TYPES.IMapService), _dec3 = (0, _inversify.inject)(_l7Core.TYPES.IFontService), _dec(_class = (_class2 = /*#__PURE__*/function () {
|
|
43
25
|
function DataMappingPlugin() {
|
|
44
26
|
(0, _classCallCheck2.default)(this, DataMappingPlugin);
|
|
45
27
|
(0, _initializerDefineProperty2.default)(this, "mapService", _descriptor, this);
|
|
46
28
|
(0, _initializerDefineProperty2.default)(this, "fontService", _descriptor2, this);
|
|
47
29
|
}
|
|
48
|
-
|
|
49
30
|
(0, _createClass2.default)(DataMappingPlugin, [{
|
|
50
31
|
key: "apply",
|
|
51
32
|
value: function apply(layer, _ref) {
|
|
52
33
|
var _this = this;
|
|
53
|
-
|
|
54
34
|
var styleAttributeService = _ref.styleAttributeService;
|
|
55
35
|
layer.hooks.init.tapPromise('DataMappingPlugin', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
56
36
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
57
|
-
while (1) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
case 3:
|
|
69
|
-
case "end":
|
|
70
|
-
return _context.stop();
|
|
71
|
-
}
|
|
37
|
+
while (1) switch (_context.prev = _context.next) {
|
|
38
|
+
case 0:
|
|
39
|
+
layer.log(_l7Core.IDebugLog.MappingStart, _l7Core.ILayerStage.INIT);
|
|
40
|
+
// 初始化重新生成 map
|
|
41
|
+
_this.generateMaping(layer, {
|
|
42
|
+
styleAttributeService: styleAttributeService
|
|
43
|
+
});
|
|
44
|
+
layer.log(_l7Core.IDebugLog.MappingEnd, _l7Core.ILayerStage.INIT);
|
|
45
|
+
case 3:
|
|
46
|
+
case "end":
|
|
47
|
+
return _context.stop();
|
|
72
48
|
}
|
|
73
49
|
}, _callee);
|
|
74
50
|
})));
|
|
@@ -76,106 +52,95 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
|
|
|
76
52
|
var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(flag) {
|
|
77
53
|
var mappingResult;
|
|
78
54
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
79
|
-
while (1) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
case 7:
|
|
99
|
-
case "end":
|
|
100
|
-
return _context2.stop();
|
|
101
|
-
}
|
|
55
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
56
|
+
case 0:
|
|
57
|
+
if (flag) {
|
|
58
|
+
_context2.next = 2;
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
return _context2.abrupt("return", flag);
|
|
62
|
+
case 2:
|
|
63
|
+
layer.dataState.dataMappingNeedUpdate = false;
|
|
64
|
+
layer.log(_l7Core.IDebugLog.MappingStart, _l7Core.ILayerStage.UPDATE);
|
|
65
|
+
mappingResult = _this.generateMaping(layer, {
|
|
66
|
+
styleAttributeService: styleAttributeService
|
|
67
|
+
});
|
|
68
|
+
layer.log(_l7Core.IDebugLog.MappingEnd, _l7Core.ILayerStage.UPDATE);
|
|
69
|
+
return _context2.abrupt("return", mappingResult);
|
|
70
|
+
case 7:
|
|
71
|
+
case "end":
|
|
72
|
+
return _context2.stop();
|
|
102
73
|
}
|
|
103
74
|
}, _callee2);
|
|
104
75
|
}));
|
|
105
|
-
|
|
106
76
|
return function (_x) {
|
|
107
77
|
return _ref3.apply(this, arguments);
|
|
108
78
|
};
|
|
109
|
-
}());
|
|
79
|
+
}());
|
|
110
80
|
|
|
81
|
+
// remapping before render
|
|
111
82
|
layer.hooks.beforeRender.tap('DataMappingPlugin', function () {
|
|
112
83
|
var source = layer.getSource();
|
|
113
|
-
|
|
114
84
|
if (layer.layerModelNeedUpdate || !source || !source.inited) {
|
|
115
85
|
return;
|
|
116
86
|
}
|
|
117
|
-
|
|
118
87
|
var attributes = styleAttributeService.getLayerStyleAttributes() || [];
|
|
119
88
|
var filter = styleAttributeService.getLayerStyleAttribute('filter');
|
|
120
|
-
var dataArray = source.data.dataArray;
|
|
121
|
-
|
|
89
|
+
var dataArray = source.data.dataArray;
|
|
90
|
+
// TODO 数据为空的情况
|
|
122
91
|
if (Array.isArray(dataArray) && dataArray.length === 0) {
|
|
123
92
|
return;
|
|
124
93
|
}
|
|
125
|
-
|
|
126
94
|
var attributesToRemapping = attributes.filter(function (attribute) {
|
|
127
95
|
return attribute.needRemapping;
|
|
128
96
|
} // 如果filter变化
|
|
129
97
|
);
|
|
130
|
-
var filterData = dataArray; // 数据过滤完 再执行数据映射
|
|
131
98
|
|
|
99
|
+
var filterData = dataArray;
|
|
100
|
+
// 数据过滤完 再执行数据映射
|
|
132
101
|
if (filter !== null && filter !== void 0 && filter.needRemapping && filter !== null && filter !== void 0 && filter.scale) {
|
|
133
102
|
filterData = dataArray.filter(function (record) {
|
|
134
103
|
return _this.applyAttributeMapping(filter, record)[0];
|
|
135
104
|
});
|
|
136
105
|
}
|
|
137
|
-
|
|
138
106
|
if (attributesToRemapping.length) {
|
|
139
107
|
// 过滤数据
|
|
140
108
|
var encodeData = _this.mapping(layer, attributesToRemapping, filterData, layer.getEncodedData() // TODO 优化
|
|
141
109
|
);
|
|
142
110
|
|
|
143
111
|
layer.setEncodedData(encodeData);
|
|
144
|
-
}
|
|
145
|
-
// layer.emit('remapping', null);
|
|
112
|
+
}
|
|
146
113
|
|
|
114
|
+
// 处理文本更新,更新文字形状
|
|
115
|
+
// layer.emit('remapping', null);
|
|
147
116
|
});
|
|
148
117
|
}
|
|
149
118
|
}, {
|
|
150
119
|
key: "generateMaping",
|
|
151
120
|
value: function generateMaping(layer, _ref4) {
|
|
152
121
|
var _this2 = this;
|
|
153
|
-
|
|
154
122
|
var styleAttributeService = _ref4.styleAttributeService;
|
|
155
123
|
var attributes = styleAttributeService.getLayerStyleAttributes() || [];
|
|
156
124
|
var filter = styleAttributeService.getLayerStyleAttribute('filter');
|
|
157
125
|
var dataArray = layer.getSource().data.dataArray;
|
|
158
|
-
var filterData = dataArray;
|
|
159
|
-
|
|
126
|
+
var filterData = dataArray;
|
|
127
|
+
// 数据过滤完 再执行数据映射
|
|
160
128
|
if (filter !== null && filter !== void 0 && filter.scale) {
|
|
161
129
|
filterData = dataArray.filter(function (record) {
|
|
162
130
|
return _this2.applyAttributeMapping(filter, record)[0];
|
|
163
131
|
});
|
|
164
|
-
}
|
|
132
|
+
}
|
|
133
|
+
// Tip: layer 对数据做处理
|
|
165
134
|
// 数据处理 在数据进行 mapping 生成 encodeData 之前对数据进行处理
|
|
166
135
|
// 在各个 layer 中继承
|
|
167
136
|
|
|
168
|
-
|
|
169
137
|
filterData = layer.processData(filterData); // 目前只有简单线需要处理
|
|
170
|
-
|
|
171
138
|
var encodeData = this.mapping(layer, attributes, filterData, undefined);
|
|
172
139
|
layer.setEncodedData(encodeData);
|
|
173
|
-
|
|
174
140
|
if (dataArray.length === 0 && layer.encodeDataLength === 0) {
|
|
175
141
|
return false;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
|
|
142
|
+
}
|
|
143
|
+
// 对外暴露事件
|
|
179
144
|
layer.emit('dataUpdate', null);
|
|
180
145
|
return true;
|
|
181
146
|
}
|
|
@@ -183,13 +148,11 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
|
|
|
183
148
|
key: "mapping",
|
|
184
149
|
value: function mapping(layer, attributes, data, predata) {
|
|
185
150
|
var _this3 = this;
|
|
186
|
-
|
|
187
151
|
var _ref5 = layer.getLayerConfig(),
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
152
|
+
_ref5$arrow = _ref5.arrow,
|
|
153
|
+
arrow = _ref5$arrow === void 0 ? {
|
|
154
|
+
enable: false
|
|
155
|
+
} : _ref5$arrow;
|
|
193
156
|
var usedAttributes = attributes.filter(function (attribute) {
|
|
194
157
|
return attribute.scale !== undefined;
|
|
195
158
|
}).filter(function (attribute) {
|
|
@@ -202,45 +165,42 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
|
|
|
202
165
|
coordinates: record.coordinates
|
|
203
166
|
}, preRecord);
|
|
204
167
|
usedAttributes.forEach(function (attribute) {
|
|
205
|
-
var values = _this3.applyAttributeMapping(attribute, record);
|
|
206
|
-
|
|
207
|
-
|
|
168
|
+
var values = _this3.applyAttributeMapping(attribute, record);
|
|
169
|
+
// TODO: 支持每个属性配置 postprocess}
|
|
208
170
|
if (attribute.name === 'color' || attribute.name === 'stroke') {
|
|
209
171
|
values = values.map(function (c) {
|
|
210
172
|
return (0, _l7Utils.rgb2arr)(c);
|
|
211
173
|
});
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
encodeRecord[attribute.name] = Array.isArray(values) && values.length === 1 ? values[0] : values; // 增加对 layer/text/iconfont unicode 映射的解析
|
|
174
|
+
}
|
|
175
|
+
// @ts-ignore
|
|
176
|
+
encodeRecord[attribute.name] = Array.isArray(values) && values.length === 1 ? values[0] : values;
|
|
216
177
|
|
|
178
|
+
// 增加对 layer/text/iconfont unicode 映射的解析
|
|
217
179
|
if (attribute.name === 'shape') {
|
|
218
180
|
encodeRecord.shape = _this3.fontService.getIconFontKey(encodeRecord[attribute.name]);
|
|
219
181
|
}
|
|
220
182
|
});
|
|
221
|
-
|
|
222
183
|
if (arrow.enable && encodeRecord.shape === 'line') {
|
|
223
184
|
// 只有在线图层且支持配置箭头的时候进行插入顶点的处理
|
|
224
|
-
var coords = encodeRecord.coordinates;
|
|
225
|
-
|
|
185
|
+
var coords = encodeRecord.coordinates;
|
|
186
|
+
// @ts-ignore
|
|
226
187
|
if (layer.arrowInsertCount < layer.encodeDataLength) {
|
|
227
188
|
// Tip: arrowInsert 的判断用于确保每一条线数据 arrow 的属性点只会被植入一次
|
|
228
189
|
var arrowPoint = _this3.getArrowPoints(coords[0], coords[1]);
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
190
|
+
encodeRecord.coordinates.splice(1, 0, arrowPoint, arrowPoint);
|
|
191
|
+
// @ts-ignore
|
|
232
192
|
layer.arrowInsertCount++;
|
|
233
193
|
}
|
|
234
194
|
}
|
|
235
|
-
|
|
236
195
|
return encodeRecord;
|
|
237
196
|
});
|
|
238
197
|
attributes.forEach(function (attribute) {
|
|
239
198
|
attribute.needRemapping = false;
|
|
240
|
-
});
|
|
241
|
-
|
|
242
|
-
this.adjustData2Amap2Coordinates(mappedData, layer);
|
|
199
|
+
});
|
|
200
|
+
// 调整数据兼容 Amap2.0
|
|
201
|
+
this.adjustData2Amap2Coordinates(mappedData, layer);
|
|
243
202
|
|
|
203
|
+
// 调整数据兼容 SimpleCoordinates
|
|
244
204
|
this.adjustData2SimpleCoordinates(mappedData);
|
|
245
205
|
return mappedData;
|
|
246
206
|
}
|
|
@@ -248,22 +208,21 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
|
|
|
248
208
|
key: "adjustData2Amap2Coordinates",
|
|
249
209
|
value: function adjustData2Amap2Coordinates(mappedData, layer) {
|
|
250
210
|
var _this4 = this;
|
|
251
|
-
|
|
252
211
|
// 根据地图的类型判断是否需要对点位数据进行处理, 若是高德2.0则需要对坐标进行相对偏移
|
|
253
212
|
if (mappedData.length > 0 && this.mapService.version === _l7Maps.Version['GAODE2.x']) {
|
|
254
|
-
var layerCenter = layer.coordCenter || layer.getSource().center;
|
|
213
|
+
var layerCenter = layer.coordCenter || layer.getSource().center;
|
|
214
|
+
// 单个的点数据
|
|
255
215
|
// @ts-ignore
|
|
256
|
-
|
|
257
|
-
|
|
216
|
+
mappedData
|
|
217
|
+
// TODO: 避免经纬度被重复计算导致坐标位置偏移
|
|
258
218
|
.filter(function (d) {
|
|
259
219
|
return !d.originCoordinates;
|
|
260
220
|
}).map(function (d) {
|
|
261
|
-
d.version = _l7Maps.Version['GAODE2.x'];
|
|
262
|
-
|
|
221
|
+
d.version = _l7Maps.Version['GAODE2.x'];
|
|
222
|
+
// @ts-ignore
|
|
263
223
|
d.originCoordinates = (0, _lodash.cloneDeep)(d.coordinates); // 为了兼容高德1.x 需要保存一份原始的经纬度坐标数据(许多上层逻辑依赖经纬度数据)
|
|
264
224
|
// @ts-ignore
|
|
265
225
|
// d.coordinates = this.mapService.lngLatToCoord(d.coordinates);
|
|
266
|
-
|
|
267
226
|
d.coordinates = _this4.mapService.coordToAMap2RelativeCoordinates(d.coordinates, layerCenter);
|
|
268
227
|
});
|
|
269
228
|
}
|
|
@@ -272,7 +231,6 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
|
|
|
272
231
|
key: "adjustData2SimpleCoordinates",
|
|
273
232
|
value: function adjustData2SimpleCoordinates(mappedData) {
|
|
274
233
|
var _this5 = this;
|
|
275
|
-
|
|
276
234
|
if (mappedData.length > 0 && this.mapService.version === _l7Maps.Version.SIMPLE) {
|
|
277
235
|
mappedData.map(function (d) {
|
|
278
236
|
if (!d.simpleCoordinate) {
|
|
@@ -286,11 +244,9 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
|
|
|
286
244
|
key: "unProjectCoordinates",
|
|
287
245
|
value: function unProjectCoordinates(coordinates) {
|
|
288
246
|
var _this6 = this;
|
|
289
|
-
|
|
290
247
|
if (typeof coordinates[0] === 'number') {
|
|
291
248
|
return this.mapService.simpleMapCoord.unproject(coordinates);
|
|
292
249
|
}
|
|
293
|
-
|
|
294
250
|
if (coordinates[0] && coordinates[0][0] instanceof Array) {
|
|
295
251
|
// @ts-ignore
|
|
296
252
|
var coords = [];
|
|
@@ -299,20 +255,20 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
|
|
|
299
255
|
var c1 = [];
|
|
300
256
|
coord.map(function (co) {
|
|
301
257
|
c1.push(_this6.mapService.simpleMapCoord.unproject(co));
|
|
302
|
-
});
|
|
303
|
-
|
|
258
|
+
});
|
|
259
|
+
// @ts-ignore
|
|
304
260
|
coords.push(c1);
|
|
305
|
-
});
|
|
306
|
-
|
|
261
|
+
});
|
|
262
|
+
// @ts-ignore
|
|
307
263
|
return coords;
|
|
308
264
|
} else {
|
|
309
265
|
// @ts-ignore
|
|
310
|
-
var _coords = [];
|
|
311
|
-
|
|
266
|
+
var _coords = [];
|
|
267
|
+
// @ts-ignore
|
|
312
268
|
coordinates.map(function (coord) {
|
|
313
269
|
_coords.push(_this6.mapService.simpleMapCoord.unproject(coord));
|
|
314
|
-
});
|
|
315
|
-
|
|
270
|
+
});
|
|
271
|
+
// @ts-ignore
|
|
316
272
|
return _coords;
|
|
317
273
|
}
|
|
318
274
|
}
|
|
@@ -320,25 +276,22 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
|
|
|
320
276
|
key: "applyAttributeMapping",
|
|
321
277
|
value: function applyAttributeMapping(attribute, record) {
|
|
322
278
|
var _attribute$scale;
|
|
323
|
-
|
|
324
279
|
if (!attribute.scale) {
|
|
325
280
|
return [];
|
|
326
281
|
}
|
|
327
|
-
|
|
328
282
|
var scalers = (attribute === null || attribute === void 0 ? void 0 : (_attribute$scale = attribute.scale) === null || _attribute$scale === void 0 ? void 0 : _attribute$scale.scalers) || [];
|
|
329
283
|
var params = [];
|
|
330
284
|
scalers.forEach(function (_ref6) {
|
|
331
285
|
var _attribute$scale2;
|
|
332
|
-
|
|
333
286
|
var field = _ref6.field;
|
|
334
|
-
|
|
335
287
|
if (record.hasOwnProperty(field) || ((_attribute$scale2 = attribute.scale) === null || _attribute$scale2 === void 0 ? void 0 : _attribute$scale2.type) === 'variable') {
|
|
336
288
|
// TODO:多字段,常量
|
|
337
289
|
params.push(record[field]);
|
|
338
290
|
}
|
|
339
291
|
});
|
|
340
292
|
var mappingResult = attribute.mapping ? attribute.mapping(params) : [];
|
|
341
|
-
return mappingResult;
|
|
293
|
+
return mappingResult;
|
|
294
|
+
// return attribute.mapping ? attribute.mapping(params) : [];
|
|
342
295
|
}
|
|
343
296
|
}, {
|
|
344
297
|
key: "getArrowPoints",
|
|
@@ -1,107 +1,81 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
-
|
|
12
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
-
|
|
14
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
-
|
|
16
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
-
|
|
18
12
|
var _l7Core = require("@antv/l7-core");
|
|
19
|
-
|
|
20
13
|
var _l7Source = _interopRequireDefault(require("@antv/l7-source"));
|
|
21
|
-
|
|
22
14
|
var _inversify = require("inversify");
|
|
23
|
-
|
|
24
15
|
require("reflect-metadata");
|
|
25
|
-
|
|
26
16
|
var _dec, _class;
|
|
27
|
-
|
|
28
17
|
var DataSourcePlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE__*/function () {
|
|
29
18
|
function DataSourcePlugin() {
|
|
30
19
|
(0, _classCallCheck2.default)(this, DataSourcePlugin);
|
|
31
20
|
}
|
|
32
|
-
|
|
33
21
|
(0, _createClass2.default)(DataSourcePlugin, [{
|
|
34
22
|
key: "apply",
|
|
35
23
|
value: function apply(layer) {
|
|
36
24
|
var _this = this;
|
|
37
|
-
|
|
38
25
|
this.mapService = layer.getContainer().get(_l7Core.TYPES.IMapService);
|
|
39
26
|
layer.hooks.init.tapPromise('DataSourcePlugin', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
40
27
|
var source, _ref2, data, options;
|
|
41
|
-
|
|
42
28
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
43
|
-
while (1) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
if (!source.inited) {
|
|
57
|
-
_context.next = 8;
|
|
58
|
-
break;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
_this.updateClusterData(layer);
|
|
62
|
-
|
|
63
|
-
layer.log(_l7Core.IDebugLog.SourceInitEnd, _l7Core.ILayerStage.INIT);
|
|
64
|
-
_context.next = 10;
|
|
29
|
+
while (1) switch (_context.prev = _context.next) {
|
|
30
|
+
case 0:
|
|
31
|
+
layer.log(_l7Core.IDebugLog.SourceInitStart, _l7Core.ILayerStage.INIT);
|
|
32
|
+
source = layer.getSource();
|
|
33
|
+
if (!source) {
|
|
34
|
+
// Tip: 用户没有传入 source 的时候使用图层的默认数据
|
|
35
|
+
_ref2 = layer.sourceOption || layer.defaultSourceConfig, data = _ref2.data, options = _ref2.options;
|
|
36
|
+
source = new _l7Source.default(data, options);
|
|
37
|
+
layer.setSource(source);
|
|
38
|
+
}
|
|
39
|
+
if (!source.inited) {
|
|
40
|
+
_context.next = 8;
|
|
65
41
|
break;
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
42
|
+
}
|
|
43
|
+
_this.updateClusterData(layer);
|
|
44
|
+
layer.log(_l7Core.IDebugLog.SourceInitEnd, _l7Core.ILayerStage.INIT);
|
|
45
|
+
_context.next = 10;
|
|
46
|
+
break;
|
|
47
|
+
case 8:
|
|
48
|
+
_context.next = 10;
|
|
49
|
+
return new Promise(function (resolve) {
|
|
50
|
+
source.on('update', function (e) {
|
|
51
|
+
if (e.type === 'inited') {
|
|
52
|
+
_this.updateClusterData(layer);
|
|
53
|
+
layer.log(_l7Core.IDebugLog.SourceInitEnd, _l7Core.ILayerStage.INIT);
|
|
54
|
+
}
|
|
55
|
+
resolve(null);
|
|
79
56
|
});
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
}
|
|
57
|
+
});
|
|
58
|
+
case 10:
|
|
59
|
+
case "end":
|
|
60
|
+
return _context.stop();
|
|
85
61
|
}
|
|
86
62
|
}, _callee);
|
|
87
|
-
})));
|
|
63
|
+
})));
|
|
88
64
|
|
|
65
|
+
// 检测数据是否需要更新
|
|
89
66
|
layer.hooks.beforeRenderData.tapPromise('DataSourcePlugin', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
90
67
|
var neeUpdateCluster, dataSourceNeedUpdate, needScale;
|
|
91
68
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
92
|
-
while (1) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
case "end":
|
|
103
|
-
return _context2.stop();
|
|
104
|
-
}
|
|
69
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
70
|
+
case 0:
|
|
71
|
+
neeUpdateCluster = _this.updateClusterData(layer);
|
|
72
|
+
dataSourceNeedUpdate = layer.dataState.dataSourceNeedUpdate;
|
|
73
|
+
layer.dataState.dataSourceNeedUpdate = false;
|
|
74
|
+
needScale = neeUpdateCluster || dataSourceNeedUpdate;
|
|
75
|
+
return _context2.abrupt("return", needScale);
|
|
76
|
+
case 5:
|
|
77
|
+
case "end":
|
|
78
|
+
return _context2.stop();
|
|
105
79
|
}
|
|
106
80
|
}, _callee2);
|
|
107
81
|
})));
|
|
@@ -113,29 +87,24 @@ var DataSourcePlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__
|
|
|
113
87
|
if (layer.isTileLayer || layer.tileLayer || !layer.getSource()) {
|
|
114
88
|
return false;
|
|
115
89
|
}
|
|
116
|
-
|
|
117
90
|
var source = layer.getSource();
|
|
118
91
|
var cluster = source.cluster;
|
|
119
92
|
var _source$clusterOption = source.clusterOptions.zoom,
|
|
120
|
-
|
|
93
|
+
zoom = _source$clusterOption === void 0 ? 0 : _source$clusterOption;
|
|
121
94
|
var newZoom = this.mapService.getZoom() - 1;
|
|
122
95
|
var dataSourceNeedUpdate = layer.dataState.dataSourceNeedUpdate;
|
|
123
|
-
|
|
124
96
|
if (cluster && dataSourceNeedUpdate) {
|
|
125
97
|
// 数据发生更新
|
|
126
98
|
source.updateClusterData(Math.floor(newZoom));
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
|
|
99
|
+
}
|
|
100
|
+
// 如果 dataSource 有更新,跳过 zoom 的判断,直接更新一次
|
|
130
101
|
if (cluster && Math.abs(layer.clusterZoom - newZoom) >= 1) {
|
|
131
102
|
if (zoom !== Math.floor(newZoom)) {
|
|
132
103
|
source.updateClusterData(Math.floor(newZoom));
|
|
133
104
|
}
|
|
134
|
-
|
|
135
105
|
layer.clusterZoom = newZoom;
|
|
136
106
|
return true;
|
|
137
107
|
}
|
|
138
|
-
|
|
139
108
|
return false;
|
|
140
109
|
}
|
|
141
110
|
}]);
|