@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/Geometry/models/plane.ts"],"names":["PlaneModel","layer","getLayerConfig","width","height","widthSegments","heightSegments","center","terrainTexture","initPlane","indices","positions","loadTerrainTexture","vertices","size","lng","lat","widthHalf","heightHalf","gridX","Math","floor","gridY","gridX1","gridY1","segmentWidth","segmentHeight","iy","y","ix","x","mapService","version","Version","lngLatToCoord","a","b","push","c","d","opacity","mapTexture","terrainClipHeight","texture","destroy","updateTexture","u_opacity","u_mapFlag","u_terrainClipHeight","u_texture","terrainImage","callbackModel","mask","maskInside","createTexture2D","rendererService","buildLayerModel","moduleName","vertexShader","planeVert","fragmentShader","planeFrag","triangulation","planeGeometryTriangulation","primitive","gl","TRIANGLES","depth","enable","stencil","blend","getBlend","cull","face","BACK","then","model","catch","err","console","warn","initModels","options","oldwidthSegments","oldheightSegments","oldwidth","oldheight","style","undefined","oldFeatures","getEncodedData","res","styleAttributeService","createAttributesAndIndices","img","Image","crossOrigin","onload","data","wrapS","CLAMP_TO_EDGE","wrapT","layerService","updateLayerRenderList","renderLayers","src","canvas","document","createElement","ctx","getContext","drawImage","imageData","getImageData","image","rgb2height","imgWidth","imgHeight","widthStep","heihgtStep","imgIndexY","imgLen","imgIndexX","imgDataIndex","r","g","z","modelData","updateModelData","terrainImageLoaded","translateVertex","setTimeout","emit","properties","type","minimum","maximum","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","update","feature","featureIdx","vertex","attributeIdx","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAttrubuteAndElements,\n IEncodeFeature,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { Version } from '@antv/l7-maps';\nimport { getMask } from '@antv/l7-utils';\n// import { mat4, vec3 } from 'gl-matrix';\nimport BaseModel from '../../core/BaseModel';\nimport { IGeometryLayerStyleOptions } from '../../core/interface';\nimport planeFrag from '../shaders/plane_frag.glsl';\nimport planeVert from '../shaders/plane_vert.glsl';\n\nexport default class PlaneModel extends BaseModel {\n protected texture: ITexture2D;\n protected terrainImage: HTMLImageElement;\n protected terrainImageLoaded: boolean = false;\n protected mapTexture: string | undefined;\n\n public initPlane(\n width = 1,\n height = 1,\n widthSegments = 1,\n heightSegments = 1,\n lng = 120,\n lat = 30,\n ) {\n // https://github.com/mrdoob/three.js/blob/dev/src/geometries/PlaneGeometry.js\n const widthHalf = width / 2;\n const heightHalf = height / 2;\n\n const gridX = Math.floor(widthSegments);\n const gridY = Math.floor(heightSegments);\n\n const gridX1 = gridX + 1;\n const gridY1 = gridY + 1;\n\n const segmentWidth = width / gridX;\n const segmentHeight = height / gridY;\n\n const indices = [];\n const positions = [];\n\n for (let iy = 0; iy < gridY1; iy++) {\n const y = iy * segmentHeight - heightHalf;\n\n for (let ix = 0; ix < gridX1; ix++) {\n const x = ix * segmentWidth - widthHalf;\n if (this.mapService.version === Version['GAODE2.x']) {\n // @ts-ignore\n const [a, b] = this.mapService.lngLatToCoord([x + lng, -y + lat]) as [\n number,\n number,\n ];\n positions.push(a, b, 0);\n } else {\n positions.push(x + lng, -y + lat, 0);\n }\n\n positions.push(ix / gridX);\n positions.push(1 - iy / gridY);\n }\n }\n\n for (let iy = 0; iy < gridY; iy++) {\n for (let ix = 0; ix < gridX; ix++) {\n const a = ix + gridX1 * iy;\n const b = ix + gridX1 * (iy + 1);\n const c = ix + 1 + gridX1 * (iy + 1);\n const d = ix + 1 + gridX1 * iy;\n\n indices.push(a, b, d);\n indices.push(b, c, d);\n }\n }\n\n return { indices, positions };\n }\n\n public planeGeometryTriangulation = () => {\n const {\n width = 1,\n height = 1,\n widthSegments = 1,\n heightSegments = 1,\n center = [120, 30],\n terrainTexture,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n const { indices, positions } = this.initPlane(\n width,\n height,\n widthSegments,\n heightSegments,\n ...center,\n );\n if (terrainTexture) {\n // 存在地形贴图的时候会根据地形贴图对顶点进行偏移\n this.loadTerrainTexture(positions, indices);\n }\n\n return {\n vertices: positions,\n indices,\n size: 5,\n };\n };\n\n public getUninforms(): IModelUniform {\n const {\n opacity,\n mapTexture,\n terrainClipHeight = 0,\n terrainTexture,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n if (this.mapTexture !== mapTexture) {\n this.mapTexture = mapTexture;\n this.texture?.destroy();\n this.updateTexture(mapTexture);\n }\n return {\n u_opacity: opacity || 1,\n u_mapFlag: mapTexture ? 1 : 0,\n u_terrainClipHeight: terrainTexture ? terrainClipHeight : -1,\n u_texture: this.texture,\n };\n }\n\n public clearModels(): void {\n // @ts-ignore\n this.terrainImage = null;\n this.texture?.destroy();\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n const {\n mask = false,\n maskInside = true,\n mapTexture,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n this.mapTexture = mapTexture;\n\n const { createTexture2D } = this.rendererService;\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n\n this.updateTexture(mapTexture);\n\n this.layer\n .buildLayerModel({\n moduleName: 'geometryPlane',\n vertexShader: planeVert,\n fragmentShader: planeFrag,\n triangulation: this.planeGeometryTriangulation,\n primitive: gl.TRIANGLES,\n depth: { enable: true },\n stencil: getMask(mask, maskInside),\n blend: this.getBlend(),\n cull: {\n enable: true,\n face: gl.BACK, // gl.FRONT | gl.BACK;\n },\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n this.initModels(callbackModel);\n }\n\n public createModelData(options?: any) {\n if (options) {\n const {\n widthSegments: oldwidthSegments,\n heightSegments: oldheightSegments,\n width: oldwidth,\n height: oldheight,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n const {\n widthSegments,\n heightSegments,\n width,\n height,\n } = options as IGeometryLayerStyleOptions;\n this.layer.style({\n widthSegments:\n widthSegments !== undefined ? widthSegments : oldwidthSegments,\n heightSegments:\n heightSegments !== undefined ? heightSegments : oldheightSegments,\n width: width !== undefined ? width : oldwidth,\n height: height !== undefined ? height : oldheight,\n });\n }\n const oldFeatures = this.layer.getEncodedData();\n const res = this.styleAttributeService.createAttributesAndIndices(\n oldFeatures,\n this.planeGeometryTriangulation,\n );\n return res;\n }\n\n public updateTexture(mapTexture: string | undefined): void {\n const { createTexture2D } = this.rendererService;\n\n if (mapTexture) {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => {\n this.texture = createTexture2D({\n data: img,\n width: img.width,\n height: img.height,\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n };\n img.src = mapTexture;\n } else {\n this.texture = createTexture2D({\n width: 0,\n height: 0,\n });\n }\n }\n\n protected getImageData(img: HTMLImageElement) {\n const canvas: HTMLCanvasElement = document.createElement('canvas');\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n const { width, height } = img;\n canvas.width = width;\n canvas.height = height;\n\n ctx.drawImage(img, 0, 0, width, height);\n const imageData = ctx.getImageData(0, 0, width, height);\n\n return imageData;\n }\n\n protected translateVertex(\n positions: number[],\n indices: number[],\n image: HTMLImageElement,\n widthSegments: number,\n heightSegments: number,\n rgb2height: (r: number, g: number, b: number) => number,\n ) {\n const imgWidth = image.width;\n const imgHeight = image.height;\n const imageData = this.getImageData(image).data;\n\n const gridX = Math.floor(widthSegments);\n const gridY = Math.floor(heightSegments);\n\n const gridX1 = gridX + 1;\n const gridY1 = gridY + 1;\n\n const widthStep = imgWidth / gridX;\n const heihgtStep = imgHeight / gridY;\n\n for (let iy = 0; iy < gridY1; iy++) {\n const imgIndexY = Math.floor(iy * heihgtStep);\n const imgLen = imgIndexY * imgWidth;\n\n for (let ix = 0; ix < gridX1; ix++) {\n const imgIndexX = Math.floor(ix * widthStep);\n const imgDataIndex = (imgLen + imgIndexX) * 4;\n\n const r = imageData[imgDataIndex];\n const g = imageData[imgDataIndex + 1];\n const b = imageData[imgDataIndex + 2];\n\n const z = (iy * gridX1 + ix) * 5 + 2;\n positions[z] = rgb2height(r, g, b);\n }\n }\n\n const oldFeatures = this.layer.getEncodedData();\n const modelData = this.styleAttributeService.createAttributesAndIndices(\n oldFeatures,\n () => {\n return {\n vertices: positions,\n indices,\n size: 5,\n };\n },\n );\n this.layer.updateModelData(modelData as IAttrubuteAndElements);\n this.layerService.renderLayers();\n }\n\n /**\n * load terrain texture & offset attribute z\n */\n protected loadTerrainTexture(positions: number[], indices: number[]) {\n const {\n widthSegments = 1,\n heightSegments = 1,\n terrainTexture,\n rgb2height = (r: number, g: number, b: number) => r + g + b,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n if (this.terrainImage) {\n // 若当前已经存在 image,直接进行偏移计算(LOD)\n if (this.terrainImageLoaded) {\n this.translateVertex(\n positions,\n indices,\n this.terrainImage,\n widthSegments,\n heightSegments,\n rgb2height,\n );\n } else {\n this.terrainImage.onload = () => {\n this.translateVertex(\n positions,\n indices,\n this.terrainImage,\n widthSegments,\n heightSegments,\n rgb2height,\n );\n };\n }\n } else {\n // 加载地形贴图、根据地形贴图对 planeGeometry 进行偏移\n const terrainImage = new Image();\n this.terrainImage = terrainImage;\n terrainImage.crossOrigin = 'anonymous';\n terrainImage.onload = () => {\n this.terrainImageLoaded = true;\n // 图片加载完,触发事件,可以进行地形图的顶点计算存储\n setTimeout(() => this.layer.emit('terrainImageLoaded', null));\n this.translateVertex(\n positions,\n indices,\n terrainImage,\n widthSegments,\n heightSegments,\n rgb2height,\n );\n };\n terrainImage.src = terrainTexture as string;\n }\n }\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 registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Uv',\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 return [vertex[3], vertex[4]];\n },\n },\n });\n }\n}\n"],"file":"plane.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Geometry/models/sprite.ts"],"names":["SPRITE_ANIMATE_DIR","SpriteModel","layer","getLayerConfig","spriteBottom","updateZ","spriteUpdate","bottomZ","topZ","spriteTop","i","positions","length","spriteAnimate","UP","vertices","indices","size","attributes","createAttrubutes","triangulation","planeGeometryUpdateTriangulation","models","map","m","updateAttributes","renderLayers","timer","requestAnimationFrame","updateModel","center","spriteCount","spriteRadius","initSprite","radius","lng","lat","mapService","heightLimit","height","Math","random","push","getPos","z","randomX","randomY","x","y","version","Version","lngLatToCoord","a","b","opacity","mapTexture","spriteScale","texture","destroy","updateTexture","u_opacity","u_mapFlag","u_texture","u_Scale","cancelAnimationFrame","callbackModel","DOWN","createTexture2D","rendererService","width","setTimeout","buildLayerModel","moduleName","vertexShader","spriteVert","fragmentShader","spriteFrag","planeGeometryTriangulation","primitive","gl","POINTS","depth","enable","blend","getBlend","then","model","catch","err","console","warn","initModels","img","Image","crossOrigin","onload","data","wrapS","CLAMP_TO_EDGE","wrapT","layerService","updateLayerRenderList","src","properties","type","minimum","maximum","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 { Version } from '@antv/l7-maps';\n\nimport BaseModel from '../../core/BaseModel';\nimport { IGeometryLayerStyleOptions } from '../../core/interface';\nimport spriteFrag from '../shaders/sprite_frag.glsl';\nimport spriteVert from '../shaders/sprite_vert.glsl';\n\nenum SPRITE_ANIMATE_DIR {\n 'UP' = 'up',\n 'DOWN' = 'down',\n}\n\nexport default class SpriteModel extends BaseModel {\n protected texture: ITexture2D;\n protected mapTexture: string | undefined;\n protected positions: number[];\n protected indices: number[];\n protected timer: number;\n protected spriteTop: number;\n protected spriteUpdate: number;\n protected spriteAnimate: SPRITE_ANIMATE_DIR;\n\n public initSprite(radius = 10, spriteCount = 100, lng = 120, lat = 30) {\n const indices = [];\n const positions = [];\n const mapService = this.mapService;\n const heightLimit =\n this.spriteAnimate === SPRITE_ANIMATE_DIR.UP\n ? -this.spriteTop\n : this.spriteTop;\n for (let i = 0; i < spriteCount; i++) {\n const height = Math.random() * heightLimit;\n positions.push(...getPos(height));\n }\n for (let i = 0; i < spriteCount; i++) {\n indices.push(i);\n }\n\n function getPos(z: number) {\n const randomX = radius * Math.random();\n const randomY = radius * Math.random();\n const x = -radius / 2 + randomX;\n const y = -radius / 2 + randomY;\n if (mapService.version === Version['GAODE2.x']) {\n // @ts-ignore\n const [a, b] = mapService.lngLatToCoord([x + lng, -y + lat]) as [\n number,\n number,\n ];\n return [a, b, z, 0, 0];\n } else {\n return [x + lng, -y + lat, z, 0, 0];\n }\n }\n\n return { indices, positions };\n }\n\n public planeGeometryUpdateTriangulation = () => {\n const {\n spriteBottom = -100000,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n const updateZ = this.spriteUpdate;\n // const bottomZ = -100000;\n const bottomZ = spriteBottom;\n const topZ = this.spriteTop;\n\n for (let i = 0; i < this.positions.length; i += 5) {\n if (this.spriteAnimate === SPRITE_ANIMATE_DIR.UP) {\n this.positions[i + 2] += updateZ;\n if (this.positions[i + 2] > topZ) {\n this.positions[i + 2] = bottomZ;\n }\n } else {\n this.positions[i + 2] -= updateZ;\n if (this.positions[i + 2] < bottomZ) {\n this.positions[i + 2] = topZ;\n }\n }\n }\n\n return {\n vertices: this.positions,\n indices: this.indices,\n size: 5,\n };\n };\n\n public updateModel = () => {\n // @ts-ignore\n const attributes = this.layer.createAttrubutes({\n triangulation: this.planeGeometryUpdateTriangulation,\n });\n this.layer.models.map((m) => {\n m.updateAttributes(attributes);\n });\n this.layer.renderLayers();\n\n this.timer = requestAnimationFrame(this.updateModel);\n };\n\n public planeGeometryTriangulation = () => {\n const {\n center = [120, 30],\n spriteCount = 100,\n spriteRadius = 10,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n\n const { indices, positions } = this.initSprite(\n spriteRadius,\n spriteCount,\n ...center,\n );\n this.positions = positions;\n this.indices = indices;\n return {\n vertices: positions,\n indices,\n size: 5,\n };\n };\n\n public getUninforms(): IModelUniform {\n const {\n opacity,\n mapTexture,\n spriteScale = 1,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n if (this.mapTexture !== mapTexture) {\n this.mapTexture = mapTexture;\n this.texture?.destroy();\n this.updateTexture(mapTexture);\n }\n return {\n u_opacity: opacity || 1,\n u_mapFlag: mapTexture ? 1 : 0,\n u_texture: this.texture,\n u_Scale: spriteScale,\n };\n }\n\n public clearModels(): void {\n cancelAnimationFrame(this.timer);\n this.texture?.destroy();\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n const {\n mapTexture,\n spriteTop = 5000000,\n spriteUpdate = 10000,\n spriteAnimate = SPRITE_ANIMATE_DIR.DOWN,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n this.mapTexture = mapTexture;\n this.spriteTop = spriteTop;\n this.spriteUpdate = spriteUpdate;\n spriteAnimate === 'up'\n ? (this.spriteAnimate = SPRITE_ANIMATE_DIR.UP)\n : (this.spriteAnimate = SPRITE_ANIMATE_DIR.DOWN);\n\n const { createTexture2D } = this.rendererService;\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n\n this.updateTexture(mapTexture);\n\n setTimeout(() => {\n this.updateModel();\n }, 100);\n\n this.layer\n .buildLayerModel({\n moduleName: 'geometrySprite',\n vertexShader: spriteVert,\n fragmentShader: spriteFrag,\n triangulation: this.planeGeometryTriangulation,\n primitive: gl.POINTS,\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\n public buildModels(callbackModel: (models: IModel[]) => void) {\n this.initModels(callbackModel);\n }\n\n public updateTexture(mapTexture: string | undefined): void {\n const { createTexture2D } = this.rendererService;\n\n if (mapTexture) {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => {\n this.texture = createTexture2D({\n data: img,\n width: img.width,\n height: img.height,\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n };\n img.src = mapTexture;\n } else {\n this.texture = createTexture2D({\n width: 0,\n height: 0,\n });\n }\n }\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 registerBuiltinAttributes() {\n return '';\n }\n}\n"],"file":"sprite.js"}
|
package/lib/canvas/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/canvas/index.ts"],"names":["CanvasLayer","modelType","getModelType","layerModel","CanvasModels","initModels","models","renderLayers","buildModels","properties","opacity","type","minimum","maximum","defaultConfig","canvas","BaseLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;;;;;IACqBA,W;;;;;;;;;;;;;;;uFACG,a;;;;;;WACtB,uBAAqB;AAAA;;AACnB,UAAMC,SAAS,GAAG,KAAKC,YAAL,EAAlB;AACA,WAAKC,UAAL,GAAkB,IAAIC,eAAaH,SAAb,CAAJ,CAA4B,IAA5B,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;;;WACD,4BAA6B;AAC3B,UAAMF,IAAI,GAAG,KAAKT,YAAL,EAAb;AACA,UAAMY,aAAa,GAAG;AACpBC,QAAAA,MAAM,EAAE;AADY,OAAtB;AAGA,aAAOD,aAAa,CAACH,IAAD,CAApB;AACD;;;WAED,wBAA0C;AACxC,aAAO,QAAP;AACD;;;EAlCsCK,mB","sourcesContent":["import BaseLayer from '../core/BaseLayer';\nimport { ICanvasLayerStyleOptions } from '../core/interface';\nimport CanvasModels, { CanvasModelType } from './models/index';\nexport default class CanvasLayer extends BaseLayer<ICanvasLayerStyleOptions> {\n public type: string = 'CanvasLayer';\n public buildModels() {\n const modelType = this.getModelType();\n this.layerModel = new CanvasModels[modelType](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 protected getDefaultConfig() {\n const type = this.getModelType();\n const defaultConfig = {\n canvas: {},\n };\n return defaultConfig[type];\n }\n\n protected getModelType(): CanvasModelType {\n return 'canvas';\n }\n}\n"],"file":"index.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/canvas/models/canvas.ts"],"names":["CanvaModel","CanvasUpdateType","ALWAYS","layer","getLayerConfig","zIndex","update","animateOption","enable","duration","canvas","style","updateMode","unBindListener","bindListener","renderCanvas","mapService","off","clearCanvas","on","ctx","rendererService","getViewportSize","w","width","h","height","clearRect","viewWidth","viewHeight","prevSize","size","getSize","drawingOnCanvas","getContainer","removeChild","initCanvas","document","createElement","pointerEvents","position","top","left","appendChild","getContext","initModels","BaseModel"],"mappings":"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","sourcesContent":["import { ILayerConfig, IModelUniform } from '@antv/l7-core';\nimport BaseModel from '../../core/BaseModel';\nimport {\n CanvasUpdateType,\n ICanvasLayerStyleOptions,\n IDrawingOnCanvas,\n} from '../../core/interface';\n\nexport default class CanvaModel extends BaseModel {\n protected updateMode: CanvasUpdateType = CanvasUpdateType.ALWAYS;\n protected canvas: HTMLCanvasElement;\n protected ctx: CanvasRenderingContext2D;\n protected prevSize: [number, number];\n\n public renderUpdate = () => {\n const {\n zIndex = 10,\n update = CanvasUpdateType.ALWAYS,\n animateOption = { enable: false, duration: 20 },\n } = this.layer.getLayerConfig() as Partial<\n ICanvasLayerStyleOptions & ILayerConfig\n >;\n if (+this.canvas.style.zIndex === zIndex) {\n this.canvas.style.zIndex = zIndex + '';\n }\n if (this.updateMode !== update) {\n this.updateMode = update as CanvasUpdateType;\n this.unBindListener();\n this.bindListener();\n }\n if (this.updateMode === CanvasUpdateType.ALWAYS && animateOption.enable) {\n this.renderCanvas();\n }\n };\n\n public unBindListener = () => {\n this.mapService.off('mapchange', this.renderCanvas);\n this.mapService.off('zoomstart', this.clearCanvas);\n this.mapService.off('zoomend', this.renderCanvas);\n this.mapService.off('movestart', this.clearCanvas);\n this.mapService.off('moveend', this.renderCanvas);\n };\n\n public bindListener = () => {\n if (this.updateMode === CanvasUpdateType.ALWAYS) {\n this.mapService.on('mapchange', this.renderCanvas);\n } else {\n this.mapService.on('zoomstart', this.clearCanvas);\n this.mapService.on('zoomend', this.renderCanvas);\n this.mapService.on('movestart', this.clearCanvas);\n this.mapService.on('moveend', this.renderCanvas);\n }\n };\n\n public clearModels(): void {\n if (this.canvas) {\n this.mapService.getContainer()?.removeChild(this.canvas);\n // @ts-ignore\n this.canvas = null;\n }\n this.unBindListener();\n }\n\n public initModels() {\n const {\n update = CanvasUpdateType.ALWAYS,\n } = this.layer.getLayerConfig() as ICanvasLayerStyleOptions;\n this.updateMode = update as CanvasUpdateType;\n this.initCanvas();\n\n this.renderCanvas();\n\n this.bindListener();\n\n this.mapService.getContainer();\n return [];\n }\n\n public initCanvas(): void {\n const { zIndex } = this.layer.getLayerConfig() as ICanvasLayerStyleOptions;\n const size = this.mapService.getSize();\n const [width, height] = size;\n const {\n width: viewWidth,\n height: viewHeight,\n } = this.rendererService.getViewportSize();\n this.prevSize = [viewWidth, viewHeight];\n\n const canvas = document.createElement('canvas');\n this.canvas = canvas;\n canvas.width = viewWidth;\n canvas.height = viewHeight;\n canvas.style.pointerEvents = 'none';\n canvas.style.width = width + 'px';\n canvas.style.height = height + 'px';\n canvas.style.position = 'absolute';\n canvas.style.top = '0';\n canvas.style.left = '0';\n canvas.style.zIndex = zIndex + '';\n this.mapService.getContainer()?.appendChild(canvas);\n\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n this.ctx = ctx;\n }\n\n public clearCanvas = () => {\n if (this.ctx) {\n const { width: w, height: h } = this.rendererService.getViewportSize();\n this.ctx.clearRect(0, 0, w, h);\n }\n };\n\n public renderCanvas = () => {\n const {\n width: viewWidth,\n height: viewHeight,\n } = this.rendererService.getViewportSize();\n if (this.prevSize[0] !== viewWidth || this.prevSize[1] !== viewHeight) {\n this.prevSize = [viewWidth, viewHeight];\n const size = this.mapService.getSize();\n const [width, height] = size;\n this.canvas.width = viewWidth;\n this.canvas.height = viewHeight;\n this.canvas.style.width = width + 'px';\n this.canvas.style.height = height + 'px';\n }\n\n const {\n drawingOnCanvas,\n } = this.layer.getLayerConfig() as ICanvasLayerStyleOptions;\n\n if (this.ctx) {\n drawingOnCanvas({\n canvas: this.canvas,\n ctx: this.ctx,\n mapService: this.mapService,\n size: [viewWidth, viewHeight],\n });\n }\n };\n\n public buildModels() {\n return this.initModels();\n }\n\n protected registerBuiltinAttributes() {\n return;\n }\n}\n"],"file":"canvas.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/canvas/models/index.ts"],"names":["CanvasModels","canvas","CanvasModel"],"mappings":";;;;;;;;;AAAA;;AAGA,IAAMA,YAA+C,GAAG;AACtDC,EAAAA,MAAM,EAAEC;AAD8C,CAAxD;eAIeF,Y","sourcesContent":["import CanvasModel from './canvas';\nexport type CanvasModelType = 'canvas';\n\nconst CanvasModels: { [key in CanvasModelType]: any } = {\n canvas: CanvasModel,\n};\n\nexport default CanvasModels;\n"],"file":"index.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/citybuliding/building.ts"],"names":["CityBuildingLayer","layerModel","CityBuildModel","initModels","models","renderLayers","buildModels","t","updateLayerConfig","time","properties","opacity","type","minimum","maximum","BaseLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;IAEqBA,iB;;;;;;;;;;;;;;;uFACG,c;;;;;;WACtB,uBAAqB;AAAA;;AACnB,WAAKC,UAAL,GAAkB,IAAIC,cAAJ,CAAmB,IAAnB,CAAlB;AACA,WAAKD,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,kBAAgBG,CAAhB,EAA2B;AACzB,WAAKC,iBAAL,CAAuB;AACrBC,QAAAA,IAAI,EAAEF;AADe,OAAvB;AAGD;;;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,wBAAiC;AAC/B,aAAO,cAAP;AACD;;;EA/B4CC,mB","sourcesContent":["import BaseLayer from '../core/BaseLayer';\nimport CityBuildModel from './models/build';\n\nexport default class CityBuildingLayer extends BaseLayer {\n public type: string = 'PolygonLayer';\n public buildModels() {\n this.layerModel = new CityBuildModel(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 public setLight(t: number) {\n this.updateLayerConfig({\n time: t,\n });\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(): string {\n return 'citybuilding';\n }\n}\n"],"file":"building.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/citybuliding/models/build.ts"],"names":["CityBuildModel","layer","getLayerConfig","opacity","baseColor","brightColor","windowColor","time","sweep","enable","sweepRadius","sweepColor","sweepSpeed","sweepCenter","cityCenter","u_cityCenter","u_cityMinSize","cityMinSize","u_circleSweep","u_circleSweepColor","slice","u_circleSweepSpeed","u_opacity","u_baseColor","u_brightColor","u_windowColor","u_time","getLayerAnimateTime","getSource","extent","minLng","minLat","maxLng","maxLat","mapService","version","lngLatToCoord","l1","l2","Math","sqrt","pow","w","h","callbackModel","calCityGeo","startModelAnimate","buildModels","buildLayerModel","moduleName","vertexShader","buildVert","fragmentShader","buildFrag","triangulation","PolygonExtrudeTriangulation","depth","cull","face","gl","BACK","then","model","catch","err","console","warn","styleAttributeService","registerStyleAttribute","name","type","AttributeType","Attribute","descriptor","buffer","usage","STATIC_DRAW","data","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","normal","DYNAMIC_DRAW","Array","isArray","BaseModel"],"mappings":"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","sourcesContent":["import { AttributeType, gl, IEncodeFeature, IModel } from '@antv/l7-core';\nimport { rgb2arr } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { PolygonExtrudeTriangulation } from '../../core/triangulation';\nimport buildFrag from '../shaders/build_frag.glsl';\nimport buildVert from '../shaders/build_vert.glsl';\ninterface ICityBuildLayerStyleOptions {\n opacity: number;\n baseColor: string;\n brightColor: string;\n windowColor: string;\n time: number;\n sweep: {\n enable: boolean;\n sweepRadius: number;\n sweepColor: string;\n sweepSpeed: number;\n sweepCenter?: [number, number];\n };\n}\nexport default class CityBuildModel extends BaseModel {\n private cityCenter: [number, number];\n private cityMinSize: number;\n\n public getUninforms() {\n const {\n opacity = 1,\n baseColor = 'rgb(16,16,16)',\n brightColor = 'rgb(255,176,38)',\n windowColor = 'rgb(30,60,89)',\n time = 0,\n sweep = {\n enable: false,\n sweepRadius: 1,\n sweepColor: 'rgb(255, 255, 255)',\n sweepSpeed: 0.4,\n sweepCenter: this.cityCenter,\n },\n } = this.layer.getLayerConfig() as ICityBuildLayerStyleOptions;\n return {\n u_cityCenter: sweep.sweepCenter || this.cityCenter,\n u_cityMinSize: this.cityMinSize * sweep.sweepRadius,\n u_circleSweep: sweep.enable ? 1.0 : 0.0,\n u_circleSweepColor: rgb2arr(sweep.sweepColor).slice(0, 3),\n u_circleSweepSpeed: sweep.sweepSpeed,\n\n u_opacity: opacity,\n u_baseColor: rgb2arr(baseColor),\n u_brightColor: rgb2arr(brightColor),\n u_windowColor: rgb2arr(windowColor),\n u_time: this.layer.getLayerAnimateTime() || time,\n };\n }\n\n public calCityGeo() {\n // @ts-ignore\n const [minLng, minLat, maxLng, maxLat] = this.layer.getSource().extent;\n if (this.mapService.version === 'GAODE2.x') {\n // @ts-ignore\n this.cityCenter = this.mapService.lngLatToCoord([\n (maxLng + minLng) / 2,\n (maxLat + minLat) / 2,\n ]);\n // @ts-ignore\n const l1 = this.mapService.lngLatToCoord([maxLng, maxLat]);\n // @ts-ignore\n const l2 = this.mapService.lngLatToCoord([minLng, minLat]);\n this.cityMinSize =\n Math.sqrt(Math.pow(l1[0] - l2[0], 2) + Math.pow(l1[1] - l2[1], 2)) / 4;\n } else {\n const w = maxLng - minLng;\n const h = maxLat - minLat;\n this.cityCenter = [(maxLng + minLng) / 2, (maxLat + minLat) / 2];\n this.cityMinSize = Math.sqrt(Math.pow(w, 2) + Math.pow(h, 2)) / 4;\n }\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.calCityGeo();\n\n this.startModelAnimate();\n\n this.buildModels(callbackModel);\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n this.layer\n .buildLayerModel({\n moduleName: 'cityBuilding',\n vertexShader: buildVert,\n fragmentShader: buildFrag,\n triangulation: PolygonExtrudeTriangulation,\n depth: { enable: true },\n cull: {\n enable: true,\n face: gl.BACK,\n },\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n\n protected registerBuiltinAttributes() {\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: '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: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 10 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Uv',\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 } = feature;\n return [vertex[3], vertex[4]];\n },\n },\n });\n }\n}\n"],"file":"build.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/BaseLayer.ts"],"names":["layerIdCounter","BaseLayer","TYPES","IGlobalConfigService","config","dataSourceNeedUpdate","dataMappingNeedUpdate","filterNeedUpdate","featureScaleNeedUpdate","StyleAttrNeedUpdate","init","SyncBailHook","afterInit","beforeRender","beforeRenderData","SyncWaterfallHook","afterRender","SyncHook","beforePickingEncode","afterPickingEncode","beforeHighlight","afterHighlight","beforeSelect","afterSelect","beforeDestroy","afterDestroy","enable","dataState","layerConfig","getLayerConfig","autoFit","fitBounds","fitBoundsOptions","reRender","name","id","zIndex","rawConfig","maskLayer","masks","push","layerIndex","indexOf","splice","destroy","styleAttributeService","getLayerStyleAttribute","configService","configToUpdate","Object","keys","map","key","inited","needUpdateConfig","sceneId","container","get","SceneID","setLayerConfig","sceneContainer","color","bottomColor","plugin","plugins","layerType","iconService","IIconService","fontService","IFontService","rendererService","IRendererService","layerService","ILayerService","interactionService","IInteractionService","pickingService","IPickingService","mapService","IMapService","enableMultiPassRenderer","passes","length","on","renderLayers","cameraService","ICameraService","coordinateService","ICoordinateSystemService","shaderModuleService","IShaderModuleService","postProcessingPassFactory","IFactoryPostProcessingPass","normalPassFactory","IFactoryNormalPass","IStyleAttributeService","multiPassRenderer","IMultiPassRenderer","setLayer","pendingStyleAttributes","forEach","attributeName","attributeField","attributeValues","updateOptions","updateStyleAttribute","scale","field","splitValuesAndCallbackInAttribute","getAll","ILayerPlugin","apply","hooks","call","emit","target","type","data","attributes","elements","models","m","updateAttributesAndElements","console","warn","option","layerModel","createModelData","calEncodeData","calculateEncodeData","triangulation","createAttributesAndIndices","undefined","updateLayerConfig","getDefaultConfig","animateOption","startAnimate","aniamateStatus","values","lastShape","currentShape","shapeOption","tileLayer","options","rawAnimate","setSource","sourceOption","clusterZoom","layerSource","setData","currentSource","getSource","source","Source","sourceEvent","lastConfig","rest","pass","postProcessingPass","getPostProcessor","getPostProcessingPassByName","styleNeedUpdate","mask","clearModels","buildModels","cfg","scaleOptions","rendering","render","getEncodedData","renderModels","getRenderFlag","activeOption","enableHighlight","highlightColor","mix","activeMix","x","y","pick","pickedFeatureID","then","setTimeout","enableSelect","selectColor","selectMix","blend","layerModelNeedUpdate","visible","clearCanvas","index","updateLayerRenderList","currentPickId","selectedFeatureID","zoom","getZoom","minZoom","Infinity","maxZoom","enableMultiPass","currentPasses","setRenderFlag","getViewportSize","width","height","resize","extent","isValid","some","v","Math","abs","refresh","isDestroied","layerChildren","child","off","clearAllAttributes","cleanRemove","removeAllListeners","model","getLayerStyleAttributes","filter","attribute","needRescale","needRemapping","needRegenerateVertices","cluster","updateClusterData","encodedData","getLayerAttributeScale","invertExtent","items","range","item","value","ticks","domain","triggerHover","box","cb","boxPickLayer","moduleName","vertexShader","fragmentShader","segmentNumber","workerEnabled","workerOptions","registerModule","vs","fs","getModule","uniforms","createModel","Promise","resolve","reject","modelType","WorkerSourceMap","createAttributesAndIndicesAscy","BlendTypes","BlendType","normal","catch","err","createAttributes","clock","getDelta","animateStartTime","getElapsedTime","stopAnimate","isPick","eventNames","isVisible","Error","isPicking","renderUpdate","draw","getUninforms","getShaderPickStat","time","valuesOrCallback","defaultValues","callback","EventEmitter"],"mappings":"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","sourcesContent":["// @ts-ignore\nimport { SyncBailHook, SyncHook, SyncWaterfallHook } from '@antv/async-hook';\nimport {\n BlendType,\n gl,\n IActiveOption,\n IAnimateOption,\n IAttrubuteAndElements,\n ICameraService,\n ICoordinateSystemService,\n IDataState,\n IEncodeFeature,\n IFontService,\n IGlobalConfigService,\n IIconService,\n IInteractionService,\n ILayer,\n ILayerConfig,\n ILayerModel,\n ILayerModelInitializationOptions,\n ILayerPlugin,\n ILayerService,\n ILegendClassificaItem,\n ILegendSegmentItem,\n IMapService,\n IModel,\n IModelInitializationOptions,\n IMultiPassRenderer,\n IPass,\n IPickingService,\n IPostProcessingPass,\n IRendererService,\n IScale,\n IScaleOptions,\n IShaderModuleService,\n ISource,\n ISourceCFG,\n IStyleAttributeInitializationOptions,\n IStyleAttributeService,\n IStyleAttributeUpdateOptions,\n LayerEventType,\n lazyInject,\n LegendItems,\n ScaleAttributeType,\n ScaleTypeName,\n ScaleTypes,\n StyleAttributeField,\n StyleAttributeOption,\n Triangulation,\n TYPES,\n} from '@antv/l7-core';\nimport Source from '@antv/l7-source';\nimport { encodePickingColor, WorkerSourceMap } from '@antv/l7-utils';\nimport { EventEmitter } from 'eventemitter3';\nimport { Container } from 'inversify';\nimport { isFunction, isObject, isUndefined } from 'lodash';\nimport { BlendTypes } from '../utils/blend';\nimport { handleStyleDataMapping } from '../utils/dataMappingStyle';\nimport { calculateData } from '../utils/layerData';\nimport {\n createMultiPassRenderer,\n normalizePasses,\n} from '../utils/multiPassRender';\nimport { updateShape } from '../utils/updateShape';\n/**\n * 分配 layer id\n */\nlet layerIdCounter = 0;\n\nexport default class BaseLayer<ChildLayerStyleOptions = {}>\n extends EventEmitter<LayerEventType>\n implements ILayer {\n public id: string = `${layerIdCounter++}`;\n public name: string = `${layerIdCounter}`;\n public type: string;\n public visible: boolean = true;\n public zIndex: number = 0;\n public minZoom: number;\n public maxZoom: number;\n public inited: boolean = false;\n public layerModelNeedUpdate: boolean = false;\n public pickedFeatureID: number | null = null;\n public selectedFeatureID: number | null = null;\n public styleNeedUpdate: boolean = false;\n public rendering: boolean;\n public clusterZoom: number = 0; // 聚合等级标记\n public layerType?: string | undefined;\n public triangulation?: Triangulation | undefined;\n\n public dataState: IDataState = {\n dataSourceNeedUpdate: false,\n dataMappingNeedUpdate: false,\n filterNeedUpdate: false,\n featureScaleNeedUpdate: false,\n StyleAttrNeedUpdate: false,\n };\n // 生命周期钩子\n public hooks = {\n init: new SyncBailHook(),\n afterInit: new SyncBailHook(),\n beforeRender: new SyncBailHook(),\n beforeRenderData: new SyncWaterfallHook(),\n afterRender: new SyncHook(),\n beforePickingEncode: new SyncHook(),\n afterPickingEncode: new SyncHook(),\n beforeHighlight: new SyncHook(['pickedColor']),\n afterHighlight: new SyncHook(),\n beforeSelect: new SyncHook(['pickedColor']),\n afterSelect: new SyncHook(),\n beforeDestroy: new SyncHook(),\n afterDestroy: new SyncHook(),\n };\n\n // 待渲染 model 列表\n public models: IModel[] = [];\n\n // 每个 Layer 都有一个\n public multiPassRenderer: IMultiPassRenderer;\n\n // 注入插件集\n public plugins: ILayerPlugin[];\n\n public sourceOption: {\n data: any;\n options?: ISourceCFG;\n };\n\n public layerModel: ILayerModel;\n\n public shapeOption: {\n field: any;\n values: any;\n };\n\n // TODO: 记录 sceneContainer 供创建子图层的时候使用 如 imageTileLayer\n public sceneContainer: Container | undefined;\n public tileLayer: any | undefined;\n // TODO: 用于保存子图层对象\n public layerChildren: ILayer[] = [];\n public masks: ILayer[] = [];\n // Tip: 用于标识矢量图层\n public isVector: boolean = false;\n\n @lazyInject(TYPES.IGlobalConfigService)\n protected readonly configService: IGlobalConfigService;\n\n // @lazyInject(TYPES.IShaderModuleService)\n // protected readonly shaderModuleService: IShaderModuleService;\n\n protected shaderModuleService: IShaderModuleService;\n protected cameraService: ICameraService;\n\n protected coordinateService: ICoordinateSystemService;\n\n protected iconService: IIconService;\n\n protected fontService: IFontService;\n\n protected pickingService: IPickingService;\n\n protected rendererService: IRendererService;\n\n protected layerService: ILayerService;\n\n protected interactionService: IInteractionService;\n\n protected mapService: IMapService;\n\n protected styleAttributeService: IStyleAttributeService;\n\n protected layerSource: Source;\n\n protected postProcessingPassFactory: (\n name: string,\n ) => IPostProcessingPass<unknown>;\n protected normalPassFactory: (name: string) => IPass<unknown>;\n\n protected animateOptions: IAnimateOption = { enable: false };\n\n /**\n * 图层容器\n */\n private container: Container;\n\n private encodedData: IEncodeFeature[];\n\n private configSchema: object;\n\n private currentPickId: number | null = null;\n\n private rawConfig: Partial<ILayerConfig & ChildLayerStyleOptions>;\n\n private needUpdateConfig: Partial<ILayerConfig & ChildLayerStyleOptions>;\n\n /**\n * 待更新样式属性,在初始化阶段完成注册\n */\n private pendingStyleAttributes: Array<{\n attributeName: string;\n attributeField: StyleAttributeField;\n attributeValues?: StyleAttributeOption;\n defaultName?: string;\n updateOptions?: Partial<IStyleAttributeUpdateOptions>;\n }> = [];\n\n private scaleOptions: IScaleOptions = {};\n\n private animateStartTime: number;\n\n private aniamateStatus: boolean = false;\n\n // TODO: layer 保底颜色\n private bottomColor = 'rgba(0, 0, 0, 0)';\n\n private isDestroied: boolean = false;\n\n // private pickingPassRender: IPass<'pixelPicking'>;\n\n constructor(config: Partial<ILayerConfig & ChildLayerStyleOptions> = {}) {\n super();\n this.name = config.name || this.id;\n this.zIndex = config.zIndex || 0;\n this.rawConfig = config;\n }\n\n public addMaskLayer(maskLayer: ILayer) {\n this.masks.push(maskLayer);\n }\n\n public removeMaskLayer(maskLayer: ILayer) {\n const layerIndex = this.masks.indexOf(maskLayer);\n if (layerIndex > -1) {\n this.masks.splice(layerIndex, 1);\n }\n maskLayer.destroy();\n }\n\n public getAttribute(name: string) {\n return this.styleAttributeService.getLayerStyleAttribute(name);\n }\n\n public getLayerConfig() {\n return this.configService.getLayerConfig<ChildLayerStyleOptions>(this.id);\n }\n\n public updateLayerConfig(\n configToUpdate: Partial<ILayerConfig | ChildLayerStyleOptions>,\n ) {\n // 同步 rawConfig\n Object.keys(configToUpdate).map((key) => {\n if (key in this.rawConfig) {\n // @ts-ignore\n this.rawConfig[key] = configToUpdate[key];\n }\n });\n if (!this.inited) {\n this.needUpdateConfig = {\n ...this.needUpdateConfig,\n ...configToUpdate,\n };\n } else {\n const sceneId = this.container.get<string>(TYPES.SceneID);\n\n // @ts-ignore\n handleStyleDataMapping(configToUpdate, this); // 处理 style 中进行数据映射的属性字段\n\n this.configService.setLayerConfig(sceneId, this.id, {\n ...this.configService.getLayerConfig(this.id),\n ...this.needUpdateConfig,\n ...configToUpdate,\n });\n this.needUpdateConfig = {};\n }\n }\n\n /**\n * 注入图层容器,父容器为场景容器\n * RootContainer 1\n * -> SceneContainer 1.*\n * -> LayerContainer 1.*\n */\n public setContainer(container: Container, sceneContainer: Container) {\n this.container = container;\n this.sceneContainer = sceneContainer;\n }\n\n public getContainer() {\n return this.container;\n }\n\n public setBottomColor(color: string) {\n this.bottomColor = color;\n }\n\n public getBottomColor() {\n return this.bottomColor;\n }\n\n public addPlugin(plugin: ILayerPlugin): ILayer {\n // TODO: 控制插件注册顺序\n // @example:\n // pointLayer.addPlugin(new MyCustomPlugin(), {\n // before: 'L7BuiltinPlugin'\n // });\n this.plugins.push(plugin);\n return this;\n }\n\n public init() {\n // 设置配置项\n const sceneId = this.container.get<string>(TYPES.SceneID);\n // 初始化图层配置项\n // const { enableMultiPassRenderer = false } = this.rawConfig;\n // this.configService.setLayerConfig(sceneId, this.id, {\n // enableMultiPassRenderer,\n // });\n this.configService.setLayerConfig(sceneId, this.id, this.rawConfig);\n this.layerType = this.rawConfig.layerType;\n\n // 全局容器服务\n\n // 场景容器服务\n this.iconService = this.container.get<IIconService>(TYPES.IIconService);\n this.fontService = this.container.get<IFontService>(TYPES.IFontService);\n\n this.rendererService = this.container.get<IRendererService>(\n TYPES.IRendererService,\n );\n this.layerService = this.container.get<ILayerService>(TYPES.ILayerService);\n this.interactionService = this.container.get<IInteractionService>(\n TYPES.IInteractionService,\n );\n\n this.pickingService = this.container.get<IPickingService>(\n TYPES.IPickingService,\n );\n this.mapService = this.container.get<IMapService>(TYPES.IMapService);\n const { enableMultiPassRenderer, passes } = this.getLayerConfig();\n if (enableMultiPassRenderer && passes?.length && passes.length > 0) {\n // Tip: 兼容 multiPassRender 在 amap1 时存在的图层不同步问题 zoom\n this.mapService.on('mapAfterFrameChange', () => {\n this.renderLayers();\n });\n }\n\n this.cameraService = this.container.get<ICameraService>(\n TYPES.ICameraService,\n );\n this.coordinateService = this.container.get<ICoordinateSystemService>(\n TYPES.ICoordinateSystemService,\n );\n this.shaderModuleService = this.container.get<IShaderModuleService>(\n TYPES.IShaderModuleService,\n );\n this.postProcessingPassFactory = this.container.get(\n TYPES.IFactoryPostProcessingPass,\n );\n this.normalPassFactory = this.container.get(TYPES.IFactoryNormalPass);\n\n // 图层容器服务\n this.styleAttributeService = this.container.get<IStyleAttributeService>(\n TYPES.IStyleAttributeService,\n );\n this.multiPassRenderer = this.container.get<IMultiPassRenderer>(\n TYPES.IMultiPassRenderer,\n );\n this.multiPassRenderer.setLayer(this);\n\n // 完成样式服务注册完成前添加的属性\n this.pendingStyleAttributes.forEach(\n ({ attributeName, attributeField, attributeValues, updateOptions }) => {\n this.styleAttributeService.updateStyleAttribute(\n attributeName,\n {\n // @ts-ignore\n scale: {\n field: attributeField,\n ...this.splitValuesAndCallbackInAttribute(\n // @ts-ignore\n attributeValues,\n // @ts-ignore\n this.getLayerConfig()[attributeName],\n ),\n },\n },\n // @ts-ignore\n updateOptions,\n );\n },\n );\n this.pendingStyleAttributes = [];\n\n // 获取插件集\n this.plugins = this.container.getAll<ILayerPlugin>(TYPES.ILayerPlugin);\n // 完成插件注册,传入场景和图层容器内的服务\n for (const plugin of this.plugins) {\n plugin.apply(this, {\n rendererService: this.rendererService,\n mapService: this.mapService,\n styleAttributeService: this.styleAttributeService,\n normalPassFactory: this.normalPassFactory,\n postProcessingPassFactory: this.postProcessingPassFactory,\n });\n }\n\n // 触发 init 生命周期插件\n this.hooks.init.call();\n // this.pickingPassRender = this.normalPassFactory('pixelPicking');\n // this.pickingPassRender.init(this);\n this.hooks.afterInit.call();\n // 触发初始化完成事件;\n this.emit('inited', {\n target: this,\n type: 'inited',\n });\n this.emit('add', {\n target: this,\n type: 'add',\n });\n\n return this;\n }\n\n public updateModelData(data: IAttrubuteAndElements) {\n if (data.attributes && data.elements) {\n this.models.map((m) => {\n m.updateAttributesAndElements(data.attributes, data.elements);\n });\n } else {\n console.warn('data error');\n }\n }\n\n public createModelData(data: any, option?: ISourceCFG) {\n if (this.layerModel?.createModelData) {\n // 在某些特殊图层中单独构建 attribute & elements\n return this.layerModel.createModelData(option);\n }\n const calEncodeData = this.calculateEncodeData(data, option);\n const triangulation = this.triangulation;\n\n if (calEncodeData && triangulation) {\n return this.styleAttributeService.createAttributesAndIndices(\n calEncodeData,\n triangulation,\n );\n } else {\n return {\n attributes: undefined,\n elements: undefined,\n };\n }\n }\n\n public calculateEncodeData(data: any, option?: ISourceCFG) {\n if (this.inited) {\n return calculateData(\n this,\n this.fontService,\n this.mapService,\n this.styleAttributeService,\n data,\n option,\n );\n } else {\n console.warn('layer not inited!');\n return null;\n }\n }\n /**\n * Model初始化前需要更新Model样式\n */\n public prepareBuildModel() {\n this.inited = true;\n this.updateLayerConfig({\n ...(this.getDefaultConfig() as object),\n ...this.rawConfig,\n });\n\n // 启动动画\n const { animateOption } = this.getLayerConfig();\n if (animateOption?.enable) {\n this.layerService.startAnimate();\n this.aniamateStatus = true;\n }\n }\n public color(\n field: StyleAttributeField,\n values?: StyleAttributeOption,\n updateOptions?: Partial<IStyleAttributeUpdateOptions>,\n ) {\n // 设置 color、size、shape、style 时由于场景服务尚未完成(并没有调用 scene.addLayer),因此暂时加入待更新属性列表\n this.updateStyleAttribute('color', field, values, updateOptions);\n\n // this.pendingStyleAttributes.push({\n // attributeName: 'color',\n // attributeField: field,\n // attributeValues: values,\n // defaultName: 'colors',\n // updateOptions,\n // });\n return this;\n }\n\n // 为对应的图层传入纹理的编号名称(point/image 在 shape 方法中传入纹理名称的方法并不通用)\n public texture(\n field: StyleAttributeField,\n values?: StyleAttributeOption,\n updateOptions?: Partial<IStyleAttributeUpdateOptions>,\n ) {\n this.updateStyleAttribute('texture', field, values, updateOptions);\n return this;\n }\n\n public rotate(\n field: StyleAttributeField,\n values?: StyleAttributeOption,\n updateOptions?: Partial<IStyleAttributeUpdateOptions>,\n ) {\n this.updateStyleAttribute('rotate', field, values, updateOptions);\n return this;\n }\n public size(\n field: StyleAttributeField,\n values?: StyleAttributeOption,\n updateOptions?: Partial<IStyleAttributeUpdateOptions>,\n ) {\n this.updateStyleAttribute('size', field, values, updateOptions);\n return this;\n }\n // 对mapping后的数据过滤,scale保持不变\n public filter(\n field: StyleAttributeField,\n values?: StyleAttributeOption,\n updateOptions?: Partial<IStyleAttributeUpdateOptions>,\n ) {\n this.updateStyleAttribute('filter', field, values, updateOptions);\n return this;\n }\n\n public shape(\n field: StyleAttributeField,\n values?: StyleAttributeOption,\n updateOptions?: Partial<IStyleAttributeUpdateOptions>,\n ) {\n const lastShape = this.styleAttributeService?.getLayerStyleAttribute(\n 'shape',\n )?.scale?.field;\n const currentShape = field;\n this.shapeOption = {\n field,\n values,\n };\n this.updateStyleAttribute('shape', field, values, updateOptions);\n // TODO: 根据 shape 判断是否需要更新 model\n if (!this.tileLayer) {\n updateShape(this, lastShape, currentShape);\n }\n return this;\n }\n public label(\n field: StyleAttributeField,\n values?: StyleAttributeOption,\n updateOptions?: Partial<IStyleAttributeUpdateOptions>,\n ) {\n this.pendingStyleAttributes.push({\n attributeName: 'label',\n attributeField: field,\n attributeValues: values,\n updateOptions,\n });\n return this;\n }\n public animate(options: IAnimateOption | boolean) {\n let rawAnimate: Partial<IAnimateOption> = {};\n if (isObject(options)) {\n rawAnimate.enable = true;\n rawAnimate = {\n ...rawAnimate,\n ...options,\n };\n } else {\n rawAnimate.enable = options;\n }\n this.updateLayerConfig({\n animateOption: rawAnimate,\n });\n // this.animateOptions = options;\n return this;\n }\n\n public source(data: any, options?: ISourceCFG): ILayer {\n if (data?.data) {\n // 判断是否为source\n this.setSource(data);\n return this;\n }\n this.sourceOption = {\n data,\n options,\n };\n this.clusterZoom = 0;\n return this;\n }\n\n public setData(data: any, options?: ISourceCFG) {\n if (this.inited) {\n this.layerSource.setData(data, options);\n } else {\n this.on('inited', () => {\n const currentSource = this.getSource();\n if (!currentSource) {\n // 执行 setData 的时候 source 还不存在(还未执行 addLayer)\n this.source(new Source(data, options));\n this.sourceEvent();\n } else {\n this.layerSource.setData(data, options);\n }\n // this.layerSource.setData(data, options);\n });\n }\n\n return this;\n }\n public style(\n options: Partial<ChildLayerStyleOptions> & Partial<ILayerConfig>,\n ): ILayer {\n const lastConfig = this.getLayerConfig();\n const { passes, ...rest } = options;\n\n // passes 特殊处理\n if (passes) {\n normalizePasses(passes).forEach(\n (pass: [string, { [key: string]: unknown }]) => {\n const postProcessingPass = this.multiPassRenderer\n .getPostProcessor()\n .getPostProcessingPassByName(pass[0]);\n if (postProcessingPass) {\n postProcessingPass.updateOptions(pass[1]);\n }\n },\n );\n }\n\n this.rawConfig = {\n ...this.rawConfig,\n ...rest,\n };\n if (this.container) {\n this.updateLayerConfig(this.rawConfig);\n this.styleNeedUpdate = true;\n }\n\n // @ts-ignore\n if (lastConfig && lastConfig.mask === true && options.mask === false) {\n this.clearModels();\n this.layerModel.buildModels((models) => {\n this.models = models;\n });\n }\n return this;\n }\n public scale(field: string | number | IScaleOptions, cfg?: IScale) {\n if (isObject(field)) {\n this.scaleOptions = {\n ...this.scaleOptions,\n ...field,\n };\n } else {\n this.scaleOptions[field] = cfg;\n }\n return this;\n }\n\n /**\n * 渲染所有的图层\n */\n public renderLayers(): void {\n this.rendering = true;\n\n this.layerService.renderLayers();\n\n this.rendering = false;\n }\n\n public render(): ILayer {\n if (this.tileLayer !== undefined) {\n // 瓦片图层执行单独的 render 渲染队列\n this.tileLayer.render();\n return this;\n }\n // TODO: this.getEncodedData().length !== 0 这个判断是为了解决在 2.5.x 引入数据纹理后产生的 空数据渲染导致 texture 超出上限问题\n if (this.getEncodedData() && this.getEncodedData().length !== 0) {\n this.renderModels();\n }\n return this;\n }\n\n /**\n * renderMultiPass 专门用于渲染支持 multipass 的 layer\n */\n public async renderMultiPass() {\n if (this.getEncodedData() && this.getEncodedData().length !== 0) {\n if (this.multiPassRenderer && this.multiPassRenderer.getRenderFlag()) {\n // multi render 开始执行 multiPassRender 的渲染流程\n await this.multiPassRenderer.render();\n } else if (this.multiPassRenderer) {\n // renderPass 触发的渲染\n this.renderModels();\n } else {\n this.renderModels();\n }\n }\n }\n\n public active(options: IActiveOption | boolean) {\n const activeOption: Partial<ILayerConfig> = {};\n activeOption.enableHighlight = isObject(options) ? true : options;\n if (isObject(options)) {\n activeOption.enableHighlight = true;\n if (options.color) {\n activeOption.highlightColor = options.color;\n }\n if (options.mix) {\n activeOption.activeMix = options.mix;\n }\n } else {\n activeOption.enableHighlight = !!options;\n }\n this.updateLayerConfig(activeOption);\n return this;\n }\n public setActive(\n id: number | { x: number; y: number },\n options?: IActiveOption,\n ): void {\n if (isObject(id)) {\n const { x = 0, y = 0 } = id;\n this.updateLayerConfig({\n highlightColor: isObject(options)\n ? options.color\n : this.getLayerConfig().highlightColor,\n activeMix: isObject(options)\n ? options.mix\n : this.getLayerConfig().activeMix,\n });\n this.pick({ x, y });\n } else {\n this.updateLayerConfig({\n pickedFeatureID: id,\n highlightColor: isObject(options)\n ? options.color\n : this.getLayerConfig().highlightColor,\n activeMix: isObject(options)\n ? options.mix\n : this.getLayerConfig().activeMix,\n });\n this.hooks.beforeSelect\n .call(encodePickingColor(id as number) as number[])\n // @ts-ignore\n .then(() => {\n setTimeout(() => {\n this.reRender();\n }, 1);\n });\n }\n }\n\n public select(option: IActiveOption | boolean): ILayer {\n const activeOption: Partial<ILayerConfig> = {};\n activeOption.enableSelect = isObject(option) ? true : option;\n if (isObject(option)) {\n activeOption.enableSelect = true;\n if (option.color) {\n activeOption.selectColor = option.color;\n }\n if (option.mix) {\n activeOption.selectMix = option.mix;\n }\n } else {\n activeOption.enableSelect = !!option;\n }\n this.updateLayerConfig(activeOption);\n return this;\n }\n\n public setSelect(\n id: number | { x: number; y: number },\n options?: IActiveOption,\n ): void {\n if (isObject(id)) {\n const { x = 0, y = 0 } = id;\n this.updateLayerConfig({\n selectColor: isObject(options)\n ? options.color\n : this.getLayerConfig().selectColor,\n selectMix: isObject(options)\n ? options.mix\n : this.getLayerConfig().selectMix,\n });\n this.pick({ x, y });\n } else {\n this.updateLayerConfig({\n pickedFeatureID: id,\n selectColor: isObject(options)\n ? options.color\n : this.getLayerConfig().selectColor,\n selectMix: isObject(options)\n ? options.mix\n : this.getLayerConfig().selectMix,\n });\n this.hooks.beforeSelect\n .call(encodePickingColor(id as number) as number[])\n // @ts-ignore\n .then(() => {\n setTimeout(() => {\n this.reRender();\n }, 1);\n });\n }\n }\n public setBlend(type: keyof typeof BlendType): ILayer {\n this.updateLayerConfig({\n blend: type,\n });\n this.layerModelNeedUpdate = true;\n this.reRender();\n return this;\n }\n public show(): ILayer {\n this.updateLayerConfig({\n visible: true,\n });\n this.reRender();\n return this;\n }\n\n public hide(): ILayer {\n if (this.type === 'CanvasLayer' && this.layerModel.clearCanvas) {\n // 对 canvasLayer 的 hide 操作做特殊处理\n this.layerModel.clearCanvas();\n }\n this.updateLayerConfig({\n visible: false,\n });\n this.reRender();\n return this;\n }\n public setIndex(index: number): ILayer {\n this.zIndex = index;\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n return this;\n }\n\n public setCurrentPickId(id: number) {\n this.currentPickId = id;\n }\n\n public getCurrentPickId(): number | null {\n return this.currentPickId;\n }\n\n public setCurrentSelectedId(id: number) {\n this.selectedFeatureID = id;\n }\n\n public getCurrentSelectedId(): number | null {\n return this.selectedFeatureID;\n }\n public isVisible(): boolean {\n const zoom = this.mapService.getZoom();\n const {\n visible,\n minZoom = -Infinity,\n maxZoom = Infinity,\n } = this.getLayerConfig();\n return !!visible && zoom >= minZoom && zoom <= maxZoom;\n }\n\n public setMultiPass(\n enableMultiPass: boolean,\n currentPasses?: Array<string | [string, { [key: string]: unknown }]>,\n ) {\n this.updateLayerConfig({\n enableMultiPassRenderer: enableMultiPass,\n });\n if (currentPasses) {\n this.updateLayerConfig({\n passes: currentPasses,\n });\n }\n\n if (enableMultiPass) {\n const { passes = [] } = this.getLayerConfig();\n this.multiPassRenderer = createMultiPassRenderer(\n this,\n passes,\n this.postProcessingPassFactory,\n this.normalPassFactory,\n );\n this.multiPassRenderer.setRenderFlag(true);\n const { width, height } = this.rendererService.getViewportSize();\n this.multiPassRenderer.resize(width, height);\n }\n\n return this;\n }\n\n public setMinZoom(minZoom: number): ILayer {\n this.updateLayerConfig({\n minZoom,\n });\n return this;\n }\n\n public getMinZoom(): number {\n const { minZoom } = this.getLayerConfig();\n return minZoom as number;\n }\n\n public getMaxZoom(): number {\n const { maxZoom } = this.getLayerConfig();\n return maxZoom as number;\n }\n\n public get(name: string) {\n const cfg = this.getLayerConfig();\n // @ts-ignore\n return cfg[name];\n }\n\n public setMaxZoom(maxZoom: number): ILayer {\n this.updateLayerConfig({\n maxZoom,\n });\n return this;\n }\n\n public setAutoFit(autoFit: boolean): ILayer {\n this.updateLayerConfig({\n autoFit,\n });\n return this;\n }\n\n /**\n * zoom to layer Bounds\n */\n public fitBounds(fitBoundsOptions?: unknown): ILayer {\n if (!this.inited) {\n this.updateLayerConfig({\n autoFit: true,\n });\n return this;\n }\n const source = this.getSource();\n const extent = source.extent;\n const isValid = extent.some((v) => Math.abs(v) === Infinity);\n if (isValid) {\n return this;\n }\n this.mapService.fitBounds(\n [\n [extent[0], extent[1]],\n [extent[2], extent[3]],\n ],\n fitBoundsOptions,\n );\n return this;\n }\n\n public destroy(refresh = true) {\n if (this.isDestroied) {\n return;\n }\n\n // remove child layer\n this.layerChildren.map((child: ILayer) => child.destroy());\n this.layerChildren = [];\n\n // remove mask list\n this.masks.map((mask: ILayer) => mask.destroy());\n this.masks = [];\n\n this.hooks.beforeDestroy.call();\n // 清除sources事件\n this.layerSource.off('sourceUpdate', this.sourceEvent);\n\n this.multiPassRenderer.destroy();\n // console.log(this.styleAttributeService.getAttributes())\n // 清除所有属性以及关联的 vao == 销毁所有 => model this.models.forEach((model) => model.destroy());\n this.styleAttributeService.clearAllAttributes();\n\n // 执行每个图层单独的 clearModels 方法 (清除一些额外的 texture、program、buffer 等)\n\n this.hooks.afterDestroy.call();\n\n // TODO: 清除各个图层自定义的 models 资源\n this.layerModel?.clearModels();\n\n this.models = [];\n\n this.layerService.cleanRemove(this, refresh);\n\n this.emit('remove', {\n target: this,\n type: 'remove',\n });\n\n this.emit('destroy', {\n target: this,\n type: 'destroy',\n });\n\n this.removeAllListeners();\n // 解绑图层容器中的服务\n // this.container.unbind(TYPES.IStyleAttributeService);\n\n this.isDestroied = true;\n }\n public clear() {\n this.styleAttributeService.clearAllAttributes();\n // 销毁所有 model\n }\n public clearModels() {\n this.models.forEach((model) => model.destroy());\n this.layerModel?.clearModels();\n this.models = [];\n }\n\n public isDirty() {\n return !!(\n this.styleAttributeService.getLayerStyleAttributes() || []\n ).filter(\n (attribute) =>\n attribute.needRescale ||\n attribute.needRemapping ||\n attribute.needRegenerateVertices,\n ).length;\n }\n\n public setSource(source: Source) {\n // 清除旧 sources 事件\n if (this.layerSource) {\n this.layerSource.off('sourceUpdate', this.sourceEvent);\n }\n\n this.layerSource = source;\n this.clusterZoom = 0;\n\n // 已 inited 且启用聚合进行更新聚合数据\n if (this.inited && this.layerSource.cluster) {\n const zoom = this.mapService.getZoom();\n this.layerSource.updateClusterData(zoom);\n }\n // source 可能会复用,会在其它layer被修改\n if (this.layerSource.inited) {\n this.sourceEvent();\n }\n // this.layerSource.inited 为 true 后,sourceUpdate 事件不会再触发\n this.layerSource.on('sourceUpdate', () => {\n this.sourceEvent();\n });\n }\n public getSource() {\n return this.layerSource;\n }\n\n public getScaleOptions() {\n return this.scaleOptions;\n }\n\n public setEncodedData(encodedData: IEncodeFeature[]) {\n this.encodedData = encodedData;\n }\n public getEncodedData() {\n return this.encodedData;\n }\n\n public getScale(name: string): any {\n return this.styleAttributeService.getLayerAttributeScale(name);\n }\n\n public getLegendItems(name: string): LegendItems {\n const scale = this.styleAttributeService.getLayerAttributeScale(name);\n\n // 函数自定义映射,没有 scale 返回为空数组\n if (!scale) {\n return [];\n }\n\n if (scale.invertExtent) {\n // 分段类型 Quantize、Quantile、Threshold\n const items: ILegendSegmentItem[] = scale.range().map((item: number) => {\n return {\n value: scale.invertExtent(item),\n [name]: item,\n };\n });\n\n return items;\n } else if (scale.ticks) {\n // 连续类型 Continuous (Linear, Power, Log, Identity, Time)\n const items: ILegendClassificaItem[] = scale\n .ticks()\n .map((item: string) => {\n return {\n value: item,\n [name]: scale(item),\n };\n });\n\n return items;\n } else if (scale?.domain) {\n // 枚举类型 Cat\n const items: ILegendClassificaItem[] = scale\n .domain()\n .filter((item: string | number | undefined) => !isUndefined(item))\n .map((item: string | number) => {\n return {\n value: item,\n [name]: scale(item) as string,\n };\n });\n\n return items;\n }\n\n return [];\n }\n\n public pick({ x, y }: { x: number; y: number }) {\n this.interactionService.triggerHover({ x, y });\n }\n\n public boxSelect(\n box: [number, number, number, number],\n cb: (...args: any[]) => void,\n ) {\n this.pickingService.boxPickLayer(this, box, cb);\n }\n\n public buildLayerModel(\n options: ILayerModelInitializationOptions &\n Partial<IModelInitializationOptions>,\n ): Promise<IModel> {\n const {\n moduleName,\n vertexShader,\n fragmentShader,\n triangulation,\n segmentNumber,\n workerEnabled = false,\n workerOptions,\n ...rest\n } = options;\n\n this.shaderModuleService.registerModule(moduleName, {\n vs: vertexShader,\n fs: fragmentShader,\n });\n const { vs, fs, uniforms } = this.shaderModuleService.getModule(moduleName);\n const { createModel } = this.rendererService;\n return new Promise((resolve, reject) => {\n // filter supported worker & worker enabled layer\n if (\n workerOptions &&\n workerOptions.modelType in WorkerSourceMap &&\n workerEnabled\n ) {\n this.styleAttributeService\n .createAttributesAndIndicesAscy(\n this.encodedData,\n segmentNumber,\n workerOptions,\n )\n .then(({ attributes, elements }) => {\n const m = createModel({\n attributes,\n uniforms,\n fs,\n vs,\n elements,\n blend: BlendTypes[BlendType.normal],\n ...rest,\n });\n resolve(m);\n })\n .catch((err) => reject(err));\n } else {\n const {\n attributes,\n elements,\n } = this.styleAttributeService.createAttributesAndIndices(\n this.encodedData,\n triangulation,\n segmentNumber,\n );\n const m = createModel({\n attributes,\n uniforms,\n fs,\n vs,\n elements,\n blend: BlendTypes[BlendType.normal],\n ...rest,\n });\n resolve(m);\n }\n });\n }\n\n public createAttrubutes(\n options: ILayerModelInitializationOptions &\n Partial<IModelInitializationOptions>,\n ) {\n const { triangulation } = options;\n // @ts-ignore\n const { attributes } = this.styleAttributeService.createAttributes(\n this.encodedData,\n triangulation,\n );\n return attributes;\n }\n\n public getTime() {\n return this.layerService.clock.getDelta();\n }\n public setAnimateStartTime() {\n this.animateStartTime = this.layerService.clock.getElapsedTime();\n }\n public stopAnimate() {\n if (this.aniamateStatus) {\n this.layerService.stopAnimate();\n this.aniamateStatus = false;\n this.updateLayerConfig({\n animateOption: {\n enable: false,\n },\n });\n }\n }\n public getLayerAnimateTime(): number {\n return this.layerService.clock.getElapsedTime() - this.animateStartTime;\n }\n\n public needPick(type: string): boolean {\n const {\n enableHighlight = true,\n enableSelect = true,\n } = this.getLayerConfig();\n // 判断layer是否监听事件;\n let isPick =\n this.eventNames().indexOf(type) !== -1 ||\n this.eventNames().indexOf('un' + type) !== -1;\n if ((type === 'click' || type === 'dblclick') && enableSelect) {\n isPick = true;\n }\n if (\n type === 'mousemove' &&\n (enableHighlight ||\n this.eventNames().indexOf('mouseenter') !== -1 ||\n this.eventNames().indexOf('unmousemove') !== -1 ||\n this.eventNames().indexOf('mouseout') !== -1)\n ) {\n isPick = true;\n }\n return this.isVisible() && isPick;\n }\n\n public buildModels() {\n throw new Error('Method not implemented.');\n }\n public rebuildModels() {\n throw new Error('Method not implemented.');\n }\n\n public async renderMulPass(multiPassRenderer: IMultiPassRenderer) {\n await multiPassRenderer.render();\n }\n\n public renderModels(isPicking?: boolean) {\n // TODO: this.getEncodedData().length > 0 这个判断是为了解决在 2.5.x 引入数据纹理后产生的 空数据渲染导致 texture 超出上限问题\n if (this.getEncodedData() && this.getEncodedData().length > 0) {\n if (this.layerModelNeedUpdate && this.layerModel) {\n this.layerModel.buildModels((models: IModel[]) => {\n this.models = models;\n this.hooks.beforeRender.call();\n this.layerModelNeedUpdate = false;\n });\n }\n if (this?.layerModel?.renderUpdate) {\n this.layerModel.renderUpdate();\n }\n\n this.models.forEach((model) => {\n model.draw(\n {\n uniforms: this.layerModel.getUninforms(),\n },\n isPicking,\n );\n });\n }\n return this;\n }\n\n public updateStyleAttribute(\n type: string,\n field: StyleAttributeField,\n values?: StyleAttributeOption,\n updateOptions?: Partial<IStyleAttributeUpdateOptions>,\n ) {\n if (!this.inited) {\n this.pendingStyleAttributes.push({\n attributeName: type,\n attributeField: field,\n attributeValues: values,\n updateOptions,\n });\n } else {\n this.styleAttributeService.updateStyleAttribute(\n type,\n {\n // @ts-ignore\n scale: {\n field,\n ...this.splitValuesAndCallbackInAttribute(\n // @ts-ignore\n values,\n // @ts-ignore\n this.getLayerConfig()[field],\n ),\n },\n },\n // @ts-ignore\n updateOptions,\n );\n }\n }\n\n public getShaderPickStat() {\n return this.layerService.getShaderPickStat();\n }\n\n /**\n * 继承空方法\n * @param time\n */\n public setEarthTime(time: number) {\n console.warn('empty fn');\n }\n\n protected getConfigSchema() {\n throw new Error('Method not implemented.');\n }\n\n protected getModelType(): unknown {\n throw new Error('Method not implemented.');\n }\n protected getDefaultConfig() {\n return {};\n }\n\n private sourceEvent = () => {\n this.dataState.dataSourceNeedUpdate = true;\n const layerConfig = this.getLayerConfig();\n if (layerConfig && layerConfig.autoFit) {\n this.fitBounds(layerConfig.fitBoundsOptions);\n }\n // 对外暴露事件 迁移到 DataMappingPlugin generateMapping,保证在重新重新映射后触发\n // this.emit('dataUpdate');\n this.reRender();\n };\n\n private reRender() {\n if (this.inited) {\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n }\n }\n private splitValuesAndCallbackInAttribute(\n valuesOrCallback?: unknown[],\n defaultValues?: unknown[],\n ) {\n return {\n values: isFunction(valuesOrCallback)\n ? undefined\n : valuesOrCallback || defaultValues,\n callback: isFunction(valuesOrCallback) ? valuesOrCallback : undefined,\n };\n }\n}\n"],"file":"BaseLayer.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/BaseModel.ts"],"names":["BaseModel","TYPES","IGlobalConfigService","layer","rendererService","getContainer","get","IRendererService","pickingService","IPickingService","shaderModuleService","IShaderModuleService","styleAttributeService","IStyleAttributeService","mapService","IMapService","iconService","IIconService","fontService","IFontService","cameraService","ICameraService","layerService","ILayerService","registerBuiltinAttributes","startModelAnimate","createTexture2D","DATA_TEXTURE_WIDTH","rowCount","cellLength","cellProperties","cacheStyleProperties","thetaOffset","undefined","opacity","strokeOpacity","strokeWidth","stroke","offsets","stylePropertyesExist","hasThetaOffset","hasOpacity","hasStrokeOpacity","hasStrokeWidth","hasStroke","hasOffsets","dataTextureTest","getOESTextureFloat","dataTexture","data","Uint8Array","mag","gl","NEAREST","min","width","height","options","isUpdate","clearLastCalRes","push","attr","count","isStaticColor","isOffsetStatic","strokeColor","Array","isArray","length","d","i","cellData","cellPropertiesLayouts","layout","value","patchMod","encodeData","encodeDatalength","Math","ceil","totalLength","patchData","getLayerConfig","blend","BlendTypes","BlendType","Error","callbackModel","option","enable","duration","interval","trailLength","animateOption","setAnimateStartTime"],"mappings":"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","sourcesContent":["import {\n BlendType,\n gl,\n IAnimateOption,\n IAttribute,\n IBlendOptions,\n ICameraService,\n IElements,\n IEncodeFeature,\n IFontService,\n IGlobalConfigService,\n IIconService,\n ILayer,\n ILayerConfig,\n ILayerModel,\n ILayerService,\n IMapService,\n IModel,\n IModelUniform,\n IPickingService,\n IRendererService,\n IShaderModuleService,\n IStyleAttributeService,\n ITexture2D,\n ITexture2DInitializationOptions,\n lazyInject,\n Triangulation,\n TYPES,\n} from '@antv/l7-core';\nimport { rgb2arr } from '@antv/l7-utils';\nimport { color } from 'd3-color';\nimport { isEqual, isFunction, isNumber, isString } from 'lodash';\nimport { BlendTypes } from '../utils/blend';\n\nexport type styleSingle =\n | number\n | string\n | [string, (single: any) => number]\n | [string, [number, number]];\nexport type styleOffset =\n | string\n | [number, number]\n | [string, (single: any) => number];\nexport type styleColor =\n | string\n | [string, (single: any) => string]\n | [string, [string, string]];\nexport interface IDataTextureFrame {\n data: number[];\n width: number;\n height: number;\n}\n\nexport interface ICellProperty {\n attr: string;\n count: number;\n}\n\nexport default class BaseModel<ChildLayerStyleOptions = {}>\n implements ILayerModel {\n public triangulation: Triangulation;\n\n // style texture data mapping\n public createTexture2D: (\n options: ITexture2DInitializationOptions,\n ) => ITexture2D;\n\n protected layer: ILayer;\n protected dataTexture: ITexture2D; // 用于数据传递的数据纹理\n protected DATA_TEXTURE_WIDTH: number; // 默认有多少列(宽度)\n protected rowCount: number; // 计算得到的当前数据纹理有多少行(高度)\n protected cacheStyleProperties: {\n // 记录存储上一次样式字段的值\n thetaOffset: styleSingle | undefined;\n opacity: styleSingle | undefined;\n strokeOpacity: styleSingle | undefined;\n strokeWidth: styleSingle | undefined;\n stroke: styleColor | undefined;\n offsets: styleOffset | undefined;\n };\n protected cellLength: number; // 单个 cell 的长度\n protected cellProperties: ICellProperty[]; // 需要进行数据映射的属性集合\n protected cellTypeLayout: number[];\n protected stylePropertyesExist: {\n // 记录 style 属性是否存在的中间变量\n hasThetaOffset: number;\n hasOpacity: number;\n hasStrokeOpacity: number;\n hasStrokeWidth: number;\n hasStroke: number;\n hasOffsets: number;\n };\n protected dataTextureTest: boolean;\n\n @lazyInject(TYPES.IGlobalConfigService)\n protected readonly configService: IGlobalConfigService;\n\n // @lazyInject(TYPES.IIconService)\n // protected readonly iconService: IIconService;\n\n // @lazyInject(TYPES.IFontService)\n // protected readonly fontService: IFontService;\n\n // @lazyInject(TYPES.IShaderModuleService)\n protected shaderModuleService: IShaderModuleService;\n\n protected rendererService: IRendererService;\n protected iconService: IIconService;\n protected fontService: IFontService;\n protected styleAttributeService: IStyleAttributeService;\n protected mapService: IMapService;\n protected cameraService: ICameraService;\n protected layerService: ILayerService;\n protected pickingService: IPickingService;\n\n // style texture data mapping\n\n constructor(layer: ILayer) {\n this.layer = layer;\n this.rendererService = layer\n .getContainer()\n .get<IRendererService>(TYPES.IRendererService);\n this.pickingService = layer\n .getContainer()\n .get<IPickingService>(TYPES.IPickingService);\n\n this.shaderModuleService = layer\n .getContainer()\n .get<IShaderModuleService>(TYPES.IShaderModuleService);\n\n this.styleAttributeService = layer\n .getContainer()\n .get<IStyleAttributeService>(TYPES.IStyleAttributeService);\n this.mapService = layer.getContainer().get<IMapService>(TYPES.IMapService);\n this.iconService = layer\n .getContainer()\n .get<IIconService>(TYPES.IIconService);\n this.fontService = layer\n .getContainer()\n .get<IFontService>(TYPES.IFontService);\n this.cameraService = layer\n .getContainer()\n .get<ICameraService>(TYPES.ICameraService);\n this.layerService = layer\n .getContainer()\n .get<ILayerService>(TYPES.ILayerService);\n\n // 注册 Attribute\n this.registerBuiltinAttributes();\n // 开启动画\n this.startModelAnimate();\n\n const { createTexture2D } = this.rendererService;\n this.createTexture2D = createTexture2D;\n this.DATA_TEXTURE_WIDTH = 1024; // 数据纹理固定宽度\n this.rowCount = 1;\n this.cellLength = 0;\n this.cellProperties = [];\n this.cacheStyleProperties = {\n thetaOffset: undefined,\n opacity: undefined,\n strokeOpacity: undefined,\n strokeWidth: undefined,\n stroke: undefined,\n offsets: undefined,\n };\n this.stylePropertyesExist = {\n hasThetaOffset: 0,\n hasOpacity: 0,\n hasStrokeOpacity: 0,\n hasStrokeWidth: 0,\n hasStroke: 0,\n hasOffsets: 0,\n };\n this.dataTextureTest = this.layerService.getOESTextureFloat();\n // 只有在不支持数据纹理的情况下进行赋值\n if (!this.dataTextureTest) {\n this.dataTexture = this.createTexture2D({\n // data: new Uint8ClampedArray(4),\n // 使用 Uint8ClampedArray 在 支付宝 环境中可能存在问题 UC 内核对格式有要求 L7 v2.7.18 版本发现\n // Uint8ClampedArray 和 Uint8Array 没有实质性的区别\n data: new Uint8Array(4),\n mag: gl.NEAREST,\n min: gl.NEAREST,\n width: 1,\n height: 1,\n });\n }\n }\n\n // style datatexture mapping\n\n /**\n * 清除上一次的计算结果 - 全量清除\n */\n public clearLastCalRes() {\n this.cellProperties = []; // 清空上一次计算的需要进行数据映射的属性集合\n this.cellLength = 0; // 清空上一次计算的 cell 的长度\n this.stylePropertyesExist = {\n // 全量清空上一次是否需要对 style 属性进行数据映射的判断\n hasThetaOffset: 0,\n hasOpacity: 0,\n hasStrokeOpacity: 0,\n hasStrokeWidth: 0,\n hasStroke: 0,\n hasOffsets: 0,\n };\n }\n\n public getCellTypeLayout() {\n if (this.dataTextureTest) {\n return [\n // 0\n this.rowCount, // 数据纹理有几行\n this.DATA_TEXTURE_WIDTH, // 数据纹理有几列\n 0.0,\n 0.0,\n // 1\n this.stylePropertyesExist.hasOpacity, // cell 中是否存在 opacity\n this.stylePropertyesExist.hasStrokeOpacity, // cell 中是否存在 strokeOpacity\n this.stylePropertyesExist.hasStrokeWidth, // cell 中是否存在 strokeWidth\n this.stylePropertyesExist.hasStroke, // cell 中是否存在 stroke\n // 2\n this.stylePropertyesExist.hasOffsets, // cell 中是否存在 offsets\n this.stylePropertyesExist.hasThetaOffset, // cell 中是否存在 thetaOffset\n 0.0,\n 0.0,\n // 3\n 0.0,\n 0.0,\n 0.0,\n 1.0,\n ];\n } else {\n return [\n 1.0, // 数据纹理有几行\n 1.0, // 数据纹理有几列\n 0.0,\n 0.0,\n 0.0, // cell 中是否存在 opacity\n 0.0, // cell 中是否存在 strokeOpacity\n 0.0, // cell 中是否存在 strokeWidth\n 0.0, // cell 中是否存在 stroke\n 0.0, // cell 中是否存在 offsets\n 0.0,\n 0.0,\n 0.0,\n 0.0,\n 0.0,\n 0.0,\n -1.0,\n ];\n }\n }\n\n /**\n * 判断数据纹理是否需要重新计算 - 根据传入的值进行判断\n * @param options\n * @returns\n */\n public dataTextureNeedUpdate(options: {\n // TODO: thetaOffset 目前只有 lineLayer/arc 使用\n thetaOffset?: styleSingle;\n opacity?: styleSingle;\n strokeOpacity?: styleSingle;\n strokeWidth?: styleSingle;\n stroke?: styleColor;\n offsets?: styleOffset;\n textOffset?: styleOffset;\n }): boolean {\n let isUpdate = false;\n if (!isEqual(options.thetaOffset, this.cacheStyleProperties.thetaOffset)) {\n isUpdate = true;\n this.cacheStyleProperties.thetaOffset = options.thetaOffset;\n }\n if (!isEqual(options.opacity, this.cacheStyleProperties.opacity)) {\n isUpdate = true;\n this.cacheStyleProperties.opacity = options.opacity;\n }\n if (\n !isEqual(options.strokeOpacity, this.cacheStyleProperties.strokeOpacity)\n ) {\n isUpdate = true;\n this.cacheStyleProperties.strokeOpacity = options.strokeOpacity;\n }\n if (!isEqual(options.strokeWidth, this.cacheStyleProperties.strokeWidth)) {\n isUpdate = true;\n this.cacheStyleProperties.strokeWidth = options.strokeWidth;\n }\n if (!isEqual(options.stroke, this.cacheStyleProperties.stroke)) {\n isUpdate = true;\n this.cacheStyleProperties.stroke = options.stroke;\n }\n if (!isEqual(options.offsets, this.cacheStyleProperties.offsets)) {\n isUpdate = true;\n this.cacheStyleProperties.offsets = options.offsets;\n }\n if (this.dataTexture === undefined) {\n isUpdate = true;\n }\n return isUpdate;\n }\n /**\n * 判断当前的样式中哪些是需要进行数据映射的,哪些是常量,同时计算用于构建数据纹理的一些中间变量\n * @param options\n */\n public judgeStyleAttributes(options: {\n // TODO: 目前 thetaOffset 只有 lineLayer/arc 使用\n thetaOffset?: styleSingle;\n opacity?: styleSingle;\n strokeOpacity?: styleSingle;\n strokeWidth?: styleSingle;\n stroke?: styleColor;\n offsets?: styleOffset;\n }) {\n this.clearLastCalRes(); // 清除上一次的计算结果 - 全量清除\n\n if (options.opacity !== undefined && !isNumber(options.opacity)) {\n // 数据映射\n this.cellProperties.push({ attr: 'opacity', count: 1 });\n this.stylePropertyesExist.hasOpacity = 1;\n this.cellLength += 1;\n }\n\n if (\n options.strokeOpacity !== undefined &&\n !isNumber(options.strokeOpacity)\n ) {\n // 数据映射\n this.cellProperties.push({ attr: 'strokeOpacity', count: 1 });\n this.stylePropertyesExist.hasStrokeOpacity = 1;\n this.cellLength += 1;\n }\n\n if (options.strokeWidth !== undefined && !isNumber(options.strokeWidth)) {\n // 数据映射\n this.cellProperties.push({ attr: 'strokeWidth', count: 1 });\n this.stylePropertyesExist.hasStrokeWidth = 1;\n this.cellLength += 1;\n }\n\n if (options.stroke !== undefined && !this.isStaticColor(options.stroke)) {\n // 数据映射\n this.cellProperties.push({ attr: 'stroke', count: 4 });\n this.stylePropertyesExist.hasStroke = 1;\n this.cellLength += 4;\n }\n\n if (\n options.offsets !== undefined &&\n !this.isOffsetStatic(options.offsets)\n ) {\n // 数据映射\n this.cellProperties.push({ attr: 'offsets', count: 2 });\n this.stylePropertyesExist.hasOffsets = 1;\n this.cellLength += 2;\n }\n\n if (options.thetaOffset !== undefined && !isNumber(options.thetaOffset)) {\n // 数据映射\n this.cellProperties.push({ attr: 'thetaOffset', count: 1 });\n this.stylePropertyesExist.hasThetaOffset = 1;\n this.cellLength += 1;\n }\n // console.log('this.cellLength', this.cellLength)\n }\n\n /**\n * 判断变量 stroke 是否是常量值\n * @param stroke\n * @returns\n */\n public isStaticColor(stroke: styleColor): boolean {\n if (isString(stroke)) {\n if (color(stroke)) {\n return true;\n } else {\n return false;\n }\n }\n return false;\n }\n /**\n * 获取 stroke 颜色并做兼容处理\n * @param stroke\n * @returns\n */\n public getStrokeColor(stroke: styleColor) {\n if (this.isStaticColor(stroke)) {\n const strokeColor = rgb2arr(stroke as string);\n strokeColor[0] = strokeColor[0] ? strokeColor[0] : 0;\n strokeColor[1] = strokeColor[1] ? strokeColor[1] : 0;\n strokeColor[2] = strokeColor[2] ? strokeColor[2] : 0;\n strokeColor[3] = strokeColor[3] ? strokeColor[3] : 0;\n return strokeColor;\n } else {\n return [0, 0, 0, 0];\n }\n }\n\n /**\n * 判断 offsets 是否是常量\n * @param offsets\n * @returns\n */\n public isOffsetStatic(offsets: styleOffset) {\n if (\n Array.isArray(offsets) &&\n offsets.length === 2 &&\n isNumber(offsets[0]) &&\n isNumber(offsets[1])\n ) {\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * 补空位\n * @param d\n * @param count\n */\n public patchMod(d: number[], count: number) {\n for (let i = 0; i < count; i++) {\n d.push(-1);\n }\n }\n\n /**\n * 根据映射的数据字段往推入数据\n * @param d\n * @param cellData\n * @param cellPropertiesLayouts\n */\n public patchData(\n d: number[],\n cellData: IEncodeFeature,\n cellPropertiesLayouts: ICellProperty[],\n ) {\n for (const layout of cellPropertiesLayouts) {\n const { attr, count } = layout;\n\n const value = cellData[attr];\n if (value !== undefined) {\n // 数据中存在该属性\n if (attr === 'stroke') {\n d.push(...rgb2arr(value));\n } else if (attr === 'offsets') {\n if (this.isOffsetStatic(value)) {\n d.push(-value[0], value[1]);\n } else {\n d.push(0, 0);\n }\n } else {\n d.push(isNumber(value) ? value : 1.0);\n }\n } else {\n // 若不存在时则补位\n this.patchMod(d, count);\n }\n }\n }\n\n /**\n * 计算推入数据纹理的数据\n * @param cellLength\n * @param encodeData\n * @param cellPropertiesLayouts\n * @returns\n */\n public calDataFrame(\n cellLength: number,\n encodeData: IEncodeFeature[],\n cellPropertiesLayouts: ICellProperty[],\n ): IDataTextureFrame {\n const encodeDatalength = encodeData.length;\n const rowCount = Math.ceil(\n (encodeDatalength * cellLength) / this.DATA_TEXTURE_WIDTH,\n ); // 有多少行\n\n const totalLength = rowCount * this.DATA_TEXTURE_WIDTH;\n const d: number[] = [];\n for (let i = 0; i < encodeDatalength; i++) {\n // 根据 encodeData 数据推入数据\n const cellData = encodeData[i];\n this.patchData(d, cellData, cellPropertiesLayouts);\n }\n for (let i = d.length; i < totalLength; i++) {\n // 每行不足的部分用 -1 补足(数据纹理时 width * height 的矩形数据集合)\n d.push(-1);\n }\n // console.log('data', d)\n return { data: d, width: this.DATA_TEXTURE_WIDTH, height: rowCount };\n }\n\n // style datatexture mapping\n\n public getBlend(): IBlendOptions {\n const { blend = 'normal' } = this.layer.getLayerConfig();\n return BlendTypes[BlendType[blend]] as IBlendOptions;\n }\n public getDefaultStyle(): unknown {\n return {};\n }\n public getUninforms(): IModelUniform {\n throw new Error('Method not implemented.');\n }\n\n public getAnimateUniforms(): IModelUniform {\n return {};\n }\n\n public needUpdate(): boolean {\n return false;\n }\n public buildModels(callbackModel: (models: IModel[]) => void): void {\n throw new Error('Method not implemented.');\n }\n public initModels(callbackModel: (models: IModel[]) => void): void {\n throw new Error('Method not implemented.');\n }\n public clearModels() {\n return;\n }\n public getAttribute(): {\n attributes: {\n [attributeName: string]: IAttribute;\n };\n elements: IElements;\n } {\n throw new Error('Method not implemented.');\n }\n public render() {\n throw new Error('Method not implemented.');\n }\n protected registerBuiltinAttributes() {\n throw new Error('Method not implemented.');\n }\n protected animateOption2Array(option: IAnimateOption): number[] {\n return [\n option.enable ? 0 : 1.0,\n option.duration || 4.0,\n option.interval || 0.2,\n option.trailLength || 0.1,\n ];\n }\n protected startModelAnimate() {\n const { animateOption } = this.layer.getLayerConfig() as ILayerConfig;\n if (animateOption.enable) {\n this.layer.setAnimateStartTime();\n }\n }\n}\n"],"file":"BaseModel.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/interface.ts"],"names":["lineStyleType","CanvasUpdateType"],"mappings":";;;;;;IAIYA,a;;;WAAAA,a;AAAAA,EAAAA,a,CAAAA,a;AAAAA,EAAAA,a,CAAAA,a;GAAAA,a,6BAAAA,a;;IA2NAC,gB;;;WAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;GAAAA,gB,gCAAAA,gB","sourcesContent":["import { IAnimateOption, IMapService } from '@antv/l7-core';\nimport { IColorRamp, IImagedata } from '@antv/l7-utils';\nimport { styleOffset, styleSingle } from '../core/BaseModel';\nimport { anchorType } from '../utils/symbol-layout';\nexport enum lineStyleType {\n 'solid' = 0.0,\n 'dash' = 1.0,\n}\n\ninterface ILineArrow {\n enable: boolean;\n arrowWidth: number;\n arrowHeight: number;\n tailWidth: number;\n}\n\nexport interface ILineLayerStyleOptions {\n tileOrigin?: number[];\n coord?: string;\n\n opacity: styleSingle;\n lineType?: keyof typeof lineStyleType; // 可选参数、线类型(all - dash/solid)\n dashArray?: [number, number]; // 可选参数、虚线间隔\n segmentNumber?: number;\n\n depth?: boolean;\n forward?: boolean; // 可选参数、是否反向(arcLine)\n lineTexture?: boolean; // 可选参数、是否开启纹理贴图功能(all)\n iconStep?: number; // 可选参数、纹理贴图步长(all)\n iconStepCount?: number; // 可选参数、纹理贴图间隔\n textureBlend?: string; // 可选参数、供给纹理贴图使用(all)\n sourceColor?: string; // 可选参数、设置渐变色的起始颜色(all)\n targetColor?: string; // 可选参数、设置渐变色的终点颜色(all)\n thetaOffset?: number; // 可选参数、设置弧线的偏移量\n\n globalArcHeight?: number; // 可选参数、地球模式下 3D 弧线的高度\n vertexHeightScale?: number; // 可选参数、lineLayer vertex height scale\n\n borderWidth?: number; // 可选参数 线边框宽度\n borderColor?: string; // 可选参数 线边框颜色\n\n heightfixed?: boolean; // 可选参数 高度是否固定\n raisingHeight?: number; // 线图层抬升高度\n\n mask?: boolean; // 可选参数 时候允许蒙层\n maskInside?: boolean; // 可选参数 控制图层是否显示在蒙层的内部\n\n arrow?: ILineArrow;\n\n rampColors?: IColorRamp;\n featureId?: string;\n sourceLayer?: string;\n enablePicking?: boolean;\n workerEnabled?: boolean;\n}\n\nexport interface IPointLayerStyleOptions {\n tileOrigin?: number[];\n coord?: string;\n opacity: number;\n strokeOpacity: number;\n strokeWidth: number;\n stroke: string;\n\n blur?: number;\n\n // text\n textOffset?: [number, number];\n textAnchor?: anchorType;\n spacing?: number;\n padding?: [number, number];\n halo?: number;\n gamma?: number;\n fontWeight?: string;\n fontFamily?: string;\n textAllowOverlap?: boolean;\n\n raisingHeight?: number; // 线图层抬升高度\n\n // cylinder\n pickLight?: boolean;\n depth?: boolean;\n sourceColor?: string; // 可选参数、设置渐变色的起始颜色(all)\n targetColor?: string; // 可选参数、设置渐变色的终点颜色(all)\n opacityLinear?: {\n enable: boolean;\n dir: string;\n };\n lightEnable: boolean;\n heightfixed?: boolean; // 圆柱体高度是否固定(不随 zoom 发生变化)\n\n offsets?: styleOffset;\n blend?: string;\n unit?: string;\n mask?: boolean;\n maskInside?: boolean;\n\n rotation?: number; // angle\n speed?: number;\n featureId?: string;\n sourceLayer?: string;\n}\n\nexport interface IPolygonLayerStyleOptions {\n tileOrigin?: number[];\n coord?: string;\n opacity?: number;\n\n opacityLinear?: {\n enable: boolean;\n dir: string;\n };\n\n topsurface?: boolean;\n sidesurface?: boolean;\n\n mapTexture?: string; // 挤出几何体顶面贴图\n raisingHeight?: number; // 挤出几何体抬升高度\n sourceColor?: string; // 可选参数、设置渐变色的起始颜色(all)\n targetColor?: string; // 可选参数、设置渐变色的终点颜色(all)\n heightfixed?: boolean; // 挤出几何体高度是否固定(不随 zoom 发生变化)\n\n pickLight: boolean;\n mask?: boolean;\n maskInside?: boolean;\n\n // water\n waterTexture?: string;\n speed?: number;\n // ocean\n watercolor?: string;\n watercolor2?: string;\n\n featureId?: string;\n sourceLayer?: string;\n}\n\n// 栅格瓦片图层\nexport interface IRasterTileLayerStyleOptions {\n // TODO: define\n zIndex?: number;\n opacity?: number;\n}\nexport interface IMaskLayerStyleOptions {\n opacity: styleSingle;\n}\n\nexport interface IWindLayerStyleOptions {\n uMin?: number;\n uMax?: number;\n vMin?: number;\n vMax?: number;\n fadeOpacity?: number;\n speedFactor?: number;\n dropRate?: number;\n dropRateBump?: number;\n opacity?: number;\n numParticles?: number;\n rampColors?: {\n [key: number]: string;\n };\n sizeScale?: number;\n\n mask?: boolean;\n maskInside?: boolean;\n}\n\nexport interface IImageLayerStyleOptions {\n opacity: number;\n mask?: boolean;\n maskInside?: boolean;\n\n domain?: [number, number];\n noDataValue?: number;\n clampLow?: boolean;\n clampHigh?: boolean;\n rampColors?: IColorRamp;\n rampColorsData?: ImageData | IImagedata;\n pixelConstant?: number;\n pixelConstantR?: number;\n pixelConstantG?: number;\n pixelConstantB?: number;\n pixelConstantRGB?: number;\n}\n\nexport interface IGeometryLayerStyleOptions {\n opacity: number;\n mask?: boolean;\n maskInside?: boolean;\n\n mapTexture?: string;\n terrainTexture?: string;\n\n // planeGeometry\n center?: [number, number];\n width?: number;\n height?: number;\n\n widthSegments?: number;\n heightSegments?: number;\n\n terrainClipHeight?: number;\n rgb2height?: (r: number, g: number, b: number) => number;\n\n // billboard\n raisingHeight?: number; // 抬升高度\n canvasWidth?: number;\n canvasHeight?: number;\n drawCanvas?: (canvas: HTMLCanvasElement) => void;\n\n // sprite\n spriteAnimate?: string;\n spriteRadius?: number;\n spriteCount?: number;\n spriteSpeed?: number;\n spriteTop?: number;\n spriteBottom?: number;\n spriteUpdate?: number;\n spriteScale?: number;\n\n animateOption?: IAnimateOption;\n}\n\nexport enum CanvasUpdateType {\n 'ALWAYS' = 'always',\n 'DRAGEND' = 'dragend',\n}\n\nexport interface IDrawingOnCanvas {\n canvas: HTMLCanvasElement;\n ctx: CanvasRenderingContext2D;\n mapService: IMapService;\n size: [number, number];\n}\nexport interface ICanvasLayerStyleOptions {\n zIndex: number;\n update: CanvasUpdateType | string;\n drawingOnCanvas: (option: IDrawingOnCanvas) => void;\n}\n\nexport interface IHeatMapLayerStyleOptions {\n opacity: number;\n intensity: number;\n radius: number;\n angle: number;\n rampColors: IColorRamp;\n mask?: boolean;\n maskInside?: boolean;\n\n coverage?: number;\n}\n\nexport interface IRasterLayerStyleOptions {\n opacity: number;\n domain: [number, number];\n noDataValue: number;\n clampLow: boolean;\n clampHigh: boolean;\n rampColors: IColorRamp;\n mask?: boolean;\n maskInside?: boolean;\n rampColorsData?: ImageData | IImagedata;\n}\n"],"file":"interface.js"}
|
package/lib/core/schema.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/schema.ts"],"names":["properties","enablePicking","type","enableHighlight","highlightColor","oneOf","items","minimum","maximum"],"mappings":";;;;;;eAGe;AACbA,EAAAA,UAAU,EAAE;AACVC,IAAAA,aAAa,EAAE;AACbC,MAAAA,IAAI,EAAE;AADO,KADL;AAIVC,IAAAA,eAAe,EAAE;AACfD,MAAAA,IAAI,EAAE;AADS,KAJP;AAOVE,IAAAA,cAAc,EAAE;AACdC,MAAAA,KAAK,EAAE,CACL;AACEH,QAAAA,IAAI,EAAE,OADR;AAEEI,QAAAA,KAAK,EAAE;AACLJ,UAAAA,IAAI,EAAE,QADD;AAELK,UAAAA,OAAO,EAAE,CAFJ;AAGLC,UAAAA,OAAO,EAAE;AAHJ;AAFT,OADK,EASL;AACEN,QAAAA,IAAI,EAAE;AADR,OATK;AADO;AAPN;AADC,C","sourcesContent":["/**\n * BaseLayer Schema\n */\nexport default {\n properties: {\n enablePicking: {\n type: 'boolean',\n },\n enableHighlight: {\n type: 'boolean',\n },\n highlightColor: {\n oneOf: [\n {\n type: 'array',\n items: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n {\n type: 'string',\n },\n ],\n },\n },\n};\n"],"file":"schema.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/core/shape/Path.ts"],"names":["ShapeType3D","ShapeType2D","polygonPath","pointCount","start","step","Math","PI","line","i","push","path","map","t","x","sin","y","cos","circle","square","triangle","hexagon","pentagon","geometryShape","CIRCLE","HEXAGON","TRIANGLE","SQUARE","PENTAGON","CYLINDER","HEXAGONCOLUMN","TRIANGLECOLUMN","SQUARECOLUMN","PENTAGONCOLUMN"],"mappings":";;;;;;;;;;;;;;;;;;;;IAEYA,W;;;WAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,2BAAAA,W;;IAOAC,W;;;WAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,2BAAAA,W;;AAaL,SAASC,WAAT,CAAqBC,UAArB,EAAmE;AAAA,MAA1BC,KAA0B,uEAAV,CAAU;AACxE,MAAMC,IAAI,GAAIC,IAAI,CAACC,EAAL,GAAU,CAAX,GAAgBJ,UAA7B;AACA,MAAMK,IAAI,GAAG,EAAb;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGN,UAApB,EAAgCM,CAAC,EAAjC,EAAqC;AACnCD,IAAAA,IAAI,CAACE,IAAL,CAAUL,IAAI,GAAGI,CAAP,GAAYL,KAAK,GAAGE,IAAI,CAACC,EAAd,GAAoB,EAAzC;AACD;;AACD,MAAMI,IAAW,GAAGH,IAAI,CAACI,GAAL,CAAS,UAACC,CAAD,EAAO;AAClC,QAAMC,CAAC,GAAGR,IAAI,CAACS,GAAL,CAASF,CAAC,GAAGP,IAAI,CAACC,EAAL,GAAU,CAAvB,CAAV;AACA,QAAMS,CAAC,GAAGV,IAAI,CAACW,GAAL,CAASJ,CAAC,GAAGP,IAAI,CAACC,EAAL,GAAU,CAAvB,CAAV;AACA,WAAO,CAACO,CAAD,EAAIE,CAAJ,EAAO,CAAP,CAAP;AACD,GAJmB,CAApB;AAMA,SAAOL,IAAP;AACD;;AAEM,SAASO,MAAT,GAAyB;AAC9B,SAAOhB,WAAW,CAAC,EAAD,CAAlB;AACD;;AACM,SAASiB,MAAT,GAAyB;AAC9B,SAAOjB,WAAW,CAAC,CAAD,CAAlB;AACD;;AACM,SAASkB,QAAT,GAA2B;AAChC,SAAOlB,WAAW,CAAC,CAAD,CAAlB;AACD;;AACM,SAASmB,OAAT,GAA0B;AAC/B,SAAOnB,WAAW,CAAC,CAAD,EAAI,CAAJ,CAAlB;AACD;;AACM,SAASoB,QAAT,GAA2B;AAChC,SAAOpB,WAAW,CAAC,CAAD,CAAlB;AACD;;AAEM,IAAMqB,aAAa,uEACvBtB,WAAW,CAACuB,MADW,EACFN,MADE,iDAEvBjB,WAAW,CAACwB,OAFW,EAEDJ,OAFC,iDAGvBpB,WAAW,CAACyB,QAHW,EAGAN,QAHA,iDAIvBnB,WAAW,CAAC0B,MAJW,EAIFR,MAJE,iDAKvBlB,WAAW,CAAC2B,QALW,EAKAN,QALA,iDAMvBtB,WAAW,CAAC6B,QANW,EAMAX,MANA,iDAOvBlB,WAAW,CAAC8B,aAPW,EAOKT,OAPL,iDAQvBrB,WAAW,CAAC+B,cARW,EAQMX,QARN,iDASvBpB,WAAW,CAACgC,YATW,EASIb,MATJ,iDAUvBnB,WAAW,CAACiC,cAVW,EAUMX,QAVN,kBAAnB","sourcesContent":["export type IPosition = [number, number, number] | [number, number];\nexport type IPath = IPosition[];\nexport enum ShapeType3D {\n CYLINDER = 'cylinder',\n SQUARECOLUMN = 'squareColumn',\n TRIANGLECOLUMN = 'triangleColumn',\n HEXAGONCOLUMN = 'hexagonColumn',\n PENTAGONCOLUMN = 'pentagonColumn',\n}\nexport enum ShapeType2D {\n CIRCLE = 'circle',\n SQUARE = 'square',\n TRIANGLE = 'triangle',\n HEXAGON = 'hexagon',\n PENTAGON = 'pentagon',\n}\n\n/**\n * 生成规则多边形顶点个数\n * @param pointCount 顶点个数 3 => 三角形\n * @param start 顶点起始角度 调整图形的方向\n */\nexport function polygonPath(pointCount: number, start: number = 0): IPath {\n const step = (Math.PI * 2) / pointCount;\n const line = [];\n for (let i = 0; i < pointCount; i++) {\n line.push(step * i + (start * Math.PI) / 12);\n }\n const path: IPath = line.map((t) => {\n const x = Math.sin(t + Math.PI / 4);\n const y = Math.cos(t + Math.PI / 4);\n return [x, y, 0];\n });\n // path.push(path[0]);\n return path;\n}\n\nexport function circle(): IPath {\n return polygonPath(30);\n}\nexport function square(): IPath {\n return polygonPath(4);\n}\nexport function triangle(): IPath {\n return polygonPath(3);\n}\nexport function hexagon(): IPath {\n return polygonPath(6, 1);\n}\nexport function pentagon(): IPath {\n return polygonPath(5);\n}\n\nexport const geometryShape = {\n [ShapeType2D.CIRCLE]: circle,\n [ShapeType2D.HEXAGON]: hexagon,\n [ShapeType2D.TRIANGLE]: triangle,\n [ShapeType2D.SQUARE]: square,\n [ShapeType2D.PENTAGON]: pentagon,\n [ShapeType3D.CYLINDER]: circle,\n [ShapeType3D.HEXAGONCOLUMN]: hexagon,\n [ShapeType3D.TRIANGLECOLUMN]: triangle,\n [ShapeType3D.SQUARECOLUMN]: square,\n [ShapeType3D.PENTAGONCOLUMN]: pentagon,\n};\n"],"file":"Path.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/core/shape/extrude.ts"],"names":["extrudePolygon","path","p1","p2","length","slice","n","flattengeo","earcut","flatten","vertices","dimensions","positions","indexArray","j","push","triangles","holes","i","prePoint","nextPoint","indexOffset","map","v","index","fillPolygon","points","extrude_PolygonNormal","needFlat","normals","normal","computeVertexNormals","p3","cb","vec3","create","ab","pA","fromValues","pB","pC","sub","cross","newNormal","normalize"],"mappings":"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","sourcesContent":["import { lngLatToMeters } from '@antv/l7-utils';\nimport earcut from 'earcut';\nimport { vec3 } from 'gl-matrix';\nimport { IPath } from './Path';\nexport interface IExtrudeGeomety {\n positions: number[];\n index: number[];\n normals?: number[];\n}\n/**\n * 拉伸多边形顶点,返回拉伸后的顶点信息\n * @param paths 路径数据组\n * @param extrude 是否拉伸\n */\nexport default function extrudePolygon(path: IPath[]): IExtrudeGeomety {\n const p1 = path[0][0];\n const p2 = path[0][path[0].length - 1];\n if (p1[0] === p2[0] && p1[1] === p2[1]) {\n path[0] = path[0].slice(0, path[0].length - 1);\n }\n\n const n = path[0].length;\n const flattengeo = earcut.flatten(path);\n const { vertices, dimensions } = flattengeo;\n const positions = [];\n const indexArray = [];\n // 设置顶部z值\n for (let j = 0; j < vertices.length / dimensions; j++) {\n if (dimensions === 2) {\n positions.push(vertices[j * 2], vertices[j * 2 + 1], 1);\n } else {\n positions.push(vertices[j * 3], vertices[j * 3 + 1], 1);\n }\n }\n const triangles = earcut(\n flattengeo.vertices,\n flattengeo.holes,\n flattengeo.dimensions,\n );\n indexArray.push(...triangles);\n for (let i = 0; i < n; i++) {\n const prePoint = flattengeo.vertices.slice(\n i * dimensions,\n (i + 1) * dimensions,\n );\n let nextPoint = flattengeo.vertices.slice(\n (i + 1) * dimensions,\n (i + 2) * dimensions,\n );\n if (nextPoint.length === 0) {\n nextPoint = flattengeo.vertices.slice(0, dimensions);\n }\n const indexOffset = positions.length / 3;\n positions.push(\n prePoint[0],\n prePoint[1],\n 1,\n nextPoint[0],\n nextPoint[1],\n 1,\n prePoint[0],\n prePoint[1],\n 0,\n nextPoint[0],\n nextPoint[1],\n 0,\n );\n indexArray.push(...[0, 2, 1, 2, 3, 1].map((v) => v + indexOffset));\n }\n return {\n positions,\n index: indexArray,\n };\n}\nexport function fillPolygon(points: IPath[]) {\n const flattengeo = earcut.flatten(points);\n const triangles = earcut(\n flattengeo.vertices,\n flattengeo.holes,\n flattengeo.dimensions,\n );\n return {\n positions: flattengeo.vertices,\n index: triangles,\n };\n}\n\nexport function extrude_PolygonNormal(\n path: IPath[],\n needFlat = false, // 是否需要转成平面坐标\n): IExtrudeGeomety {\n const p1 = path[0][0];\n const p2 = path[0][path[0].length - 1];\n if (p1[0] === p2[0] && p1[1] === p2[1]) {\n path[0] = path[0].slice(0, path[0].length - 1);\n }\n const n = path[0].length;\n const flattengeo = earcut.flatten(path);\n const { vertices, dimensions } = flattengeo;\n const positions = [];\n const indexArray = [];\n const normals = [];\n // 设置顶部z值 position uv\n for (let j = 0; j < vertices.length / dimensions; j++) {\n if (dimensions === 2) {\n positions.push(vertices[j * 2], vertices[j * 2 + 1], 1, -1, -1);\n } else {\n positions.push(vertices[j * 3], vertices[j * 3 + 1], 1, -1, -1);\n }\n normals.push(0, 0, 1);\n }\n const triangles = earcut(\n flattengeo.vertices,\n flattengeo.holes,\n flattengeo.dimensions,\n );\n indexArray.push(...triangles);\n for (let i = 0; i < n; i++) {\n const prePoint = flattengeo.vertices.slice(\n i * dimensions,\n (i + 1) * dimensions,\n );\n let nextPoint = flattengeo.vertices.slice(\n (i + 1) * dimensions,\n (i + 2) * dimensions,\n );\n if (nextPoint.length === 0) {\n nextPoint = flattengeo.vertices.slice(0, dimensions);\n }\n const indexOffset = positions.length / 5;\n positions.push(\n prePoint[0],\n prePoint[1],\n 1,\n 0,\n 0,\n nextPoint[0],\n nextPoint[1],\n 1,\n 0.1,\n 0,\n prePoint[0],\n prePoint[1],\n 0,\n 0,\n 0.8,\n nextPoint[0],\n nextPoint[1],\n 0,\n 0.1,\n 0.8,\n );\n const normal = computeVertexNormals(\n [nextPoint[0], nextPoint[1], 1],\n [prePoint[0], prePoint[1], 0],\n [prePoint[0], prePoint[1], 1],\n needFlat,\n );\n normals.push(...normal, ...normal, ...normal, ...normal);\n indexArray.push(...[1, 2, 0, 3, 2, 1].map((v) => v + indexOffset));\n }\n return {\n positions,\n index: indexArray,\n normals,\n };\n}\nfunction computeVertexNormals(\n p1: [number, number, number],\n p2: [number, number, number],\n p3: [number, number, number],\n needFlat: boolean = false,\n) {\n const cb = vec3.create();\n const ab = vec3.create();\n const normal = vec3.create();\n\n if (needFlat) {\n p1 = lngLatToMeters(p1) as [number, number, number];\n p2 = lngLatToMeters(p2) as [number, number, number];\n p3 = lngLatToMeters(p3) as [number, number, number];\n }\n const pA = vec3.fromValues(...p1);\n const pB = vec3.fromValues(...p2);\n const pC = vec3.fromValues(...p3);\n vec3.sub(cb, pC, pB);\n vec3.sub(ab, pA, pB);\n vec3.cross(normal, cb, ab);\n const newNormal = vec3.create();\n vec3.normalize(newNormal, normal);\n\n return newNormal;\n}\n"],"file":"extrude.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/triangulation.ts"],"names":["GeometryCache","PointFillTriangulation","feature","coordinates","vertices","indices","size","length","GlobelPointFillTriangulation","xyz","PointExtrudeTriangulation","shape","getGeometry","positions","index","normals","PointImageTriangulation","LineTriangulation","originCoordinates","version","line","ExtrudePolyline","dash","join","path1","Array","isArray","path2","i","item1","item2","extrude_gaode2","path","forEach","item","extrude","linebuffer","complex","indexes","SimpleLineTriangulation","simpleExtrude_gaode2","simpleExtrude","polygonTriangulation","flattengeo","earcut","flatten","dimensions","holes","polygonTriangulationWithCenter","getVerticesWithCenter","verticesWithCenter","center","radius","lng","lat","push","PolygonExtrudeTriangulation","HeatmapGridTriangulation","getHeatmapGeometry","RasterImageTriangulation","indexs","LineArcTriangulation","segmentNumber","segNum","indexArray","map","v","HeatmapTriangulation","dir","addDir","dir1","dir2","dir3","needFlat","geometryShape","cylinder","geometry","computeVertexNormals","dim","Float32Array","vA","vB","vC","cb","vec3","create","ab","normal","li","p1","p2","p3","ax","ay","pA","fromValues","bx","by","pB","cx","cy","pC","sub","cross","normalizeNormals","newNormal","normalize","set","checkIsClosed","points","shape3d","circle","indexOf","dirX","dirY","x","y","earthTriangulation","earthmesh","EARTH_RADIUS","segments","EARTH_SEGMENTS","positionsArr","indicesArr","normalArr","earthOuterTriangulation","EARTH_RADIUS_OUTER"],"mappings":"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","sourcesContent":["import { IEncodeFeature } from '@antv/l7-core';\nimport {\n aProjectFlat,\n calculateCentroid,\n calculatePointsCenterAndRadius,\n lngLatToMeters,\n} from '@antv/l7-utils';\nimport earcut from 'earcut';\n// @ts-ignore\nimport { mat4, vec3 } from 'gl-matrix';\nimport {\n EARTH_RADIUS,\n EARTH_RADIUS_OUTER,\n EARTH_SEGMENTS,\n lglt2xyz,\n primitiveSphere,\n} from '../earth/utils';\nimport ExtrudePolyline from '../utils/extrude_polyline';\nimport SimpleLine from '../utils/simpleLine';\nimport extrudePolygon, {\n extrude_PolygonNormal,\n fillPolygon,\n IExtrudeGeomety,\n} from './shape/extrude';\nimport {\n geometryShape,\n IPosition,\n ShapeType2D,\n ShapeType3D,\n} from './shape/Path';\ntype IShape = ShapeType2D & ShapeType3D;\ninterface IGeometryCache {\n [key: string]: IExtrudeGeomety;\n}\nconst GeometryCache: IGeometryCache = {};\n\n/**\n * 计算2D 填充点图顶点\n * @param feature 映射feature\n */\n\nexport function PointFillTriangulation(feature: IEncodeFeature) {\n const coordinates = calculateCentroid(feature.coordinates);\n return {\n vertices: [...coordinates, ...coordinates, ...coordinates, ...coordinates],\n indices: [0, 1, 2, 2, 3, 0],\n size: coordinates.length,\n };\n}\n/**\n * 计算2D 填充点图顶点 (地球模式)\n * @param feature 映射feature\n */\nexport function GlobelPointFillTriangulation(feature: IEncodeFeature) {\n const coordinates = calculateCentroid(feature.coordinates);\n const xyz = lglt2xyz(coordinates as [number, number]);\n return {\n vertices: [...xyz, ...xyz, ...xyz, ...xyz],\n indices: [0, 1, 2, 2, 3, 0],\n size: xyz.length,\n };\n}\n\n/**\n * 计算3D 拉伸点图\n * @param feature 映射feature\n */\nexport function PointExtrudeTriangulation(feature: IEncodeFeature) {\n const { shape } = feature;\n const { positions, index, normals } = getGeometry(\n shape as ShapeType3D,\n false,\n );\n return {\n vertices: positions,\n indices: index,\n normals,\n size: 5,\n };\n}\n\n/**\n * 计算图片标注\n * @param feature 映射feature\n */\nexport function PointImageTriangulation(feature: IEncodeFeature) {\n const coordinates = calculateCentroid(feature.coordinates);\n return {\n vertices: [...coordinates],\n indices: [0],\n size: coordinates.length,\n };\n}\n\n/**\n * 线三角化\n * @param feature 映射feature\n */\nexport function LineTriangulation(feature: IEncodeFeature) {\n const { coordinates, originCoordinates, version } = feature;\n // let path = coordinates as number[][][] | number[][];\n // if (!Array.isArray(path[0][0])) {\n // path = [coordinates] as number[][][];\n // }\n\n const line = new ExtrudePolyline({\n dash: true,\n join: 'bevel',\n });\n\n if (version === 'GAODE2.x') {\n // 处理高德2.0几何体构建\n let path1 = coordinates as number[][][] | number[][]; // 计算位置\n if (!Array.isArray(path1[0][0])) {\n path1 = [coordinates] as number[][][];\n }\n let path2 = originCoordinates as number[][][] | number[][]; // 计算法线\n if (!Array.isArray(path2[0][0])) {\n path2 = [originCoordinates] as number[][][];\n }\n\n for (let i = 0; i < path1.length; i++) {\n // 高德2.0在计算线时,需要使用经纬度计算发现,使用 customCoords.lnglatToCoords 计算的数据来计算顶点的位置\n const item1 = path1[i];\n const item2 = path2[i];\n line.extrude_gaode2(item1 as number[][], item2 as number[][]);\n }\n } else {\n // 处理非高德2.0的几何体构建\n let path = coordinates as number[][][] | number[][];\n if (path[0] && !Array.isArray(path[0][0])) {\n path = [coordinates] as number[][][];\n }\n path.forEach((item: any) => {\n line.extrude(item as number[][]);\n });\n }\n\n const linebuffer = line.complex;\n return {\n vertices: linebuffer.positions, // [ x,y,z, distance, miter,total ]\n indices: linebuffer.indices,\n normals: linebuffer.normals,\n indexes: linebuffer.indexes,\n size: 6,\n };\n}\n\nexport function SimpleLineTriangulation(feature: IEncodeFeature) {\n const { coordinates, originCoordinates, version } = feature;\n\n const line = new ExtrudePolyline({\n dash: true,\n join: 'bevel',\n });\n\n if (version === 'GAODE2.x') {\n // 处理高德2.0几何体构建\n let path1 = coordinates as number[][][] | number[][]; // 计算位置\n if (!Array.isArray(path1[0][0])) {\n path1 = [coordinates] as number[][][];\n }\n let path2 = originCoordinates as number[][][] | number[][]; // 计算法线\n if (!Array.isArray(path2[0][0])) {\n path2 = [originCoordinates] as number[][][];\n }\n for (let i = 0; i < path1.length; i++) {\n // 高德2.0在计算线时,需要使用经纬度计算发现,使用 customCoords.lnglatToCoords 计算的数据来计算顶点的位置\n const item1 = path1[i];\n const item2 = path2[i];\n line.simpleExtrude_gaode2(item1 as number[][], item2 as number[][]);\n }\n } else {\n // 处理非高德2.0的几何体构建\n let path = coordinates as number[][][] | number[][];\n if (path[0] && !Array.isArray(path[0][0])) {\n path = [coordinates] as number[][][];\n }\n path.forEach((item: any) => {\n line.simpleExtrude(item as number[][]);\n });\n }\n\n const linebuffer = line.complex;\n return {\n vertices: linebuffer.positions, // [ x,y,z, distance, miter, total ]\n indices: linebuffer.indices,\n normals: linebuffer.normals,\n size: 6,\n };\n}\n\nexport function polygonTriangulation(feature: IEncodeFeature) {\n const { coordinates } = feature;\n const flattengeo = earcut.flatten(coordinates as number[][][]);\n const { vertices, dimensions, holes } = flattengeo;\n return {\n indices: earcut(vertices, holes, dimensions),\n vertices,\n size: dimensions,\n };\n}\n\n// TODO:构建几何图形(带有中心点和大小)\nexport function polygonTriangulationWithCenter(feature: IEncodeFeature) {\n const { coordinates } = feature;\n const flattengeo = earcut.flatten(coordinates as number[][][]);\n const { vertices, dimensions, holes } = flattengeo;\n\n return {\n indices: earcut(vertices, holes, dimensions),\n vertices: getVerticesWithCenter(vertices),\n size: dimensions + 4,\n };\n}\n\nfunction getVerticesWithCenter(vertices: number[]) {\n const verticesWithCenter = [];\n const { center, radius } = calculatePointsCenterAndRadius(vertices);\n for (let i = 0; i < vertices.length; i += 2) {\n const lng = vertices[i];\n const lat = vertices[i + 1];\n verticesWithCenter.push(lng, lat, 0, ...center, radius);\n }\n return verticesWithCenter;\n}\n\nexport function PolygonExtrudeTriangulation(feature: IEncodeFeature) {\n const coordinates = feature.coordinates as IPosition[][];\n const { positions, index, normals } = extrude_PolygonNormal(\n coordinates,\n true,\n );\n return {\n vertices: positions, // [ x, y, z, uv.x,uv.y ]\n indices: index,\n normals,\n size: 5,\n };\n}\n\nexport function HeatmapGridTriangulation(feature: IEncodeFeature) {\n const { shape } = feature;\n const { positions, index } = getHeatmapGeometry(shape as IShape);\n return {\n vertices: positions, // [ x, y, z ] 多边形顶点\n indices: index,\n size: 3,\n };\n}\n\n/**\n * 图片图层顶点构造\n * @param feature 数据\n */\nexport function RasterImageTriangulation(feature: IEncodeFeature) {\n const coordinates = feature.coordinates as IPosition[];\n // [ x, y, z. uv.x, uv.y]\n const positions: number[] = [\n ...coordinates[0],\n 0,\n 0,\n 1,\n coordinates[1][0],\n coordinates[0][1],\n 0,\n 1,\n 1,\n ...coordinates[1],\n 0,\n 1,\n 0,\n ...coordinates[0],\n 0,\n 0,\n 1,\n ...coordinates[1],\n 0,\n 1,\n 0,\n coordinates[0][0],\n coordinates[1][1],\n 0,\n 0,\n 0,\n ];\n const indexs = [0, 1, 2, 3, 4, 5];\n return {\n vertices: positions,\n indices: indexs,\n size: 5,\n };\n}\n\n/**\n * 计算3D弧线顶点\n * @param feature 映射数据\n * @param segNum 弧线线段数\n */\nexport function LineArcTriangulation(\n feature: IEncodeFeature,\n segmentNumber?: number,\n) {\n const segNum = segmentNumber ? segmentNumber : 30;\n const coordinates = feature.coordinates as IPosition[];\n const positions = [];\n const indexArray = [];\n for (let i = 0; i < segNum; i++) {\n // 上线两个顶点\n // [ x, y, z, sx,sy, tx,ty]\n positions.push(\n i,\n 1,\n i,\n coordinates[0][0],\n coordinates[0][1],\n coordinates[1][0],\n coordinates[1][1],\n i,\n -1,\n i,\n coordinates[0][0],\n coordinates[0][1],\n coordinates[1][0],\n coordinates[1][1],\n );\n\n if (i !== segNum - 1) {\n indexArray.push(\n ...[0, 1, 2, 1, 3, 2].map((v) => {\n return i * 2 + v;\n }),\n );\n }\n }\n return {\n vertices: positions,\n indices: indexArray,\n size: 7,\n };\n}\n\n/**\n * 构建热力图密度图的顶点\n * @param feature\n * @returns\n */\nexport function HeatmapTriangulation(feature: IEncodeFeature) {\n const coordinates = feature.coordinates as number[];\n if (coordinates.length === 2) {\n coordinates.push(0);\n }\n const size = feature.size as number;\n const dir = addDir(-1, 1);\n const dir1 = addDir(1, 1);\n const dir2 = addDir(-1, -1);\n const dir3 = addDir(1, -1);\n // [x,y,z, dirx ,diry, weight]\n const positions = [\n ...coordinates,\n ...dir,\n ...coordinates,\n ...dir2,\n ...coordinates,\n ...dir3,\n ...coordinates,\n ...dir1,\n ];\n const indexArray = [0, 1, 2, 3, 0, 2];\n return {\n vertices: positions,\n indices: indexArray,\n size: 5,\n };\n}\n\n/**\n * 点图层3d geomerty\n * @param shape 3D形状\n */\nfunction getGeometry(shape: ShapeType3D, needFlat = false): IExtrudeGeomety {\n if (GeometryCache && GeometryCache[shape]) {\n return GeometryCache[shape];\n }\n const path = geometryShape[shape]\n ? geometryShape[shape]()\n : geometryShape.cylinder();\n const geometry = extrude_PolygonNormal([path], needFlat);\n GeometryCache[shape] = geometry;\n return geometry;\n}\n\nfunction computeVertexNormals(\n positions: number[],\n indexArray: number[],\n dim: number = 3,\n needFlat: boolean = false,\n) {\n const normals = new Float32Array((positions.length / dim) * 3);\n let vA: number;\n let vB: number;\n let vC: number;\n const cb = vec3.create();\n const ab = vec3.create();\n const normal = vec3.create();\n for (let i = 0, li = indexArray.length; i < li; i += 3) {\n vA = indexArray[i + 0] * 3;\n vB = indexArray[i + 1] * 3;\n vC = indexArray[i + 2] * 3;\n let p1 = [positions[vA], positions[vA + 1]];\n let p2 = [positions[vB], positions[vB + 1]];\n let p3 = [positions[vC], positions[vC + 1]];\n if (needFlat) {\n p1 = lngLatToMeters(p1);\n p2 = lngLatToMeters(p2);\n p3 = lngLatToMeters(p3);\n }\n const [ax, ay] = p1;\n const pA = vec3.fromValues(ax, ay, positions[vA + 2]);\n const [bx, by] = p2;\n const pB = vec3.fromValues(bx, by, positions[vB + 2]);\n const [cx, cy] = p3;\n const pC = vec3.fromValues(cx, cy, positions[vC + 2]);\n vec3.sub(cb, pC, pB);\n vec3.sub(ab, pA, pB);\n vec3.cross(normal, cb, ab);\n normals[vA] += cb[0];\n normals[vA + 1] += cb[1];\n normals[vA + 2] += cb[2];\n normals[vB] += cb[0];\n normals[vB + 1] += cb[1];\n normals[vB + 2] += cb[2];\n normals[vC] += cb[0];\n normals[vC + 1] += cb[1];\n normals[vC + 2] += cb[2];\n }\n normalizeNormals(normals);\n return normals;\n}\n\nfunction normalizeNormals(normals: Float32Array) {\n for (let i = 0, li = normals.length; i < li; i += 3) {\n const normal = vec3.fromValues(normals[i], normals[i + 1], normals[i + 2]);\n const newNormal = vec3.create();\n vec3.normalize(newNormal, normal);\n normals.set(newNormal, i);\n }\n}\n\nfunction checkIsClosed(points: number[][][]) {\n const p1 = points[0][0];\n const p2 = points[0][points[0].length - 1];\n return p1[0] === p2[0] && p1[1] === p2[1];\n}\n\nfunction getHeatmapGeometry(shape: ShapeType2D | ShapeType3D): IExtrudeGeomety {\n const shape3d = [\n 'cylinder',\n 'triangleColumn',\n 'hexagonColumn',\n 'squareColumn',\n ];\n const path = geometryShape[shape]\n ? geometryShape[shape]()\n : geometryShape.circle();\n const geometry =\n shape3d.indexOf(shape) === -1\n ? fillPolygon([path])\n : extrudePolygon([path]);\n // const geometry = fillPolygon([path]);\n return geometry;\n}\n// 热力图计算范围\nfunction addDir(dirX: number, dirY: number) {\n const x = (dirX + 1) / 2;\n const y = (dirY + 1) / 2;\n return [x, y];\n}\n\n/**\n * 构建地球三角网格\n * @returns\n */\nexport function earthTriangulation() {\n const earthmesh = primitiveSphere(EARTH_RADIUS, { segments: EARTH_SEGMENTS });\n const { positionsArr, indicesArr, normalArr } = earthmesh;\n return {\n vertices: positionsArr,\n indices: indicesArr,\n size: 5,\n normals: normalArr,\n };\n}\n\nexport function earthOuterTriangulation() {\n const earthmesh = primitiveSphere(EARTH_RADIUS + EARTH_RADIUS_OUTER, {\n segments: EARTH_SEGMENTS,\n });\n const { positionsArr, indicesArr, normalArr } = earthmesh;\n return {\n vertices: positionsArr,\n indices: indicesArr,\n size: 5,\n normals: normalArr,\n };\n}\n"],"file":"triangulation.js"}
|
package/lib/earth/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/earth/index.ts"],"names":["EarthModels","base","BaseEarthModel","atomSphere","EarthAtomSphereModel","bloomSphere","EarthBloomSphereModel","earthLayerTypes","EarthLayer","shape","getModelType","layerModel","initModels","models","renderLayers","time","setEarthTime","console","warn","shapeAttribute","styleAttributeService","getLayerStyleAttribute","scale","field","indexOf","BaseLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;AASA,IAAMA,WAA6C,GAAG;AACpDC,EAAAA,IAAI,EAAEC,aAD8C;AAEpDC,EAAAA,UAAU,EAAEC,mBAFwC;AAGpDC,EAAAA,WAAW,EAAEC;AAHuC,CAAtD;AAMA,IAAMC,eAAe,GAAG,CAAC,MAAD,EAAS,YAAT,EAAuB,aAAvB,CAAxB;;IAEqBC,U;;;;;;;;;;;;;;;uFACG,Y;;;;;;WAEtB,uBAAqB;AAAA;;AACnB,UAAMC,KAAK,GAAG,KAAKC,YAAL,EAAd;AACA,WAAKC,UAAL,GAAkB,IAAIX,WAAW,CAACS,KAAD,CAAf,CAAuB,IAAvB,CAAlB;AACA,WAAKE,UAAL,CAAgBC,UAAhB,CAA2B,UAACC,MAAD,EAAY;AACrC,QAAA,MAAI,CAACA,MAAL,GAAcA,MAAd;;AACA,QAAA,MAAI,CAACC,YAAL;AACD,OAHD;AAID;;;WAMD,sBAAoBC,IAApB,EAAkC;AAChC,UAAI,KAAKJ,UAAL,IAAmB,KAAKA,UAAL,CAAgBK,YAAvC,EAAqD;AACnD,aAAKL,UAAL,CAAgBK,YAAhB,CAA6BD,IAA7B;AACD,OAFD,MAEO;AACLE,QAAAA,OAAO,CAACC,IAAR,CAAa,0BAAb;AACD;AACF;;;WAED,wBAAyC;AAAA;;AACvC,UAAMC,cAAc,GAAG,KAAKC,qBAAL,CAA2BC,sBAA3B,CACrB,OADqB,CAAvB;AAGA,UAAIZ,KAAK,GAAI,CAAAU,cAAc,SAAd,IAAAA,cAAc,WAAd,qCAAAA,cAAc,CAAEG,KAAhB,gFAAuBC,KAAvB,KAAgC,MAA7C;;AACA,UAAIhB,eAAe,CAACiB,OAAhB,CAAwBf,KAAxB,IAAiC,CAArC,EAAwC;AACtCA,QAAAA,KAAK,GAAG,MAAR;AACD;;AACD,aAAOA,KAAP;AACD;;;EAjCqCgB,mB","sourcesContent":["import BaseLayer from '../core/BaseLayer';\nimport EarthAtomSphereModel from './models/atmosphere';\nimport BaseEarthModel from './models/base';\nimport EarthBloomSphereModel from './models/bloomsphere';\n\ninterface IEarthLayerStyleOptions {\n opacity: number;\n setEarthTime(time: number): void;\n}\n\nexport type EarthModelType = 'base' | 'atomSphere' | 'bloomSphere';\n\nconst EarthModels: { [key in EarthModelType]: any } = {\n base: BaseEarthModel,\n atomSphere: EarthAtomSphereModel,\n bloomSphere: EarthBloomSphereModel,\n};\n\nconst earthLayerTypes = ['base', 'atomSphere', 'bloomSphere'];\n\nexport default class EarthLayer extends BaseLayer<IEarthLayerStyleOptions> {\n public type: string = 'EarthLayer';\n\n public buildModels() {\n const shape = this.getModelType();\n this.layerModel = new EarthModels[shape](this);\n this.layerModel.initModels((models) => {\n this.models = models;\n this.renderLayers();\n });\n }\n\n /**\n * 设置当前地球时间\n * @param time\n */\n public setEarthTime(time: number) {\n if (this.layerModel && this.layerModel.setEarthTime) {\n this.layerModel.setEarthTime(time);\n } else {\n console.warn('请在 scene loaded 之后执行该方法!');\n }\n }\n\n protected getModelType(): EarthModelType {\n const shapeAttribute = this.styleAttributeService.getLayerStyleAttribute(\n 'shape',\n );\n let shape = (shapeAttribute?.scale?.field || 'base') as string;\n if (earthLayerTypes.indexOf(shape) < 0) {\n shape = 'base';\n }\n return shape as EarthModelType;\n }\n}\n"],"file":"index.js"}
|