@antv/l7-layers 2.9.25-alpha.0 → 2.9.26-alpha.1
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/heatmap/models/heatmap.js +1 -1
- package/es/tile/tileFactory/base.d.ts +1 -1
- package/es/tile/utils.js +1 -1
- package/lib/Geometry/index.js +114 -77
- package/lib/Geometry/models/billboard.js +232 -181
- package/lib/Geometry/models/index.js +18 -34
- package/lib/Geometry/models/plane.js +407 -278
- package/lib/Geometry/models/sprite.js +291 -189
- package/lib/canvas/index.js +101 -66
- package/lib/canvas/models/canvas.js +207 -140
- package/lib/canvas/models/index.js +12 -30
- package/lib/citybuliding/building.js +98 -63
- package/lib/citybuliding/models/build.js +192 -146
- package/lib/core/BaseLayer.js +1331 -814
- package/lib/core/BaseModel.js +457 -279
- package/lib/core/interface.js +40 -53
- package/lib/core/schema.js +21 -39
- package/lib/core/shape/Path.js +67 -79
- package/lib/core/shape/extrude.js +132 -91
- package/lib/core/triangulation.js +378 -196
- package/lib/earth/index.js +100 -62
- package/lib/earth/models/atmosphere.js +146 -112
- package/lib/earth/models/base.js +210 -150
- package/lib/earth/models/bloomsphere.js +146 -112
- package/lib/earth/utils.js +111 -91
- package/lib/heatmap/index.js +149 -92
- package/lib/heatmap/models/grid.js +118 -91
- package/lib/heatmap/models/grid3d.js +155 -123
- package/lib/heatmap/models/heatmap.js +475 -338
- package/lib/heatmap/models/hexagon.js +121 -92
- package/lib/heatmap/models/index.js +22 -37
- package/lib/heatmap/triangulation.js +31 -47
- package/lib/image/index.js +111 -74
- package/lib/image/models/dataImage.js +232 -174
- package/lib/image/models/image.js +175 -128
- package/lib/image/models/index.js +15 -32
- package/lib/index.js +263 -97
- package/lib/line/index.js +131 -85
- package/lib/line/models/arc.js +352 -237
- package/lib/line/models/arc_3d.js +334 -228
- package/lib/line/models/earthArc_3d.js +336 -228
- package/lib/line/models/great_circle.js +291 -200
- package/lib/line/models/half.js +286 -201
- package/lib/line/models/index.js +42 -50
- package/lib/line/models/line.js +428 -299
- package/lib/line/models/linearline.js +277 -203
- package/lib/line/models/simpleLine.js +239 -175
- package/lib/line/models/tile.js +348 -237
- package/lib/line/models/wall.js +327 -235
- package/lib/mask/index.js +92 -59
- package/lib/mask/models/fill.js +134 -82
- package/lib/mask/models/index.js +12 -30
- package/lib/plugins/DataMappingPlugin.js +342 -224
- package/lib/plugins/DataSourcePlugin.js +102 -87
- package/lib/plugins/FeatureScalePlugin.js +330 -240
- package/lib/plugins/LayerAnimateStylePlugin.js +61 -55
- package/lib/plugins/LayerModelPlugin.js +80 -73
- package/lib/plugins/LayerStylePlugin.js +48 -51
- package/lib/plugins/LightingPlugin.js +80 -68
- package/lib/plugins/MultiPassRendererPlugin.js +91 -65
- package/lib/plugins/PixelPickingPlugin.js +150 -109
- package/lib/plugins/RegisterStyleAttributePlugin.js +110 -110
- package/lib/plugins/ShaderUniformPlugin.js +118 -99
- package/lib/plugins/UpdateModelPlugin.js +40 -47
- package/lib/plugins/UpdateStyleAttributePlugin.js +93 -75
- package/lib/point/index.js +226 -150
- package/lib/point/models/earthExtrude.js +279 -201
- package/lib/point/models/earthFill.js +287 -202
- package/lib/point/models/extrude.js +299 -203
- package/lib/point/models/fill.js +406 -275
- package/lib/point/models/fillmage.js +365 -256
- package/lib/point/models/image.js +241 -168
- package/lib/point/models/index.js +46 -52
- package/lib/point/models/normal.js +183 -134
- package/lib/point/models/radar.js +304 -211
- package/lib/point/models/simplePoint.js +194 -142
- package/lib/point/models/text.js +608 -385
- package/lib/point/models/tile.js +314 -223
- package/lib/point/shape/extrude.js +56 -52
- package/lib/polygon/index.js +154 -102
- package/lib/polygon/models/extrude.js +311 -223
- package/lib/polygon/models/fill.js +215 -153
- package/lib/polygon/models/index.js +46 -52
- package/lib/polygon/models/ocean.js +244 -173
- package/lib/polygon/models/tile.js +144 -100
- package/lib/polygon/models/water.js +222 -153
- package/lib/raster/buffers/triangulation.js +27 -40
- package/lib/raster/index.js +115 -75
- package/lib/raster/models/index.js +16 -33
- package/lib/raster/models/raster.js +178 -135
- package/lib/raster/raster.js +187 -132
- package/lib/tile/interface.js +4 -16
- package/lib/tile/manager/tileConfigManager.js +125 -86
- package/lib/tile/manager/tileLayerManager.js +313 -229
- package/lib/tile/manager/tilePickerManager.js +192 -123
- package/lib/tile/models/tileModel.js +71 -52
- package/lib/tile/tileFactory/base.js +432 -309
- package/lib/tile/tileFactory/index.js +51 -49
- package/lib/tile/tileFactory/line.js +65 -50
- package/lib/tile/tileFactory/point.js +65 -50
- package/lib/tile/tileFactory/polygon.js +65 -50
- package/lib/tile/tileFactory/raster.js +66 -54
- package/lib/tile/tileFactory/rasterData.js +88 -76
- package/lib/tile/tileFactory/rasterDataLayer.js +97 -62
- package/lib/tile/tileFactory/vectorLayer.js +168 -109
- package/lib/tile/tileLayer/baseTileLayer.js +420 -221
- package/lib/tile/tmsTileLayer.js +110 -67
- package/lib/tile/utils.js +110 -92
- package/lib/utils/blend.js +59 -79
- package/lib/utils/collision-index.js +107 -64
- package/lib/utils/dataMappingStyle.js +105 -60
- package/lib/utils/extrude_polyline.js +600 -398
- package/lib/utils/grid-index.js +163 -111
- package/lib/utils/layerData.js +130 -99
- package/lib/utils/multiPassRender.js +49 -41
- package/lib/utils/polylineNormal.js +148 -96
- package/lib/utils/simpleLine.js +100 -85
- package/lib/utils/symbol-layout.js +219 -116
- package/lib/utils/updateShape.js +15 -41
- package/lib/wind/index.js +109 -71
- package/lib/wind/models/index.js +12 -30
- package/lib/wind/models/utils.js +144 -105
- package/lib/wind/models/wind.js +333 -224
- package/lib/wind/models/windRender.js +329 -218
- package/lib/wind/models/windShader.js +23 -181
- package/package.json +6 -6
|
@@ -1,67 +1,93 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
var __decorateClass = (decorators, target, key, kind) => {
|
|
19
|
-
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
20
|
-
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
21
|
-
if (decorator = decorators[i])
|
|
22
|
-
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
23
|
-
if (kind && result)
|
|
24
|
-
__defProp(target, key, result);
|
|
25
|
-
return result;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
// src/plugins/MultiPassRendererPlugin.ts
|
|
29
|
-
var MultiPassRendererPlugin_exports = {};
|
|
30
|
-
__export(MultiPassRendererPlugin_exports, {
|
|
31
|
-
default: () => MultiPassRendererPlugin
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
32
7
|
});
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
var
|
|
36
|
-
|
|
37
|
-
var
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _initializerDefineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/initializerDefineProperty"));
|
|
11
|
+
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
|
|
14
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
+
|
|
16
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
+
|
|
18
|
+
var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/helpers/applyDecoratedDescriptor"));
|
|
19
|
+
|
|
20
|
+
var _initializerWarningHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/initializerWarningHelper"));
|
|
21
|
+
|
|
22
|
+
var _l7Core = require("@antv/l7-core");
|
|
23
|
+
|
|
24
|
+
var _inversify = require("inversify");
|
|
25
|
+
|
|
26
|
+
require("reflect-metadata");
|
|
27
|
+
|
|
28
|
+
var _multiPassRender = require("../utils/multiPassRender");
|
|
29
|
+
|
|
30
|
+
var _dec, _dec2, _class, _class2, _descriptor;
|
|
31
|
+
|
|
32
|
+
var MultiPassRendererPlugin = (
|
|
33
|
+
/**
|
|
34
|
+
* 自定义渲染管线:
|
|
35
|
+
* ClearPass -> PixelPickingPass(可选) -> RenderPass/TAAPass -> PostProcessing -> CopyPass
|
|
36
|
+
* 根据 Layer 配置的 passes 创建 PostProcessing
|
|
37
|
+
* @example
|
|
38
|
+
* new PolygonLayer({
|
|
39
|
+
* enableMultiPassRenderer: true,
|
|
40
|
+
* passes: [
|
|
41
|
+
* 'blurH',
|
|
42
|
+
* ['blurV', { radius: 10 }],
|
|
43
|
+
* ],
|
|
44
|
+
* })
|
|
45
|
+
*/
|
|
46
|
+
_dec = (0, _inversify.injectable)(), _dec2 = (0, _inversify.inject)(_l7Core.TYPES.IGlobalConfigService), _dec(_class = (_class2 = /*#__PURE__*/function () {
|
|
47
|
+
function MultiPassRendererPlugin() {
|
|
48
|
+
(0, _classCallCheck2.default)(this, MultiPassRendererPlugin);
|
|
49
|
+
(0, _initializerDefineProperty2.default)(this, "configService", _descriptor, this);
|
|
58
50
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
51
|
+
|
|
52
|
+
(0, _createClass2.default)(MultiPassRendererPlugin, [{
|
|
53
|
+
key: "apply",
|
|
54
|
+
value: function apply(layer, _ref) {
|
|
55
|
+
var _this = this;
|
|
56
|
+
|
|
57
|
+
var rendererService = _ref.rendererService,
|
|
58
|
+
postProcessingPassFactory = _ref.postProcessingPassFactory,
|
|
59
|
+
normalPassFactory = _ref.normalPassFactory;
|
|
60
|
+
layer.hooks.init.tap('MultiPassRendererPlugin', function () {
|
|
61
|
+
var _layer$getLayerConfig = layer.getLayerConfig(),
|
|
62
|
+
enableMultiPassRenderer = _layer$getLayerConfig.enableMultiPassRenderer,
|
|
63
|
+
_layer$getLayerConfig2 = _layer$getLayerConfig.passes,
|
|
64
|
+
passes = _layer$getLayerConfig2 === void 0 ? [] : _layer$getLayerConfig2; // SceneConfig 的 enableMultiPassRenderer 配置项可以统一关闭
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
_this.enabled = !!enableMultiPassRenderer && layer.getLayerConfig().enableMultiPassRenderer !== false; // 根据 LayerConfig passes 配置项初始化
|
|
68
|
+
|
|
69
|
+
if (_this.enabled) {
|
|
70
|
+
layer.multiPassRenderer = (0, _multiPassRender.createMultiPassRenderer)(layer, passes, postProcessingPassFactory, normalPassFactory);
|
|
71
|
+
layer.multiPassRenderer.setRenderFlag(true);
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
layer.hooks.beforeRender.tap('MultiPassRendererPlugin', function () {
|
|
75
|
+
if (_this.enabled) {
|
|
76
|
+
// 渲染前根据 viewport 调整 FBO size
|
|
77
|
+
var _rendererService$getV = rendererService.getViewportSize(),
|
|
78
|
+
width = _rendererService$getV.width,
|
|
79
|
+
height = _rendererService$getV.height;
|
|
80
|
+
|
|
81
|
+
layer.multiPassRenderer.resize(width, height);
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}]);
|
|
86
|
+
return MultiPassRendererPlugin;
|
|
87
|
+
}(), (_descriptor = (0, _applyDecoratedDescriptor2.default)(_class2.prototype, "configService", [_dec2], {
|
|
88
|
+
configurable: true,
|
|
89
|
+
enumerable: true,
|
|
90
|
+
writable: true,
|
|
91
|
+
initializer: null
|
|
92
|
+
})), _class2)) || _class);
|
|
93
|
+
exports.default = MultiPassRendererPlugin;
|
|
@@ -1,118 +1,159 @@
|
|
|
1
|
-
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
var __decorateClass = (decorators, target, key, kind) => {
|
|
19
|
-
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
20
|
-
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
21
|
-
if (decorator = decorators[i])
|
|
22
|
-
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
23
|
-
if (kind && result)
|
|
24
|
-
__defProp(target, key, result);
|
|
25
|
-
return result;
|
|
26
|
-
};
|
|
1
|
+
"use strict";
|
|
27
2
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
32
7
|
});
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
var
|
|
36
|
-
|
|
37
|
-
var
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _l7Core = require("@antv/l7-core");
|
|
15
|
+
|
|
16
|
+
var _l7Utils = require("@antv/l7-utils");
|
|
17
|
+
|
|
18
|
+
var _inversify = require("inversify");
|
|
19
|
+
|
|
20
|
+
require("reflect-metadata");
|
|
21
|
+
|
|
22
|
+
var _dec, _class;
|
|
23
|
+
|
|
38
24
|
var PickingStage = {
|
|
39
|
-
NONE: 0,
|
|
40
|
-
ENCODE: 1,
|
|
41
|
-
HIGHLIGHT: 2
|
|
25
|
+
NONE: 0.0,
|
|
26
|
+
ENCODE: 1.0,
|
|
27
|
+
HIGHLIGHT: 2.0
|
|
42
28
|
};
|
|
43
|
-
var PixelPickingPlugin =
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
29
|
+
var PixelPickingPlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE__*/function () {
|
|
30
|
+
function PixelPickingPlugin() {
|
|
31
|
+
(0, _classCallCheck2.default)(this, PixelPickingPlugin);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
(0, _createClass2.default)(PixelPickingPlugin, [{
|
|
35
|
+
key: "apply",
|
|
36
|
+
value: function apply(layer, _ref) {
|
|
37
|
+
var rendererService = _ref.rendererService,
|
|
38
|
+
styleAttributeService = _ref.styleAttributeService;
|
|
39
|
+
// TODO: 由于 Shader 目前无法根据是否开启拾取进行内容修改,因此即使不开启也需要生成 a_PickingColor
|
|
40
|
+
layer.hooks.init.tap('PixelPickingPlugin', function () {
|
|
41
|
+
var _layer$getLayerConfig = layer.getLayerConfig(),
|
|
42
|
+
enablePicking = _layer$getLayerConfig.enablePicking,
|
|
43
|
+
enableMultiPassRenderer = _layer$getLayerConfig.enableMultiPassRenderer; // const enablePicking = true;
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
styleAttributeService.registerStyleAttribute({
|
|
47
|
+
name: 'pickingColor',
|
|
48
|
+
type: _l7Core.AttributeType.Attribute,
|
|
49
|
+
descriptor: {
|
|
50
|
+
name: 'a_PickingColor',
|
|
51
|
+
buffer: {
|
|
52
|
+
data: [],
|
|
53
|
+
type: _l7Core.gl.FLOAT
|
|
54
|
+
},
|
|
55
|
+
size: 3,
|
|
56
|
+
// TODO: 固定 feature range 范围内的 pickingColor 都是固定的,可以生成 cache
|
|
57
|
+
update: function update(feature, featureIdx) {
|
|
58
|
+
// 只有开启拾取才需要 encode
|
|
59
|
+
var id = feature.id;
|
|
60
|
+
return enablePicking ? (0, _l7Utils.encodePickingColor)(id) : [0, 0, 0];
|
|
61
|
+
}
|
|
63
62
|
}
|
|
63
|
+
});
|
|
64
|
+
}); // 必须要与 PixelPickingPass 结合使用,因此必须开启 multiPassRenderer
|
|
65
|
+
// if (layer.multiPassRenderer) {
|
|
66
|
+
|
|
67
|
+
layer.hooks.beforePickingEncode.tap('PixelPickingPlugin', function () {
|
|
68
|
+
var _layer$getLayerConfig2 = layer.getLayerConfig(),
|
|
69
|
+
enablePicking = _layer$getLayerConfig2.enablePicking;
|
|
70
|
+
|
|
71
|
+
if (enablePicking && layer.isVisible()) {
|
|
72
|
+
layer.models.forEach(function (model) {
|
|
73
|
+
return model.addUniforms({
|
|
74
|
+
u_PickingStage: PickingStage.ENCODE
|
|
75
|
+
});
|
|
76
|
+
});
|
|
64
77
|
}
|
|
65
78
|
});
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
layer.models.forEach((model) => model.addUniforms({
|
|
79
|
-
u_PickingStage: PickingStage.HIGHLIGHT
|
|
80
|
-
}));
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
layer.hooks.beforeHighlight.tap("PixelPickingPlugin", (pickedColor) => {
|
|
84
|
-
const { highlightColor, activeMix = 0 } = layer.getLayerConfig();
|
|
85
|
-
const highlightColorInArray = typeof highlightColor === "string" ? (0, import_l7_utils.rgb2arr)(highlightColor) : highlightColor || [1, 0, 0, 1];
|
|
86
|
-
layer.updateLayerConfig({
|
|
87
|
-
pickedFeatureID: (0, import_l7_utils.decodePickingColor)(new Uint8Array(pickedColor))
|
|
79
|
+
layer.hooks.afterPickingEncode.tap('PixelPickingPlugin', function () {
|
|
80
|
+
var _layer$getLayerConfig3 = layer.getLayerConfig(),
|
|
81
|
+
enablePicking = _layer$getLayerConfig3.enablePicking; // 区分选中高亮 和滑过高亮
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
if (enablePicking && layer.isVisible()) {
|
|
85
|
+
layer.models.forEach(function (model) {
|
|
86
|
+
return model.addUniforms({
|
|
87
|
+
u_PickingStage: PickingStage.HIGHLIGHT
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
}
|
|
88
91
|
});
|
|
89
|
-
layer.
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
92
|
+
layer.hooks.beforeHighlight.tap('PixelPickingPlugin', function (pickedColor) {
|
|
93
|
+
var _layer$getLayerConfig4 = layer.getLayerConfig(),
|
|
94
|
+
highlightColor = _layer$getLayerConfig4.highlightColor,
|
|
95
|
+
_layer$getLayerConfig5 = _layer$getLayerConfig4.activeMix,
|
|
96
|
+
activeMix = _layer$getLayerConfig5 === void 0 ? 0 : _layer$getLayerConfig5; // const {
|
|
97
|
+
// highlightColor,
|
|
98
|
+
// activeMix = 0,
|
|
99
|
+
// enableSelect,
|
|
100
|
+
// } = layer.getLayerConfig();
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
var highlightColorInArray = typeof highlightColor === 'string' ? (0, _l7Utils.rgb2arr)(highlightColor) : highlightColor || [1, 0, 0, 1]; // const { selectColor } = layer.getLayerConfig();
|
|
104
|
+
// const selectColorInArray =
|
|
105
|
+
// typeof selectColor === 'string'
|
|
106
|
+
// ? rgb2arr(selectColor)
|
|
107
|
+
// : selectColor || [1, 0, 0, 1];
|
|
108
|
+
|
|
109
|
+
layer.updateLayerConfig({
|
|
110
|
+
pickedFeatureID: (0, _l7Utils.decodePickingColor)(new Uint8Array(pickedColor))
|
|
111
|
+
}); // const currentSelectedId = layer.getCurrentSelectedId();
|
|
112
|
+
|
|
113
|
+
layer.models.forEach(function (model) {
|
|
114
|
+
return model.addUniforms({
|
|
115
|
+
u_PickingStage: PickingStage.HIGHLIGHT,
|
|
116
|
+
u_PickingColor: pickedColor,
|
|
117
|
+
u_HighlightColor: highlightColorInArray.map(function (c) {
|
|
118
|
+
return c * 255;
|
|
119
|
+
}),
|
|
120
|
+
u_activeMix: activeMix // u_CurrentSelectedId: currentSelectedId
|
|
121
|
+
// ? encodePickingColor(layer.getCurrentSelectedId()!)
|
|
122
|
+
// : [0, 0, 0],
|
|
123
|
+
// u_SelectColor: selectColorInArray.map((c) => c * 255),
|
|
124
|
+
// u_EnableSelect: +(enableSelect || false),
|
|
125
|
+
|
|
126
|
+
});
|
|
127
|
+
});
|
|
101
128
|
});
|
|
102
|
-
layer.
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
129
|
+
layer.hooks.beforeSelect.tap('PixelPickingPlugin', function (pickedColor) {
|
|
130
|
+
var _layer$getLayerConfig6 = layer.getLayerConfig(),
|
|
131
|
+
selectColor = _layer$getLayerConfig6.selectColor,
|
|
132
|
+
_layer$getLayerConfig7 = _layer$getLayerConfig6.selectMix,
|
|
133
|
+
selectMix = _layer$getLayerConfig7 === void 0 ? 0 : _layer$getLayerConfig7;
|
|
134
|
+
|
|
135
|
+
var highlightColorInArray = typeof selectColor === 'string' ? (0, _l7Utils.rgb2arr)(selectColor) : selectColor || [1, 0, 0, 1];
|
|
136
|
+
layer.updateLayerConfig({
|
|
137
|
+
pickedFeatureID: (0, _l7Utils.decodePickingColor)(new Uint8Array(pickedColor))
|
|
138
|
+
});
|
|
139
|
+
layer.models.forEach(function (model) {
|
|
140
|
+
return model.addUniforms({
|
|
141
|
+
u_PickingStage: PickingStage.HIGHLIGHT,
|
|
142
|
+
u_PickingColor: pickedColor,
|
|
143
|
+
u_HighlightColor: highlightColorInArray.map(function (c) {
|
|
144
|
+
return c * 255;
|
|
145
|
+
}),
|
|
146
|
+
u_activeMix: selectMix,
|
|
147
|
+
u_CurrentSelectedId: pickedColor,
|
|
148
|
+
u_SelectColor: highlightColorInArray.map(function (c) {
|
|
149
|
+
return c * 255;
|
|
150
|
+
}),
|
|
151
|
+
u_EnableSelect: 1
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
}); // }
|
|
155
|
+
}
|
|
156
|
+
}]);
|
|
157
|
+
return PixelPickingPlugin;
|
|
158
|
+
}()) || _class);
|
|
159
|
+
exports.default = PixelPickingPlugin;
|
|
@@ -1,117 +1,117 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
var __decorateClass = (decorators, target, key, kind) => {
|
|
19
|
-
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
20
|
-
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
21
|
-
if (decorator = decorators[i])
|
|
22
|
-
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
23
|
-
if (kind && result)
|
|
24
|
-
__defProp(target, key, result);
|
|
25
|
-
return result;
|
|
26
|
-
};
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
27
4
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
__export(RegisterStyleAttributePlugin_exports, {
|
|
31
|
-
default: () => RegisterStyleAttributePlugin
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
32
7
|
});
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
var
|
|
36
|
-
|
|
37
|
-
var
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _l7Core = require("@antv/l7-core");
|
|
15
|
+
|
|
16
|
+
var _inversify = require("inversify");
|
|
17
|
+
|
|
18
|
+
require("reflect-metadata");
|
|
19
|
+
|
|
20
|
+
var _dec, _class;
|
|
21
|
+
|
|
22
|
+
var RegisterStyleAttributePlugin = (
|
|
23
|
+
/**
|
|
24
|
+
* 在初始化阶段完成属性的注册,以及首次根据 Layer 指定的三角化方法完成 indices 和 attribute 的创建
|
|
25
|
+
*/
|
|
26
|
+
_dec = (0, _inversify.injectable)(), _dec(_class = /*#__PURE__*/function () {
|
|
27
|
+
function RegisterStyleAttributePlugin() {
|
|
28
|
+
(0, _classCallCheck2.default)(this, RegisterStyleAttributePlugin);
|
|
44
29
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
30
|
+
|
|
31
|
+
(0, _createClass2.default)(RegisterStyleAttributePlugin, [{
|
|
32
|
+
key: "apply",
|
|
33
|
+
value: function apply(layer, _ref) {
|
|
34
|
+
var _this = this;
|
|
35
|
+
|
|
36
|
+
var styleAttributeService = _ref.styleAttributeService;
|
|
37
|
+
layer.hooks.init.tap('RegisterStyleAttributePlugin', function () {
|
|
38
|
+
_this.registerBuiltinAttributes(styleAttributeService);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}, {
|
|
42
|
+
key: "registerBuiltinAttributes",
|
|
43
|
+
value: function registerBuiltinAttributes(styleAttributeService) {
|
|
44
|
+
styleAttributeService.registerStyleAttribute({
|
|
45
|
+
name: 'position',
|
|
46
|
+
type: _l7Core.AttributeType.Attribute,
|
|
47
|
+
descriptor: {
|
|
48
|
+
name: 'a_Position',
|
|
49
|
+
buffer: {
|
|
50
|
+
data: [],
|
|
51
|
+
type: _l7Core.gl.FLOAT
|
|
52
|
+
},
|
|
53
|
+
size: 3,
|
|
54
|
+
update: function update(feature, featureIdx, vertex) {
|
|
55
|
+
return vertex.length === 2 ? [vertex[0], vertex[1], 0] : [vertex[0], vertex[1], vertex[2]];
|
|
56
|
+
}
|
|
58
57
|
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
58
|
+
});
|
|
59
|
+
styleAttributeService.registerStyleAttribute({
|
|
60
|
+
name: 'filter',
|
|
61
|
+
type: _l7Core.AttributeType.Attribute,
|
|
62
|
+
descriptor: {
|
|
63
|
+
name: 'filter',
|
|
64
|
+
buffer: {
|
|
65
|
+
// give the WebGL driver a hint that this buffer may change
|
|
66
|
+
usage: _l7Core.gl.DYNAMIC_DRAW,
|
|
67
|
+
data: [],
|
|
68
|
+
type: _l7Core.gl.FLOAT
|
|
69
|
+
},
|
|
70
|
+
size: 1,
|
|
71
|
+
update: function update(feature, featureIdx) {
|
|
72
|
+
var filter = feature.filter;
|
|
73
|
+
return filter ? [1] : [0];
|
|
74
|
+
}
|
|
75
75
|
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
76
|
+
});
|
|
77
|
+
styleAttributeService.registerStyleAttribute({
|
|
78
|
+
name: 'color',
|
|
79
|
+
type: _l7Core.AttributeType.Attribute,
|
|
80
|
+
descriptor: {
|
|
81
|
+
name: 'a_Color',
|
|
82
|
+
buffer: {
|
|
83
|
+
// give the WebGL driver a hint that this buffer may change
|
|
84
|
+
usage: _l7Core.gl.DYNAMIC_DRAW,
|
|
85
|
+
data: [],
|
|
86
|
+
type: _l7Core.gl.FLOAT
|
|
87
|
+
},
|
|
88
|
+
size: 4,
|
|
89
|
+
update: function update(feature, featureIdx) {
|
|
90
|
+
var color = feature.color;
|
|
91
|
+
return !color || !color.length ? [1, 1, 1, 1] : color;
|
|
92
|
+
}
|
|
92
93
|
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
94
|
+
});
|
|
95
|
+
styleAttributeService.registerStyleAttribute({
|
|
96
|
+
// 统一注册每个顶点的唯一编号(目前用于样式的数据映射计算使用)
|
|
97
|
+
name: 'vertexId',
|
|
98
|
+
type: _l7Core.AttributeType.Attribute,
|
|
99
|
+
descriptor: {
|
|
100
|
+
name: 'a_vertexId',
|
|
101
|
+
buffer: {
|
|
102
|
+
// give the WebGL driver a hint that this buffer may change
|
|
103
|
+
usage: _l7Core.gl.DYNAMIC_DRAW,
|
|
104
|
+
data: [],
|
|
105
|
+
type: _l7Core.gl.FLOAT
|
|
106
|
+
},
|
|
107
|
+
size: 1,
|
|
108
|
+
update: function update(feature, featureIdx, vertex, attributeIdx) {
|
|
109
|
+
return [featureIdx];
|
|
110
|
+
}
|
|
108
111
|
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
], RegisterStyleAttributePlugin);
|
|
116
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
117
|
-
0 && (module.exports = {});
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}]);
|
|
115
|
+
return RegisterStyleAttributePlugin;
|
|
116
|
+
}()) || _class);
|
|
117
|
+
exports.default = RegisterStyleAttributePlugin;
|