@antv/l7-layers 2.9.17-alpha.0 → 2.9.17
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 +2 -12
- package/es/Geometry/index.js.map +1 -1
- package/es/Geometry/models/billboard.d.ts +3 -3
- package/es/Geometry/models/billboard.js +6 -11
- package/es/Geometry/models/billboard.js.map +1 -1
- package/es/Geometry/models/plane.d.ts +3 -3
- package/es/Geometry/models/plane.js +7 -12
- package/es/Geometry/models/plane.js.map +1 -1
- package/es/Geometry/models/sprite.d.ts +3 -3
- package/es/Geometry/models/sprite.js +6 -11
- package/es/Geometry/models/sprite.js.map +1 -1
- package/es/canvas/index.js +2 -12
- package/es/canvas/index.js.map +1 -1
- package/es/citybuliding/building.js +2 -12
- package/es/citybuliding/building.js.map +1 -1
- package/es/citybuliding/models/build.d.ts +1 -2
- package/es/citybuliding/models/build.js +3 -16
- package/es/citybuliding/models/build.js.map +1 -1
- package/es/core/BaseLayer.d.ts +1 -1
- package/es/core/BaseLayer.js +58 -97
- package/es/core/BaseLayer.js.map +1 -1
- package/es/core/BaseModel.d.ts +2 -2
- package/es/core/BaseModel.js +2 -2
- package/es/core/BaseModel.js.map +1 -1
- package/es/core/interface.d.ts +13 -2
- package/es/core/interface.js.map +1 -1
- package/es/core/triangulation.d.ts +0 -1
- package/es/core/triangulation.js +11 -37
- package/es/core/triangulation.js.map +1 -1
- package/es/earth/index.js +2 -8
- package/es/earth/index.js.map +1 -1
- package/es/earth/models/atmosphere.d.ts +2 -2
- package/es/earth/models/atmosphere.js +6 -11
- package/es/earth/models/atmosphere.js.map +1 -1
- package/es/earth/models/base.d.ts +2 -2
- package/es/earth/models/base.js +6 -11
- package/es/earth/models/base.js.map +1 -1
- package/es/earth/models/bloomsphere.d.ts +2 -2
- package/es/earth/models/bloomsphere.js +6 -11
- package/es/earth/models/bloomsphere.js.map +1 -1
- package/es/heatmap/index.js +5 -17
- package/es/heatmap/index.js.map +1 -1
- package/es/heatmap/models/grid.d.ts +2 -2
- package/es/heatmap/models/grid.js +8 -12
- package/es/heatmap/models/grid.js.map +1 -1
- package/es/heatmap/models/grid3d.d.ts +2 -2
- package/es/heatmap/models/grid3d.js +6 -12
- package/es/heatmap/models/grid3d.js.map +1 -1
- package/es/heatmap/models/heatmap.d.ts +2 -2
- package/es/heatmap/models/heatmap.js +62 -112
- package/es/heatmap/models/heatmap.js.map +1 -1
- package/es/heatmap/models/hexagon.d.ts +2 -2
- package/es/heatmap/models/hexagon.js +6 -11
- package/es/heatmap/models/hexagon.js.map +1 -1
- package/es/image/index.d.ts +1 -1
- package/es/image/index.js +16 -14
- package/es/image/index.js.map +1 -1
- package/es/image/models/dataImage.d.ts +22 -0
- package/es/image/models/dataImage.js +230 -0
- package/es/image/models/dataImage.js.map +1 -0
- package/es/image/models/image.d.ts +4 -3
- package/es/image/models/image.js +14 -11
- package/es/image/models/image.js.map +1 -1
- package/es/image/models/index.d.ts +1 -1
- package/es/image/models/index.js +3 -1
- package/es/image/models/index.js.map +1 -1
- package/es/line/index.d.ts +2 -0
- package/es/line/index.js +5 -12
- package/es/line/index.js.map +1 -1
- package/es/line/models/arc.d.ts +2 -2
- package/es/line/models/arc.js +10 -15
- package/es/line/models/arc.js.map +1 -1
- package/es/line/models/arc_3d.d.ts +2 -2
- package/es/line/models/arc_3d.js +8 -13
- package/es/line/models/arc_3d.js.map +1 -1
- package/es/line/models/arcmini.d.ts +9 -0
- package/es/line/models/arcmini.js +145 -0
- package/es/line/models/arcmini.js.map +1 -0
- package/es/line/models/earthArc_3d.d.ts +2 -2
- package/es/line/models/earthArc_3d.js +9 -17
- package/es/line/models/earthArc_3d.js.map +1 -1
- package/es/line/models/great_circle.d.ts +2 -2
- package/es/line/models/great_circle.js +8 -13
- package/es/line/models/great_circle.js.map +1 -1
- package/es/line/models/half.d.ts +2 -2
- package/es/line/models/half.js +29 -46
- package/es/line/models/half.js.map +1 -1
- package/es/line/models/index.d.ts +1 -1
- package/es/line/models/index.js +2 -0
- package/es/line/models/index.js.map +1 -1
- package/es/line/models/line.d.ts +2 -2
- package/es/line/models/line.js +16 -28
- package/es/line/models/line.js.map +1 -1
- package/es/line/models/linearline.d.ts +11 -2
- package/es/line/models/linearline.js +24 -14
- package/es/line/models/linearline.js.map +1 -1
- package/es/line/models/simpleLine.d.ts +2 -3
- package/es/line/models/simpleLine.js +18 -66
- package/es/line/models/simpleLine.js.map +1 -1
- package/es/line/models/tile.d.ts +11 -2
- package/es/line/models/tile.js +39 -45
- package/es/line/models/tile.js.map +1 -1
- package/es/line/models/wall.d.ts +2 -2
- package/es/line/models/wall.js +9 -13
- package/es/line/models/wall.js.map +1 -1
- package/es/mask/index.js +2 -12
- package/es/mask/index.js.map +1 -1
- package/es/mask/models/fill.d.ts +2 -2
- package/es/mask/models/fill.js +27 -53
- package/es/mask/models/fill.js.map +1 -1
- package/es/plugins/DataMappingPlugin.js +8 -29
- package/es/plugins/DataMappingPlugin.js.map +1 -1
- package/es/plugins/DataSourcePlugin.js +5 -14
- package/es/plugins/DataSourcePlugin.js.map +1 -1
- package/es/plugins/LayerModelPlugin.d.ts +0 -2
- package/es/plugins/LayerModelPlugin.js +7 -33
- package/es/plugins/LayerModelPlugin.js.map +1 -1
- package/es/plugins/PixelPickingPlugin.js +13 -16
- package/es/plugins/PixelPickingPlugin.js.map +1 -1
- package/es/point/index.d.ts +1 -1
- package/es/point/index.js +8 -15
- package/es/point/index.js.map +1 -1
- package/es/point/models/earthExtrude.d.ts +2 -2
- package/es/point/models/earthExtrude.js +14 -16
- package/es/point/models/earthExtrude.js.map +1 -1
- package/es/point/models/earthFill.d.ts +11 -2
- package/es/point/models/earthFill.js +22 -13
- package/es/point/models/earthFill.js.map +1 -1
- package/es/point/models/extrude.d.ts +2 -2
- package/es/point/models/extrude.js +27 -49
- package/es/point/models/extrude.js.map +1 -1
- package/es/point/models/fill.d.ts +2 -2
- package/es/point/models/fill.js +41 -59
- package/es/point/models/fill.js.map +1 -1
- package/es/point/models/fillmage.d.ts +7 -2
- package/es/point/models/fillmage.js +22 -13
- package/es/point/models/fillmage.js.map +1 -1
- package/es/point/models/icon-font.d.ts +11 -0
- package/es/point/models/icon-font.js +181 -0
- package/es/point/models/icon-font.js.map +1 -0
- package/es/point/models/image.d.ts +2 -2
- package/es/point/models/image.js +6 -11
- package/es/point/models/image.js.map +1 -1
- package/es/point/models/index.d.ts +1 -1
- package/es/point/models/index.js +2 -0
- package/es/point/models/index.js.map +1 -1
- package/es/point/models/normal.d.ts +2 -2
- package/es/point/models/normal.js +6 -11
- package/es/point/models/normal.js.map +1 -1
- package/es/point/models/radar.d.ts +11 -2
- package/es/point/models/radar.js +22 -13
- package/es/point/models/radar.js.map +1 -1
- package/es/point/models/simplePoint.d.ts +2 -2
- package/es/point/models/simplePoint.js +6 -11
- package/es/point/models/simplePoint.js.map +1 -1
- package/es/point/models/text.d.ts +2 -3
- package/es/point/models/text.js +75 -108
- package/es/point/models/text.js.map +1 -1
- package/es/point/models/tile.d.ts +11 -2
- package/es/point/models/tile.js +25 -22
- package/es/point/models/tile.js.map +1 -1
- package/es/polygon/index.js +2 -12
- package/es/polygon/index.js.map +1 -1
- package/es/polygon/models/extrude.d.ts +2 -2
- package/es/polygon/models/extrude.js +5 -10
- package/es/polygon/models/extrude.js.map +1 -1
- package/es/polygon/models/fill.d.ts +2 -2
- package/es/polygon/models/fill.js +13 -27
- package/es/polygon/models/fill.js.map +1 -1
- package/es/polygon/models/ocean.d.ts +2 -2
- package/es/polygon/models/ocean.js +6 -12
- package/es/polygon/models/ocean.js.map +1 -1
- package/es/polygon/models/tile.d.ts +3 -2
- package/es/polygon/models/tile.js +27 -17
- package/es/polygon/models/tile.js.map +1 -1
- package/es/polygon/models/water.d.ts +2 -2
- package/es/polygon/models/water.js +6 -12
- package/es/polygon/models/water.js.map +1 -1
- package/es/raster/image.d.ts +0 -0
- package/es/raster/image.js +2 -0
- package/es/raster/image.js.map +1 -0
- package/es/raster/index.js +2 -12
- package/es/raster/index.js.map +1 -1
- package/es/raster/models/raster.d.ts +3 -3
- package/es/raster/models/raster.js +7 -11
- package/es/raster/models/raster.js.map +1 -1
- package/es/raster/raster2d.d.ts +27 -0
- package/es/raster/raster2d.js +158 -0
- package/es/raster/raster2d.js.map +1 -0
- package/es/tile/manager/tileLayerManager.js +21 -4
- package/es/tile/manager/tileLayerManager.js.map +1 -1
- package/es/tile/manager/tilePickerManager.js +0 -1
- package/es/tile/manager/tilePickerManager.js.map +1 -1
- package/es/tile/tileFactory/base.js.map +1 -1
- package/es/tile/tileFactory/point.js.map +1 -1
- package/es/tile/tileFactory/rasterDataLayer.js +2 -12
- package/es/tile/tileFactory/rasterDataLayer.js.map +1 -1
- package/es/tile/tileFactory/vectorLayer.js +2 -12
- package/es/tile/tileFactory/vectorLayer.js.map +1 -1
- package/es/utils/extrude_polyline.d.ts +0 -15
- package/es/utils/extrude_polyline.js +6 -138
- package/es/utils/extrude_polyline.js.map +1 -1
- package/es/utils/geo.d.ts +12 -0
- package/es/utils/geo.js +53 -0
- package/es/utils/geo.js.map +1 -0
- package/es/utils/simpleLine.d.ts +23 -0
- package/es/utils/simpleLine.js +105 -0
- package/es/utils/simpleLine.js.map +1 -0
- package/es/wind/index.js +2 -12
- package/es/wind/index.js.map +1 -1
- package/es/wind/models/wind.d.ts +2 -2
- package/es/wind/models/wind.js +33 -36
- package/es/wind/models/wind.js.map +1 -1
- package/lib/Geometry/index.js +2 -12
- package/lib/Geometry/index.js.map +1 -1
- package/lib/Geometry/models/billboard.js +6 -11
- package/lib/Geometry/models/billboard.js.map +1 -1
- package/lib/Geometry/models/plane.js +7 -12
- package/lib/Geometry/models/plane.js.map +1 -1
- package/lib/Geometry/models/sprite.js +6 -11
- package/lib/Geometry/models/sprite.js.map +1 -1
- package/lib/canvas/index.js +2 -12
- package/lib/canvas/index.js.map +1 -1
- package/lib/citybuliding/building.js +2 -12
- package/lib/citybuliding/building.js.map +1 -1
- package/lib/citybuliding/models/build.js +3 -16
- package/lib/citybuliding/models/build.js.map +1 -1
- package/lib/core/BaseLayer.js +57 -96
- package/lib/core/BaseLayer.js.map +1 -1
- package/lib/core/BaseModel.js +2 -2
- package/lib/core/BaseModel.js.map +1 -1
- package/lib/core/interface.js.map +1 -1
- package/lib/core/triangulation.js +16 -40
- package/lib/core/triangulation.js.map +1 -1
- package/lib/earth/index.js +2 -8
- package/lib/earth/index.js.map +1 -1
- package/lib/earth/models/atmosphere.js +6 -11
- package/lib/earth/models/atmosphere.js.map +1 -1
- package/lib/earth/models/base.js +6 -11
- package/lib/earth/models/base.js.map +1 -1
- package/lib/earth/models/bloomsphere.js +6 -11
- package/lib/earth/models/bloomsphere.js.map +1 -1
- package/lib/heatmap/index.js +5 -17
- package/lib/heatmap/index.js.map +1 -1
- package/lib/heatmap/models/grid.js +8 -12
- package/lib/heatmap/models/grid.js.map +1 -1
- package/lib/heatmap/models/grid3d.js +6 -12
- package/lib/heatmap/models/grid3d.js.map +1 -1
- package/lib/heatmap/models/heatmap.js +62 -113
- package/lib/heatmap/models/heatmap.js.map +1 -1
- package/lib/heatmap/models/hexagon.js +6 -11
- package/lib/heatmap/models/hexagon.js.map +1 -1
- package/lib/image/index.js +16 -14
- package/lib/image/index.js.map +1 -1
- package/lib/image/models/dataImage.js +245 -0
- package/lib/image/models/dataImage.js.map +1 -0
- package/lib/image/models/image.js +14 -11
- package/lib/image/models/image.js.map +1 -1
- package/lib/image/models/index.js +4 -1
- package/lib/image/models/index.js.map +1 -1
- package/lib/line/index.js +5 -12
- package/lib/line/index.js.map +1 -1
- package/lib/line/models/arc.js +10 -15
- package/lib/line/models/arc.js.map +1 -1
- package/lib/line/models/arc_3d.js +8 -13
- package/lib/line/models/arc_3d.js.map +1 -1
- package/lib/line/models/arcmini.js +161 -0
- package/lib/line/models/arcmini.js.map +1 -0
- package/lib/line/models/earthArc_3d.js +9 -17
- package/lib/line/models/earthArc_3d.js.map +1 -1
- package/lib/line/models/great_circle.js +8 -13
- package/lib/line/models/great_circle.js.map +1 -1
- package/lib/line/models/half.js +29 -48
- package/lib/line/models/half.js.map +1 -1
- package/lib/line/models/index.js +3 -0
- package/lib/line/models/index.js.map +1 -1
- package/lib/line/models/line.js +18 -29
- package/lib/line/models/line.js.map +1 -1
- package/lib/line/models/linearline.js +24 -14
- package/lib/line/models/linearline.js.map +1 -1
- package/lib/line/models/simpleLine.js +18 -66
- package/lib/line/models/simpleLine.js.map +1 -1
- package/lib/line/models/tile.js +39 -47
- package/lib/line/models/tile.js.map +1 -1
- package/lib/line/models/wall.js +9 -13
- package/lib/line/models/wall.js.map +1 -1
- package/lib/mask/index.js +2 -12
- package/lib/mask/index.js.map +1 -1
- package/lib/mask/models/fill.js +27 -55
- package/lib/mask/models/fill.js.map +1 -1
- package/lib/plugins/DataMappingPlugin.js +8 -29
- package/lib/plugins/DataMappingPlugin.js.map +1 -1
- package/lib/plugins/DataSourcePlugin.js +4 -13
- package/lib/plugins/DataSourcePlugin.js.map +1 -1
- package/lib/plugins/LayerModelPlugin.js +7 -33
- package/lib/plugins/LayerModelPlugin.js.map +1 -1
- package/lib/plugins/PixelPickingPlugin.js +13 -16
- package/lib/plugins/PixelPickingPlugin.js.map +1 -1
- package/lib/point/index.js +8 -15
- package/lib/point/index.js.map +1 -1
- package/lib/point/models/earthExtrude.js +15 -16
- package/lib/point/models/earthExtrude.js.map +1 -1
- package/lib/point/models/earthFill.js +22 -13
- package/lib/point/models/earthFill.js.map +1 -1
- package/lib/point/models/extrude.js +28 -51
- package/lib/point/models/extrude.js.map +1 -1
- package/lib/point/models/fill.js +42 -61
- package/lib/point/models/fill.js.map +1 -1
- package/lib/point/models/fillmage.js +22 -13
- package/lib/point/models/fillmage.js.map +1 -1
- package/lib/point/models/icon-font.js +196 -0
- package/lib/point/models/icon-font.js.map +1 -0
- package/lib/point/models/image.js +6 -11
- package/lib/point/models/image.js.map +1 -1
- package/lib/point/models/index.js +3 -0
- package/lib/point/models/index.js.map +1 -1
- package/lib/point/models/normal.js +6 -11
- package/lib/point/models/normal.js.map +1 -1
- package/lib/point/models/radar.js +22 -13
- package/lib/point/models/radar.js.map +1 -1
- package/lib/point/models/simplePoint.js +6 -11
- package/lib/point/models/simplePoint.js.map +1 -1
- package/lib/point/models/text.js +78 -110
- package/lib/point/models/text.js.map +1 -1
- package/lib/point/models/tile.js +25 -22
- package/lib/point/models/tile.js.map +1 -1
- package/lib/polygon/index.js +2 -12
- package/lib/polygon/index.js.map +1 -1
- package/lib/polygon/models/extrude.js +5 -10
- package/lib/polygon/models/extrude.js.map +1 -1
- package/lib/polygon/models/fill.js +11 -25
- package/lib/polygon/models/fill.js.map +1 -1
- package/lib/polygon/models/ocean.js +6 -12
- package/lib/polygon/models/ocean.js.map +1 -1
- package/lib/polygon/models/tile.js +27 -17
- package/lib/polygon/models/tile.js.map +1 -1
- package/lib/polygon/models/water.js +6 -12
- package/lib/polygon/models/water.js.map +1 -1
- package/lib/raster/image.js +2 -0
- package/lib/raster/image.js.map +1 -0
- package/lib/raster/index.js +2 -12
- package/lib/raster/index.js.map +1 -1
- package/lib/raster/models/raster.js +7 -11
- package/lib/raster/models/raster.js.map +1 -1
- package/lib/raster/raster2d.js +172 -0
- package/lib/raster/raster2d.js.map +1 -0
- package/lib/tile/manager/tileLayerManager.js +21 -4
- package/lib/tile/manager/tileLayerManager.js.map +1 -1
- package/lib/tile/manager/tilePickerManager.js +0 -1
- package/lib/tile/manager/tilePickerManager.js.map +1 -1
- package/lib/tile/tileFactory/base.js.map +1 -1
- package/lib/tile/tileFactory/point.js.map +1 -1
- package/lib/tile/tileFactory/rasterDataLayer.js +2 -12
- package/lib/tile/tileFactory/rasterDataLayer.js.map +1 -1
- package/lib/tile/tileFactory/vectorLayer.js +2 -12
- package/lib/tile/tileFactory/vectorLayer.js.map +1 -1
- package/lib/utils/extrude_polyline.js +6 -140
- package/lib/utils/extrude_polyline.js.map +1 -1
- package/lib/utils/geo.js +65 -0
- package/lib/utils/geo.js.map +1 -0
- package/lib/utils/simpleLine.js +117 -0
- package/lib/utils/simpleLine.js.map +1 -0
- package/lib/wind/index.js +2 -12
- package/lib/wind/index.js.map +1 -1
- package/lib/wind/models/wind.js +33 -36
- package/lib/wind/models/wind.js.map +1 -1
- package/package.json +8 -9
|
@@ -52,49 +52,28 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
|
|
|
52
52
|
|
|
53
53
|
var styleAttributeService = _ref.styleAttributeService;
|
|
54
54
|
layer.hooks.init.tap('DataMappingPlugin', function () {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
_this.generateMaping(layer, {
|
|
59
|
-
styleAttributeService: styleAttributeService
|
|
60
|
-
});
|
|
61
|
-
} else {
|
|
62
|
-
source.once('sourceUpdate', function () {
|
|
63
|
-
_this.generateMaping(layer, {
|
|
64
|
-
styleAttributeService: styleAttributeService
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
}
|
|
55
|
+
_this.generateMaping(layer, {
|
|
56
|
+
styleAttributeService: styleAttributeService
|
|
57
|
+
});
|
|
68
58
|
});
|
|
69
59
|
layer.hooks.beforeRenderData.tap('DataMappingPlugin', function () {
|
|
70
60
|
layer.dataState.dataMappingNeedUpdate = false;
|
|
71
|
-
var source = layer.getSource();
|
|
72
61
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
});
|
|
77
|
-
} else {
|
|
78
|
-
source.once('sourceUpdate', function () {
|
|
79
|
-
_this.generateMaping(layer, {
|
|
80
|
-
styleAttributeService: styleAttributeService
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
}
|
|
62
|
+
_this.generateMaping(layer, {
|
|
63
|
+
styleAttributeService: styleAttributeService
|
|
64
|
+
});
|
|
84
65
|
|
|
85
66
|
return true;
|
|
86
67
|
});
|
|
87
68
|
layer.hooks.beforeRender.tap('DataMappingPlugin', function () {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
if (layer.layerModelNeedUpdate || !source || !source.inited) {
|
|
69
|
+
if (layer.layerModelNeedUpdate) {
|
|
91
70
|
return;
|
|
92
71
|
}
|
|
93
72
|
|
|
94
73
|
var bottomColor = layer.getBottomColor();
|
|
95
74
|
var attributes = styleAttributeService.getLayerStyleAttributes() || [];
|
|
96
75
|
var filter = styleAttributeService.getLayerStyleAttribute('filter');
|
|
97
|
-
var dataArray =
|
|
76
|
+
var dataArray = layer.getSource().data.dataArray;
|
|
98
77
|
var attributesToRemapping = attributes.filter(function (attribute) {
|
|
99
78
|
return attribute.needRemapping;
|
|
100
79
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/DataMappingPlugin.ts"],"names":["DataMappingPlugin","TYPES","IGlobalConfigService","IMapService","IFontService","layer","styleAttributeService","hooks","init","tap","source","getSource","inited","generateMaping","once","beforeRenderData","dataState","dataMappingNeedUpdate","beforeRender","layerModelNeedUpdate","bottomColor","getBottomColor","attributes","getLayerStyleAttributes","filter","getLayerStyleAttribute","dataArray","data","attributesToRemapping","attribute","needRemapping","filterData","scale","record","applyAttributeMapping","length","setEncodedData","mapping","undefined","getEncodedData","emit","p1","p2","dir","normalizeDir","arrowPoint","predata","minimumColor","getLayerConfig","arrow","enable","mappedData","map","i","preRecord","encodeRecord","id","_id","coordinates","forEach","values","name","c","Array","isArray","shape","fontService","getIconFontKey","coords","getArrowPoints","splice","adjustData2Amap2Coordinates","adjustData2SimpleCoordinates","mapService","version","Version","layerCenter","getLayerCenter","d","originCoordinates","lngLatToCoordByLayer","lngLatToCoordsByLayer","center","SIMPLE","simpleCoordinate","unProjectCoordinates","simpleMapCoord","unproject","coord","c1","co","push","scalers","params","field","hasOwnProperty","type","mappingResult"],"mappings":"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","sourcesContent":["import {\n IEncodeFeature,\n IFontService,\n IGlobalConfigService,\n ILayer,\n ILayerPlugin,\n ILngLat,\n IMapService,\n IParseDataItem,\n IStyleAttribute,\n IStyleAttributeService,\n Position,\n TYPES,\n} from '@antv/l7-core';\nimport { Version } from '@antv/l7-maps';\nimport { isColor, normalize, rgb2arr, unProjectFlat } from '@antv/l7-utils';\nimport { inject, injectable } from 'inversify';\nimport { cloneDeep } from 'lodash';\nimport 'reflect-metadata';\nimport { ILineLayerStyleOptions } from '../core/interface';\n\n@injectable()\nexport default class DataMappingPlugin implements ILayerPlugin {\n @inject(TYPES.IGlobalConfigService)\n private readonly configService: IGlobalConfigService;\n\n @inject(TYPES.IMapService)\n private readonly mapService: IMapService;\n\n @inject(TYPES.IFontService)\n private readonly fontService: IFontService;\n\n public apply(\n layer: ILayer,\n {\n styleAttributeService,\n }: { styleAttributeService: IStyleAttributeService },\n ) {\n layer.hooks.init.tap('DataMappingPlugin', () => {\n // 初始化重新生成 map\n const source = layer.getSource();\n if (source.inited) {\n this.generateMaping(layer, { styleAttributeService });\n } else {\n source.once('sourceUpdate', () => {\n this.generateMaping(layer, { styleAttributeService });\n });\n }\n // this.generateMaping(layer, { styleAttributeService });\n });\n\n layer.hooks.beforeRenderData.tap('DataMappingPlugin', () => {\n layer.dataState.dataMappingNeedUpdate = false;\n const source = layer.getSource();\n if (source.inited) {\n this.generateMaping(layer, { styleAttributeService });\n } else {\n source.once('sourceUpdate', () => {\n this.generateMaping(layer, { styleAttributeService });\n });\n }\n\n // this.generateMaping(layer, { styleAttributeService });\n\n return true;\n });\n\n // remapping before render\n layer.hooks.beforeRender.tap('DataMappingPlugin', () => {\n const source = layer.getSource();\n if (layer.layerModelNeedUpdate || !source || !source.inited) {\n return;\n }\n const bottomColor = layer.getBottomColor();\n const attributes = styleAttributeService.getLayerStyleAttributes() || [];\n const filter = styleAttributeService.getLayerStyleAttribute('filter');\n const { dataArray } = source.data;\n\n const attributesToRemapping = attributes.filter(\n (attribute) => attribute.needRemapping, // 如果filter变化\n );\n let filterData = dataArray;\n\n // 数据过滤完 再执行数据映射\n if (filter?.needRemapping && filter?.scale) {\n filterData = dataArray.filter((record: IParseDataItem) => {\n return this.applyAttributeMapping(filter, record, bottomColor)[0];\n });\n }\n\n if (attributesToRemapping.length) {\n // 过滤数据\n if (filter?.needRemapping) {\n layer.setEncodedData(\n this.mapping(layer, attributes, filterData, undefined, bottomColor),\n );\n filter.needRemapping = false;\n } else {\n layer.setEncodedData(\n this.mapping(\n layer,\n attributesToRemapping,\n filterData,\n layer.getEncodedData(),\n bottomColor,\n ),\n );\n }\n // 处理文本更新\n layer.emit('remapping', null);\n }\n });\n }\n private generateMaping(\n layer: ILayer,\n {\n styleAttributeService,\n }: { styleAttributeService: IStyleAttributeService },\n ) {\n const bottomColor = layer.getBottomColor();\n const attributes = styleAttributeService.getLayerStyleAttributes() || [];\n const filter = styleAttributeService.getLayerStyleAttribute('filter');\n const { dataArray } = layer.getSource().data;\n let filterData = dataArray;\n // 数据过滤完 再执行数据映射\n if (filter?.scale) {\n filterData = dataArray.filter((record: IParseDataItem) => {\n return this.applyAttributeMapping(filter, record, bottomColor)[0];\n });\n }\n layer.setEncodedData(\n this.mapping(layer, attributes, filterData, undefined, bottomColor),\n );\n // 对外暴露事件\n layer.emit('dataUpdate', null);\n }\n\n private getArrowPoints(p1: Position, p2: Position) {\n const dir = [p2[0] - p1[0], p2[1] - p1[1]];\n const normalizeDir = normalize(dir);\n const arrowPoint = [\n p1[0] + normalizeDir[0] * 0.0001,\n p1[1] + normalizeDir[1] * 0.0001,\n ];\n return arrowPoint;\n }\n\n private mapping(\n layer: ILayer,\n attributes: IStyleAttribute[],\n data: IParseDataItem[],\n predata?: IEncodeFeature[],\n minimumColor?: string,\n ): IEncodeFeature[] {\n const {\n arrow = {\n enable: false,\n },\n } = layer.getLayerConfig() as ILineLayerStyleOptions;\n const mappedData = data.map((record: IParseDataItem, i) => {\n const preRecord = predata ? predata[i] : {};\n const encodeRecord: IEncodeFeature = {\n id: record._id,\n coordinates: record.coordinates,\n ...preRecord,\n };\n attributes\n .filter((attribute) => attribute.scale !== undefined)\n .forEach((attribute: IStyleAttribute) => {\n // console.log('record', record)\n let values = this.applyAttributeMapping(\n attribute,\n record,\n minimumColor,\n );\n // console.log('values', values)\n attribute.needRemapping = false;\n\n // TODO: 支持每个属性配置 postprocess\n if (attribute.name === 'color') {\n // console.log('attribute', attribute)\n values = values.map((c: unknown) => {\n return rgb2arr(c as string);\n });\n }\n // @ts-ignore\n encodeRecord[attribute.name] =\n Array.isArray(values) && values.length === 1 ? values[0] : values;\n\n // 增加对 layer/text/iconfont unicode 映射的解析\n if (attribute.name === 'shape') {\n encodeRecord.shape = this.fontService.getIconFontKey(\n encodeRecord[attribute.name] as string,\n );\n }\n });\n\n if (\n arrow.enable &&\n (encodeRecord.shape === 'line' || encodeRecord.shape === 'halfLine')\n ) {\n // 只有在线图层且支持配置箭头的时候进行插入顶点的处理\n const coords = encodeRecord.coordinates as Position[];\n const arrowPoint = this.getArrowPoints(coords[0], coords[1]);\n encodeRecord.coordinates.splice(1, 0, arrowPoint, arrowPoint);\n }\n return encodeRecord;\n }) as IEncodeFeature[];\n // console.log('mappedData', mappedData)\n\n // 调整数据兼容 Amap2.0\n this.adjustData2Amap2Coordinates(mappedData, layer);\n\n // 调整数据兼容 SimpleCoordinates\n this.adjustData2SimpleCoordinates(mappedData);\n\n return mappedData;\n }\n\n private adjustData2Amap2Coordinates(\n mappedData: IEncodeFeature[],\n layer: ILayer,\n ) {\n // 根据地图的类型判断是否需要对点位数据进行处理, 若是高德2.0则需要对坐标进行相对偏移\n if (\n mappedData.length > 0 &&\n this.mapService.version === Version['GAODE2.x']\n ) {\n const layerCenter = this.getLayerCenter(layer);\n if (typeof mappedData[0].coordinates[0] === 'number') {\n // 单个的点数据\n // @ts-ignore\n mappedData\n // TODO: 避免经纬度被重复计算导致坐标位置偏移\n .filter((d) => !d.originCoordinates)\n .map((d) => {\n d.version = Version['GAODE2.x'];\n // @ts-ignore\n d.originCoordinates = cloneDeep(d.coordinates); // 为了兼容高德1.x 需要保存一份原始的经纬度坐标数据(许多上层逻辑依赖经纬度数据)\n // @ts-ignore\n // d.coordinates = this.mapService.lngLatToCoord(d.coordinates);\n d.coordinates = this.mapService.lngLatToCoordByLayer(\n d.coordinates,\n layerCenter,\n );\n });\n } else {\n // 连续的线、面数据\n // @ts-ignore\n mappedData\n // TODO: 避免经纬度被重复计算导致坐标位置偏移\n .filter((d) => !d.originCoordinates)\n .map((d) => {\n d.version = Version['GAODE2.x'];\n // @ts-ignore\n d.originCoordinates = cloneDeep(d.coordinates); // 为了兼容高德1.x 需要保存一份原始的经纬度坐标数据(许多上层逻辑依赖经纬度数据)\n // @ts-ignore\n // d.coordinates = this.mapService.lngLatToCoords(d.coordinates);\n d.coordinates = this.mapService.lngLatToCoordsByLayer(\n d.coordinates,\n layerCenter,\n );\n });\n }\n }\n }\n\n private getLayerCenter(layer: ILayer) {\n const source = layer.getSource();\n return source.center;\n }\n\n private adjustData2SimpleCoordinates(mappedData: IEncodeFeature[]) {\n if (mappedData.length > 0 && this.mapService.version === Version.SIMPLE) {\n mappedData.map((d) => {\n if (!d.simpleCoordinate) {\n d.coordinates = this.unProjectCoordinates(d.coordinates);\n d.simpleCoordinate = true;\n }\n });\n }\n }\n\n private unProjectCoordinates(coordinates: any) {\n if (typeof coordinates[0] === 'number') {\n return this.mapService.simpleMapCoord.unproject(\n coordinates as [number, number],\n );\n }\n\n if (coordinates[0] && coordinates[0][0] instanceof Array) {\n // @ts-ignore\n const coords = [];\n coordinates.map((coord: any) => {\n // @ts-ignore\n const c1 = [];\n coord.map((co: any) => {\n c1.push(\n this.mapService.simpleMapCoord.unproject(co as [number, number]),\n );\n });\n // @ts-ignore\n coords.push(c1);\n });\n // @ts-ignore\n return coords;\n } else {\n // @ts-ignore\n const coords = [];\n // @ts-ignore\n coordinates.map((coord) => {\n coords.push(\n this.mapService.simpleMapCoord.unproject(coord as [number, number]),\n );\n });\n // @ts-ignore\n return coords;\n }\n }\n\n private applyAttributeMapping(\n attribute: IStyleAttribute,\n record: { [key: string]: unknown },\n minimumColor?: string,\n ) {\n if (!attribute.scale) {\n return [];\n }\n const scalers = attribute?.scale?.scalers || [];\n const params: unknown[] = [];\n\n scalers.forEach(({ field }) => {\n if (\n record.hasOwnProperty(field) ||\n attribute.scale?.type === 'variable'\n ) {\n // TODO:多字段,常量\n params.push(record[field]);\n }\n });\n // console.log('params', params)\n // console.log('attribute', attribute)\n\n const mappingResult = attribute.mapping ? attribute.mapping(params) : [];\n if (attribute.name === 'color' && !isColor(mappingResult[0])) {\n return [minimumColor];\n }\n return mappingResult;\n // return attribute.mapping ? attribute.mapping(params) : [];\n }\n}\n"],"file":"DataMappingPlugin.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/plugins/DataMappingPlugin.ts"],"names":["DataMappingPlugin","TYPES","IGlobalConfigService","IMapService","IFontService","layer","styleAttributeService","hooks","init","tap","generateMaping","beforeRenderData","dataState","dataMappingNeedUpdate","beforeRender","layerModelNeedUpdate","bottomColor","getBottomColor","attributes","getLayerStyleAttributes","filter","getLayerStyleAttribute","dataArray","getSource","data","attributesToRemapping","attribute","needRemapping","filterData","scale","record","applyAttributeMapping","length","setEncodedData","mapping","undefined","getEncodedData","emit","p1","p2","dir","normalizeDir","arrowPoint","predata","minimumColor","getLayerConfig","arrow","enable","mappedData","map","i","preRecord","encodeRecord","id","_id","coordinates","forEach","values","name","c","Array","isArray","shape","fontService","getIconFontKey","coords","getArrowPoints","splice","adjustData2Amap2Coordinates","adjustData2SimpleCoordinates","mapService","version","Version","layerCenter","getLayerCenter","d","originCoordinates","lngLatToCoordByLayer","lngLatToCoordsByLayer","source","center","SIMPLE","simpleCoordinate","unProjectCoordinates","simpleMapCoord","unproject","coord","c1","co","push","scalers","params","field","hasOwnProperty","type","mappingResult"],"mappings":"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","sourcesContent":["import {\n IEncodeFeature,\n IFontService,\n IGlobalConfigService,\n ILayer,\n ILayerPlugin,\n ILngLat,\n IMapService,\n IParseDataItem,\n IStyleAttribute,\n IStyleAttributeService,\n Position,\n TYPES,\n} from '@antv/l7-core';\nimport { Version } from '@antv/l7-maps';\nimport { isColor, normalize, rgb2arr, unProjectFlat } from '@antv/l7-utils';\nimport { inject, injectable } from 'inversify';\nimport { cloneDeep } from 'lodash';\nimport 'reflect-metadata';\nimport { ILineLayerStyleOptions } from '../core/interface';\n\n@injectable()\nexport default class DataMappingPlugin implements ILayerPlugin {\n @inject(TYPES.IGlobalConfigService)\n private readonly configService: IGlobalConfigService;\n\n @inject(TYPES.IMapService)\n private readonly mapService: IMapService;\n\n @inject(TYPES.IFontService)\n private readonly fontService: IFontService;\n\n public apply(\n layer: ILayer,\n {\n styleAttributeService,\n }: { styleAttributeService: IStyleAttributeService },\n ) {\n layer.hooks.init.tap('DataMappingPlugin', () => {\n // 初始化重新生成 map\n this.generateMaping(layer, { styleAttributeService });\n });\n\n layer.hooks.beforeRenderData.tap('DataMappingPlugin', () => {\n layer.dataState.dataMappingNeedUpdate = false;\n this.generateMaping(layer, { styleAttributeService });\n return true;\n });\n\n // remapping before render\n layer.hooks.beforeRender.tap('DataMappingPlugin', () => {\n if (layer.layerModelNeedUpdate) {\n return;\n }\n const bottomColor = layer.getBottomColor();\n const attributes = styleAttributeService.getLayerStyleAttributes() || [];\n const filter = styleAttributeService.getLayerStyleAttribute('filter');\n const { dataArray } = layer.getSource().data;\n\n const attributesToRemapping = attributes.filter(\n (attribute) => attribute.needRemapping, // 如果filter变化\n );\n let filterData = dataArray;\n\n // 数据过滤完 再执行数据映射\n if (filter?.needRemapping && filter?.scale) {\n filterData = dataArray.filter((record: IParseDataItem) => {\n return this.applyAttributeMapping(filter, record, bottomColor)[0];\n });\n }\n\n if (attributesToRemapping.length) {\n // 过滤数据\n if (filter?.needRemapping) {\n layer.setEncodedData(\n this.mapping(layer, attributes, filterData, undefined, bottomColor),\n );\n filter.needRemapping = false;\n } else {\n layer.setEncodedData(\n this.mapping(\n layer,\n attributesToRemapping,\n filterData,\n layer.getEncodedData(),\n bottomColor,\n ),\n );\n }\n // 处理文本更新\n layer.emit('remapping', null);\n }\n });\n }\n private generateMaping(\n layer: ILayer,\n {\n styleAttributeService,\n }: { styleAttributeService: IStyleAttributeService },\n ) {\n const bottomColor = layer.getBottomColor();\n const attributes = styleAttributeService.getLayerStyleAttributes() || [];\n const filter = styleAttributeService.getLayerStyleAttribute('filter');\n const { dataArray } = layer.getSource().data;\n let filterData = dataArray;\n // 数据过滤完 再执行数据映射\n if (filter?.scale) {\n filterData = dataArray.filter((record: IParseDataItem) => {\n return this.applyAttributeMapping(filter, record, bottomColor)[0];\n });\n }\n layer.setEncodedData(\n this.mapping(layer, attributes, filterData, undefined, bottomColor),\n );\n // 对外暴露事件\n layer.emit('dataUpdate', null);\n }\n\n private getArrowPoints(p1: Position, p2: Position) {\n const dir = [p2[0] - p1[0], p2[1] - p1[1]];\n const normalizeDir = normalize(dir);\n const arrowPoint = [\n p1[0] + normalizeDir[0] * 0.0001,\n p1[1] + normalizeDir[1] * 0.0001,\n ];\n return arrowPoint;\n }\n\n private mapping(\n layer: ILayer,\n attributes: IStyleAttribute[],\n data: IParseDataItem[],\n predata?: IEncodeFeature[],\n minimumColor?: string,\n ): IEncodeFeature[] {\n const {\n arrow = {\n enable: false,\n },\n } = layer.getLayerConfig() as ILineLayerStyleOptions;\n const mappedData = data.map((record: IParseDataItem, i) => {\n const preRecord = predata ? predata[i] : {};\n const encodeRecord: IEncodeFeature = {\n id: record._id,\n coordinates: record.coordinates,\n ...preRecord,\n };\n attributes\n .filter((attribute) => attribute.scale !== undefined)\n .forEach((attribute: IStyleAttribute) => {\n // console.log('record', record)\n let values = this.applyAttributeMapping(\n attribute,\n record,\n minimumColor,\n );\n // console.log('values', values)\n attribute.needRemapping = false;\n\n // TODO: 支持每个属性配置 postprocess\n if (attribute.name === 'color') {\n // console.log('attribute', attribute)\n values = values.map((c: unknown) => {\n return rgb2arr(c as string);\n });\n }\n // @ts-ignore\n encodeRecord[attribute.name] =\n Array.isArray(values) && values.length === 1 ? values[0] : values;\n\n // 增加对 layer/text/iconfont unicode 映射的解析\n if (attribute.name === 'shape') {\n encodeRecord.shape = this.fontService.getIconFontKey(\n encodeRecord[attribute.name] as string,\n );\n }\n });\n\n if (\n arrow.enable &&\n (encodeRecord.shape === 'line' || encodeRecord.shape === 'halfLine')\n ) {\n // 只有在线图层且支持配置箭头的时候进行插入顶点的处理\n const coords = encodeRecord.coordinates as Position[];\n const arrowPoint = this.getArrowPoints(coords[0], coords[1]);\n encodeRecord.coordinates.splice(1, 0, arrowPoint, arrowPoint);\n }\n return encodeRecord;\n }) as IEncodeFeature[];\n // console.log('mappedData', mappedData)\n\n // 调整数据兼容 Amap2.0\n this.adjustData2Amap2Coordinates(mappedData, layer);\n\n // 调整数据兼容 SimpleCoordinates\n this.adjustData2SimpleCoordinates(mappedData);\n\n return mappedData;\n }\n\n private adjustData2Amap2Coordinates(\n mappedData: IEncodeFeature[],\n layer: ILayer,\n ) {\n // 根据地图的类型判断是否需要对点位数据进行处理, 若是高德2.0则需要对坐标进行相对偏移\n if (\n mappedData.length > 0 &&\n this.mapService.version === Version['GAODE2.x']\n ) {\n const layerCenter = this.getLayerCenter(layer);\n if (typeof mappedData[0].coordinates[0] === 'number') {\n // 单个的点数据\n // @ts-ignore\n mappedData\n // TODO: 避免经纬度被重复计算导致坐标位置偏移\n .filter((d) => !d.originCoordinates)\n .map((d) => {\n d.version = Version['GAODE2.x'];\n // @ts-ignore\n d.originCoordinates = cloneDeep(d.coordinates); // 为了兼容高德1.x 需要保存一份原始的经纬度坐标数据(许多上层逻辑依赖经纬度数据)\n // @ts-ignore\n // d.coordinates = this.mapService.lngLatToCoord(d.coordinates);\n d.coordinates = this.mapService.lngLatToCoordByLayer(\n d.coordinates,\n layerCenter,\n );\n });\n } else {\n // 连续的线、面数据\n // @ts-ignore\n mappedData\n // TODO: 避免经纬度被重复计算导致坐标位置偏移\n .filter((d) => !d.originCoordinates)\n .map((d) => {\n d.version = Version['GAODE2.x'];\n // @ts-ignore\n d.originCoordinates = cloneDeep(d.coordinates); // 为了兼容高德1.x 需要保存一份原始的经纬度坐标数据(许多上层逻辑依赖经纬度数据)\n // @ts-ignore\n // d.coordinates = this.mapService.lngLatToCoords(d.coordinates);\n d.coordinates = this.mapService.lngLatToCoordsByLayer(\n d.coordinates,\n layerCenter,\n );\n });\n }\n }\n }\n\n private getLayerCenter(layer: ILayer) {\n const source = layer.getSource();\n return source.center;\n }\n\n private adjustData2SimpleCoordinates(mappedData: IEncodeFeature[]) {\n if (mappedData.length > 0 && this.mapService.version === Version.SIMPLE) {\n mappedData.map((d) => {\n if (!d.simpleCoordinate) {\n d.coordinates = this.unProjectCoordinates(d.coordinates);\n d.simpleCoordinate = true;\n }\n });\n }\n }\n\n private unProjectCoordinates(coordinates: any) {\n if (typeof coordinates[0] === 'number') {\n return this.mapService.simpleMapCoord.unproject(\n coordinates as [number, number],\n );\n }\n\n if (coordinates[0] && coordinates[0][0] instanceof Array) {\n // @ts-ignore\n const coords = [];\n coordinates.map((coord: any) => {\n // @ts-ignore\n const c1 = [];\n coord.map((co: any) => {\n c1.push(\n this.mapService.simpleMapCoord.unproject(co as [number, number]),\n );\n });\n // @ts-ignore\n coords.push(c1);\n });\n // @ts-ignore\n return coords;\n } else {\n // @ts-ignore\n const coords = [];\n // @ts-ignore\n coordinates.map((coord) => {\n coords.push(\n this.mapService.simpleMapCoord.unproject(coord as [number, number]),\n );\n });\n // @ts-ignore\n return coords;\n }\n }\n\n private applyAttributeMapping(\n attribute: IStyleAttribute,\n record: { [key: string]: unknown },\n minimumColor?: string,\n ) {\n if (!attribute.scale) {\n return [];\n }\n const scalers = attribute?.scale?.scalers || [];\n const params: unknown[] = [];\n\n scalers.forEach(({ field }) => {\n if (\n record.hasOwnProperty(field) ||\n attribute.scale?.type === 'variable'\n ) {\n // TODO:多字段,常量\n params.push(record[field]);\n }\n });\n // console.log('params', params)\n // console.log('attribute', attribute)\n\n const mappingResult = attribute.mapping ? attribute.mapping(params) : [];\n if (attribute.name === 'color' && !isColor(mappingResult[0])) {\n return [minimumColor];\n }\n return mappingResult;\n // return attribute.mapping ? attribute.mapping(params) : [];\n }\n}\n"],"file":"DataMappingPlugin.js"}
|
|
@@ -45,26 +45,17 @@ var DataSourcePlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = funct
|
|
|
45
45
|
var source = layer.getSource();
|
|
46
46
|
|
|
47
47
|
if (!source) {
|
|
48
|
-
var
|
|
48
|
+
var _ref = layer.sourceOption || {
|
|
49
49
|
data: _l7Source.DEFAULT_DATA,
|
|
50
50
|
options: _l7Source.DEFAULT_PARSER
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
var _ref = layer.sourceOption || defaultSourceConfig,
|
|
51
|
+
},
|
|
54
52
|
data = _ref.data,
|
|
55
53
|
options = _ref.options;
|
|
56
54
|
|
|
57
|
-
|
|
58
|
-
layer.setSource(source);
|
|
55
|
+
layer.setSource(new _l7Source.default(data, options));
|
|
59
56
|
}
|
|
60
57
|
|
|
61
|
-
|
|
62
|
-
_this.updateClusterData(layer);
|
|
63
|
-
} else {
|
|
64
|
-
source.once('sourceUpdate', function () {
|
|
65
|
-
_this.updateClusterData(layer);
|
|
66
|
-
});
|
|
67
|
-
}
|
|
58
|
+
_this.updateClusterData(layer);
|
|
68
59
|
});
|
|
69
60
|
layer.hooks.beforeRenderData.tap('DataSourcePlugin', function () {
|
|
70
61
|
var neeUpdateCluster = _this.updateClusterData(layer);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/DataSourcePlugin.ts"],"names":["DataSourcePlugin","layer","mapService","getContainer","get","TYPES","IMapService","hooks","init","tap","source","getSource","
|
|
1
|
+
{"version":3,"sources":["../../src/plugins/DataSourcePlugin.ts"],"names":["DataSourcePlugin","layer","mapService","getContainer","get","TYPES","IMapService","hooks","init","tap","source","getSource","sourceOption","data","DEFAULT_DATA","options","DEFAULT_PARSER","setSource","Source","updateClusterData","beforeRenderData","neeUpdateCluster","dataSourceNeedUpdate","dataState","cluster","clusterOptions","zoom","newZoom","getZoom","Math","floor","abs","clusterZoom"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AAOA;;AACA;;AACA;;;;;;;;IAGqBA,gB,WADpB,4B;;;;;;;;WAGC,eAAaC,KAAb,EAA4B;AAAA;;AAC1B,WAAKC,UAAL,GAAkBD,KAAK,CAACE,YAAN,GAAqBC,GAArB,CAAsCC,cAAMC,WAA5C,CAAlB;AACAL,MAAAA,KAAK,CAACM,KAAN,CAAYC,IAAZ,CAAiBC,GAAjB,CAAqB,kBAArB,EAAyC,YAAM;AAC7C,YAAMC,MAAM,GAAGT,KAAK,CAACU,SAAN,EAAf;;AACA,YAAI,CAACD,MAAL,EAAa;AAEX,qBAA0BT,KAAK,CAACW,YAAN,IAAsB;AAC9CC,YAAAA,IAAI,EAAEC,sBADwC;AAE9CC,YAAAA,OAAO,EAAEC;AAFqC,WAAhD;AAAA,cAAQH,IAAR,QAAQA,IAAR;AAAA,cAAcE,OAAd,QAAcA,OAAd;;AAIAd,UAAAA,KAAK,CAACgB,SAAN,CAAgB,IAAIC,iBAAJ,CAAWL,IAAX,EAAiBE,OAAjB,CAAhB;AACD;;AAED,QAAA,KAAI,CAACI,iBAAL,CAAuBlB,KAAvB;AACD,OAZD;AAeAA,MAAAA,KAAK,CAACM,KAAN,CAAYa,gBAAZ,CAA6BX,GAA7B,CAAiC,kBAAjC,EAAqD,YAAM;AACzD,YAAMY,gBAAgB,GAAG,KAAI,CAACF,iBAAL,CAAuBlB,KAAvB,CAAzB;;AACA,YAAMqB,oBAAoB,GAAGrB,KAAK,CAACsB,SAAN,CAAgBD,oBAA7C;AACArB,QAAAA,KAAK,CAACsB,SAAN,CAAgBD,oBAAhB,GAAuC,KAAvC;AACA,eAAOD,gBAAgB,IAAIC,oBAA3B;AACD,OALD;AAMD;;;WAED,2BAA0BrB,KAA1B,EAAkD;AAChD,UAAMS,MAAM,GAAGT,KAAK,CAACU,SAAN,EAAf;AACA,UAAMa,OAAO,GAAGd,MAAM,CAACc,OAAvB;AACA,kCAAqBd,MAAM,CAACe,cAA5B,CAAQC,IAAR;AAAA,UAAQA,IAAR,sCAAe,CAAf;AACA,UAAMC,OAAO,GAAG,KAAKzB,UAAL,CAAgB0B,OAAhB,KAA4B,CAA5C;AACA,UAAMN,oBAAoB,GAAGrB,KAAK,CAACsB,SAAN,CAAgBD,oBAA7C;;AACA,UAAIE,OAAO,IAAIF,oBAAf,EAAqC;AAEnCZ,QAAAA,MAAM,CAACS,iBAAP,CAAyBU,IAAI,CAACC,KAAL,CAAWH,OAAX,CAAzB;AACD;;AAED,UAAIH,OAAO,IAAIK,IAAI,CAACE,GAAL,CAAS9B,KAAK,CAAC+B,WAAN,GAAoBL,OAA7B,KAAyC,CAAxD,EAA2D;AACzD,YAAID,IAAI,KAAKG,IAAI,CAACC,KAAL,CAAWH,OAAX,CAAb,EAAkC;AAChCjB,UAAAA,MAAM,CAACS,iBAAP,CAAyBU,IAAI,CAACC,KAAL,CAAWH,OAAX,CAAzB;AACD;;AACD1B,QAAAA,KAAK,CAAC+B,WAAN,GAAoBL,OAApB;AACA,eAAO,IAAP;AACD;;AACD,aAAO,KAAP;AACD","sourcesContent":["import {\n ILayer,\n ILayerPlugin,\n ILngLat,\n IMapService,\n TYPES,\n} from '@antv/l7-core';\nimport Source, { DEFAULT_DATA, DEFAULT_PARSER } from '@antv/l7-source';\nimport { injectable } from 'inversify';\nimport 'reflect-metadata';\n\n@injectable()\nexport default class DataSourcePlugin implements ILayerPlugin {\n protected mapService: IMapService;\n public apply(layer: ILayer) {\n this.mapService = layer.getContainer().get<IMapService>(TYPES.IMapService);\n layer.hooks.init.tap('DataSourcePlugin', () => {\n const source = layer.getSource();\n if (!source) {\n // TODO: 允许用户不使用 layer 的 source 方法,在这里传入一个默认的替换的默认数据\n const { data, options } = layer.sourceOption || {\n data: DEFAULT_DATA,\n options: DEFAULT_PARSER,\n };\n layer.setSource(new Source(data, options));\n }\n\n this.updateClusterData(layer);\n });\n\n // 检测数据是否需要更新\n layer.hooks.beforeRenderData.tap('DataSourcePlugin', () => {\n const neeUpdateCluster = this.updateClusterData(layer);\n const dataSourceNeedUpdate = layer.dataState.dataSourceNeedUpdate;\n layer.dataState.dataSourceNeedUpdate = false;\n return neeUpdateCluster || dataSourceNeedUpdate;\n });\n }\n\n private updateClusterData(layer: ILayer): boolean {\n const source = layer.getSource();\n const cluster = source.cluster;\n const { zoom = 0 } = source.clusterOptions;\n const newZoom = this.mapService.getZoom() - 1;\n const dataSourceNeedUpdate = layer.dataState.dataSourceNeedUpdate;\n if (cluster && dataSourceNeedUpdate) {\n // 数据发生更新\n source.updateClusterData(Math.floor(newZoom));\n }\n // 如果 dataSource 有更新,跳过 zoom 的判断,直接更新一次\n if (cluster && Math.abs(layer.clusterZoom - newZoom) >= 1) {\n if (zoom !== Math.floor(newZoom)) {\n source.updateClusterData(Math.floor(newZoom));\n }\n layer.clusterZoom = newZoom;\n return true;\n }\n return false;\n }\n}\n"],"file":"DataSourcePlugin.js"}
|
|
@@ -23,44 +23,18 @@ var LayerModelPlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = funct
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
(0, _createClass2.default)(LayerModelPlugin, [{
|
|
26
|
-
key: "initLayerModel",
|
|
27
|
-
value: function initLayerModel(layer) {
|
|
28
|
-
layer.prepareBuildModel();
|
|
29
|
-
layer.buildModels();
|
|
30
|
-
layer.styleNeedUpdate = false;
|
|
31
|
-
}
|
|
32
|
-
}, {
|
|
33
|
-
key: "prepareLayerModel",
|
|
34
|
-
value: function prepareLayerModel(layer) {
|
|
35
|
-
layer.prepareBuildModel();
|
|
36
|
-
layer.clearModels();
|
|
37
|
-
layer.buildModels();
|
|
38
|
-
layer.layerModelNeedUpdate = false;
|
|
39
|
-
}
|
|
40
|
-
}, {
|
|
41
26
|
key: "apply",
|
|
42
27
|
value: function apply(layer) {
|
|
43
|
-
var _this = this;
|
|
44
|
-
|
|
45
28
|
layer.hooks.init.tap('LayerModelPlugin', function () {
|
|
46
|
-
layer.
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
if (source.inited) {
|
|
50
|
-
_this.initLayerModel(layer);
|
|
51
|
-
}
|
|
29
|
+
layer.prepareBuildModel();
|
|
30
|
+
layer.buildModels();
|
|
31
|
+
layer.styleNeedUpdate = false;
|
|
52
32
|
});
|
|
53
33
|
layer.hooks.beforeRenderData.tap('DataSourcePlugin', function () {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
} else {
|
|
59
|
-
source.once('sourceUpdate', function () {
|
|
60
|
-
_this.prepareLayerModel(layer);
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
|
|
34
|
+
layer.prepareBuildModel();
|
|
35
|
+
layer.clearModels();
|
|
36
|
+
layer.buildModels();
|
|
37
|
+
layer.layerModelNeedUpdate = false;
|
|
64
38
|
return false;
|
|
65
39
|
});
|
|
66
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/LayerModelPlugin.ts"],"names":["LayerModelPlugin","layer","
|
|
1
|
+
{"version":3,"sources":["../../src/plugins/LayerModelPlugin.ts"],"names":["LayerModelPlugin","layer","hooks","init","tap","prepareBuildModel","buildModels","styleNeedUpdate","beforeRenderData","clearModels","layerModelNeedUpdate"],"mappings":";;;;;;;;;;;;;AACA;;AACA;;;;IAKqBA,gB,WADpB,4B;;;;;;;WAEC,eAAaC,KAAb,EAA4B;AAC1BA,MAAAA,KAAK,CAACC,KAAN,CAAYC,IAAZ,CAAiBC,GAAjB,CAAqB,kBAArB,EAAyC,YAAM;AAE7CH,QAAAA,KAAK,CAACI,iBAAN;AAEAJ,QAAAA,KAAK,CAACK,WAAN;AACAL,QAAAA,KAAK,CAACM,eAAN,GAAwB,KAAxB;AACD,OAND;AAQAN,MAAAA,KAAK,CAACC,KAAN,CAAYM,gBAAZ,CAA6BJ,GAA7B,CAAiC,kBAAjC,EAAqD,YAAM;AAEzDH,QAAAA,KAAK,CAACI,iBAAN;AAEAJ,QAAAA,KAAK,CAACQ,WAAN;AAEAR,QAAAA,KAAK,CAACK,WAAN;AACAL,QAAAA,KAAK,CAACS,oBAAN,GAA6B,KAA7B;AACA,eAAO,KAAP;AACD,OATD;AAUD","sourcesContent":["import { ILayer, ILayerPlugin, IMapService, TYPES } from '@antv/l7-core';\nimport { injectable } from 'inversify';\nimport 'reflect-metadata';\n/**\n * Layer Model 初始化,更新,销毁\n */\n@injectable()\nexport default class LayerModelPlugin implements ILayerPlugin {\n public apply(layer: ILayer) {\n layer.hooks.init.tap('LayerModelPlugin', () => {\n // 更新Model 配置项\n layer.prepareBuildModel();\n // 初始化 Model\n layer.buildModels();\n layer.styleNeedUpdate = false;\n });\n\n layer.hooks.beforeRenderData.tap('DataSourcePlugin', () => {\n // 更新Model 配置项\n layer.prepareBuildModel();\n\n layer.clearModels();\n // 初始化 Model\n layer.buildModels();\n layer.layerModelNeedUpdate = false;\n return false;\n });\n }\n}\n"],"file":"LayerModelPlugin.js"}
|
|
@@ -37,10 +37,7 @@ var PixelPickingPlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = fun
|
|
|
37
37
|
var rendererService = _ref.rendererService,
|
|
38
38
|
styleAttributeService = _ref.styleAttributeService;
|
|
39
39
|
layer.hooks.init.tap('PixelPickingPlugin', function () {
|
|
40
|
-
var
|
|
41
|
-
enablePicking = _layer$getLayerConfig.enablePicking,
|
|
42
|
-
enableMultiPassRenderer = _layer$getLayerConfig.enableMultiPassRenderer;
|
|
43
|
-
|
|
40
|
+
var enablePicking = true;
|
|
44
41
|
styleAttributeService.registerStyleAttribute({
|
|
45
42
|
name: 'pickingColor',
|
|
46
43
|
type: _l7Core.AttributeType.Attribute,
|
|
@@ -59,8 +56,8 @@ var PixelPickingPlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = fun
|
|
|
59
56
|
});
|
|
60
57
|
});
|
|
61
58
|
layer.hooks.beforePickingEncode.tap('PixelPickingPlugin', function () {
|
|
62
|
-
var _layer$
|
|
63
|
-
enablePicking = _layer$
|
|
59
|
+
var _layer$getLayerConfig = layer.getLayerConfig(),
|
|
60
|
+
enablePicking = _layer$getLayerConfig.enablePicking;
|
|
64
61
|
|
|
65
62
|
if (enablePicking && layer.isVisible()) {
|
|
66
63
|
layer.models.forEach(function (model) {
|
|
@@ -71,8 +68,8 @@ var PixelPickingPlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = fun
|
|
|
71
68
|
}
|
|
72
69
|
});
|
|
73
70
|
layer.hooks.afterPickingEncode.tap('PixelPickingPlugin', function () {
|
|
74
|
-
var _layer$
|
|
75
|
-
enablePicking = _layer$
|
|
71
|
+
var _layer$getLayerConfig2 = layer.getLayerConfig(),
|
|
72
|
+
enablePicking = _layer$getLayerConfig2.enablePicking;
|
|
76
73
|
|
|
77
74
|
if (enablePicking && layer.isVisible()) {
|
|
78
75
|
layer.models.forEach(function (model) {
|
|
@@ -83,10 +80,10 @@ var PixelPickingPlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = fun
|
|
|
83
80
|
}
|
|
84
81
|
});
|
|
85
82
|
layer.hooks.beforeHighlight.tap('PixelPickingPlugin', function (pickedColor) {
|
|
86
|
-
var _layer$
|
|
87
|
-
highlightColor = _layer$
|
|
88
|
-
_layer$
|
|
89
|
-
activeMix = _layer$
|
|
83
|
+
var _layer$getLayerConfig3 = layer.getLayerConfig(),
|
|
84
|
+
highlightColor = _layer$getLayerConfig3.highlightColor,
|
|
85
|
+
_layer$getLayerConfig4 = _layer$getLayerConfig3.activeMix,
|
|
86
|
+
activeMix = _layer$getLayerConfig4 === void 0 ? 0 : _layer$getLayerConfig4;
|
|
90
87
|
|
|
91
88
|
var highlightColorInArray = typeof highlightColor === 'string' ? (0, _l7Utils.rgb2arr)(highlightColor) : highlightColor || [1, 0, 0, 1];
|
|
92
89
|
layer.updateLayerConfig({
|
|
@@ -104,10 +101,10 @@ var PixelPickingPlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = fun
|
|
|
104
101
|
});
|
|
105
102
|
});
|
|
106
103
|
layer.hooks.beforeSelect.tap('PixelPickingPlugin', function (pickedColor) {
|
|
107
|
-
var _layer$
|
|
108
|
-
selectColor = _layer$
|
|
109
|
-
_layer$
|
|
110
|
-
selectMix = _layer$
|
|
104
|
+
var _layer$getLayerConfig5 = layer.getLayerConfig(),
|
|
105
|
+
selectColor = _layer$getLayerConfig5.selectColor,
|
|
106
|
+
_layer$getLayerConfig6 = _layer$getLayerConfig5.selectMix,
|
|
107
|
+
selectMix = _layer$getLayerConfig6 === void 0 ? 0 : _layer$getLayerConfig6;
|
|
111
108
|
|
|
112
109
|
var highlightColorInArray = typeof selectColor === 'string' ? (0, _l7Utils.rgb2arr)(selectColor) : selectColor || [1, 0, 0, 1];
|
|
113
110
|
layer.updateLayerConfig({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/PixelPickingPlugin.ts"],"names":["PickingStage","NONE","ENCODE","HIGHLIGHT","PixelPickingPlugin","layer","rendererService","styleAttributeService","hooks","init","tap","
|
|
1
|
+
{"version":3,"sources":["../../src/plugins/PixelPickingPlugin.ts"],"names":["PickingStage","NONE","ENCODE","HIGHLIGHT","PixelPickingPlugin","layer","rendererService","styleAttributeService","hooks","init","tap","enablePicking","registerStyleAttribute","name","type","AttributeType","Attribute","descriptor","buffer","data","gl","FLOAT","size","update","feature","featureIdx","id","beforePickingEncode","getLayerConfig","isVisible","models","forEach","model","addUniforms","u_PickingStage","afterPickingEncode","beforeHighlight","pickedColor","highlightColor","activeMix","highlightColorInArray","updateLayerConfig","pickedFeatureID","Uint8Array","u_PickingColor","u_HighlightColor","map","c","u_activeMix","beforeSelect","selectColor","selectMix","u_CurrentSelectedId","u_SelectColor","u_EnableSelect"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n ILayer,\n ILayerPlugin,\n IRendererService,\n IStyleAttributeService,\n} from '@antv/l7-core';\nimport {\n decodePickingColor,\n encodePickingColor,\n rgb2arr,\n} from '@antv/l7-utils';\nimport { injectable } from 'inversify';\nimport 'reflect-metadata';\n\nconst PickingStage = {\n NONE: 0.0,\n ENCODE: 1.0,\n HIGHLIGHT: 2.0,\n};\n\n@injectable()\nexport default class PixelPickingPlugin implements ILayerPlugin {\n public apply(\n layer: ILayer,\n {\n rendererService,\n styleAttributeService,\n }: {\n rendererService: IRendererService;\n styleAttributeService: IStyleAttributeService;\n },\n ) {\n // TODO: 由于 Shader 目前无法根据是否开启拾取进行内容修改,因此即使不开启也需要生成 a_PickingColor\n layer.hooks.init.tap('PixelPickingPlugin', () => {\n // const { enablePicking, enableMultiPassRenderer } = layer.getLayerConfig();\n const enablePicking = true;\n styleAttributeService.registerStyleAttribute({\n name: 'pickingColor',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_PickingColor',\n buffer: {\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n // TODO: 固定 feature range 范围内的 pickingColor 都是固定的,可以生成 cache\n update: (feature: IEncodeFeature, featureIdx: number) => {\n // 只有开启拾取才需要 encode\n const { id } = feature;\n return enablePicking ? encodePickingColor(id as number) : [0, 0, 0];\n },\n },\n });\n });\n // 必须要与 PixelPickingPass 结合使用,因此必须开启 multiPassRenderer\n // if (layer.multiPassRenderer) {\n layer.hooks.beforePickingEncode.tap('PixelPickingPlugin', () => {\n const { enablePicking } = layer.getLayerConfig();\n if (enablePicking && layer.isVisible()) {\n layer.models.forEach((model) =>\n model.addUniforms({\n u_PickingStage: PickingStage.ENCODE,\n }),\n );\n }\n });\n\n layer.hooks.afterPickingEncode.tap('PixelPickingPlugin', () => {\n const { enablePicking } = layer.getLayerConfig();\n // 区分选中高亮 和滑过高亮\n if (enablePicking && layer.isVisible()) {\n layer.models.forEach((model) =>\n model.addUniforms({\n u_PickingStage: PickingStage.HIGHLIGHT,\n }),\n );\n }\n });\n\n layer.hooks.beforeHighlight.tap(\n 'PixelPickingPlugin',\n (pickedColor: number[]) => {\n const { highlightColor, activeMix = 0 } = layer.getLayerConfig();\n // const {\n // highlightColor,\n // activeMix = 0,\n // enableSelect,\n // } = layer.getLayerConfig();\n const highlightColorInArray =\n typeof highlightColor === 'string'\n ? rgb2arr(highlightColor)\n : highlightColor || [1, 0, 0, 1];\n\n // const { selectColor } = layer.getLayerConfig();\n // const selectColorInArray =\n // typeof selectColor === 'string'\n // ? rgb2arr(selectColor)\n // : selectColor || [1, 0, 0, 1];\n layer.updateLayerConfig({\n pickedFeatureID: decodePickingColor(new Uint8Array(pickedColor)),\n });\n // const currentSelectedId = layer.getCurrentSelectedId();\n layer.models.forEach((model) =>\n model.addUniforms({\n u_PickingStage: PickingStage.HIGHLIGHT,\n u_PickingColor: pickedColor,\n u_HighlightColor: highlightColorInArray.map((c) => c * 255),\n u_activeMix: activeMix,\n // u_CurrentSelectedId: currentSelectedId\n // ? encodePickingColor(layer.getCurrentSelectedId()!)\n // : [0, 0, 0],\n // u_SelectColor: selectColorInArray.map((c) => c * 255),\n // u_EnableSelect: +(enableSelect || false),\n }),\n );\n },\n );\n\n layer.hooks.beforeSelect.tap(\n 'PixelPickingPlugin',\n (pickedColor: number[]) => {\n const { selectColor, selectMix = 0 } = layer.getLayerConfig();\n const highlightColorInArray =\n typeof selectColor === 'string'\n ? rgb2arr(selectColor)\n : selectColor || [1, 0, 0, 1];\n layer.updateLayerConfig({\n pickedFeatureID: decodePickingColor(new Uint8Array(pickedColor)),\n });\n layer.models.forEach((model) =>\n model.addUniforms({\n u_PickingStage: PickingStage.HIGHLIGHT,\n u_PickingColor: pickedColor,\n u_HighlightColor: highlightColorInArray.map((c) => c * 255),\n u_activeMix: selectMix,\n u_CurrentSelectedId: pickedColor,\n u_SelectColor: highlightColorInArray.map((c) => c * 255),\n u_EnableSelect: 1,\n }),\n );\n },\n );\n // }\n }\n}\n"],"file":"PixelPickingPlugin.js"}
|
package/lib/point/index.js
CHANGED
|
@@ -57,26 +57,14 @@ var PointLayer = function (_BaseLayer) {
|
|
|
57
57
|
(0, _createClass2.default)(PointLayer, [{
|
|
58
58
|
key: "buildModels",
|
|
59
59
|
value: function buildModels() {
|
|
60
|
-
var _this2 = this;
|
|
61
|
-
|
|
62
60
|
var modelType = this.getModelType();
|
|
63
61
|
this.layerModel = new _index.default[modelType](this);
|
|
64
|
-
this.layerModel.initModels(
|
|
65
|
-
_this2.models = models;
|
|
66
|
-
|
|
67
|
-
_this2.layerService.updateLayerRenderList();
|
|
68
|
-
|
|
69
|
-
_this2.renderLayers();
|
|
70
|
-
});
|
|
62
|
+
this.models = this.layerModel.initModels();
|
|
71
63
|
}
|
|
72
64
|
}, {
|
|
73
65
|
key: "rebuildModels",
|
|
74
66
|
value: function rebuildModels() {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
this.layerModel.buildModels(function (models) {
|
|
78
|
-
return _this3.models = models;
|
|
79
|
-
});
|
|
67
|
+
this.models = this.layerModel.buildModels();
|
|
80
68
|
}
|
|
81
69
|
}, {
|
|
82
70
|
key: "getModelTypeWillEmptyData",
|
|
@@ -147,6 +135,7 @@ var PointLayer = function (_BaseLayer) {
|
|
|
147
135
|
},
|
|
148
136
|
extrude: {},
|
|
149
137
|
image: {},
|
|
138
|
+
icon: {},
|
|
150
139
|
text: {
|
|
151
140
|
blend: 'normal'
|
|
152
141
|
},
|
|
@@ -160,7 +149,7 @@ var PointLayer = function (_BaseLayer) {
|
|
|
160
149
|
}, {
|
|
161
150
|
key: "getModelType",
|
|
162
151
|
value: function getModelType() {
|
|
163
|
-
var PointTypes = ['fillImage', 'fill', 'radar', 'image', 'normal', 'simplePoint', 'extrude', 'text', 'vectorpoint', 'tile', 'earthFill', 'earthExtrude'];
|
|
152
|
+
var PointTypes = ['fillImage', 'fill', 'radar', 'image', 'normal', 'simplePoint', 'extrude', 'text', 'icon', 'vectorpoint', 'tile', 'earthFill', 'earthExtrude'];
|
|
164
153
|
|
|
165
154
|
if (this.layerSource.parser.type === 'mvt') {
|
|
166
155
|
return 'vectorpoint';
|
|
@@ -214,6 +203,10 @@ var PointLayer = function (_BaseLayer) {
|
|
|
214
203
|
return 'image';
|
|
215
204
|
}
|
|
216
205
|
|
|
206
|
+
if (this.fontService.getGlyph(shape) !== '') {
|
|
207
|
+
return 'icon';
|
|
208
|
+
}
|
|
209
|
+
|
|
217
210
|
return 'text';
|
|
218
211
|
}
|
|
219
212
|
}
|
package/lib/point/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/point/index.ts"],"names":["PointLayer","modelType","getModelType","layerModel","PointModels","
|
|
1
|
+
{"version":3,"sources":["../../src/point/index.ts"],"names":["PointLayer","modelType","getModelType","layerModel","PointModels","models","initModels","buildModels","shapeOption","field","values","getLayerConfig","shape2d","shape3d","iconMap","iconService","getIconMap","indexOf","Array","v","hasOwnProperty","properties","opacity","type","minimum","maximum","defaultConfig","fillImage","normal","blend","radar","simplePoint","fill","extrude","image","icon","text","vectorpoint","tile","earthFill","earthExtrude","PointTypes","layerSource","parser","layerType","includes","layerData","getEncodedData","item","find","fe","getModelTypeWillEmptyData","shape","fontService","getGlyph","BaseLayer"],"mappings":"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","sourcesContent":["import { IEncodeFeature } from '@antv/l7-core';\nimport BaseLayer from '../core/BaseLayer';\nimport { IPointLayerStyleOptions } from '../core/interface';\nimport PointModels, { PointType } from './models/index';\n\nexport default class PointLayer extends BaseLayer<IPointLayerStyleOptions> {\n public type: string = 'PointLayer';\n public buildModels() {\n const modelType = this.getModelType();\n this.layerModel = new PointModels[modelType](this);\n this.models = this.layerModel.initModels();\n }\n public rebuildModels() {\n this.models = this.layerModel.buildModels();\n }\n\n /**\n * 在未传入数据的时候判断点图层的 shape 类型\n * @returns\n */\n public getModelTypeWillEmptyData(): PointType {\n if (this.shapeOption) {\n const { field, values } = this.shapeOption;\n const { shape2d, shape3d } = this.getLayerConfig();\n\n const iconMap = this.iconService.getIconMap();\n\n if (field && shape2d?.indexOf(field as string) !== -1) {\n return 'fill';\n }\n\n if (values && values instanceof Array) {\n for (const v of values) {\n if (typeof v === 'string' && iconMap.hasOwnProperty(v as string)) {\n return 'image';\n }\n }\n }\n }\n return 'normal';\n }\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n protected getDefaultConfig() {\n const type = this.getModelType();\n const defaultConfig = {\n fillImage: {},\n normal: {\n blend: 'additive',\n },\n radar: {},\n simplePoint: {},\n fill: { blend: 'normal' },\n extrude: {},\n image: {},\n icon: {},\n text: {\n blend: 'normal',\n },\n vectorpoint: {},\n tile: {},\n earthFill: {},\n earthExtrude: {},\n };\n return defaultConfig[type];\n }\n\n protected getModelType(): PointType {\n const PointTypes = [\n 'fillImage',\n 'fill',\n 'radar',\n 'image',\n 'normal',\n 'simplePoint',\n 'extrude',\n 'text',\n 'icon',\n 'vectorpoint',\n 'tile',\n 'earthFill',\n 'earthExtrude',\n ];\n if (this.layerSource.parser.type === 'mvt') {\n return 'vectorpoint';\n }\n if (this.layerType && PointTypes.includes(this.layerType)) {\n return this.layerType as PointType;\n }\n // pointlayer\n // 2D、 3d、 shape、image、text、normal、\n const layerData = this.getEncodedData();\n const { shape2d, shape3d } = this.getLayerConfig();\n const iconMap = this.iconService.getIconMap();\n const item = layerData.find((fe: IEncodeFeature) => {\n return fe.hasOwnProperty('shape');\n });\n if (!item) {\n // return 'normal';\n return this.getModelTypeWillEmptyData();\n } else {\n const shape = item.shape;\n if (shape === 'dot') {\n return 'normal';\n }\n if (shape === 'simple') {\n return 'simplePoint';\n }\n if (shape === 'radar') {\n return 'radar';\n }\n if (shape === 'fillImage') {\n return 'fillImage';\n }\n if (shape2d?.indexOf(shape as string) !== -1) {\n return 'fill';\n }\n if (shape3d?.indexOf(shape as string) !== -1) {\n return 'extrude';\n }\n if (iconMap.hasOwnProperty(shape as string)) {\n return 'image';\n }\n if (this.fontService.getGlyph(shape as string) !== '') {\n return 'icon';\n }\n return 'text';\n }\n }\n}\n"],"file":"index.js"}
|
|
@@ -33,6 +33,8 @@ var _triangulation = require("../../core/triangulation");
|
|
|
33
33
|
|
|
34
34
|
var _utils = require("../../earth/utils");
|
|
35
35
|
|
|
36
|
+
var _geo = require("../../utils/geo");
|
|
37
|
+
|
|
36
38
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
37
39
|
|
|
38
40
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
@@ -163,36 +165,33 @@ var ExtrudeModel = function (_BaseModel) {
|
|
|
163
165
|
}
|
|
164
166
|
}, {
|
|
165
167
|
key: "initModels",
|
|
166
|
-
value: function initModels(
|
|
167
|
-
this.buildModels(
|
|
168
|
+
value: function initModels() {
|
|
169
|
+
return this.buildModels();
|
|
168
170
|
}
|
|
169
171
|
}, {
|
|
170
172
|
key: "buildModels",
|
|
171
|
-
value: function buildModels(
|
|
173
|
+
value: function buildModels() {
|
|
172
174
|
var _ref2 = this.layer.getLayerConfig(),
|
|
175
|
+
_ref2$depth = _ref2.depth,
|
|
176
|
+
depth = _ref2$depth === void 0 ? true : _ref2$depth,
|
|
173
177
|
_ref2$animateOption$r = _ref2.animateOption.repeat,
|
|
174
178
|
repeat = _ref2$animateOption$r === void 0 ? 1 : _ref2$animateOption$r;
|
|
175
179
|
|
|
176
180
|
this.raiserepeat = repeat;
|
|
177
|
-
this.layer.buildLayerModel({
|
|
178
|
-
moduleName: '
|
|
181
|
+
return [this.layer.buildLayerModel({
|
|
182
|
+
moduleName: 'pointExtrude2',
|
|
179
183
|
vertexShader: pointExtrudeVert,
|
|
180
184
|
fragmentShader: pointExtrudeFrag,
|
|
181
185
|
triangulation: _triangulation.PointExtrudeTriangulation,
|
|
182
|
-
|
|
183
|
-
enable: true
|
|
184
|
-
},
|
|
186
|
+
blend: this.getBlend(),
|
|
185
187
|
cull: {
|
|
186
188
|
enable: true,
|
|
187
189
|
face: (0, _l7Utils.getCullFace)(this.mapService.version)
|
|
188
190
|
},
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
})
|
|
193
|
-
console.warn(err);
|
|
194
|
-
callbackModel([]);
|
|
195
|
-
});
|
|
191
|
+
depth: {
|
|
192
|
+
enable: depth
|
|
193
|
+
}
|
|
194
|
+
})];
|
|
196
195
|
}
|
|
197
196
|
}, {
|
|
198
197
|
key: "clearModels",
|
|
@@ -264,7 +263,7 @@ var ExtrudeModel = function (_BaseModel) {
|
|
|
264
263
|
},
|
|
265
264
|
size: 3,
|
|
266
265
|
update: function update(feature, featureIdx) {
|
|
267
|
-
var coordinates = (0,
|
|
266
|
+
var coordinates = (0, _geo.calculateCentroid)(feature.coordinates);
|
|
268
267
|
return (0, _utils.lglt2xyz)([coordinates[0], coordinates[1]]);
|
|
269
268
|
}
|
|
270
269
|
}
|