@antv/l7-layers 2.9.20 → 2.9.22
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 +4 -5
- package/es/Geometry/models/billboard.js +23 -9
- package/es/Geometry/models/index.js +4 -5
- package/es/Geometry/models/plane.js +25 -13
- package/es/Geometry/models/sprite.js +11 -21
- package/es/Geometry/shaders/billboard_frag.glsl +13 -0
- package/es/Geometry/shaders/billboard_vert.glsl +50 -0
- package/es/Geometry/shaders/plane_frag.glsl +22 -0
- package/es/Geometry/shaders/plane_vert.glsl +53 -0
- package/es/Geometry/shaders/sprite_frag.glsl +21 -0
- package/es/Geometry/shaders/sprite_vert.glsl +28 -0
- package/es/canvas/index.js +4 -5
- package/es/canvas/models/canvas.js +6 -12
- package/es/canvas/models/index.js +2 -3
- package/es/citybuliding/building.js +4 -5
- package/es/citybuliding/models/build.js +19 -22
- package/es/citybuliding/shaders/build_frag.glsl +117 -0
- package/es/citybuliding/shaders/build_vert.glsl +54 -0
- package/es/core/BaseLayer.js +205 -157
- package/es/core/BaseModel.js +135 -76
- package/es/core/interface.d.ts +11 -1
- package/es/core/interface.js +15 -2
- package/es/core/schema.js +4 -2
- package/es/core/shape/Path.js +8 -3
- package/es/core/shape/extrude.js +9 -4
- package/es/core/triangulation.js +89 -17
- package/es/earth/index.js +11 -7
- package/es/earth/models/atmosphere.js +15 -7
- package/es/earth/models/base.js +19 -7
- package/es/earth/models/bloomsphere.js +15 -7
- package/es/earth/shaders/atmosphere_frag.glsl +17 -0
- package/es/earth/shaders/atmosphere_vert.glsl +26 -0
- package/es/earth/shaders/base_frag.glsl +13 -0
- package/es/earth/shaders/base_vert.glsl +52 -0
- package/es/earth/shaders/bloomsphere_frag.glsl +15 -0
- package/es/earth/shaders/bloomsphere_vert.glsl +20 -0
- package/es/earth/utils.js +28 -5
- package/es/heatmap/index.js +8 -7
- package/es/heatmap/models/grid.js +11 -5
- package/es/heatmap/models/grid3d.js +18 -7
- package/es/heatmap/models/heatmap.js +45 -44
- package/es/heatmap/models/hexagon.js +14 -6
- package/es/heatmap/models/index.js +5 -6
- package/es/heatmap/shaders/grid_vert.glsl +42 -0
- package/es/heatmap/shaders/heatmap_3d_frag.glsl +14 -0
- package/es/heatmap/shaders/heatmap_3d_vert.glsl +46 -0
- package/es/heatmap/shaders/heatmap_frag.glsl +47 -0
- package/es/heatmap/shaders/heatmap_framebuffer_frag.glsl +10 -0
- package/es/heatmap/shaders/heatmap_framebuffer_vert.glsl +35 -0
- package/es/heatmap/shaders/heatmap_vert.glsl +10 -0
- package/es/heatmap/shaders/hexagon_3d_frag.glsl +0 -0
- package/es/heatmap/shaders/hexagon_3d_vert.glsl +64 -0
- package/es/heatmap/shaders/hexagon_frag.glsl +12 -0
- package/es/heatmap/shaders/hexagon_vert.glsl +41 -0
- package/es/heatmap/triangulation.js +2 -2
- package/es/image/index.js +4 -5
- package/es/image/models/dataImage.js +21 -31
- package/es/image/models/image.js +19 -25
- package/es/image/models/index.js +3 -4
- package/es/image/shaders/dataImage_frag.glsl +38 -0
- package/es/image/shaders/image_frag.glsl +9 -0
- package/es/image/shaders/image_vert.glsl +17 -0
- package/es/index.d.ts +2 -2
- package/es/index.js +92 -30
- package/es/line/index.js +4 -5
- package/es/line/models/arc.js +38 -15
- package/es/line/models/arc_3d.js +33 -14
- package/es/line/models/earthArc_3d.js +33 -14
- package/es/line/models/great_circle.js +25 -13
- package/es/line/models/half.js +33 -12
- package/es/line/models/index.js +12 -13
- package/es/line/models/line.js +57 -17
- package/es/line/models/linearline.js +32 -14
- package/es/line/models/simpleLine.js +26 -11
- package/es/line/models/tile.js +28 -10
- package/es/line/models/wall.js +30 -13
- package/es/line/shaders/arc_chunks.vert.glsl +21 -0
- package/es/line/shaders/dash/arc_dash_frag.glsl +28 -0
- package/es/line/shaders/dash/arc_dash_vert.glsl +148 -0
- package/es/line/shaders/dash/line_dash_frag.glsl +31 -0
- package/es/line/shaders/dash/line_dash_vert.glsl +93 -0
- package/es/line/shaders/half/line_half_frag.glsl +53 -0
- package/es/line/shaders/half/line_half_vert.glsl +169 -0
- package/es/line/shaders/line_arc2d_vert.glsl +114 -0
- package/es/line/shaders/line_arc_3d_frag.glsl +103 -0
- package/es/line/shaders/line_arc_3d_vert.glsl +207 -0
- package/es/line/shaders/line_arc_frag.glsl +89 -0
- package/es/line/shaders/line_arc_great_circle_frag.glsl +101 -0
- package/es/line/shaders/line_arc_great_circle_vert.glsl +215 -0
- package/es/line/shaders/line_arc_vert.glsl +174 -0
- package/es/line/shaders/line_bezier_vert.glsl +85 -0
- package/es/line/shaders/line_frag.glsl +100 -0
- package/es/line/shaders/line_vert.glsl +192 -0
- package/es/line/shaders/linear/arc3d_linear_frag.glsl +47 -0
- package/es/line/shaders/linear/arc3d_linear_vert.glsl +207 -0
- package/es/line/shaders/linear/arc_linear_frag.glsl +38 -0
- package/es/line/shaders/linear/arc_linear_vert.glsl +138 -0
- package/es/line/shaders/linear/line_linear_frag.glsl +27 -0
- package/es/line/shaders/linearLine/line_linear_frag.glsl +20 -0
- package/es/line/shaders/linearLine/line_linear_vert.glsl +112 -0
- package/es/line/shaders/simple/simpleline_frag.glsl +10 -0
- package/es/line/shaders/simple/simpleline_linear_frag.glsl +11 -0
- package/es/line/shaders/simple/simpleline_vert.glsl +78 -0
- package/es/line/shaders/tile/line_tile_frag.glsl +79 -0
- package/es/line/shaders/tile/line_tile_vert.glsl +210 -0
- package/es/line/shaders/wall_frag.glsl +93 -0
- package/es/line/shaders/wall_vert.glsl +111 -0
- package/es/mask/index.js +4 -5
- package/es/mask/models/fill.js +11 -8
- package/es/mask/models/index.js +2 -3
- package/es/mask/shaders/mask_frag.glsl +7 -0
- package/es/mask/shaders/mask_vert.glsl +22 -0
- package/es/plugins/DataMappingPlugin.js +71 -34
- package/es/plugins/DataSourcePlugin.js +12 -10
- package/es/plugins/FeatureScalePlugin.js +44 -24
- package/es/plugins/LayerAnimateStylePlugin.js +6 -7
- package/es/plugins/LayerModelPlugin.js +16 -7
- package/es/plugins/LayerStylePlugin.js +7 -3
- package/es/plugins/LightingPlugin.js +21 -13
- package/es/plugins/MultiPassRendererPlugin.js +21 -8
- package/es/plugins/PixelPickingPlugin.js +33 -11
- package/es/plugins/RegisterStyleAttributePlugin.js +10 -3
- package/es/plugins/ShaderUniformPlugin.js +24 -10
- package/es/plugins/UpdateModelPlugin.js +7 -3
- package/es/plugins/UpdateStyleAttributePlugin.js +20 -7
- package/es/point/index.js +12 -6
- package/es/point/models/earthExtrude.js +30 -12
- package/es/point/models/earthFill.js +25 -13
- package/es/point/models/extrude.js +30 -12
- package/es/point/models/fill.js +50 -15
- package/es/point/models/fillmage.js +46 -17
- package/es/point/models/image.js +20 -12
- package/es/point/models/index.js +14 -14
- package/es/point/models/normal.js +15 -7
- package/es/point/models/radar.js +33 -13
- package/es/point/models/simplePoint.js +17 -9
- package/es/point/models/text.js +77 -30
- package/es/point/models/tile.js +33 -12
- package/es/point/shaders/animate/wave_frag.glsl +65 -0
- package/es/point/shaders/earth/extrude_frag.glsl +44 -0
- package/es/point/shaders/earth/extrude_vert.glsl +140 -0
- package/es/point/shaders/earth/fill_frag.glsl +86 -0
- package/es/point/shaders/earth/fill_vert.glsl +126 -0
- package/es/point/shaders/extrude/extrude_frag.glsl +44 -0
- package/es/point/shaders/extrude/extrude_vert.glsl +121 -0
- package/es/point/shaders/fill_frag.glsl +84 -0
- package/es/point/shaders/fill_vert.glsl +182 -0
- package/es/point/shaders/image/fillImage_frag.glsl +20 -0
- package/es/point/shaders/image/fillImage_vert.glsl +108 -0
- package/es/point/shaders/image_frag.glsl +39 -0
- package/es/point/shaders/image_vert.glsl +81 -0
- package/es/point/shaders/normal_frag.glsl +15 -0
- package/es/point/shaders/normal_vert.glsl +79 -0
- package/es/point/shaders/radar/radar_frag.glsl +64 -0
- package/es/point/shaders/radar/radar_vert.glsl +120 -0
- package/es/point/shaders/simplePoint_frag.glsl +53 -0
- package/es/point/shaders/simplePoint_vert.glsl +79 -0
- package/es/point/shaders/text_frag.glsl +48 -0
- package/es/point/shaders/text_vert.glsl +131 -0
- package/es/point/shaders/tile/fill_tile_frag.glsl +83 -0
- package/es/point/shaders/tile/fill_tile_vert.glsl +181 -0
- package/es/point/shape/extrude.js +8 -3
- package/es/polygon/index.js +6 -5
- package/es/polygon/models/extrude.js +40 -31
- package/es/polygon/models/fill.js +19 -8
- package/es/polygon/models/index.js +14 -14
- package/es/polygon/models/ocean.js +25 -33
- package/es/polygon/models/tile.js +13 -7
- package/es/polygon/models/water.js +21 -25
- package/es/polygon/shaders/extrude/polygon_extrude_frag.glsl +44 -0
- package/es/polygon/shaders/extrude/polygon_extrude_picklight_frag.glsl +44 -0
- package/es/polygon/shaders/extrude/polygon_extrude_picklight_vert.glsl +85 -0
- package/es/polygon/shaders/extrude/polygon_extrude_vert.glsl +90 -0
- package/es/polygon/shaders/extrude/polygon_extrudetex_frag.glsl +48 -0
- package/es/polygon/shaders/extrude/polygon_extrudetex_vert.glsl +93 -0
- package/es/polygon/shaders/polygon_frag.glsl +12 -0
- package/es/polygon/shaders/polygon_linear_frag.glsl +22 -0
- package/es/polygon/shaders/polygon_linear_vert.glsl +74 -0
- package/es/polygon/shaders/polygon_vert.glsl +66 -0
- package/es/polygon/shaders/tile/polygon_tile_frag.glsl +12 -0
- package/es/polygon/shaders/tile/polygon_tile_vert.glsl +82 -0
- package/es/polygon/shaders/water/polygon_ocean_frag.glsl +248 -0
- package/es/polygon/shaders/water/polygon_ocean_vert.glsl +52 -0
- package/es/polygon/shaders/water/polygon_water_frag.glsl +73 -0
- package/es/polygon/shaders/water/polygon_water_vert.glsl +55 -0
- package/es/raster/buffers/triangulation.js +2 -2
- package/es/raster/index.js +7 -6
- package/es/raster/models/index.js +3 -4
- package/es/raster/models/raster.js +15 -25
- package/es/raster/raster.js +9 -13
- package/es/raster/shaders/raster_2d_frag.glsl +28 -0
- package/es/raster/shaders/raster_2d_vert.glsl +18 -0
- package/es/raster/shaders/raster_frag.glsl +9 -0
- package/es/raster/shaders/raster_vert.glsl +44 -0
- package/es/tile/interface.js +1 -2
- package/es/tile/manager/tileConfigManager.js +6 -8
- package/es/tile/manager/tileLayerManager.js +19 -30
- package/es/tile/manager/tilePickerManager.js +14 -14
- package/es/tile/models/tileModel.js +6 -6
- package/es/tile/tileFactory/base.js +26 -32
- package/es/tile/tileFactory/index.js +6 -7
- package/es/tile/tileFactory/line.js +3 -9
- package/es/tile/tileFactory/point.js +3 -9
- package/es/tile/tileFactory/polygon.js +3 -9
- package/es/tile/tileFactory/raster.js +4 -10
- package/es/tile/tileFactory/rasterData.js +5 -11
- package/es/tile/tileFactory/rasterDataLayer.js +4 -5
- package/es/tile/tileFactory/vectorLayer.js +8 -9
- package/es/tile/tileLayer/baseTileLayer.js +67 -39
- package/es/tile/tmsTileLayer.js +5 -4
- package/es/tile/utils.js +5 -3
- package/es/utils/blend.js +1 -2
- package/es/utils/collision-index.js +36 -21
- package/es/utils/dataMappingStyle.js +71 -15
- package/es/utils/extrude_polyline.js +90 -48
- package/es/utils/grid-index.js +7 -21
- package/es/utils/layerData.js +41 -17
- package/es/utils/multiPassRender.js +21 -5
- package/es/utils/polylineNormal.js +40 -20
- package/es/utils/simpleLine.js +4 -6
- package/es/utils/symbol-layout.js +49 -10
- package/es/utils/updateShape.js +6 -3
- package/es/wind/index.js +5 -6
- package/es/wind/models/index.js +2 -3
- package/es/wind/models/utils.js +50 -26
- package/es/wind/models/wind.js +15 -18
- package/es/wind/models/windRender.js +89 -78
- package/es/wind/models/windShader.d.ts +6 -6
- package/es/wind/models/windShader.js +12 -7
- package/es/wind/shaders/wind_frag.glsl +9 -0
- package/es/wind/shaders/wind_vert.glsl +17 -0
- package/lib/Geometry/index.js +77 -115
- package/lib/Geometry/models/billboard.js +181 -218
- package/lib/Geometry/models/index.js +34 -19
- package/lib/Geometry/models/plane.js +278 -394
- package/lib/Geometry/models/sprite.js +189 -294
- package/lib/Geometry/shaders/billboard_frag.glsl +13 -0
- package/lib/Geometry/shaders/billboard_vert.glsl +50 -0
- package/lib/Geometry/shaders/plane_frag.glsl +22 -0
- package/lib/Geometry/shaders/plane_vert.glsl +53 -0
- package/lib/Geometry/shaders/sprite_frag.glsl +21 -0
- package/lib/Geometry/shaders/sprite_vert.glsl +28 -0
- package/lib/canvas/index.js +66 -102
- package/lib/canvas/models/canvas.js +140 -210
- package/lib/canvas/models/index.js +30 -13
- package/lib/citybuliding/building.js +63 -99
- package/lib/citybuliding/models/build.js +146 -196
- package/lib/citybuliding/shaders/build_frag.glsl +117 -0
- package/lib/citybuliding/shaders/build_vert.glsl +54 -0
- package/lib/core/BaseLayer.js +807 -1245
- package/lib/core/BaseModel.js +275 -375
- package/lib/core/interface.js +52 -20
- package/lib/core/schema.js +39 -18
- package/lib/core/shape/Path.js +78 -60
- package/lib/core/shape/extrude.js +90 -127
- package/lib/core/triangulation.js +191 -304
- package/lib/earth/index.js +62 -96
- package/lib/earth/models/atmosphere.js +112 -139
- package/lib/earth/models/base.js +150 -198
- package/lib/earth/models/bloomsphere.js +112 -139
- package/lib/earth/shaders/atmosphere_frag.glsl +17 -0
- package/lib/earth/shaders/atmosphere_vert.glsl +26 -0
- package/lib/earth/shaders/base_frag.glsl +13 -0
- package/lib/earth/shaders/base_vert.glsl +52 -0
- package/lib/earth/shaders/bloomsphere_frag.glsl +15 -0
- package/lib/earth/shaders/bloomsphere_vert.glsl +20 -0
- package/lib/earth/utils.js +89 -85
- package/lib/heatmap/index.js +92 -148
- package/lib/heatmap/models/grid.js +91 -113
- package/lib/heatmap/models/grid3d.js +123 -145
- package/lib/heatmap/models/heatmap.js +338 -470
- package/lib/heatmap/models/hexagon.js +92 -114
- package/lib/heatmap/models/index.js +37 -23
- package/lib/heatmap/shaders/grid_vert.glsl +42 -0
- package/lib/heatmap/shaders/heatmap_3d_frag.glsl +14 -0
- package/lib/heatmap/shaders/heatmap_3d_vert.glsl +46 -0
- package/lib/heatmap/shaders/heatmap_frag.glsl +47 -0
- package/lib/heatmap/shaders/heatmap_framebuffer_frag.glsl +10 -0
- package/lib/heatmap/shaders/heatmap_framebuffer_vert.glsl +35 -0
- package/lib/heatmap/shaders/heatmap_vert.glsl +10 -0
- package/lib/heatmap/shaders/hexagon_3d_frag.glsl +0 -0
- package/lib/heatmap/shaders/hexagon_3d_vert.glsl +64 -0
- package/lib/heatmap/shaders/hexagon_frag.glsl +12 -0
- package/lib/heatmap/shaders/hexagon_vert.glsl +41 -0
- package/lib/heatmap/triangulation.js +46 -30
- package/lib/image/index.js +74 -112
- package/lib/image/models/dataImage.js +173 -241
- package/lib/image/models/image.js +123 -177
- package/lib/image/models/index.js +32 -16
- package/lib/image/shaders/dataImage_frag.glsl +38 -0
- package/lib/image/shaders/image_frag.glsl +9 -0
- package/lib/image/shaders/image_vert.glsl +17 -0
- package/lib/index.js +96 -193
- package/lib/line/index.js +83 -128
- package/lib/line/models/arc.js +237 -328
- package/lib/line/models/arc_3d.js +228 -314
- package/lib/line/models/earthArc_3d.js +228 -316
- package/lib/line/models/great_circle.js +200 -279
- package/lib/line/models/half.js +201 -266
- package/lib/line/models/index.js +50 -43
- package/lib/line/models/line.js +299 -386
- package/lib/line/models/linearline.js +203 -258
- package/lib/line/models/simpleLine.js +175 -225
- package/lib/line/models/tile.js +237 -330
- package/lib/line/models/wall.js +235 -310
- package/lib/line/shaders/arc_chunks.vert.glsl +21 -0
- package/lib/line/shaders/dash/arc_dash_frag.glsl +28 -0
- package/lib/line/shaders/dash/arc_dash_vert.glsl +148 -0
- package/lib/line/shaders/dash/line_dash_frag.glsl +31 -0
- package/lib/line/shaders/dash/line_dash_vert.glsl +93 -0
- package/lib/line/shaders/half/line_half_frag.glsl +53 -0
- package/lib/line/shaders/half/line_half_vert.glsl +169 -0
- package/lib/line/shaders/line_arc2d_vert.glsl +114 -0
- package/lib/line/shaders/line_arc_3d_frag.glsl +103 -0
- package/lib/line/shaders/line_arc_3d_vert.glsl +207 -0
- package/lib/line/shaders/line_arc_frag.glsl +89 -0
- package/lib/line/shaders/line_arc_great_circle_frag.glsl +101 -0
- package/lib/line/shaders/line_arc_great_circle_vert.glsl +215 -0
- package/lib/line/shaders/line_arc_vert.glsl +174 -0
- package/lib/line/shaders/line_bezier_vert.glsl +85 -0
- package/lib/line/shaders/line_frag.glsl +100 -0
- package/lib/line/shaders/line_vert.glsl +192 -0
- package/lib/line/shaders/linear/arc3d_linear_frag.glsl +47 -0
- package/lib/line/shaders/linear/arc3d_linear_vert.glsl +207 -0
- package/lib/line/shaders/linear/arc_linear_frag.glsl +38 -0
- package/lib/line/shaders/linear/arc_linear_vert.glsl +138 -0
- package/lib/line/shaders/linear/line_linear_frag.glsl +27 -0
- package/lib/line/shaders/linearLine/line_linear_frag.glsl +20 -0
- package/lib/line/shaders/linearLine/line_linear_vert.glsl +112 -0
- package/lib/line/shaders/simple/simpleline_frag.glsl +10 -0
- package/lib/line/shaders/simple/simpleline_linear_frag.glsl +11 -0
- package/lib/line/shaders/simple/simpleline_vert.glsl +78 -0
- package/lib/line/shaders/tile/line_tile_frag.glsl +79 -0
- package/lib/line/shaders/tile/line_tile_vert.glsl +210 -0
- package/lib/line/shaders/wall_frag.glsl +93 -0
- package/lib/line/shaders/wall_vert.glsl +111 -0
- package/lib/mask/index.js +59 -93
- package/lib/mask/models/fill.js +82 -132
- package/lib/mask/models/index.js +30 -13
- package/lib/mask/shaders/mask_frag.glsl +7 -0
- package/lib/mask/shaders/mask_vert.glsl +22 -0
- package/lib/plugins/DataMappingPlugin.js +222 -304
- package/lib/plugins/DataSourcePlugin.js +87 -100
- package/lib/plugins/FeatureScalePlugin.js +239 -310
- package/lib/plugins/LayerAnimateStylePlugin.js +55 -61
- package/lib/plugins/LayerModelPlugin.js +72 -70
- package/lib/plugins/LayerStylePlugin.js +51 -44
- package/lib/plugins/LightingPlugin.js +68 -72
- package/lib/plugins/MultiPassRendererPlugin.js +65 -77
- package/lib/plugins/PixelPickingPlugin.js +109 -128
- package/lib/plugins/RegisterStyleAttributePlugin.js +110 -103
- package/lib/plugins/ShaderUniformPlugin.js +98 -103
- package/lib/plugins/UpdateModelPlugin.js +47 -36
- package/lib/plugins/UpdateStyleAttributePlugin.js +75 -80
- package/lib/point/index.js +147 -216
- package/lib/point/models/earthExtrude.js +201 -262
- package/lib/point/models/earthFill.js +202 -276
- package/lib/point/models/extrude.js +203 -282
- package/lib/point/models/fill.js +273 -369
- package/lib/point/models/fillmage.js +250 -327
- package/lib/point/models/image.js +163 -226
- package/lib/point/models/index.js +52 -46
- package/lib/point/models/normal.js +134 -176
- package/lib/point/models/radar.js +212 -286
- package/lib/point/models/simplePoint.js +142 -187
- package/lib/point/models/text.js +385 -559
- package/lib/point/models/tile.js +223 -294
- package/lib/point/shaders/animate/wave_frag.glsl +65 -0
- package/lib/point/shaders/earth/extrude_frag.glsl +44 -0
- package/lib/point/shaders/earth/extrude_vert.glsl +140 -0
- package/lib/point/shaders/earth/fill_frag.glsl +86 -0
- package/lib/point/shaders/earth/fill_vert.glsl +126 -0
- package/lib/point/shaders/extrude/extrude_frag.glsl +44 -0
- package/lib/point/shaders/extrude/extrude_vert.glsl +121 -0
- package/lib/point/shaders/fill_frag.glsl +84 -0
- package/lib/point/shaders/fill_vert.glsl +182 -0
- package/lib/point/shaders/image/fillImage_frag.glsl +20 -0
- package/lib/point/shaders/image/fillImage_vert.glsl +108 -0
- package/lib/point/shaders/image_frag.glsl +39 -0
- package/lib/point/shaders/image_vert.glsl +81 -0
- package/lib/point/shaders/normal_frag.glsl +15 -0
- package/lib/point/shaders/normal_vert.glsl +79 -0
- package/lib/point/shaders/radar/radar_frag.glsl +64 -0
- package/lib/point/shaders/radar/radar_vert.glsl +120 -0
- package/lib/point/shaders/simplePoint_frag.glsl +53 -0
- package/lib/point/shaders/simplePoint_vert.glsl +79 -0
- package/lib/point/shaders/text_frag.glsl +48 -0
- package/lib/point/shaders/text_vert.glsl +131 -0
- package/lib/point/shaders/tile/fill_tile_frag.glsl +83 -0
- package/lib/point/shaders/tile/fill_tile_vert.glsl +181 -0
- package/lib/point/shape/extrude.js +51 -51
- package/lib/polygon/index.js +100 -149
- package/lib/polygon/models/extrude.js +222 -303
- package/lib/polygon/models/fill.js +153 -205
- package/lib/polygon/models/index.js +52 -46
- package/lib/polygon/models/ocean.js +172 -251
- package/lib/polygon/models/tile.js +100 -139
- package/lib/polygon/models/water.js +152 -227
- package/lib/polygon/shaders/extrude/polygon_extrude_frag.glsl +44 -0
- package/lib/polygon/shaders/extrude/polygon_extrude_picklight_frag.glsl +44 -0
- package/lib/polygon/shaders/extrude/polygon_extrude_picklight_vert.glsl +85 -0
- package/lib/polygon/shaders/extrude/polygon_extrude_vert.glsl +90 -0
- package/lib/polygon/shaders/extrude/polygon_extrudetex_frag.glsl +48 -0
- package/lib/polygon/shaders/extrude/polygon_extrudetex_vert.glsl +93 -0
- package/lib/polygon/shaders/polygon_frag.glsl +12 -0
- package/lib/polygon/shaders/polygon_linear_frag.glsl +22 -0
- package/lib/polygon/shaders/polygon_linear_vert.glsl +74 -0
- package/lib/polygon/shaders/polygon_vert.glsl +66 -0
- package/lib/polygon/shaders/tile/polygon_tile_frag.glsl +12 -0
- package/lib/polygon/shaders/tile/polygon_tile_vert.glsl +82 -0
- package/lib/polygon/shaders/water/polygon_ocean_frag.glsl +248 -0
- package/lib/polygon/shaders/water/polygon_ocean_vert.glsl +52 -0
- package/lib/polygon/shaders/water/polygon_water_frag.glsl +73 -0
- package/lib/polygon/shaders/water/polygon_water_vert.glsl +55 -0
- package/lib/raster/buffers/triangulation.js +39 -26
- package/lib/raster/index.js +73 -111
- package/lib/raster/models/index.js +33 -17
- package/lib/raster/models/raster.js +134 -187
- package/lib/raster/raster.js +132 -189
- package/lib/raster/shaders/raster_2d_frag.glsl +28 -0
- package/lib/raster/shaders/raster_2d_vert.glsl +18 -0
- package/lib/raster/shaders/raster_frag.glsl +9 -0
- package/lib/raster/shaders/raster_vert.glsl +44 -0
- package/lib/tile/interface.js +17 -2
- package/lib/tile/manager/tileConfigManager.js +86 -126
- package/lib/tile/manager/tileLayerManager.js +227 -312
- package/lib/tile/manager/tilePickerManager.js +123 -187
- package/lib/tile/models/tileModel.js +51 -70
- package/lib/tile/tileFactory/base.js +292 -403
- package/lib/tile/tileFactory/index.js +48 -51
- package/lib/tile/tileFactory/line.js +50 -71
- package/lib/tile/tileFactory/point.js +50 -71
- package/lib/tile/tileFactory/polygon.js +50 -71
- package/lib/tile/tileFactory/raster.js +54 -72
- package/lib/tile/tileFactory/rasterData.js +76 -94
- package/lib/tile/tileFactory/rasterDataLayer.js +62 -98
- package/lib/tile/tileFactory/vectorLayer.js +95 -148
- package/lib/tile/tileLayer/baseTileLayer.js +220 -380
- package/lib/tile/tmsTileLayer.js +67 -109
- package/lib/tile/utils.js +86 -101
- package/lib/utils/blend.js +79 -60
- package/lib/utils/collision-index.js +63 -83
- package/lib/utils/dataMappingStyle.js +59 -56
- package/lib/utils/extrude_polyline.js +397 -554
- package/lib/utils/grid-index.js +111 -168
- package/lib/utils/layerData.js +88 -95
- package/lib/utils/multiPassRender.js +38 -31
- package/lib/utils/polylineNormal.js +86 -118
- package/lib/utils/simpleLine.js +85 -101
- package/lib/utils/symbol-layout.js +109 -173
- package/lib/utils/updateShape.js +40 -11
- package/lib/wind/index.js +71 -110
- package/lib/wind/models/index.js +30 -13
- package/lib/wind/models/utils.js +89 -104
- package/lib/wind/models/wind.js +224 -332
- package/lib/wind/models/windRender.js +215 -293
- package/lib/wind/models/windShader.js +181 -17
- package/lib/wind/shaders/wind_frag.glsl +9 -0
- package/lib/wind/shaders/wind_vert.glsl +17 -0
- package/package.json +11 -9
- package/es/Geometry/index.js.map +0 -1
- package/es/Geometry/models/billboard.js.map +0 -1
- package/es/Geometry/models/index.js.map +0 -1
- package/es/Geometry/models/plane.js.map +0 -1
- package/es/Geometry/models/sprite.js.map +0 -1
- package/es/canvas/index.js.map +0 -1
- package/es/canvas/models/canvas.js.map +0 -1
- package/es/canvas/models/index.js.map +0 -1
- package/es/citybuliding/building.js.map +0 -1
- package/es/citybuliding/models/build.js.map +0 -1
- package/es/core/BaseLayer.js.map +0 -1
- package/es/core/BaseModel.js.map +0 -1
- package/es/core/interface.js.map +0 -1
- package/es/core/schema.js.map +0 -1
- package/es/core/shape/Path.js.map +0 -1
- package/es/core/shape/extrude.js.map +0 -1
- package/es/core/triangulation.js.map +0 -1
- package/es/earth/index.js.map +0 -1
- package/es/earth/models/atmosphere.js.map +0 -1
- package/es/earth/models/base.js.map +0 -1
- package/es/earth/models/bloomsphere.js.map +0 -1
- package/es/earth/utils.js.map +0 -1
- package/es/glsl.d.js +0 -2
- package/es/glsl.d.js.map +0 -1
- package/es/heatmap/index.js.map +0 -1
- package/es/heatmap/models/grid.js.map +0 -1
- package/es/heatmap/models/grid3d.js.map +0 -1
- package/es/heatmap/models/heatmap.js.map +0 -1
- package/es/heatmap/models/hexagon.js.map +0 -1
- package/es/heatmap/models/index.js.map +0 -1
- package/es/heatmap/triangulation.js.map +0 -1
- package/es/image/index.js.map +0 -1
- package/es/image/models/dataImage.js.map +0 -1
- package/es/image/models/image.js.map +0 -1
- package/es/image/models/index.js.map +0 -1
- package/es/index.js.map +0 -1
- package/es/line/index.js.map +0 -1
- package/es/line/models/arc.js.map +0 -1
- package/es/line/models/arc_3d.js.map +0 -1
- package/es/line/models/earthArc_3d.js.map +0 -1
- package/es/line/models/great_circle.js.map +0 -1
- package/es/line/models/half.js.map +0 -1
- package/es/line/models/index.js.map +0 -1
- package/es/line/models/line.js.map +0 -1
- package/es/line/models/linearline.js.map +0 -1
- package/es/line/models/simpleLine.js.map +0 -1
- package/es/line/models/tile.js.map +0 -1
- package/es/line/models/wall.js.map +0 -1
- package/es/mask/index.js.map +0 -1
- package/es/mask/models/fill.js.map +0 -1
- package/es/mask/models/index.js.map +0 -1
- package/es/plugins/DataMappingPlugin.js.map +0 -1
- package/es/plugins/DataSourcePlugin.js.map +0 -1
- package/es/plugins/FeatureScalePlugin.js.map +0 -1
- package/es/plugins/LayerAnimateStylePlugin.js.map +0 -1
- package/es/plugins/LayerModelPlugin.js.map +0 -1
- package/es/plugins/LayerStylePlugin.js.map +0 -1
- package/es/plugins/LightingPlugin.js.map +0 -1
- package/es/plugins/MultiPassRendererPlugin.js.map +0 -1
- package/es/plugins/PixelPickingPlugin.js.map +0 -1
- package/es/plugins/RegisterStyleAttributePlugin.js.map +0 -1
- package/es/plugins/ShaderUniformPlugin.js.map +0 -1
- package/es/plugins/UpdateModelPlugin.js.map +0 -1
- package/es/plugins/UpdateStyleAttributePlugin.js.map +0 -1
- package/es/point/index.js.map +0 -1
- package/es/point/models/earthExtrude.js.map +0 -1
- package/es/point/models/earthFill.js.map +0 -1
- package/es/point/models/extrude.js.map +0 -1
- package/es/point/models/fill.js.map +0 -1
- package/es/point/models/fillmage.js.map +0 -1
- package/es/point/models/image.js.map +0 -1
- package/es/point/models/index.js.map +0 -1
- package/es/point/models/normal.js.map +0 -1
- package/es/point/models/radar.js.map +0 -1
- package/es/point/models/simplePoint.js.map +0 -1
- package/es/point/models/text.js.map +0 -1
- package/es/point/models/tile.js.map +0 -1
- package/es/point/shape/extrude.js.map +0 -1
- package/es/polygon/index.js.map +0 -1
- package/es/polygon/models/extrude.js.map +0 -1
- package/es/polygon/models/fill.js.map +0 -1
- package/es/polygon/models/index.js.map +0 -1
- package/es/polygon/models/ocean.js.map +0 -1
- package/es/polygon/models/tile.js.map +0 -1
- package/es/polygon/models/water.js.map +0 -1
- package/es/raster/buffers/triangulation.js.map +0 -1
- package/es/raster/index.js.map +0 -1
- package/es/raster/models/index.js.map +0 -1
- package/es/raster/models/raster.js.map +0 -1
- package/es/raster/raster.js.map +0 -1
- package/es/tile/interface.js.map +0 -1
- package/es/tile/manager/tileConfigManager.js.map +0 -1
- package/es/tile/manager/tileLayerManager.js.map +0 -1
- package/es/tile/manager/tilePickerManager.js.map +0 -1
- package/es/tile/models/tileModel.js.map +0 -1
- package/es/tile/tileFactory/base.js.map +0 -1
- package/es/tile/tileFactory/index.js.map +0 -1
- package/es/tile/tileFactory/line.js.map +0 -1
- package/es/tile/tileFactory/point.js.map +0 -1
- package/es/tile/tileFactory/polygon.js.map +0 -1
- package/es/tile/tileFactory/raster.js.map +0 -1
- package/es/tile/tileFactory/rasterData.js.map +0 -1
- package/es/tile/tileFactory/rasterDataLayer.js.map +0 -1
- package/es/tile/tileFactory/vectorLayer.js.map +0 -1
- package/es/tile/tileLayer/baseTileLayer.js.map +0 -1
- package/es/tile/tmsTileLayer.js.map +0 -1
- package/es/tile/utils.js.map +0 -1
- package/es/utils/blend.js.map +0 -1
- package/es/utils/collision-index.js.map +0 -1
- package/es/utils/dataMappingStyle.js.map +0 -1
- package/es/utils/extrude_polyline.js.map +0 -1
- package/es/utils/grid-index.js.map +0 -1
- package/es/utils/layerData.js.map +0 -1
- package/es/utils/multiPassRender.js.map +0 -1
- package/es/utils/polylineNormal.js.map +0 -1
- package/es/utils/simpleLine.js.map +0 -1
- package/es/utils/symbol-layout.js.map +0 -1
- package/es/utils/updateShape.js.map +0 -1
- package/es/wind/index.js.map +0 -1
- package/es/wind/models/index.js.map +0 -1
- package/es/wind/models/utils.js.map +0 -1
- package/es/wind/models/wind.js.map +0 -1
- package/es/wind/models/windRender.js.map +0 -1
- package/es/wind/models/windShader.js.map +0 -1
- package/lib/Geometry/index.js.map +0 -1
- package/lib/Geometry/models/billboard.js.map +0 -1
- package/lib/Geometry/models/index.js.map +0 -1
- package/lib/Geometry/models/plane.js.map +0 -1
- package/lib/Geometry/models/sprite.js.map +0 -1
- package/lib/canvas/index.js.map +0 -1
- package/lib/canvas/models/canvas.js.map +0 -1
- package/lib/canvas/models/index.js.map +0 -1
- package/lib/citybuliding/building.js.map +0 -1
- package/lib/citybuliding/models/build.js.map +0 -1
- package/lib/core/BaseLayer.js.map +0 -1
- package/lib/core/BaseModel.js.map +0 -1
- package/lib/core/interface.js.map +0 -1
- package/lib/core/schema.js.map +0 -1
- package/lib/core/shape/Path.js.map +0 -1
- package/lib/core/shape/extrude.js.map +0 -1
- package/lib/core/triangulation.js.map +0 -1
- package/lib/earth/index.js.map +0 -1
- package/lib/earth/models/atmosphere.js.map +0 -1
- package/lib/earth/models/base.js.map +0 -1
- package/lib/earth/models/bloomsphere.js.map +0 -1
- package/lib/earth/utils.js.map +0 -1
- package/lib/glsl.d.js +0 -2
- package/lib/glsl.d.js.map +0 -1
- package/lib/heatmap/index.js.map +0 -1
- package/lib/heatmap/models/grid.js.map +0 -1
- package/lib/heatmap/models/grid3d.js.map +0 -1
- package/lib/heatmap/models/heatmap.js.map +0 -1
- package/lib/heatmap/models/hexagon.js.map +0 -1
- package/lib/heatmap/models/index.js.map +0 -1
- package/lib/heatmap/triangulation.js.map +0 -1
- package/lib/image/index.js.map +0 -1
- package/lib/image/models/dataImage.js.map +0 -1
- package/lib/image/models/image.js.map +0 -1
- package/lib/image/models/index.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/line/index.js.map +0 -1
- package/lib/line/models/arc.js.map +0 -1
- package/lib/line/models/arc_3d.js.map +0 -1
- package/lib/line/models/earthArc_3d.js.map +0 -1
- package/lib/line/models/great_circle.js.map +0 -1
- package/lib/line/models/half.js.map +0 -1
- package/lib/line/models/index.js.map +0 -1
- package/lib/line/models/line.js.map +0 -1
- package/lib/line/models/linearline.js.map +0 -1
- package/lib/line/models/simpleLine.js.map +0 -1
- package/lib/line/models/tile.js.map +0 -1
- package/lib/line/models/wall.js.map +0 -1
- package/lib/mask/index.js.map +0 -1
- package/lib/mask/models/fill.js.map +0 -1
- package/lib/mask/models/index.js.map +0 -1
- package/lib/plugins/DataMappingPlugin.js.map +0 -1
- package/lib/plugins/DataSourcePlugin.js.map +0 -1
- package/lib/plugins/FeatureScalePlugin.js.map +0 -1
- package/lib/plugins/LayerAnimateStylePlugin.js.map +0 -1
- package/lib/plugins/LayerModelPlugin.js.map +0 -1
- package/lib/plugins/LayerStylePlugin.js.map +0 -1
- package/lib/plugins/LightingPlugin.js.map +0 -1
- package/lib/plugins/MultiPassRendererPlugin.js.map +0 -1
- package/lib/plugins/PixelPickingPlugin.js.map +0 -1
- package/lib/plugins/RegisterStyleAttributePlugin.js.map +0 -1
- package/lib/plugins/ShaderUniformPlugin.js.map +0 -1
- package/lib/plugins/UpdateModelPlugin.js.map +0 -1
- package/lib/plugins/UpdateStyleAttributePlugin.js.map +0 -1
- package/lib/point/index.js.map +0 -1
- package/lib/point/models/earthExtrude.js.map +0 -1
- package/lib/point/models/earthFill.js.map +0 -1
- package/lib/point/models/extrude.js.map +0 -1
- package/lib/point/models/fill.js.map +0 -1
- package/lib/point/models/fillmage.js.map +0 -1
- package/lib/point/models/image.js.map +0 -1
- package/lib/point/models/index.js.map +0 -1
- package/lib/point/models/normal.js.map +0 -1
- package/lib/point/models/radar.js.map +0 -1
- package/lib/point/models/simplePoint.js.map +0 -1
- package/lib/point/models/text.js.map +0 -1
- package/lib/point/models/tile.js.map +0 -1
- package/lib/point/shape/extrude.js.map +0 -1
- package/lib/polygon/index.js.map +0 -1
- package/lib/polygon/models/extrude.js.map +0 -1
- package/lib/polygon/models/fill.js.map +0 -1
- package/lib/polygon/models/index.js.map +0 -1
- package/lib/polygon/models/ocean.js.map +0 -1
- package/lib/polygon/models/tile.js.map +0 -1
- package/lib/polygon/models/water.js.map +0 -1
- package/lib/raster/buffers/triangulation.js.map +0 -1
- package/lib/raster/index.js.map +0 -1
- package/lib/raster/models/index.js.map +0 -1
- package/lib/raster/models/raster.js.map +0 -1
- package/lib/raster/raster.js.map +0 -1
- package/lib/tile/interface.js.map +0 -1
- package/lib/tile/manager/tileConfigManager.js.map +0 -1
- package/lib/tile/manager/tileLayerManager.js.map +0 -1
- package/lib/tile/manager/tilePickerManager.js.map +0 -1
- package/lib/tile/models/tileModel.js.map +0 -1
- package/lib/tile/tileFactory/base.js.map +0 -1
- package/lib/tile/tileFactory/index.js.map +0 -1
- package/lib/tile/tileFactory/line.js.map +0 -1
- package/lib/tile/tileFactory/point.js.map +0 -1
- package/lib/tile/tileFactory/polygon.js.map +0 -1
- package/lib/tile/tileFactory/raster.js.map +0 -1
- package/lib/tile/tileFactory/rasterData.js.map +0 -1
- package/lib/tile/tileFactory/rasterDataLayer.js.map +0 -1
- package/lib/tile/tileFactory/vectorLayer.js.map +0 -1
- package/lib/tile/tileLayer/baseTileLayer.js.map +0 -1
- package/lib/tile/tmsTileLayer.js.map +0 -1
- package/lib/tile/utils.js.map +0 -1
- package/lib/utils/blend.js.map +0 -1
- package/lib/utils/collision-index.js.map +0 -1
- package/lib/utils/dataMappingStyle.js.map +0 -1
- package/lib/utils/extrude_polyline.js.map +0 -1
- package/lib/utils/grid-index.js.map +0 -1
- package/lib/utils/layerData.js.map +0 -1
- package/lib/utils/multiPassRender.js.map +0 -1
- package/lib/utils/polylineNormal.js.map +0 -1
- package/lib/utils/simpleLine.js.map +0 -1
- package/lib/utils/symbol-layout.js.map +0 -1
- package/lib/utils/updateShape.js.map +0 -1
- package/lib/wind/index.js.map +0 -1
- package/lib/wind/models/index.js.map +0 -1
- package/lib/wind/models/utils.js.map +0 -1
- package/lib/wind/models/wind.js.map +0 -1
- package/lib/wind/models/windRender.js.map +0 -1
- package/lib/wind/models/windShader.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/line/models/line.ts"],"names":["lineStyleObj","solid","dash","LineModel","createTexture2D","rendererService","texture","update","data","iconService","getCanvas","layer","render","mag","gl","NEAREST","min","premultiplyAlpha","width","height","canvasHeight","getLayerConfig","opacity","sourceColor","targetColor","textureBlend","lineType","dashArray","lineTexture","iconStep","vertexHeightScale","borderWidth","borderColor","raisingHeight","heightfixed","arrow","enable","arrowWidth","arrowHeight","tailWidth","length","push","getDirty","bind","useLinearColor","sourceColorArr","targetColorArr","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","flipY","format","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_textureBlend","u_line_type","u_dash_array","u_texture","u_line_texture","u_icon_step","u_textSize","u_borderWidth","u_borderColor","u_linearColor","u_sourceColor","u_targetColor","u_heightfixed","Number","u_vertexScale","u_raisingHeight","u_arrow","u_arrowHeight","u_arrowWidth","u_tailWidth","undefined","animateOption","u_aimate","animateOption2Array","u_time","getLayerAnimateTime","callbackModel","updateTexture","on","buildModels","destroy","off","mask","maskInside","depth","workerEnabled","enablePicking","getShaders","frag","vert","triangulation","LineTriangulation","buildLayerModel","moduleName","vertexShader","fragmentShader","blend","getBlend","stencil","workerOptions","modelType","iconMap","getIconMap","then","model","catch","err","console","warn","line_dash_frag","line_dash_vert","linear_line_frag","line_vert","line_frag","styleAttributeService","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","feature","featureIdx","vertex","attributeIdx","normal","vertexIndex","DYNAMIC_DRAW","Array","isArray","x","y","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAnimateOption,\n IEncodeFeature,\n IImage,\n ILayerConfig,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { getMask, LineTriangulation, rgb2arr } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { ILineLayerStyleOptions } from '../../core/interface';\n// import { LineTriangulation } from '../../core/triangulation';\n// dash line shader\nimport line_dash_frag from '../shaders/dash/line_dash_frag.glsl';\nimport line_dash_vert from '../shaders/dash/line_dash_vert.glsl';\n// basic line shader\nimport line_frag from '../shaders/line_frag.glsl';\nimport line_vert from '../shaders/line_vert.glsl';\n// other function shaders\nimport linear_line_frag from '../shaders/linear/line_linear_frag.glsl';\n\nconst lineStyleObj: { [key: string]: number } = {\n solid: 0.0,\n dash: 1.0,\n};\nexport default class LineModel extends BaseModel {\n protected texture: ITexture2D;\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n sourceColor,\n targetColor,\n textureBlend = 'normal',\n lineType = 'solid',\n dashArray = [10, 5, 0, 0],\n lineTexture = false,\n iconStep = 100,\n vertexHeightScale = 20.0,\n borderWidth = 0.0,\n borderColor = '#ccc',\n raisingHeight = 0,\n heightfixed = false,\n arrow = {\n enable: false,\n arrowWidth: 2,\n arrowHeight: 3,\n tailWidth: 1,\n },\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n if (dashArray.length === 2) {\n dashArray.push(0, 0);\n }\n\n if (this.rendererService.getDirty()) {\n this.texture.bind();\n }\n\n // 转化渐变色\n let useLinearColor = 0; // 默认不生效\n let sourceColorArr = [0, 0, 0, 0];\n let targetColorArr = [0, 0, 0, 0];\n if (sourceColor && targetColor) {\n sourceColorArr = rgb2arr(sourceColor);\n targetColorArr = rgb2arr(targetColor);\n useLinearColor = 1;\n }\n\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_textureBlend: textureBlend === 'normal' ? 0.0 : 1.0,\n u_line_type: lineStyleObj[lineType],\n u_dash_array: dashArray,\n\n // 纹理支持参数\n u_texture: this.texture, // 贴图\n u_line_texture: lineTexture ? 1.0 : 0.0, // 传入线的标识\n u_icon_step: iconStep,\n u_textSize: [1024, this.iconService.canvasHeight || 128],\n\n // line border 参数\n u_borderWidth: borderWidth,\n u_borderColor: rgb2arr(borderColor),\n\n // 渐变色支持参数\n u_linearColor: useLinearColor,\n u_sourceColor: sourceColorArr,\n u_targetColor: targetColorArr,\n\n // 是否固定高度\n u_heightfixed: Number(heightfixed),\n\n // 顶点高度 scale\n u_vertexScale: vertexHeightScale,\n u_raisingHeight: Number(raisingHeight),\n\n // arrow\n u_arrow: Number(arrow.enable),\n u_arrowHeight: arrow.arrowHeight || 3,\n u_arrowWidth: arrow.arrowWidth || 2,\n u_tailWidth: arrow.tailWidth === undefined ? 1 : arrow.tailWidth,\n };\n }\n public getAnimateUniforms(): IModelUniform {\n const { animateOption } = this.layer.getLayerConfig() as ILayerConfig;\n return {\n u_aimate: this.animateOption2Array(animateOption as IAnimateOption),\n u_time: this.layer.getLayerAnimateTime(),\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.updateTexture();\n this.iconService.on('imageUpdate', this.updateTexture);\n\n this.buildModels(callbackModel);\n }\n\n public clearModels() {\n this.texture?.destroy();\n this.dataTexture?.destroy();\n this.iconService.off('imageUpdate', this.updateTexture);\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n const {\n mask = false,\n maskInside = true,\n depth = false,\n workerEnabled = false,\n enablePicking,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n const { frag, vert, type } = this.getShaders();\n this.layer.triangulation = LineTriangulation;\n this.layer\n .buildLayerModel({\n moduleName: 'line' + type,\n vertexShader: vert,\n fragmentShader: frag,\n triangulation: LineTriangulation,\n depth: { enable: depth },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n workerEnabled,\n workerOptions: {\n modelType: 'line' + type,\n enablePicking,\n iconMap: this.iconService.getIconMap(),\n },\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n\n /**\n * 根据参数获取不同的 shader 代码\n * @returns\n */\n public getShaders(): { frag: string; vert: string; type: string } {\n const {\n sourceColor,\n targetColor,\n lineType,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n if (lineType === 'dash') {\n return {\n frag: line_dash_frag,\n vert: line_dash_vert,\n type: 'Dash',\n };\n }\n\n if (sourceColor && targetColor) {\n // 分离 linear 功能\n return {\n frag: linear_line_frag,\n vert: line_vert,\n type: 'Linear',\n };\n } else {\n return {\n frag: line_frag,\n vert: line_vert,\n type: '',\n };\n }\n }\n\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'distanceAndIndex',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_DistanceAndIndex',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n vertexIndex?: number,\n ) => {\n return vertexIndex === undefined\n ? [vertex[3], 10]\n : [vertex[3], vertexIndex];\n },\n },\n });\n this.styleAttributeService.registerStyleAttribute({\n name: 'total_distance',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Total_Distance',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[5]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0], size[1]] : [size as number, 0];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'normal',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Normal',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n return normal;\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'miter',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Miter',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[4]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_iconMapUV',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const iconMap = this.iconService.getIconMap();\n const { texture } = feature;\n const { x, y } = iconMap[texture as string] || { x: 0, y: 0 };\n return [x, y];\n },\n },\n });\n }\n\n private updateTexture = () => {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.update({\n data: this.iconService.getCanvas(),\n });\n this.layer.render();\n return;\n }\n this.texture = createTexture2D({\n data: this.iconService.getCanvas(),\n mag: gl.NEAREST,\n min: gl.NEAREST,\n premultiplyAlpha: false,\n width: 1024,\n height: this.iconService.canvasHeight || 128,\n });\n };\n}\n"],"file":"line.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/line/models/linearline.ts"],"names":["LinearLineModel","createTexture2D","rendererService","colorTexture","destroy","layer","getLayerConfig","rampColors","imageData","data","Uint8Array","width","height","wrapS","gl","CLAMP_TO_EDGE","wrapT","min","NEAREST","mag","flipY","opacity","vertexHeightScale","raisingHeight","heightfixed","getDirty","bind","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","length","format","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_texture","u_heightfixed","Number","u_vertexScale","u_raisingHeight","callbackModel","updateTexture","buildModels","mask","maskInside","depth","triangulation","LineTriangulation","buildLayerModel","moduleName","vertexShader","linear_line_vert","fragmentShader","linear_line_frag","enable","blend","getBlend","stencil","then","model","catch","err","console","warn","styleAttributeService","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx","normal","vertexIndex","undefined","DYNAMIC_DRAW","Array","isArray","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { generateColorRamp, getMask, IColorRamp } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { ILineLayerStyleOptions } from '../../core/interface';\nimport { LineTriangulation } from '../../core/triangulation';\nimport linear_line_frag from '../shaders/linearLine/line_linear_frag.glsl';\nimport linear_line_vert from '../shaders/linearLine/line_linear_vert.glsl';\n\nexport default class LinearLineModel extends BaseModel {\n protected colorTexture: ITexture2D;\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n vertexHeightScale = 20.0,\n raisingHeight = 0,\n heightfixed = false,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n if (this.rendererService.getDirty()) {\n this.colorTexture.bind();\n }\n\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n // 纹理支持参数\n u_texture: this.colorTexture, // 贴图\n\n // 是否固定高度\n u_heightfixed: Number(heightfixed),\n\n // 顶点高度 scale\n u_vertexScale: vertexHeightScale,\n u_raisingHeight: Number(raisingHeight),\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.updateTexture();\n this.buildModels(callbackModel);\n }\n\n public clearModels() {\n this.colorTexture?.destroy();\n this.dataTexture?.destroy();\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n const {\n mask = false,\n maskInside = true,\n depth = false,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n this.layer.triangulation = LineTriangulation;\n\n this.layer\n .buildLayerModel({\n moduleName: 'lineRampColors',\n vertexShader: linear_line_vert,\n fragmentShader: linear_line_frag,\n triangulation: LineTriangulation,\n depth: { enable: depth },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'distanceAndIndex',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_DistanceAndIndex',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n vertexIndex?: number,\n ) => {\n return vertexIndex === undefined\n ? [vertex[3], 10]\n : [vertex[3], vertexIndex];\n },\n },\n });\n this.styleAttributeService.registerStyleAttribute({\n name: 'total_distance',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Total_Distance',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[5]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0], size[1]] : [size as number, 0];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'normal',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Normal',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n // @ts-ignore\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n return normal;\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'miter',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Miter',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[4]];\n },\n },\n });\n }\n\n private updateTexture = () => {\n const { createTexture2D } = this.rendererService;\n if (this.colorTexture) {\n this.colorTexture.destroy();\n }\n const {\n rampColors,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n const imageData = generateColorRamp(rampColors as IColorRamp);\n this.colorTexture = createTexture2D({\n data: new Uint8Array(imageData.data),\n width: imageData.width,\n height: imageData.height,\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n min: gl.NEAREST,\n mag: gl.NEAREST,\n flipY: false,\n });\n };\n}\n"],"file":"linearline.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/line/models/simpleLine.ts"],"names":["SimpleLineModel","layer","getLayerConfig","opacity","sourceColor","targetColor","vertexHeightScale","useLinearColor","sourceColorArr","targetColorArr","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","width","height","rowCount","dataTexture","length","createTexture2D","flipY","format","gl","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_linearColor","u_sourceColor","u_targetColor","u_vertexScale","callbackModel","buildModels","destroy","frag","simle_linear_frag","vert","simple_line_vert","simple_line_frag","mask","maskInside","getShaders","buildLayerModel","moduleName","vertexShader","fragmentShader","triangulation","SimpleLineTriangulation","primitive","LINES","depth","enable","blend","getBlend","stencil","then","model","catch","err","console","warn","styleAttributeService","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx","DYNAMIC_DRAW","Array","isArray","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { getMask, rgb2arr } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { ILineLayerStyleOptions } from '../../core/interface';\nimport { SimpleLineTriangulation } from '../../core/triangulation';\nimport simple_line_frag from '../shaders/simple/simpleline_frag.glsl';\n// linear simple line shader\nimport simle_linear_frag from '../shaders/simple/simpleline_linear_frag.glsl';\nimport simple_line_vert from '../shaders/simple/simpleline_vert.glsl';\nexport default class SimpleLineModel extends BaseModel {\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n sourceColor,\n targetColor,\n vertexHeightScale = 20.0,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n // 转化渐变色\n let useLinearColor = 0; // 默认不生效\n let sourceColorArr = [0, 0, 0, 0];\n let targetColorArr = [0, 0, 0, 0];\n if (sourceColor && targetColor) {\n sourceColorArr = rgb2arr(sourceColor);\n targetColorArr = rgb2arr(targetColor);\n useLinearColor = 1;\n }\n\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n\n // 渐变色支持参数\n u_linearColor: useLinearColor,\n u_sourceColor: sourceColorArr,\n u_targetColor: targetColorArr,\n\n // 顶点高度 scale\n u_vertexScale: vertexHeightScale,\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.buildModels(callbackModel);\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n }\n\n public getShaders(): { frag: string; vert: string; type: string } {\n const {\n sourceColor,\n targetColor,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n if (sourceColor && targetColor) {\n // 分离 linear 功能\n return {\n frag: simle_linear_frag,\n vert: simple_line_vert,\n type: 'lineSimpleLinear',\n };\n } else {\n return {\n frag: simple_line_frag,\n vert: simple_line_vert,\n type: 'lineSimpleNormal',\n };\n }\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n const { frag, vert, type } = this.getShaders();\n\n this.layer\n .buildLayerModel({\n moduleName: type,\n vertexShader: vert,\n fragmentShader: frag,\n triangulation: SimpleLineTriangulation,\n primitive: gl.LINES,\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'distance',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Distance',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3]];\n },\n },\n });\n this.styleAttributeService.registerStyleAttribute({\n name: 'total_distance',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Total_Distance',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[5]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0], size[1]] : [size as number, 0];\n },\n },\n });\n }\n}\n"],"file":"simpleLine.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/line/models/tile.ts"],"names":["LineModel","createTexture2D","rendererService","texture","update","data","iconService","getCanvas","layer","render","mag","gl","NEAREST","min","premultiplyAlpha","width","height","canvasHeight","getLayerConfig","opacity","textureBlend","lineTexture","iconStep","vertexHeightScale","borderWidth","borderColor","heightfixed","arrow","enable","arrowWidth","arrowHeight","tailWidth","coord","tileOrigin","getDirty","bind","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","length","flipY","format","LUMINANCE","type","FLOAT","u_tileOrigin","u_coord","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","Number","u_textureBlend","u_texture","u_line_texture","u_icon_step","u_textSize","u_borderWidth","u_borderColor","u_heightfixed","u_vertexScale","u_arrow","u_arrowHeight","u_arrowWidth","u_tailWidth","undefined","callbackModel","updateTexture","on","buildModels","destroy","off","mask","maskInside","depth","triangulation","LineTriangulation","buildLayerModel","moduleName","vertexShader","line_tile_vert","fragmentShader","line_tile_frag","blend","getBlend","stencil","then","model","catch","err","console","warn","styleAttributeService","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","feature","featureIdx","vertex","attributeIdx","normal","vertexIndex","DYNAMIC_DRAW","Array","isArray","iconMap","getIconMap","x","y","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n ILayerConfig,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\n\nimport { getMask, rgb2arr } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { ILineLayerStyleOptions } from '../../core/interface';\nimport { LineTriangulation } from '../../core/triangulation';\n\nimport line_tile_frag from '../shaders/tile/line_tile_frag.glsl';\nimport line_tile_vert from '../shaders/tile/line_tile_vert.glsl';\n\nexport default class LineModel extends BaseModel {\n protected texture: ITexture2D;\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n textureBlend = 'normal',\n lineTexture = false,\n iconStep = 100,\n vertexHeightScale = 20.0,\n borderWidth = 0.0,\n borderColor = '#ccc',\n heightfixed = false,\n arrow = {\n enable: false,\n arrowWidth: 2,\n arrowHeight: 3,\n tailWidth: 1,\n },\n coord = 'lnglat',\n tileOrigin,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n if (this.rendererService.getDirty()) {\n this.texture.bind();\n }\n\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n return {\n u_tileOrigin: tileOrigin || [0, 0],\n u_coord: coord === 'lnglat' ? 1.0 : 0.0,\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n u_opacity: Number(opacity),\n u_textureBlend: textureBlend === 'normal' ? 0.0 : 1.0,\n\n // 纹理支持参数\n u_texture: this.texture, // 贴图\n u_line_texture: lineTexture ? 1.0 : 0.0, // 传入线的标识\n u_icon_step: iconStep,\n u_textSize: [1024, this.iconService.canvasHeight || 128],\n\n // line border 参数\n u_borderWidth: borderWidth,\n u_borderColor: rgb2arr(borderColor),\n\n // 是否固定高度\n u_heightfixed: Number(heightfixed),\n\n // 顶点高度 scale\n u_vertexScale: vertexHeightScale,\n\n // arrow\n u_arrow: Number(arrow.enable),\n u_arrowHeight: arrow.arrowHeight || 3,\n u_arrowWidth: arrow.arrowWidth || 2,\n u_tailWidth: arrow.tailWidth === undefined ? 1 : arrow.tailWidth,\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.updateTexture();\n this.iconService.on('imageUpdate', this.updateTexture);\n\n this.buildModels(callbackModel);\n }\n\n public clearModels() {\n this.texture?.destroy();\n this.dataTexture?.destroy();\n this.iconService.off('imageUpdate', this.updateTexture);\n }\n\n public async buildModels(callbackModel: (models: IModel[]) => void) {\n const {\n mask = false,\n maskInside = true,\n depth = false,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n this.layer.triangulation = LineTriangulation;\n\n this.layer\n .buildLayerModel({\n moduleName: 'lineTile',\n vertexShader: line_tile_vert,\n fragmentShader: line_tile_frag,\n triangulation: LineTriangulation,\n blend: this.getBlend(),\n depth: { enable: depth },\n // depth: { enable: true },\n stencil: getMask(mask, maskInside),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'distanceAndIndex',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_DistanceAndIndex',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n vertexIndex?: number,\n ) => {\n return vertexIndex === undefined\n ? [vertex[3], 10]\n : [vertex[3], vertexIndex];\n },\n },\n });\n this.styleAttributeService.registerStyleAttribute({\n name: 'total_distance',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Total_Distance',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[5]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0], size[1]] : [size as number, 0];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'normal',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Normal',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n return normal;\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'miter',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Miter',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[4]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_iconMapUV',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const iconMap = this.iconService.getIconMap();\n const { texture } = feature;\n const { x, y } = iconMap[texture as string] || { x: 0, y: 0 };\n return [x, y];\n },\n },\n });\n }\n\n private updateTexture = () => {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.update({\n data: this.iconService.getCanvas(),\n });\n this.layer.render();\n return;\n }\n this.texture = createTexture2D({\n data: this.iconService.getCanvas(),\n mag: gl.NEAREST,\n min: gl.NEAREST,\n premultiplyAlpha: false,\n width: 1024,\n height: this.iconService.canvasHeight || 128,\n });\n };\n}\n"],"file":"tile.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/line/models/wall.ts"],"names":["LineWallModel","createTexture2D","rendererService","texture","update","data","iconService","getCanvas","layer","render","mag","gl","NEAREST","min","premultiplyAlpha","width","height","canvasHeight","getLayerConfig","opacity","sourceColor","targetColor","textureBlend","heightfixed","lineTexture","iconStep","iconStepCount","getDirty","bind","useLinearColor","sourceColorArr","targetColorArr","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","length","flipY","format","LUMINANCE","type","FLOAT","u_heightfixed","Number","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_textureBlend","u_texture","u_line_texture","u_iconStepCount","u_icon_step","u_textSize","u_linearColor","u_sourceColor","u_targetColor","animateOption","u_aimate","animateOption2Array","u_time","getLayerAnimateTime","callbackModel","updateTexture","on","buildModels","destroy","off","buildLayerModel","moduleName","vertexShader","line_vert","fragmentShader","line_frag","triangulation","LineTriangulation","depth","enable","blend","getBlend","then","model","catch","err","console","warn","styleAttributeService","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","feature","featureIdx","vertex","attributeIdx","DYNAMIC_DRAW","Array","isArray","normal","iconMap","getIconMap","x","y","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAnimateOption,\n IEncodeFeature,\n ILayerConfig,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { rgb2arr } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { ILineLayerStyleOptions } from '../../core/interface';\nimport { LineTriangulation } from '../../core/triangulation';\nimport line_frag from '../shaders/wall_frag.glsl';\nimport line_vert from '../shaders/wall_vert.glsl';\n\nexport default class LineWallModel extends BaseModel {\n protected texture: ITexture2D;\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n sourceColor,\n targetColor,\n textureBlend = 'normal',\n heightfixed = false,\n lineTexture = false,\n iconStep = 100,\n iconStepCount = 1,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n if (this.rendererService.getDirty()) {\n this.texture.bind();\n }\n\n // 转化渐变色\n let useLinearColor = 0; // 默认不生效\n let sourceColorArr = [0, 0, 0, 0];\n let targetColorArr = [0, 0, 0, 0];\n if (sourceColor && targetColor) {\n sourceColorArr = rgb2arr(sourceColor);\n targetColorArr = rgb2arr(targetColor);\n useLinearColor = 1;\n }\n\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n\n return {\n u_heightfixed: Number(heightfixed),\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_textureBlend: textureBlend === 'normal' ? 0.0 : 1.0,\n\n // 纹理支持参数\n u_texture: this.texture, // 贴图\n u_line_texture: lineTexture ? 1.0 : 0.0, // 传入线的标识\n u_iconStepCount: iconStepCount,\n u_icon_step: iconStep,\n u_textSize: [1024, this.iconService.canvasHeight || 128],\n\n // 渐变色支持参数\n u_linearColor: useLinearColor,\n u_sourceColor: sourceColorArr,\n u_targetColor: targetColorArr,\n };\n }\n public getAnimateUniforms(): IModelUniform {\n const { animateOption } = this.layer.getLayerConfig() as ILayerConfig;\n return {\n u_aimate: this.animateOption2Array(animateOption as IAnimateOption),\n u_time: this.layer.getLayerAnimateTime(),\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.updateTexture();\n this.iconService.on('imageUpdate', this.updateTexture);\n\n this.buildModels(callbackModel);\n }\n\n public clearModels() {\n this.texture?.destroy();\n this.dataTexture?.destroy();\n this.iconService.off('imageUpdate', this.updateTexture);\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n this.layer\n .buildLayerModel({\n moduleName: 'lineWall',\n vertexShader: line_vert,\n fragmentShader: line_frag,\n triangulation: LineTriangulation,\n depth: { enable: false },\n blend: this.getBlend(),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'distance',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Distance',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3]];\n },\n },\n });\n this.styleAttributeService.registerStyleAttribute({\n name: 'total_distance',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Total_Distance',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[5]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0], size[1]] : [size as number, 0];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'normal',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Normal',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n // @ts-ignore\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n return normal;\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'miter',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Miter',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[4]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_iconMapUV',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const iconMap = this.iconService.getIconMap();\n const { texture } = feature;\n const { x, y } = iconMap[texture as string] || { x: 0, y: 0 };\n return [x, y];\n },\n },\n });\n }\n private updateTexture = () => {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.update({\n data: this.iconService.getCanvas(),\n });\n this.layer.render();\n return;\n }\n this.texture = createTexture2D({\n data: this.iconService.getCanvas(),\n mag: gl.NEAREST,\n min: gl.NEAREST,\n premultiplyAlpha: false,\n width: 1024,\n height: this.iconService.canvasHeight || 128,\n });\n };\n}\n"],"file":"wall.js"}
|
package/lib/mask/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mask/index.ts"],"names":["MaskLayer","shape","getModelType","layerModel","MaskModels","initModels","models","renderLayers","buildModels","properties","opacity","type","minimum","maximum","BaseLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;;;;;IAEqBA,S;;;;;;;;;;;;;;;uFACG,W;;;;;;WACtB,uBAAqB;AAAA;;AACnB,UAAMC,KAAK,GAAG,KAAKC,YAAL,EAAd;AACA,WAAKC,UAAL,GAAkB,IAAIC,gBAAWH,KAAX,CAAJ,CAAsB,IAAtB,CAAlB;AACA,WAAKE,UAAL,CAAgBE,UAAhB,CAA2B,UAACC,MAAD,EAAY;AACrC,QAAA,MAAI,CAACA,MAAL,GAAcA,MAAd;;AACA,QAAA,MAAI,CAACC,YAAL;AACD,OAHD;AAID;;;WACD,yBAAuB;AAAA;;AACrB,WAAKJ,UAAL,CAAgBK,WAAhB,CAA4B,UAACF,MAAD;AAAA,eAAa,MAAI,CAACA,MAAL,GAAcA,MAA3B;AAAA,OAA5B;AACD;;;WACD,2BAA4B;AAC1B,aAAO;AACLG,QAAAA,UAAU,EAAE;AACVC,UAAAA,OAAO,EAAE;AACPC,YAAAA,IAAI,EAAE,QADC;AAEPC,YAAAA,OAAO,EAAE,CAFF;AAGPC,YAAAA,OAAO,EAAE;AAHF;AADC;AADP,OAAP;AASD;;;WAED,wBAAwC;AACtC,aAAO,MAAP;AACD;;;EA3BoCC,mB","sourcesContent":["import BaseLayer from '../core/BaseLayer';\nimport { IMaskLayerStyleOptions } from '../core/interface';\nimport MaskModels, { MaskModelType } from './models';\n\nexport default class MaskLayer extends BaseLayer<IMaskLayerStyleOptions> {\n public type: string = 'MaskLayer';\n public buildModels() {\n const shape = this.getModelType();\n this.layerModel = new MaskModels[shape](this);\n this.layerModel.initModels((models) => {\n this.models = models;\n this.renderLayers();\n });\n }\n public rebuildModels() {\n this.layerModel.buildModels((models) => (this.models = models));\n }\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n\n protected getModelType(): MaskModelType {\n return 'fill';\n }\n}\n"],"file":"index.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mask/models/fill.ts"],"names":["MaskModel","layer","getLayerConfig","opacity","u_opacity","callbackModel","buildModels","buildLayerModel","moduleName","vertexShader","mask_vert","fragmentShader","mask_frag","triangulation","polygonTriangulation","depth","enable","blend","getBlend","stencil","mask","func","cmp","gl","ALWAYS","ref","opFront","fail","REPLACE","zfail","zpass","then","model","catch","err","console","warn","dataTexture","destroy","layerService","clear","BaseModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AAEA;;;;;;;;;IAIqBA,S;;;;;;;;;;;;WACnB,wBAAsB;AACpB,iBAEI,KAAKC,KAAL,CAAWC,cAAX,EAFJ;AAAA,8BACEC,OADF;AAAA,UACEA,OADF,6BACY,CADZ;;AAGA,aAAO;AACLC,QAAAA,SAAS,EAAE,wBAASD,OAAT,IAAoBA,OAApB,GAA8B;AADpC,OAAP;AAGD;;;WAED,oBAAkBE,aAAlB,EAA6D;AAC3D,WAAKC,WAAL,CAAiBD,aAAjB;AACD;;;;mFAED,iBAAyBA,aAAzB;AAAA;AAAA;AAAA;AAAA;AACE,qBAAKJ,KAAL,CACGM,eADH,CACmB;AACfC,kBAAAA,UAAU,EAAE,MADG;AAEfC,kBAAAA,YAAY,EAAEC,SAFC;AAGfC,kBAAAA,cAAc,EAAEC,SAHD;AAIfC,kBAAAA,aAAa,EAAEC,mCAJA;AAKfC,kBAAAA,KAAK,EAAE;AAAEC,oBAAAA,MAAM,EAAE;AAAV,mBALQ;AAMfC,kBAAAA,KAAK,EAAE,KAAKC,QAAL,EANQ;AAOfC,kBAAAA,OAAO,EAAE;AACPH,oBAAAA,MAAM,EAAE,IADD;AAEPI,oBAAAA,IAAI,EAAE,IAFC;AAGPC,oBAAAA,IAAI,EAAE;AACJC,sBAAAA,GAAG,EAAEC,WAAGC,MADJ;AAEJC,sBAAAA,GAAG,EAAE,CAFD;AAGJL,sBAAAA,IAAI,EAAE;AAHF,qBAHC;AAQPM,oBAAAA,OAAO,EAAE;AACPC,sBAAAA,IAAI,EAAEJ,WAAGK,OADF;AAEPC,sBAAAA,KAAK,EAAEN,WAAGK,OAFH;AAGPE,sBAAAA,KAAK,EAAEP,WAAGK;AAHH;AARF;AAPM,iBADnB,EAuBGG,IAvBH,CAuBQ,UAACC,KAAD,EAAW;AACf3B,kBAAAA,aAAa,CAAC,CAAC2B,KAAD,CAAD,CAAb;AACD,iBAzBH,EA0BGC,KA1BH,CA0BS,UAACC,GAAD,EAAS;AACdC,kBAAAA,OAAO,CAACC,IAAR,CAAaF,GAAb;AACA7B,kBAAAA,aAAa,CAAC,EAAD,CAAb;AACD,iBA7BH;;AADF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAiCA,uBAAqB;AAAA;;AACnB,gCAAKgC,WAAL,wEAAkBC,OAAlB;AACA,WAAKC,YAAL,CAAkBC,KAAlB;AACD;;;WAED,qCAAsC;AACpC,aAAO,EAAP;AACD;;;EAtDoCC,mB","sourcesContent":["import { gl, IModel } from '@antv/l7-core';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IMaskLayerStyleOptions } from '../../core/interface';\nimport { polygonTriangulation } from '../../core/triangulation';\nimport mask_frag from '../shaders/mask_frag.glsl';\nimport mask_vert from '../shaders/mask_vert.glsl';\n\nexport default class MaskModel extends BaseModel {\n public getUninforms() {\n const {\n opacity = 0,\n } = this.layer.getLayerConfig() as IMaskLayerStyleOptions;\n return {\n u_opacity: isNumber(opacity) ? opacity : 0.0,\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.buildModels(callbackModel);\n }\n\n public async buildModels(callbackModel: (models: IModel[]) => void) {\n this.layer\n .buildLayerModel({\n moduleName: 'mask',\n vertexShader: mask_vert,\n fragmentShader: mask_frag,\n triangulation: polygonTriangulation,\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: {\n enable: true,\n mask: 0xff,\n func: {\n cmp: gl.ALWAYS,\n ref: 1,\n mask: 0xff,\n },\n opFront: {\n fail: gl.REPLACE,\n zfail: gl.REPLACE,\n zpass: gl.REPLACE,\n },\n },\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n this.layerService.clear();\n }\n\n protected registerBuiltinAttributes() {\n return '';\n }\n}\n"],"file":"fill.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mask/models/index.ts"],"names":["MaskModels","fill","FillModel"],"mappings":";;;;;;;;;AAAA;;AAIA,IAAMA,UAA2C,GAAG;AAClDC,EAAAA,IAAI,EAAEC;AAD4C,CAApD;eAGeF,U","sourcesContent":["import FillModel from './fill';\n\nexport type MaskModelType = 'fill';\n\nconst MaskModels: { [key in MaskModelType]: any } = {\n fill: FillModel,\n};\nexport default MaskModels;\n"],"file":"index.js"}
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/DataSourcePlugin.ts"],"names":["DataSourcePlugin","layer","mapService","getContainer","get","TYPES","IMapService","hooks","init","tap","source","getSource","defaultSourceConfig","DEFAULT_SOURCE","type","data","DEFAULT_DATA","options","DEFAULT_PARSER","sourceOption","Source","setSource","inited","updateClusterData","once","beforeRenderData","neeUpdateCluster","dataSourceNeedUpdate","dataState","cluster","clusterOptions","zoom","newZoom","getZoom","Math","floor","abs","clusterZoom"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AAOA;;AAKA;;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,YAAIC,MAAM,GAAGT,KAAK,CAACU,SAAN,EAAb;;AACA,YAAI,CAACD,MAAL,EAAa;AAEX,cAAME,mBAAmB,GAAGC,yBAC1BZ,KAAK,CAACa,IADoB,KAEvB;AACHC,YAAAA,IAAI,EAAEC,sBADH;AAEHC,YAAAA,OAAO,EAAEC;AAFN,WAFL;;AAMA,qBAA0BjB,KAAK,CAACkB,YAAN,IAAsBP,mBAAhD;AAAA,cAAQG,IAAR,QAAQA,IAAR;AAAA,cAAcE,OAAd,QAAcA,OAAd;;AACAP,UAAAA,MAAM,GAAG,IAAIU,iBAAJ,CAAWL,IAAX,EAAiBE,OAAjB,CAAT;AACAhB,UAAAA,KAAK,CAACoB,SAAN,CAAgBX,MAAhB;AACD;;AACD,YAAIA,MAAM,CAACY,MAAX,EAAmB;AACjB,UAAA,KAAI,CAACC,iBAAL,CAAuBtB,KAAvB;AACD,SAFD,MAEO;AACLS,UAAAA,MAAM,CAACc,IAAP,CAAY,cAAZ,EAA4B,YAAM;AAChC,YAAA,KAAI,CAACD,iBAAL,CAAuBtB,KAAvB;AAED,WAHD;AAID;AAEF,OAvBD;AA0BAA,MAAAA,KAAK,CAACM,KAAN,CAAYkB,gBAAZ,CAA6BhB,GAA7B,CAAiC,kBAAjC,EAAqD,YAAM;AACzD,YAAMiB,gBAAgB,GAAG,KAAI,CAACH,iBAAL,CAAuBtB,KAAvB,CAAzB;;AACA,YAAM0B,oBAAoB,GAAG1B,KAAK,CAAC2B,SAAN,CAAgBD,oBAA7C;AACA1B,QAAAA,KAAK,CAAC2B,SAAN,CAAgBD,oBAAhB,GAAuC,KAAvC;AACA,eAAOD,gBAAgB,IAAIC,oBAA3B;AACD,OALD;AAMD;;;WAED,2BAA0B1B,KAA1B,EAAkD;AAChD,UAAMS,MAAM,GAAGT,KAAK,CAACU,SAAN,EAAf;AACA,UAAMkB,OAAO,GAAGnB,MAAM,CAACmB,OAAvB;AACA,kCAAqBnB,MAAM,CAACoB,cAA5B,CAAQC,IAAR;AAAA,UAAQA,IAAR,sCAAe,CAAf;AACA,UAAMC,OAAO,GAAG,KAAK9B,UAAL,CAAgB+B,OAAhB,KAA4B,CAA5C;AACA,UAAMN,oBAAoB,GAAG1B,KAAK,CAAC2B,SAAN,CAAgBD,oBAA7C;;AACA,UAAIE,OAAO,IAAIF,oBAAf,EAAqC;AAEnCjB,QAAAA,MAAM,CAACa,iBAAP,CAAyBW,IAAI,CAACC,KAAL,CAAWH,OAAX,CAAzB;AACD;;AAED,UAAIH,OAAO,IAAIK,IAAI,CAACE,GAAL,CAASnC,KAAK,CAACoC,WAAN,GAAoBL,OAA7B,KAAyC,CAAxD,EAA2D;AACzD,YAAID,IAAI,KAAKG,IAAI,CAACC,KAAL,CAAWH,OAAX,CAAb,EAAkC;AAChCtB,UAAAA,MAAM,CAACa,iBAAP,CAAyBW,IAAI,CAACC,KAAL,CAAWH,OAAX,CAAzB;AACD;;AACD/B,QAAAA,KAAK,CAACoC,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, {\n DEFAULT_DATA,\n DEFAULT_PARSER,\n DEFAULT_SOURCE,\n} 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 let source = layer.getSource();\n if (!source) {\n // TODO: 允许用户不使用 layer 的 source 方法,在这里传入一个默认的替换的默认数据\n const defaultSourceConfig = DEFAULT_SOURCE[\n layer.type as 'PointLayer' | 'LineLayer'\n ] || {\n data: DEFAULT_DATA,\n options: DEFAULT_PARSER,\n };\n const { data, options } = layer.sourceOption || defaultSourceConfig;\n source = new Source(data, options);\n layer.setSource(source);\n }\n if (source.inited) {\n this.updateClusterData(layer);\n } else {\n source.once('sourceUpdate', () => {\n this.updateClusterData(layer);\n // TODO: layer.hooks.init.call();\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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/FeatureScalePlugin.ts"],"names":["dateRegex","scaleMap","ScaleTypes","LINEAR","d3","scaleLinear","POWER","scalePow","LOG","scaleLog","IDENTITY","scaleIdentity","SEQUENTIAL","scaleSequential","TIME","scaleTime","QUANTILE","scaleQuantile","QUANTIZE","scaleQuantize","THRESHOLD","scaleThreshold","CAT","scaleOrdinal","DIVERGING","scaleDiverging","FeatureScalePlugin","TYPES","IGlobalConfigService","layer","styleAttributeService","hooks","init","tap","scaleOptions","getScaleOptions","attributes","getLayerStyleAttributes","dataArray","getSource","data","length","caculateScalesForAttributes","beforeRenderData","layerModelNeedUpdate","beforeRender","attributesToRescale","filter","attribute","needRescale","n","isNaN","parseFloat","isFinite","scaleCache","forEach","scale","attributeScale","type","name","names","parseFields","field","scales","push","createScale","values","some","StyleScaleType","VARIABLE","callback","option","tick","ticks","domain","range","interpolator","d3interpolate","interpolateRgbBasis","CONSTANT","defaultValues","map","index","scalers","func","Array","isArray","split","scaleOption","styleScale","undefined","createDefaultScale","firstValue","find","d","isNumber","getDefaultType","cfg","createScaleConfig","test","item","minMax","neutral","unknown","clamp","nice"],"mappings":"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","sourcesContent":["import {\n IGlobalConfigService,\n ILayer,\n ILayerPlugin,\n IScale,\n IScaleOptions,\n IStyleAttribute,\n IStyleAttributeService,\n IStyleScale,\n ScaleTypeName,\n ScaleTypes,\n StyleScaleType,\n TYPES,\n} from '@antv/l7-core';\nimport { IParseDataItem } from '@antv/l7-source';\nimport { extent, ticks } from 'd3-array';\nimport * as d3interpolate from 'd3-interpolate';\nimport * as d3 from 'd3-scale';\nimport { inject, injectable } from 'inversify';\nimport { isNil, isString, uniq } from 'lodash';\nimport 'reflect-metadata';\n\nconst dateRegex = /^(?:(?!0000)[0-9]{4}([-/.]+)(?:(?:0?[1-9]|1[0-2])\\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\\1(?:29|30)|(?:0?[13578]|1[02])\\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-/.]?)0?2\\2(?:29))(\\s+([01]|([01][0-9]|2[0-3])):([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9]))?$/;\n\nconst scaleMap = {\n [ScaleTypes.LINEAR]: d3.scaleLinear,\n [ScaleTypes.POWER]: d3.scalePow,\n [ScaleTypes.LOG]: d3.scaleLog,\n [ScaleTypes.IDENTITY]: d3.scaleIdentity,\n [ScaleTypes.SEQUENTIAL]: d3.scaleSequential,\n [ScaleTypes.TIME]: d3.scaleTime,\n [ScaleTypes.QUANTILE]: d3.scaleQuantile,\n [ScaleTypes.QUANTIZE]: d3.scaleQuantize,\n [ScaleTypes.THRESHOLD]: d3.scaleThreshold,\n [ScaleTypes.CAT]: d3.scaleOrdinal,\n [ScaleTypes.DIVERGING]: d3.scaleDiverging,\n};\n\n/**\n * 根据 Source 原始数据为指定字段创建 Scale,保存在 StyleAttribute 上,供下游插件使用\n */\n@injectable()\nexport default class FeatureScalePlugin implements ILayerPlugin {\n @inject(TYPES.IGlobalConfigService)\n private readonly configService: IGlobalConfigService;\n // key = field_attribute name\n private scaleCache: {\n [field: string]: IStyleScale;\n } = {};\n\n private scaleOptions: IScaleOptions = {};\n\n public apply(\n layer: ILayer,\n {\n styleAttributeService,\n }: { styleAttributeService: IStyleAttributeService },\n ) {\n layer.hooks.init.tap('FeatureScalePlugin', () => {\n this.scaleOptions = layer.getScaleOptions();\n const attributes = styleAttributeService.getLayerStyleAttributes();\n const { dataArray } = layer.getSource().data;\n if (dataArray.length === 0) {\n return;\n }\n this.caculateScalesForAttributes(attributes || [], dataArray);\n });\n\n // 检测数据是否需要更新\n layer.hooks.beforeRenderData.tap('FeatureScalePlugin', () => {\n this.scaleOptions = layer.getScaleOptions();\n const attributes = styleAttributeService.getLayerStyleAttributes();\n const { dataArray } = layer.getSource().data;\n this.caculateScalesForAttributes(attributes || [], dataArray);\n layer.layerModelNeedUpdate = true;\n return true;\n });\n\n layer.hooks.beforeRender.tap('FeatureScalePlugin', () => {\n if (layer.layerModelNeedUpdate) {\n return;\n }\n this.scaleOptions = layer.getScaleOptions();\n const attributes = styleAttributeService.getLayerStyleAttributes();\n if (attributes) {\n const { dataArray } = layer.getSource().data;\n if (dataArray.length === 0) {\n return;\n }\n const attributesToRescale = attributes.filter(\n (attribute) => attribute.needRescale,\n );\n if (attributesToRescale.length) {\n this.caculateScalesForAttributes(attributesToRescale, dataArray);\n }\n }\n });\n }\n private isNumber(n: any) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n private caculateScalesForAttributes(\n attributes: IStyleAttribute[],\n dataArray: IParseDataItem[],\n ) {\n this.scaleCache = {};\n attributes.forEach((attribute) => {\n if (attribute.scale) {\n // 创建Scale\n const attributeScale = attribute.scale;\n const type = attribute.name;\n attributeScale.names = this.parseFields(attribute!.scale!.field || []);\n const scales: IStyleScale[] = [];\n // 为每个字段创建 Scale\n attributeScale.names.forEach((field: string | number) => {\n scales.push(\n this.createScale(\n field,\n attribute.name,\n attribute.scale?.values,\n dataArray,\n ),\n );\n });\n\n // 为scales 设置值区间 Range\n if (scales.some((scale) => scale.type === StyleScaleType.VARIABLE)) {\n attributeScale.type = StyleScaleType.VARIABLE;\n scales.forEach((scale) => {\n // 如果设置了回调, 这不需要设置range\n if (!attributeScale.callback && attributeScale.values !== 'text') {\n switch (scale.option?.type) {\n case ScaleTypes.LOG:\n case ScaleTypes.LINEAR:\n case ScaleTypes.POWER:\n if (\n attributeScale.values &&\n attributeScale.values.length > 2\n ) {\n const tick = scale.scale.ticks(\n attributeScale.values.length,\n );\n scale.scale.domain(tick);\n }\n attributeScale.values\n ? scale.scale.range(attributeScale.values)\n : scale.scale.range(scale.option.domain);\n break;\n case ScaleTypes.QUANTILE:\n case ScaleTypes.QUANTIZE:\n case ScaleTypes.THRESHOLD:\n scale.scale.range(attributeScale.values); //\n break;\n case ScaleTypes.CAT:\n attributeScale.values\n ? scale.scale.range(attributeScale.values)\n : scale.scale.range(scale.option.domain);\n break;\n case ScaleTypes.DIVERGING:\n case ScaleTypes.SEQUENTIAL:\n scale.scale.interpolator(\n // @ts-ignore\n d3interpolate.interpolateRgbBasis(attributeScale.values),\n );\n break;\n }\n }\n if (attributeScale.values === 'text') {\n scale.scale.range(scale.option?.domain);\n }\n });\n } else {\n // 设置attribute 常量值 常量直接在value取值\n attributeScale.type = StyleScaleType.CONSTANT;\n attributeScale.defaultValues = scales.map((scale, index) => {\n return scale.scale(attributeScale.names[index]);\n });\n }\n attributeScale.scalers = scales.map((scale: IStyleScale) => {\n return {\n field: scale.field,\n func: scale.scale,\n option: scale.option,\n };\n });\n\n attribute.needRescale = false;\n }\n });\n }\n\n /**\n * @example\n * 'w*h' => ['w', 'h']\n * 'w' => ['w']\n */\n private parseFields(\n field: string[] | string | number[] | number,\n ): string[] | number[] {\n if (Array.isArray(field)) {\n return field;\n }\n if (isString(field)) {\n return field.split('*');\n }\n return [field];\n }\n\n private createScale(\n field: string | number,\n name: string,\n values: unknown[] | string | undefined,\n data?: IParseDataItem[],\n ): IStyleScale {\n // scale 支持根据视觉通道和字段\n const scaleOption: IScale | undefined =\n this.scaleOptions[name] && this.scaleOptions[name]?.field === field\n ? this.scaleOptions[name] // TODO zi\n : this.scaleOptions[field];\n const styleScale: IStyleScale = {\n field,\n scale: undefined,\n type: StyleScaleType.VARIABLE,\n option: scaleOption,\n };\n\n if (!data || !data.length) {\n if (scaleOption && scaleOption.type) {\n styleScale.scale = this.createDefaultScale(scaleOption);\n } else {\n styleScale.scale = d3.scaleOrdinal([field]);\n styleScale.type = StyleScaleType.CONSTANT;\n }\n return styleScale;\n }\n const firstValue = data!.find((d) => !isNil(d[field]))?.[field];\n // 常量 Scale\n if (this.isNumber(field) || (isNil(firstValue) && !scaleOption)) {\n styleScale.scale = d3.scaleOrdinal([field]);\n styleScale.type = StyleScaleType.CONSTANT;\n } else {\n // 根据数据类型判断 默认等分位,时间,和枚举类型\n let type =\n (scaleOption && scaleOption.type) || this.getDefaultType(firstValue);\n if (values === 'text') {\n // text 为内置变 如果是文本则为cat\n type = ScaleTypes.CAT;\n }\n const cfg = this.createScaleConfig(type, field, scaleOption, data);\n\n styleScale.scale = this.createDefaultScale(cfg);\n styleScale.option = cfg;\n }\n return styleScale;\n }\n\n private getDefaultType(firstValue: unknown) {\n let type = ScaleTypes.LINEAR;\n if (typeof firstValue === 'string') {\n type = dateRegex.test(firstValue) ? ScaleTypes.TIME : ScaleTypes.CAT;\n }\n return type;\n }\n // 生成Scale 默认配置\n private createScaleConfig(\n type: ScaleTypeName,\n field: string | number,\n scaleOption: IScale | undefined,\n data?: IParseDataItem[],\n ) {\n const cfg: IScale = {\n type,\n };\n const values = data?.map((item) => item[field]) || [];\n if (scaleOption?.domain) {\n cfg.domain = scaleOption?.domain;\n }\n // 默认类型为 Quantile Scales https://github.com/d3/d3-scale#quantile-scales\n else if (\n type !== ScaleTypes.CAT &&\n type !== ScaleTypes.QUANTILE &&\n type !== ScaleTypes.DIVERGING\n ) {\n // linear/\n cfg.domain = extent(values);\n } else if (type === ScaleTypes.CAT) {\n cfg.domain = uniq(values);\n } else if (type === ScaleTypes.QUANTILE) {\n cfg.domain = values;\n } else if (type === ScaleTypes.DIVERGING) {\n const minMax = extent(values);\n const neutral =\n scaleOption?.neutral !== undefined\n ? scaleOption?.neutral\n : (minMax[0] + minMax[1]) / 2;\n cfg.domain = [minMax[0], neutral, minMax[1]];\n }\n return { ...cfg, ...scaleOption };\n }\n\n // 创建Scale 实例\n private createDefaultScale({ type, domain, unknown, clamp, nice }: IScale) {\n // @ts-ignore\n const scale = scaleMap[type]();\n if (domain && scale.domain) {\n scale.domain(domain);\n }\n if (unknown) {\n scale.unknown(unknown);\n }\n if (clamp !== undefined && scale.clamp) {\n scale.clamp(clamp);\n }\n if (nice !== undefined && scale.nice) {\n scale.nice(nice);\n }\n // TODO 其他属性支持\n return scale;\n }\n}\n"],"file":"FeatureScalePlugin.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/LayerAnimateStylePlugin.ts"],"names":["LayerAnimateStylePlugin","TYPES","ICameraService","IRendererService","layer","hooks","beforeRender","tap","models","forEach","model","addUniforms","layerModel","getAnimateUniforms"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AAWA;;AACA;;;;;;;;IAGqBA,uB,WADpB,4B,UAEE,uBAAOC,cAAMC,cAAb,C,UAGA,uBAAOD,cAAME,gBAAb,C;;;;;;;;;WAGD,eAAaC,KAAb,EAA4B;AAI1BA,MAAAA,KAAK,CAACC,KAAN,CAAYC,YAAZ,CAAyBC,GAAzB,CAA6B,yBAA7B,EAAwD,YAAM;AAE5DH,QAAAA,KAAK,CAACI,MAAN,CAAaC,OAAb,CAAqB,UAACC,KAAD,EAAmB;AACtCA,UAAAA,KAAK,CAACC,WAAN,mBACKP,KAAK,CAACQ,UAAN,CAAiBC,kBAAjB,EADL;AAGD,SAJD;AAKD,OAPD;AAQD","sourcesContent":["import {\n CameraUniform,\n CoordinateUniform,\n ICameraService,\n ICoordinateSystemService,\n ILayer,\n ILayerPlugin,\n IModel,\n IRendererService,\n TYPES,\n} from '@antv/l7-core';\nimport { inject, injectable } from 'inversify';\nimport 'reflect-metadata';\n\n@injectable()\nexport default class LayerAnimateStylePlugin implements ILayerPlugin {\n @inject(TYPES.ICameraService)\n private readonly cameraService: ICameraService;\n\n @inject(TYPES.IRendererService)\n private readonly rendererService: IRendererService;\n\n public apply(layer: ILayer) {\n // layer.hooks.beforeRender.tap('LayerAnimateStylePlugin', () => {\n\n // })\n layer.hooks.beforeRender.tap('LayerAnimateStylePlugin', () => {\n // 重新计算坐标系参数\n layer.models.forEach((model: IModel) => {\n model.addUniforms({\n ...layer.layerModel.getAnimateUniforms(),\n });\n });\n });\n }\n}\n"],"file":"LayerAnimateStylePlugin.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/LayerModelPlugin.ts"],"names":["LayerModelPlugin","layer","prepareBuildModel","buildModels","emit","styleNeedUpdate","clearModels","layerModelNeedUpdate","hooks","init","tap","inited","source","getSource","initLayerModel","beforeRenderData","prepareLayerModel","once"],"mappings":";;;;;;;;;;;;;AACA;;AACA;;;;IAKqBA,gB,WADpB,4B;;;;;;;WAEC,wBAAsBC,KAAtB,EAAqC;AAEnCA,MAAAA,KAAK,CAACC,iBAAN;AAEAD,MAAAA,KAAK,CAACE,WAAN;AAEAF,MAAAA,KAAK,CAACG,IAAN,CAAW,aAAX,EAA0B,IAA1B;AACAH,MAAAA,KAAK,CAACI,eAAN,GAAwB,KAAxB;AACD;;;WAED,2BAAyBJ,KAAzB,EAAwC;AAEtCA,MAAAA,KAAK,CAACC,iBAAN;AACAD,MAAAA,KAAK,CAACK,WAAN;AAEAL,MAAAA,KAAK,CAACE,WAAN;AAEAF,MAAAA,KAAK,CAACG,IAAN,CAAW,aAAX,EAA0B,IAA1B;AACAH,MAAAA,KAAK,CAACM,oBAAN,GAA6B,KAA7B;AACD;;;WAED,eAAaN,KAAb,EAA4B;AAAA;;AAC1BA,MAAAA,KAAK,CAACO,KAAN,CAAYC,IAAZ,CAAiBC,GAAjB,CAAqB,kBAArB,EAAyC,YAAM;AAC7CT,QAAAA,KAAK,CAACU,MAAN,GAAe,IAAf;AACA,YAAMC,MAAM,GAAGX,KAAK,CAACY,SAAN,EAAf;;AACA,YAAID,MAAM,CAACD,MAAX,EAAmB;AACjB,UAAA,KAAI,CAACG,cAAL,CAAoBb,KAApB;AACD;AACF,OAND;AAQAA,MAAAA,KAAK,CAACO,KAAN,CAAYO,gBAAZ,CAA6BL,GAA7B,CAAiC,kBAAjC,EAAqD,YAAM;AACzD,YAAME,MAAM,GAAGX,KAAK,CAACY,SAAN,EAAf;;AACA,YAAID,MAAM,CAACD,MAAX,EAAmB;AACjB,UAAA,KAAI,CAACK,iBAAL,CAAuBf,KAAvB;AACD,SAFD,MAEO;AACLW,UAAAA,MAAM,CAACK,IAAP,CAAY,cAAZ,EAA4B,YAAM;AAChC,YAAA,KAAI,CAACD,iBAAL,CAAuBf,KAAvB;AACD,WAFD;AAGD;;AACD,eAAO,KAAP;AACD,OAVD;AAWD","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 initLayerModel(layer: ILayer) {\n // 更新Model 配置项\n layer.prepareBuildModel();\n // 初始化 Model\n layer.buildModels();\n // emit layer model loaded\n layer.emit('modelLoaded', null);\n layer.styleNeedUpdate = false;\n }\n\n public prepareLayerModel(layer: ILayer) {\n // 更新Model 配置项\n layer.prepareBuildModel();\n layer.clearModels();\n // 初始化 Model\n layer.buildModels();\n // emit layer model loaded\n layer.emit('modelLoaded', null);\n layer.layerModelNeedUpdate = false;\n }\n\n public apply(layer: ILayer) {\n layer.hooks.init.tap('LayerModelPlugin', () => {\n layer.inited = true;\n const source = layer.getSource();\n if (source.inited) {\n this.initLayerModel(layer);\n }\n });\n\n layer.hooks.beforeRenderData.tap('DataSourcePlugin', () => {\n const source = layer.getSource();\n if (source.inited) {\n this.prepareLayerModel(layer);\n } else {\n source.once('sourceUpdate', () => {\n this.prepareLayerModel(layer);\n });\n }\n return false;\n });\n }\n}\n"],"file":"LayerModelPlugin.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/LayerStylePlugin.ts"],"names":["LayerStylePlugin","layer","hooks","afterInit","tap","updateLayerConfig","getLayerConfig","autoFit","fitBoundsOptions","setTimeout","fitBounds"],"mappings":";;;;;;;;;;;;;AACA;;AACA;;;;IAKqBA,gB,WADpB,4B;;;;;;;WAEC,eAAaC,KAAb,EAA4B;AAC1BA,MAAAA,KAAK,CAACC,KAAN,CAAYC,SAAZ,CAAsBC,GAAtB,CAA0B,kBAA1B,EAA8C,YAAM;AAElDH,QAAAA,KAAK,CAACI,iBAAN,CAAwB,EAAxB;;AACA,oCAAsCJ,KAAK,CAACK,cAAN,EAAtC;AAAA,YAAQC,OAAR,yBAAQA,OAAR;AAAA,YAAiBC,gBAAjB,yBAAiBA,gBAAjB;;AACA,YAAID,OAAJ,EAAa;AACXE,UAAAA,UAAU,CAAC,YAAM;AACfR,YAAAA,KAAK,CAACS,SAAN,CAAgBF,gBAAhB;AACD,WAFS,EAEP,GAFO,CAAV;AAGD;AACF,OATD;AAUD","sourcesContent":["import { ILayer, ILayerPlugin, IMapService, TYPES } from '@antv/l7-core';\nimport { injectable } from 'inversify';\nimport 'reflect-metadata';\n/**\n * 更新图层样式,初始图层相关配置\n */\n@injectable()\nexport default class LayerStylePlugin implements ILayerPlugin {\n public apply(layer: ILayer) {\n layer.hooks.afterInit.tap('LayerStylePlugin', () => {\n // 更新图层默认状态\n layer.updateLayerConfig({});\n const { autoFit, fitBoundsOptions } = layer.getLayerConfig();\n if (autoFit) {\n setTimeout(() => {\n layer.fitBounds(fitBoundsOptions);\n }, 100);\n }\n });\n }\n}\n"],"file":"LayerStylePlugin.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/LightingPlugin.ts"],"names":["lightTypeUniformMap","directional","lights","num","spot","DEFAULT_LIGHT","type","direction","ambient","diffuse","specular","DEFAULT_DIRECTIONAL_LIGHT","DEFAULT_SPOT_LIGHT","position","constant","linear","quadratic","angle","exponent","blur","COLOR_ATTRIBUTES","generateLightingUniforms","lightsMap","u_DirectionalLights","Array","fill","u_NumOfDirectionalLights","u_SpotLights","u_NumOfSpotLights","length","forEach","i","rest","lightsUniformName","lightsNumUniformName","LightingPlugin","layer","hooks","beforeRender","tap","getLayerConfig","enableLighting","models","model","addUniforms"],"mappings":"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","sourcesContent":["import {\n CameraUniform,\n CoordinateUniform,\n ICameraService,\n ICoordinateSystemService,\n ILayer,\n ILayerPlugin,\n IRendererService,\n TYPES,\n} from '@antv/l7-core';\nimport { inject, injectable } from 'inversify';\nimport 'reflect-metadata';\n\nconst lightTypeUniformMap = {\n directional: {\n lights: 'u_DirectionalLights',\n num: 'u_NumOfDirectionalLights',\n },\n spot: {\n lights: 'u_SpotLights',\n num: 'u_NumOfSpotLights',\n },\n};\n\ninterface IDirectionalLight {\n type: 'directional';\n direction: [number, number, number];\n ambient: [number, number, number];\n diffuse: [number, number, number];\n specular: [number, number, number];\n}\n\ninterface ISpotLight {\n type: 'spot';\n position: [number, number, number];\n direction: [number, number, number];\n ambient: [number, number, number];\n diffuse: [number, number, number];\n specular: [number, number, number];\n constant: number;\n linear: number;\n quadratic: number;\n angle: number;\n exponent: number;\n blur: number;\n}\n\nconst DEFAULT_LIGHT: IDirectionalLight = {\n type: 'directional',\n direction: [1, 10.5, 12],\n ambient: [0.2, 0.2, 0.2],\n diffuse: [0.6, 0.6, 0.6],\n specular: [0.1, 0.1, 0.1],\n};\n\nconst DEFAULT_DIRECTIONAL_LIGHT = {\n direction: [0, 0, 0],\n ambient: [0, 0, 0],\n diffuse: [0, 0, 0],\n specular: [0, 0, 0],\n};\n\nconst DEFAULT_SPOT_LIGHT = {\n position: [0, 0, 0],\n direction: [0, 0, 0],\n ambient: [0, 0, 0],\n diffuse: [0, 0, 0],\n specular: [0, 0, 0],\n constant: 1,\n linear: 0,\n quadratic: 0,\n angle: 14,\n exponent: 40,\n blur: 5,\n};\n\nconst COLOR_ATTRIBUTES = ['ambient', 'diffuse', 'specular'];\n\nexport function generateLightingUniforms(\n lights?: Array<Partial<IDirectionalLight | ISpotLight>>,\n) {\n const lightsMap: {\n u_DirectionalLights: Array<Omit<IDirectionalLight, 'type'>>;\n u_NumOfDirectionalLights: number;\n u_SpotLights: Array<Omit<ISpotLight, 'type'>>;\n u_NumOfSpotLights: number;\n } = {\n u_DirectionalLights: new Array(3).fill({ ...DEFAULT_DIRECTIONAL_LIGHT }),\n u_NumOfDirectionalLights: 0,\n u_SpotLights: new Array(3).fill({ ...DEFAULT_SPOT_LIGHT }),\n u_NumOfSpotLights: 0,\n };\n if (!lights || !lights.length) {\n lights = [DEFAULT_LIGHT];\n }\n lights.forEach(({ type = 'directional', ...rest }, i) => {\n const lightsUniformName = lightTypeUniformMap[type].lights;\n const lightsNumUniformName = lightTypeUniformMap[type].num;\n\n // Object.keys(rest).forEach(key => {\n // if (Util.isString(rest[key]) && COLOR_ATTRIBUTES.indexOf(key) > -1) {\n // rest[key] = ColorUtil.color2RGBA(rest[key]).slice(0, 3);\n // }\n // });\n\n // @ts-ignore\n const num = lightsMap[lightsNumUniformName];\n // @ts-ignore\n lightsMap[lightsUniformName][num] = {\n // @ts-ignore\n ...lightsMap[lightsUniformName][num],\n ...rest,\n };\n // @ts-ignore\n lightsMap[lightsNumUniformName]++;\n });\n return lightsMap;\n}\n\n/**\n * 光照 & Shadow\n */\n@injectable()\nexport default class LightingPlugin implements ILayerPlugin {\n public apply(layer: ILayer) {\n layer.hooks.beforeRender.tap('LightingPlugin', () => {\n const { enableLighting } = layer.getLayerConfig();\n if (enableLighting) {\n layer.models.forEach((model) =>\n // @ts-ignore\n model.addUniforms({\n ...generateLightingUniforms(),\n }),\n );\n }\n });\n }\n}\n"],"file":"LightingPlugin.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/MultiPassRendererPlugin.ts"],"names":["MultiPassRendererPlugin","TYPES","IGlobalConfigService","layer","rendererService","postProcessingPassFactory","normalPassFactory","hooks","init","tap","getLayerConfig","enableMultiPassRenderer","passes","enabled","multiPassRenderer","setRenderFlag","beforeRender","getViewportSize","width","height","resize"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AASA;;AACA;;AACA;;;;IAgBqBA,uB,WADpB,4B,UAEE,uBAAOC,cAAMC,oBAAb,C;;;;;;;;;WAKD,eACEC,KADF,QAWE;AAAA;;AAAA,UAREC,eAQF,QAREA,eAQF;AAAA,UAPEC,yBAOF,QAPEA,yBAOF;AAAA,UANEC,iBAMF,QANEA,iBAMF;AACAH,MAAAA,KAAK,CAACI,KAAN,CAAYC,IAAZ,CAAiBC,GAAjB,CAAqB,yBAArB,EAAgD,YAAM;AACpD,oCAAiDN,KAAK,CAACO,cAAN,EAAjD;AAAA,YAAQC,uBAAR,yBAAQA,uBAAR;AAAA,2DAAiCC,MAAjC;AAAA,YAAiCA,MAAjC,uCAA0C,EAA1C;;AAGA,QAAA,KAAI,CAACC,OAAL,GACE,CAAC,CAACF,uBAAF,IACAR,KAAK,CAACO,cAAN,GAAuBC,uBAAvB,KAAmD,KAFrD;;AAKA,YAAI,KAAI,CAACE,OAAT,EAAkB;AAChBV,UAAAA,KAAK,CAACW,iBAAN,GAA0B,8CACxBX,KADwB,EAExBS,MAFwB,EAGxBP,yBAHwB,EAIxBC,iBAJwB,CAA1B;AAMAH,UAAAA,KAAK,CAACW,iBAAN,CAAwBC,aAAxB,CAAsC,IAAtC;AACD;AACF,OAlBD;AAoBAZ,MAAAA,KAAK,CAACI,KAAN,CAAYS,YAAZ,CAAyBP,GAAzB,CAA6B,yBAA7B,EAAwD,YAAM;AAC5D,YAAI,KAAI,CAACI,OAAT,EAAkB;AAEhB,sCAA0BT,eAAe,CAACa,eAAhB,EAA1B;AAAA,cAAQC,KAAR,yBAAQA,KAAR;AAAA,cAAeC,MAAf,yBAAeA,MAAf;;AACAhB,UAAAA,KAAK,CAACW,iBAAN,CAAwBM,MAAxB,CAA+BF,KAA/B,EAAsCC,MAAtC;AACD;AACF,OAND;AAOD","sourcesContent":["import {\n IGlobalConfigService,\n ILayer,\n ILayerPlugin,\n IPass,\n IPostProcessingPass,\n IRendererService,\n TYPES,\n} from '@antv/l7-core';\nimport { inject, injectable } from 'inversify';\nimport 'reflect-metadata';\nimport { createMultiPassRenderer } from '../utils/multiPassRender';\n\n/**\n * 自定义渲染管线:\n * ClearPass -> PixelPickingPass(可选) -> RenderPass/TAAPass -> PostProcessing -> CopyPass\n * 根据 Layer 配置的 passes 创建 PostProcessing\n * @example\n * new PolygonLayer({\n * enableMultiPassRenderer: true,\n * passes: [\n * 'blurH',\n * ['blurV', { radius: 10 }],\n * ],\n * })\n */\n@injectable()\nexport default class MultiPassRendererPlugin implements ILayerPlugin {\n @inject(TYPES.IGlobalConfigService)\n private readonly configService: IGlobalConfigService;\n\n private enabled: boolean;\n\n public apply(\n layer: ILayer,\n {\n rendererService,\n postProcessingPassFactory,\n normalPassFactory,\n }: {\n rendererService: IRendererService;\n postProcessingPassFactory: (name: string) => IPostProcessingPass<unknown>;\n normalPassFactory: (name: string) => IPass<unknown>;\n },\n ) {\n layer.hooks.init.tap('MultiPassRendererPlugin', () => {\n const { enableMultiPassRenderer, passes = [] } = layer.getLayerConfig();\n\n // SceneConfig 的 enableMultiPassRenderer 配置项可以统一关闭\n this.enabled =\n !!enableMultiPassRenderer &&\n layer.getLayerConfig().enableMultiPassRenderer !== false;\n\n // 根据 LayerConfig passes 配置项初始化\n if (this.enabled) {\n layer.multiPassRenderer = createMultiPassRenderer(\n layer,\n passes,\n postProcessingPassFactory,\n normalPassFactory,\n );\n layer.multiPassRenderer.setRenderFlag(true);\n }\n });\n\n layer.hooks.beforeRender.tap('MultiPassRendererPlugin', () => {\n if (this.enabled) {\n // 渲染前根据 viewport 调整 FBO size\n const { width, height } = rendererService.getViewportSize();\n layer.multiPassRenderer.resize(width, height);\n }\n });\n }\n}\n"],"file":"MultiPassRendererPlugin.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/PixelPickingPlugin.ts"],"names":["PickingStage","NONE","ENCODE","HIGHLIGHT","PixelPickingPlugin","layer","rendererService","styleAttributeService","hooks","init","tap","getLayerConfig","enablePicking","enableMultiPassRenderer","registerStyleAttribute","name","type","AttributeType","Attribute","descriptor","buffer","data","gl","FLOAT","size","update","feature","featureIdx","id","beforePickingEncode","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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/RegisterStyleAttributePlugin.ts"],"names":["RegisterStyleAttributePlugin","layer","styleAttributeService","hooks","init","tap","registerBuiltinAttributes","registerStyleAttribute","name","type","AttributeType","Attribute","descriptor","buffer","data","gl","FLOAT","size","update","feature","featureIdx","vertex","length","usage","DYNAMIC_DRAW","filter","color","attributeIdx"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n ILayer,\n ILayerPlugin,\n IStyleAttributeService,\n TYPES,\n} from '@antv/l7-core';\nimport { inject, injectable } from 'inversify';\nimport 'reflect-metadata';\n\n/**\n * 在初始化阶段完成属性的注册,以及首次根据 Layer 指定的三角化方法完成 indices 和 attribute 的创建\n */\n@injectable()\nexport default class RegisterStyleAttributePlugin implements ILayerPlugin {\n public apply(\n layer: ILayer,\n {\n styleAttributeService,\n }: { styleAttributeService: IStyleAttributeService },\n ) {\n layer.hooks.init.tap('RegisterStyleAttributePlugin', () => {\n this.registerBuiltinAttributes(styleAttributeService);\n });\n }\n\n private registerBuiltinAttributes(\n styleAttributeService: IStyleAttributeService,\n ) {\n styleAttributeService.registerStyleAttribute({\n name: 'position',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Position',\n buffer: {\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n ) => {\n return vertex.length === 2\n ? [vertex[0], vertex[1], 0]\n : [vertex[0], vertex[1], vertex[2]];\n },\n },\n });\n\n styleAttributeService.registerStyleAttribute({\n name: 'filter',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'filter',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (feature: IEncodeFeature, featureIdx: number) => {\n const { filter } = feature;\n return filter ? [1] : [0];\n },\n },\n });\n styleAttributeService.registerStyleAttribute({\n name: 'color',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Color',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 4,\n update: (feature: IEncodeFeature, featureIdx: number) => {\n const { color } = feature;\n return !color || !color.length ? [1, 1, 1, 1] : color;\n },\n },\n });\n styleAttributeService.registerStyleAttribute({\n // 统一注册每个顶点的唯一编号(目前用于样式的数据映射计算使用)\n name: 'vertexId',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_vertexId',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [featureIdx];\n },\n },\n });\n }\n}\n"],"file":"RegisterStyleAttributePlugin.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/ShaderUniformPlugin.ts"],"names":["ShaderUniformPlugin","TYPES","ICameraService","ICoordinateSystemService","IRendererService","IMapService","layer","version","mapService","mvp","sceneCenterMKT","hooks","beforeRender","tap","offset","getLayerConfig","tileOrigin","coordinateSystemService","refresh","layerCenter","getLayerCenter","map","customCoords","setCenter","setCustomCoordCenter","getMVPMatrix","getCustomCoordCenter","rendererService","getViewportSize","width","height","models","forEach","model","addUniforms","CameraUniform","ProjectionMatrix","cameraService","getProjectionMatrix","ViewMatrix","getViewMatrix","ViewProjectionMatrix","getViewProjectionMatrix","Zoom","getZoom","ZoomScale","getZoomScale","FocalDistance","getFocalDistance","CameraPosition","getCameraPosition","CoordinateUniform","CoordinateSystem","getCoordinateSystem","ViewportCenter","getViewportCenter","ViewportCenterProjection","getViewportCenterProjection","PixelsPerDegree","getPixelsPerDegree","PixelsPerDegree2","getPixelsPerDegree2","PixelsPerMeter","getPixelsPerMeter","Mvp","getModelMatrix","$window","devicePixelRatio","pickingBuffer","Number","getShaderPickStat","source","getSource","center"],"mappings":"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","sourcesContent":["import {\n CameraUniform,\n CoordinateUniform,\n ICameraService,\n ICoordinateSystemService,\n ILayer,\n ILayerPlugin,\n IMapService,\n IRendererService,\n TYPES,\n} from '@antv/l7-core';\nimport { $window } from '@antv/l7-utils';\nimport { inject, injectable } from 'inversify';\nimport 'reflect-metadata';\n\n/**\n * 在渲染之前需要获取当前 Shader 所需 Uniform,例如:\n * 1. 从相机服务中获取 View & ProjectionMatrix,当前缩放等级等等\n * 2. 从坐标系服务中获取当前坐标系,例如是否是偏移坐标系\n * @see https://yuque.antfin-inc.com/yuqi.pyq/fgetpa/doml91\n * 3. 当前 Layer 本身的样式属性\n */\n@injectable()\nexport default class ShaderUniformPlugin implements ILayerPlugin {\n @inject(TYPES.ICameraService)\n private readonly cameraService: ICameraService;\n\n @inject(TYPES.ICoordinateSystemService)\n private readonly coordinateSystemService: ICoordinateSystemService;\n\n @inject(TYPES.IRendererService)\n private readonly rendererService: IRendererService;\n\n @inject(TYPES.IMapService)\n private readonly mapService: IMapService;\n\n public apply(layer: ILayer) {\n const version = this.mapService.version;\n\n let mvp = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]; // default matrix (for gaode2.x)\n let sceneCenterMKT = [0, 0];\n layer.hooks.beforeRender.tap('ShaderUniformPlugin', () => {\n // @ts-ignore\n const offset = layer.getLayerConfig().tileOrigin;\n // 重新计算坐标系参数\n this.coordinateSystemService.refresh(offset);\n\n if (version === 'GAODE2.x') {\n const layerCenter = this.getLayerCenter(layer);\n // @ts-ignore\n this.mapService.map.customCoords.setCenter(layerCenter);\n // @ts-ignore\n this.mapService.setCustomCoordCenter(layerCenter);\n // @ts-ignore\n mvp = this.mapService.map.customCoords.getMVPMatrix();\n // mvp = amapCustomCoords.getMVPMatrix()\n // @ts-ignore\n sceneCenterMKT = this.mapService.getCustomCoordCenter();\n }\n\n const { width, height } = this.rendererService.getViewportSize();\n layer.models.forEach((model) => {\n model.addUniforms({\n // 相机参数,包含 VP 矩阵、缩放等级\n [CameraUniform.ProjectionMatrix]: this.cameraService.getProjectionMatrix(),\n [CameraUniform.ViewMatrix]: this.cameraService.getViewMatrix(),\n [CameraUniform.ViewProjectionMatrix]: this.cameraService.getViewProjectionMatrix(),\n [CameraUniform.Zoom]: this.cameraService.getZoom(),\n [CameraUniform.ZoomScale]: this.cameraService.getZoomScale(),\n [CameraUniform.FocalDistance]: this.cameraService.getFocalDistance(),\n [CameraUniform.CameraPosition]: this.cameraService.getCameraPosition(),\n // 坐标系参数\n [CoordinateUniform.CoordinateSystem]: this.coordinateSystemService.getCoordinateSystem(),\n [CoordinateUniform.ViewportCenter]: this.coordinateSystemService.getViewportCenter(),\n [CoordinateUniform.ViewportCenterProjection]: this.coordinateSystemService.getViewportCenterProjection(),\n [CoordinateUniform.PixelsPerDegree]: this.coordinateSystemService.getPixelsPerDegree(),\n [CoordinateUniform.PixelsPerDegree2]: this.coordinateSystemService.getPixelsPerDegree2(),\n [CoordinateUniform.PixelsPerMeter]: this.coordinateSystemService.getPixelsPerMeter(),\n // 坐标系是高德2.0的时候单独计算\n [CoordinateUniform.Mvp]: mvp,\n u_SceneCenterMKT: sceneCenterMKT,\n // 其他参数,例如视口大小、DPR 等\n u_ViewportSize: [width, height],\n u_ModelMatrix: this.cameraService.getModelMatrix(),\n u_DevicePixelRatio: $window.devicePixelRatio,\n // u_ModelMatrix: [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1],\n u_PickingBuffer: layer.getLayerConfig().pickingBuffer || 0,\n // TODO: 当前地图是否在拖动\n u_shaderPick: Number(layer.getShaderPickStat()),\n });\n });\n\n // TODO:脏检查,决定是否需要渲染\n });\n }\n\n private getLayerCenter(layer: ILayer) {\n const source = layer.getSource();\n return source.center;\n }\n}\n"],"file":"ShaderUniformPlugin.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/UpdateModelPlugin.ts"],"names":["UpdateModelPlugin","layer","hooks","beforeRender","tap","layerModel","needUpdate"],"mappings":";;;;;;;;;;;;;AACA;;AACA;;;;IAKqBA,iB,WADpB,4B;;;;;;;WAEC,eAAaC,KAAb,EAA4B;AAC1BA,MAAAA,KAAK,CAACC,KAAN,CAAYC,YAAZ,CAAyBC,GAAzB,CAA6B,mBAA7B,EAAkD,YAAM;AAEtD,YAAIH,KAAK,CAACI,UAAV,EAAsB;AACpBJ,UAAAA,KAAK,CAACI,UAAN,CAAiBC,UAAjB;AACD;AACF,OALD;AAMD","sourcesContent":["import { ILayer, ILayerPlugin, IMapService, TYPES } from '@antv/l7-core';\nimport { injectable } from 'inversify';\nimport 'reflect-metadata';\n/**\n * Model 更新\n */\n@injectable()\nexport default class UpdateModelPlugin implements ILayerPlugin {\n public apply(layer: ILayer) {\n layer.hooks.beforeRender.tap('UpdateModelPlugin', () => {\n // 处理文本更新\n if (layer.layerModel) {\n layer.layerModel.needUpdate();\n }\n });\n }\n}\n"],"file":"UpdateModelPlugin.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/UpdateStyleAttributePlugin.ts"],"names":["UpdateStyleAttributePlugin","layer","styleAttributeService","hooks","init","tap","initStyleAttribute","beforeRender","layerModelNeedUpdate","updateStyleAtrribute","attributes","getLayerStyleAttributes","filter","getLayerStyleAttribute","shape","needRegenerateVertices","forEach","attr","attribute","updateAttributeByFeatureRange","name","getEncodedData","featureRange","startIndex","endIndex"],"mappings":";;;;;;;;;;;;;AAMA;;AACA;;;;IAMqBA,0B,WADpB,4B;;;;;;;WAEC,eACEC,KADF,QAKE;AAAA;;AAAA,UAFEC,qBAEF,QAFEA,qBAEF;AACAD,MAAAA,KAAK,CAACE,KAAN,CAAYC,IAAZ,CAAiBC,GAAjB,CAAqB,4BAArB,EAAmD,YAAM;AACvD,QAAA,KAAI,CAACC,kBAAL,CAAwBL,KAAxB,EAA+B;AAAEC,UAAAA,qBAAqB,EAArBA;AAAF,SAA/B;AACD,OAFD;AASAD,MAAAA,KAAK,CAACE,KAAN,CAAYI,YAAZ,CAAyBF,GAAzB,CAA6B,4BAA7B,EAA2D,YAAM;AAC/D,YAAIJ,KAAK,CAACO,oBAAV,EAAgC;AAC9B;AACD;;AACD,QAAA,KAAI,CAACC,oBAAL,CAA0BR,KAA1B,EAAiC;AAAEC,UAAAA,qBAAqB,EAArBA;AAAF,SAAjC;AACD,OALD;AAMD;;;WACD,8BACED,KADF,SAKE;AAAA,UAFEC,qBAEF,SAFEA,qBAEF;AACA,UAAMQ,UAAU,GAAGR,qBAAqB,CAACS,uBAAtB,MAAmD,EAAtE;AACA,UAAMC,MAAM,GAAGV,qBAAqB,CAACW,sBAAtB,CAA6C,QAA7C,CAAf;AACA,UAAMC,KAAK,GAAGZ,qBAAqB,CAACW,sBAAtB,CAA6C,OAA7C,CAAd;;AACA,UACED,MAAM,IACNA,MAAM,CAACG,sBAFT,EAIE;AACAd,QAAAA,KAAK,CAACO,oBAAN,GAA6B,IAA7B;AACAE,QAAAA,UAAU,CAACM,OAAX,CAAmB,UAACC,IAAD;AAAA,iBAAWA,IAAI,CAACF,sBAAL,GAA8B,KAAzC;AAAA,SAAnB;AACA;AACD;;AACDL,MAAAA,UAAU,CACPE,MADH,CACU,UAACM,SAAD;AAAA,eAAeA,SAAS,CAACH,sBAAzB;AAAA,OADV,EAEGC,OAFH,CAEW,UAACE,SAAD,EAAe;AAEtBhB,QAAAA,qBAAqB,CAACiB,6BAAtB,CACED,SAAS,CAACE,IADZ,EAEEnB,KAAK,CAACoB,cAAN,EAFF,EAGEH,SAAS,CAACI,YAAV,CAAuBC,UAHzB,EAIEL,SAAS,CAACI,YAAV,CAAuBE,QAJzB;AAMAN,QAAAA,SAAS,CAACH,sBAAV,GAAmC,KAAnC;AACD,OAXH;AAYD;;;WAED,4BACEd,KADF,SAKE;AAAA,UAFEC,qBAEF,SAFEA,qBAEF;AACA,UAAMQ,UAAU,GAAGR,qBAAqB,CAACS,uBAAtB,MAAmD,EAAtE;AACAD,MAAAA,UAAU,CACPE,MADH,CACU,UAACM,SAAD;AAAA,eAAeA,SAAS,CAACH,sBAAzB;AAAA,OADV,EAEGC,OAFH,CAEW,UAACE,SAAD,EAAe;AAEtBhB,QAAAA,qBAAqB,CAACiB,6BAAtB,CACED,SAAS,CAACE,IADZ,EAEEnB,KAAK,CAACoB,cAAN,EAFF,EAGEH,SAAS,CAACI,YAAV,CAAuBC,UAHzB,EAIEL,SAAS,CAACI,YAAV,CAAuBE,QAJzB;AAMAN,QAAAA,SAAS,CAACH,sBAAV,GAAmC,KAAnC;AACD,OAXH;AAYD","sourcesContent":["import {\n ILayer,\n ILayerPlugin,\n IStyleAttributeService,\n TYPES,\n} from '@antv/l7-core';\nimport { inject, injectable } from 'inversify';\nimport 'reflect-metadata';\n\n/**\n * 在初始化阶段完成属性的注册,以及首次根据 Layer 指定的三角化方法完成 indices 和 attribute 的创建\n */\n@injectable()\nexport default class UpdateStyleAttributePlugin implements ILayerPlugin {\n public apply(\n layer: ILayer,\n {\n styleAttributeService,\n }: { styleAttributeService: IStyleAttributeService },\n ) {\n layer.hooks.init.tap('UpdateStyleAttributePlugin', () => {\n this.initStyleAttribute(layer, { styleAttributeService });\n });\n\n // layer.hooks.beforeRenderData.tap('styleAttributeService', () => {\n // // layer.layerModelNeedUpdate = true;\n // return true;\n // });\n\n layer.hooks.beforeRender.tap('UpdateStyleAttributePlugin', () => {\n if (layer.layerModelNeedUpdate) {\n return;\n }\n this.updateStyleAtrribute(layer, { styleAttributeService });\n });\n }\n private updateStyleAtrribute(\n layer: ILayer,\n {\n styleAttributeService,\n }: { styleAttributeService: IStyleAttributeService },\n ) {\n const attributes = styleAttributeService.getLayerStyleAttributes() || [];\n const filter = styleAttributeService.getLayerStyleAttribute('filter');\n const shape = styleAttributeService.getLayerStyleAttribute('shape');\n if (\n filter &&\n filter.needRegenerateVertices // ||\n // (shape && shape.needRegenerateVertices) // TODO:Shape 更新重新build\n ) {\n layer.layerModelNeedUpdate = true;\n attributes.forEach((attr) => (attr.needRegenerateVertices = false));\n return;\n }\n attributes\n .filter((attribute) => attribute.needRegenerateVertices)\n .forEach((attribute) => {\n // 精确更新某个/某些 feature(s),需要传入 featureIdx d\n styleAttributeService.updateAttributeByFeatureRange(\n attribute.name,\n layer.getEncodedData(), // 获取经过 mapping 最新的数据\n attribute.featureRange.startIndex,\n attribute.featureRange.endIndex,\n );\n attribute.needRegenerateVertices = false;\n });\n }\n\n private initStyleAttribute(\n layer: ILayer,\n {\n styleAttributeService,\n }: { styleAttributeService: IStyleAttributeService },\n ) {\n const attributes = styleAttributeService.getLayerStyleAttributes() || [];\n attributes\n .filter((attribute) => attribute.needRegenerateVertices)\n .forEach((attribute) => {\n // 精确更新某个/某些 feature(s),需要传入 featureIdx d\n styleAttributeService.updateAttributeByFeatureRange(\n attribute.name,\n layer.getEncodedData(), // 获取经过 mapping 最新的数据\n attribute.featureRange.startIndex,\n attribute.featureRange.endIndex,\n );\n attribute.needRegenerateVertices = false;\n });\n }\n}\n"],"file":"UpdateStyleAttributePlugin.js"}
|
package/lib/point/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/point/index.ts"],"names":["PointLayer","modelType","getModelType","layerModel","PointModels","initModels","models","layerService","updateLayerRenderList","renderLayers","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","text","vectorpoint","tile","earthFill","earthExtrude","PointTypes","layerSource","parser","layerData","getEncodedData","item","find","fe","getModelTypeWillEmptyData","shape","layerType","mapService","version","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.layerModel.initModels((models) => {\n this.models = models;\n this.layerService.updateLayerRenderList();\n this.renderLayers();\n });\n }\n public rebuildModels() {\n this.layerModel.buildModels((models) => (this.models = models));\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 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 'vectorpoint',\n 'tile',\n 'earthFill',\n 'earthExtrude',\n ];\n if (this.layerSource.parser.type === 'mvt') {\n return 'vectorpoint';\n }\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\n if (!item) {\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 (this.layerType === 'fillImage') {\n return 'fillImage';\n }\n if (shape2d?.indexOf(shape as string) !== -1) {\n if (this.mapService.version === 'GLOBEL') {\n return 'earthFill';\n } else {\n return 'fill';\n }\n }\n if (shape3d?.indexOf(shape as string) !== -1) {\n if (this.mapService.version === 'GLOBEL') {\n return 'earthExtrude';\n } else {\n return 'extrude';\n }\n }\n if (iconMap.hasOwnProperty(shape as string)) {\n return 'image';\n }\n return 'text';\n }\n }\n}\n"],"file":"index.js"}
|