@antv/l7-layers 2.15.2 → 2.15.4
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 +320 -484
- package/es/core/BaseModel.js +97 -126
- 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 +10 -31
- package/es/core/triangulation.js +54 -114
- 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 +91 -146
- 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 -34
- package/es/line/models/arc.js +66 -118
- package/es/line/models/arc_3d.js +60 -108
- package/es/line/models/earthArc_3d.js +63 -111
- package/es/line/models/great_circle.js +56 -100
- package/es/line/models/half.js +46 -77
- package/es/line/models/line.js +94 -148
- package/es/line/models/linearline.js +45 -80
- package/es/line/models/simpleLine.js +41 -74
- package/es/line/models/wall.js +52 -92
- package/es/mask/index.js +9 -28
- package/es/mask/models/fill.js +29 -54
- package/es/plugins/DataMappingPlugin.js +80 -117
- 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 +67 -104
- package/es/plugins/LayerStylePlugin.js +3 -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 -77
- package/es/point/models/earthExtrude.js +61 -102
- package/es/point/models/earthFill.js +57 -87
- package/es/point/models/extrude.js +60 -101
- package/es/point/models/fill.js +70 -100
- package/es/point/models/fillmage.js +63 -107
- package/es/point/models/image.js +48 -88
- package/es/point/models/index.js +2 -2
- package/es/point/models/normal.js +30 -54
- package/es/point/models/radar.js +40 -64
- package/es/point/models/simplePoint.js +41 -69
- package/es/point/models/text.js +197 -299
- package/es/point/shape/extrude.js +4 -13
- package/es/polygon/index.js +11 -40
- package/es/polygon/models/extrude.js +48 -92
- package/es/polygon/models/fill.js +54 -88
- 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 +30 -52
- package/es/tile/service/TilePickService.js +26 -40
- package/es/tile/service/TileSourceService.js +3 -7
- package/es/tile/tileFactory/DebugTile.js +28 -45
- 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/dataMappingStyle.js +8 -18
- 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 +320 -478
- package/lib/core/BaseModel.js +97 -139
- 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 +10 -54
- package/lib/core/triangulation.js +53 -153
- 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 +91 -162
- 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 +64 -128
- package/lib/line/models/arc_3d.js +58 -119
- package/lib/line/models/earthArc_3d.js +61 -122
- package/lib/line/models/great_circle.js +56 -111
- package/lib/line/models/half.js +46 -87
- package/lib/line/models/index.js +0 -11
- package/lib/line/models/line.js +92 -156
- package/lib/line/models/linearline.js +45 -92
- package/lib/line/models/simpleLine.js +41 -84
- package/lib/line/models/wall.js +52 -103
- 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 +80 -128
- 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 +68 -113
- package/lib/plugins/LayerStylePlugin.js +4 -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 +61 -113
- package/lib/point/models/earthFill.js +57 -117
- package/lib/point/models/extrude.js +60 -111
- package/lib/point/models/fill.js +68 -109
- package/lib/point/models/fillmage.js +61 -115
- package/lib/point/models/image.js +48 -98
- package/lib/point/models/index.js +1 -12
- package/lib/point/models/normal.js +30 -64
- package/lib/point/models/radar.js +40 -74
- package/lib/point/models/simplePoint.js +41 -79
- package/lib/point/models/text.js +197 -307
- package/lib/point/shape/extrude.js +4 -20
- package/lib/polygon/index.js +11 -48
- package/lib/polygon/models/extrude.js +48 -103
- package/lib/polygon/models/fill.js +54 -98
- 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 +30 -57
- 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 +28 -53
- 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/dataMappingStyle.js +8 -19
- 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,104 +52,93 @@ 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());
|
|
141
|
-
|
|
142
109
|
layer.setEncodedData(encodeData);
|
|
143
|
-
}
|
|
144
|
-
// layer.emit('remapping', null);
|
|
110
|
+
}
|
|
145
111
|
|
|
112
|
+
// 处理文本更新,更新文字形状
|
|
113
|
+
// layer.emit('remapping', null);
|
|
146
114
|
});
|
|
147
115
|
}
|
|
148
116
|
}, {
|
|
149
117
|
key: "generateMaping",
|
|
150
118
|
value: function generateMaping(layer, _ref4) {
|
|
151
119
|
var _this2 = this;
|
|
152
|
-
|
|
153
120
|
var styleAttributeService = _ref4.styleAttributeService;
|
|
154
121
|
var attributes = styleAttributeService.getLayerStyleAttributes() || [];
|
|
155
122
|
var filter = styleAttributeService.getLayerStyleAttribute('filter');
|
|
156
123
|
var dataArray = layer.getSource().data.dataArray;
|
|
157
|
-
var filterData = dataArray;
|
|
158
|
-
|
|
124
|
+
var filterData = dataArray;
|
|
125
|
+
// 数据过滤完 再执行数据映射
|
|
159
126
|
if (filter !== null && filter !== void 0 && filter.scale) {
|
|
160
127
|
filterData = dataArray.filter(function (record) {
|
|
161
128
|
return _this2.applyAttributeMapping(filter, record)[0];
|
|
162
129
|
});
|
|
163
|
-
}
|
|
130
|
+
}
|
|
131
|
+
// Tip: layer 对数据做处理
|
|
164
132
|
// 数据处理 在数据进行 mapping 生成 encodeData 之前对数据进行处理
|
|
165
133
|
// 在各个 layer 中继承
|
|
166
134
|
|
|
167
|
-
|
|
168
135
|
filterData = layer.processData(filterData);
|
|
169
136
|
var encodeData = this.mapping(layer, attributes, filterData, undefined);
|
|
170
137
|
layer.setEncodedData(encodeData);
|
|
171
|
-
|
|
172
138
|
if (dataArray.length === 0 && layer.encodeDataLength === 0) {
|
|
173
139
|
return false;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
|
|
140
|
+
}
|
|
141
|
+
// 对外暴露事件
|
|
177
142
|
layer.emit('dataUpdate', null);
|
|
178
143
|
return true;
|
|
179
144
|
}
|
|
@@ -181,13 +146,11 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
|
|
|
181
146
|
key: "mapping",
|
|
182
147
|
value: function mapping(layer, attributes, data, predata) {
|
|
183
148
|
var _this3 = this;
|
|
184
|
-
|
|
185
149
|
var _ref5 = layer.getLayerConfig(),
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
150
|
+
_ref5$arrow = _ref5.arrow,
|
|
151
|
+
arrow = _ref5$arrow === void 0 ? {
|
|
152
|
+
enable: false
|
|
153
|
+
} : _ref5$arrow;
|
|
191
154
|
var usedAttributes = attributes.filter(function (attribute) {
|
|
192
155
|
return attribute.scale !== undefined;
|
|
193
156
|
}).filter(function (attribute) {
|
|
@@ -200,45 +163,42 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
|
|
|
200
163
|
coordinates: record.coordinates
|
|
201
164
|
}, preRecord);
|
|
202
165
|
usedAttributes.forEach(function (attribute) {
|
|
203
|
-
var values = _this3.applyAttributeMapping(attribute, record);
|
|
204
|
-
|
|
205
|
-
|
|
166
|
+
var values = _this3.applyAttributeMapping(attribute, record);
|
|
167
|
+
// TODO: 支持每个属性配置 postprocess
|
|
206
168
|
if (attribute.name === 'color') {
|
|
207
169
|
values = values.map(function (c) {
|
|
208
170
|
return (0, _l7Utils.rgb2arr)(c);
|
|
209
171
|
});
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
encodeRecord[attribute.name] = Array.isArray(values) && values.length === 1 ? values[0] : values; // 增加对 layer/text/iconfont unicode 映射的解析
|
|
172
|
+
}
|
|
173
|
+
// @ts-ignore
|
|
174
|
+
encodeRecord[attribute.name] = Array.isArray(values) && values.length === 1 ? values[0] : values;
|
|
214
175
|
|
|
176
|
+
// 增加对 layer/text/iconfont unicode 映射的解析
|
|
215
177
|
if (attribute.name === 'shape') {
|
|
216
178
|
encodeRecord.shape = _this3.fontService.getIconFontKey(encodeRecord[attribute.name]);
|
|
217
179
|
}
|
|
218
180
|
});
|
|
219
|
-
|
|
220
181
|
if (arrow.enable && (encodeRecord.shape === 'line' || encodeRecord.shape === 'halfLine')) {
|
|
221
182
|
// 只有在线图层且支持配置箭头的时候进行插入顶点的处理
|
|
222
|
-
var coords = encodeRecord.coordinates;
|
|
223
|
-
|
|
183
|
+
var coords = encodeRecord.coordinates;
|
|
184
|
+
// @ts-ignore
|
|
224
185
|
if (layer.arrowInsertCount < layer.encodeDataLength) {
|
|
225
186
|
// Tip: arrowInsert 的判断用于确保每一条线数据 arrow 的属性点只会被植入一次
|
|
226
187
|
var arrowPoint = _this3.getArrowPoints(coords[0], coords[1]);
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
188
|
+
encodeRecord.coordinates.splice(1, 0, arrowPoint, arrowPoint);
|
|
189
|
+
// @ts-ignore
|
|
230
190
|
layer.arrowInsertCount++;
|
|
231
191
|
}
|
|
232
192
|
}
|
|
233
|
-
|
|
234
193
|
return encodeRecord;
|
|
235
194
|
});
|
|
236
195
|
attributes.forEach(function (attribute) {
|
|
237
196
|
attribute.needRemapping = false;
|
|
238
|
-
});
|
|
239
|
-
|
|
240
|
-
this.adjustData2Amap2Coordinates(mappedData, layer);
|
|
197
|
+
});
|
|
198
|
+
// 调整数据兼容 Amap2.0
|
|
199
|
+
this.adjustData2Amap2Coordinates(mappedData, layer);
|
|
241
200
|
|
|
201
|
+
// 调整数据兼容 SimpleCoordinates
|
|
242
202
|
this.adjustData2SimpleCoordinates(mappedData);
|
|
243
203
|
return mappedData;
|
|
244
204
|
}
|
|
@@ -246,38 +206,36 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
|
|
|
246
206
|
key: "adjustData2Amap2Coordinates",
|
|
247
207
|
value: function adjustData2Amap2Coordinates(mappedData, layer) {
|
|
248
208
|
var _this4 = this;
|
|
249
|
-
|
|
250
209
|
// 根据地图的类型判断是否需要对点位数据进行处理, 若是高德2.0则需要对坐标进行相对偏移
|
|
251
210
|
if (mappedData.length > 0 && this.mapService.version === _l7Maps.Version['GAODE2.x']) {
|
|
252
211
|
var layerCenter = layer.coordCenter || layer.getSource().center;
|
|
253
|
-
|
|
254
212
|
if (typeof mappedData[0].coordinates[0] === 'number') {
|
|
255
213
|
// 单个的点数据
|
|
256
214
|
// @ts-ignore
|
|
257
|
-
mappedData
|
|
215
|
+
mappedData
|
|
216
|
+
// TODO: 避免经纬度被重复计算导致坐标位置偏移
|
|
258
217
|
.filter(function (d) {
|
|
259
218
|
return !d.originCoordinates;
|
|
260
219
|
}).map(function (d) {
|
|
261
|
-
d.version = _l7Maps.Version['GAODE2.x'];
|
|
262
|
-
|
|
220
|
+
d.version = _l7Maps.Version['GAODE2.x'];
|
|
221
|
+
// @ts-ignore
|
|
263
222
|
d.originCoordinates = (0, _lodash.cloneDeep)(d.coordinates); // 为了兼容高德1.x 需要保存一份原始的经纬度坐标数据(许多上层逻辑依赖经纬度数据)
|
|
264
223
|
// @ts-ignore
|
|
265
224
|
// d.coordinates = this.mapService.lngLatToCoord(d.coordinates);
|
|
266
|
-
|
|
267
225
|
d.coordinates = _this4.mapService.lngLatToCoordByLayer(d.coordinates, layerCenter);
|
|
268
226
|
});
|
|
269
227
|
} else {
|
|
270
228
|
// 连续的线、面数据
|
|
271
|
-
mappedData
|
|
229
|
+
mappedData
|
|
230
|
+
// TODO: 避免经纬度被重复计算导致坐标位置偏移
|
|
272
231
|
.filter(function (d) {
|
|
273
232
|
return !d.originCoordinates;
|
|
274
233
|
}).map(function (d) {
|
|
275
|
-
d.version = _l7Maps.Version['GAODE2.x'];
|
|
276
|
-
|
|
234
|
+
d.version = _l7Maps.Version['GAODE2.x'];
|
|
235
|
+
// @ts-ignore
|
|
277
236
|
d.originCoordinates = (0, _lodash.cloneDeep)(d.coordinates); // 为了兼容高德1.x 需要保存一份原始的经纬度坐标数据(许多上层逻辑依赖经纬度数据)
|
|
278
237
|
// @ts-ignore
|
|
279
238
|
// d.coordinates = this.mapService.lngLatToCoords(d.coordinates);
|
|
280
|
-
|
|
281
239
|
d.coordinates = _this4.mapService.lngLatToCoordsByLayer(d.coordinates, layerCenter);
|
|
282
240
|
});
|
|
283
241
|
}
|
|
@@ -287,7 +245,6 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
|
|
|
287
245
|
key: "adjustData2SimpleCoordinates",
|
|
288
246
|
value: function adjustData2SimpleCoordinates(mappedData) {
|
|
289
247
|
var _this5 = this;
|
|
290
|
-
|
|
291
248
|
if (mappedData.length > 0 && this.mapService.version === _l7Maps.Version.SIMPLE) {
|
|
292
249
|
mappedData.map(function (d) {
|
|
293
250
|
if (!d.simpleCoordinate) {
|
|
@@ -301,11 +258,9 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
|
|
|
301
258
|
key: "unProjectCoordinates",
|
|
302
259
|
value: function unProjectCoordinates(coordinates) {
|
|
303
260
|
var _this6 = this;
|
|
304
|
-
|
|
305
261
|
if (typeof coordinates[0] === 'number') {
|
|
306
262
|
return this.mapService.simpleMapCoord.unproject(coordinates);
|
|
307
263
|
}
|
|
308
|
-
|
|
309
264
|
if (coordinates[0] && coordinates[0][0] instanceof Array) {
|
|
310
265
|
// @ts-ignore
|
|
311
266
|
var coords = [];
|
|
@@ -314,20 +269,20 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
|
|
|
314
269
|
var c1 = [];
|
|
315
270
|
coord.map(function (co) {
|
|
316
271
|
c1.push(_this6.mapService.simpleMapCoord.unproject(co));
|
|
317
|
-
});
|
|
318
|
-
|
|
272
|
+
});
|
|
273
|
+
// @ts-ignore
|
|
319
274
|
coords.push(c1);
|
|
320
|
-
});
|
|
321
|
-
|
|
275
|
+
});
|
|
276
|
+
// @ts-ignore
|
|
322
277
|
return coords;
|
|
323
278
|
} else {
|
|
324
279
|
// @ts-ignore
|
|
325
|
-
var _coords = [];
|
|
326
|
-
|
|
280
|
+
var _coords = [];
|
|
281
|
+
// @ts-ignore
|
|
327
282
|
coordinates.map(function (coord) {
|
|
328
283
|
_coords.push(_this6.mapService.simpleMapCoord.unproject(coord));
|
|
329
|
-
});
|
|
330
|
-
|
|
284
|
+
});
|
|
285
|
+
// @ts-ignore
|
|
331
286
|
return _coords;
|
|
332
287
|
}
|
|
333
288
|
}
|
|
@@ -335,25 +290,22 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
|
|
|
335
290
|
key: "applyAttributeMapping",
|
|
336
291
|
value: function applyAttributeMapping(attribute, record) {
|
|
337
292
|
var _attribute$scale;
|
|
338
|
-
|
|
339
293
|
if (!attribute.scale) {
|
|
340
294
|
return [];
|
|
341
295
|
}
|
|
342
|
-
|
|
343
296
|
var scalers = (attribute === null || attribute === void 0 ? void 0 : (_attribute$scale = attribute.scale) === null || _attribute$scale === void 0 ? void 0 : _attribute$scale.scalers) || [];
|
|
344
297
|
var params = [];
|
|
345
298
|
scalers.forEach(function (_ref6) {
|
|
346
299
|
var _attribute$scale2;
|
|
347
|
-
|
|
348
300
|
var field = _ref6.field;
|
|
349
|
-
|
|
350
301
|
if (record.hasOwnProperty(field) || ((_attribute$scale2 = attribute.scale) === null || _attribute$scale2 === void 0 ? void 0 : _attribute$scale2.type) === 'variable') {
|
|
351
302
|
// TODO:多字段,常量
|
|
352
303
|
params.push(record[field]);
|
|
353
304
|
}
|
|
354
305
|
});
|
|
355
306
|
var mappingResult = attribute.mapping ? attribute.mapping(params) : [];
|
|
356
|
-
return mappingResult;
|
|
307
|
+
return mappingResult;
|
|
308
|
+
// return attribute.mapping ? attribute.mapping(params) : [];
|
|
357
309
|
}
|
|
358
310
|
}, {
|
|
359
311
|
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
|
}]);
|