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