@antv/l7-layers 2.9.19 → 2.9.22-alpha.0
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.d.ts +1 -0
- package/es/core/triangulation.js +123 -24
- 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.d.ts +15 -0
- package/es/utils/extrude_polyline.js +225 -51
- 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 +208 -295
- 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 +405 -428
- 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
package/es/core/triangulation.js
CHANGED
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
2
|
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
3
3
|
import { calculateCentroid, calculatePointsCenterAndRadius, lngLatToMeters } from '@antv/l7-utils';
|
|
4
|
-
import earcut from 'earcut';
|
|
4
|
+
import earcut from 'earcut'; // @ts-ignore
|
|
5
|
+
|
|
5
6
|
import { vec3 } from 'gl-matrix';
|
|
6
|
-
import { EARTH_RADIUS, EARTH_RADIUS_OUTER, EARTH_SEGMENTS, lglt2xyz, primitiveSphere } from
|
|
7
|
-
import ExtrudePolyline from
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import { geometryShape } from './shape/Path';
|
|
7
|
+
import { EARTH_RADIUS, EARTH_RADIUS_OUTER, EARTH_SEGMENTS, lglt2xyz, primitiveSphere } from "../earth/utils";
|
|
8
|
+
import ExtrudePolyline from "../utils/extrude_polyline";
|
|
9
|
+
import extrudePolygon, { extrude_PolygonNormal, fillPolygon } from "./shape/extrude";
|
|
10
|
+
import { geometryShape } from "./shape/Path";
|
|
11
11
|
var GeometryCache = {};
|
|
12
|
+
/**
|
|
13
|
+
* 计算2D 填充点图顶点
|
|
14
|
+
* @param feature 映射feature
|
|
15
|
+
*/
|
|
16
|
+
|
|
12
17
|
export function PointFillTriangulation(feature) {
|
|
13
18
|
var coordinates = calculateCentroid(feature.coordinates);
|
|
14
19
|
return {
|
|
@@ -17,6 +22,11 @@ export function PointFillTriangulation(feature) {
|
|
|
17
22
|
size: coordinates.length
|
|
18
23
|
};
|
|
19
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* 计算2D 填充点图顶点 (地球模式)
|
|
27
|
+
* @param feature 映射feature
|
|
28
|
+
*/
|
|
29
|
+
|
|
20
30
|
export function GlobelPointFillTriangulation(feature) {
|
|
21
31
|
var coordinates = calculateCentroid(feature.coordinates);
|
|
22
32
|
var xyz = lglt2xyz(coordinates);
|
|
@@ -26,6 +36,11 @@ export function GlobelPointFillTriangulation(feature) {
|
|
|
26
36
|
size: xyz.length
|
|
27
37
|
};
|
|
28
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* 计算3D 拉伸点图
|
|
41
|
+
* @param feature 映射feature
|
|
42
|
+
*/
|
|
43
|
+
|
|
29
44
|
export function PointExtrudeTriangulation(feature) {
|
|
30
45
|
var shape = feature.shape;
|
|
31
46
|
|
|
@@ -41,6 +56,11 @@ export function PointExtrudeTriangulation(feature) {
|
|
|
41
56
|
size: 5
|
|
42
57
|
};
|
|
43
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* 计算图片标注
|
|
61
|
+
* @param feature 映射feature
|
|
62
|
+
*/
|
|
63
|
+
|
|
44
64
|
export function PointImageTriangulation(feature) {
|
|
45
65
|
var coordinates = calculateCentroid(feature.coordinates);
|
|
46
66
|
return {
|
|
@@ -49,34 +69,46 @@ export function PointImageTriangulation(feature) {
|
|
|
49
69
|
size: coordinates.length
|
|
50
70
|
};
|
|
51
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* 线三角化
|
|
74
|
+
* @param feature 映射feature
|
|
75
|
+
*/
|
|
76
|
+
|
|
52
77
|
export function LineTriangulation(feature) {
|
|
53
78
|
var coordinates = feature.coordinates,
|
|
54
79
|
originCoordinates = feature.originCoordinates,
|
|
55
|
-
version = feature.version;
|
|
80
|
+
version = feature.version; // let path = coordinates as number[][][] | number[][];
|
|
81
|
+
// if (!Array.isArray(path[0][0])) {
|
|
82
|
+
// path = [coordinates] as number[][][];
|
|
83
|
+
// }
|
|
84
|
+
|
|
56
85
|
var line = new ExtrudePolyline({
|
|
57
86
|
dash: true,
|
|
58
87
|
join: 'bevel'
|
|
59
88
|
});
|
|
60
89
|
|
|
61
90
|
if (version === 'GAODE2.x') {
|
|
62
|
-
|
|
91
|
+
// 处理高德2.0几何体构建
|
|
92
|
+
var path1 = coordinates; // 计算位置
|
|
63
93
|
|
|
64
94
|
if (!Array.isArray(path1[0][0])) {
|
|
65
95
|
path1 = [coordinates];
|
|
66
96
|
}
|
|
67
97
|
|
|
68
|
-
var path2 = originCoordinates;
|
|
98
|
+
var path2 = originCoordinates; // 计算法线
|
|
69
99
|
|
|
70
100
|
if (!Array.isArray(path2[0][0])) {
|
|
71
101
|
path2 = [originCoordinates];
|
|
72
102
|
}
|
|
73
103
|
|
|
74
104
|
for (var i = 0; i < path1.length; i++) {
|
|
105
|
+
// 高德2.0在计算线时,需要使用经纬度计算发现,使用 customCoords.lnglatToCoords 计算的数据来计算顶点的位置
|
|
75
106
|
var item1 = path1[i];
|
|
76
107
|
var item2 = path2[i];
|
|
77
108
|
line.extrude_gaode2(item1, item2);
|
|
78
109
|
}
|
|
79
110
|
} else {
|
|
111
|
+
// 处理非高德2.0的几何体构建
|
|
80
112
|
var path = coordinates;
|
|
81
113
|
|
|
82
114
|
if (path[0] && !Array.isArray(path[0][0])) {
|
|
@@ -91,6 +123,7 @@ export function LineTriangulation(feature) {
|
|
|
91
123
|
var linebuffer = line.complex;
|
|
92
124
|
return {
|
|
93
125
|
vertices: linebuffer.positions,
|
|
126
|
+
// [ x,y,z, distance, miter,total ]
|
|
94
127
|
indices: linebuffer.indices,
|
|
95
128
|
normals: linebuffer.normals,
|
|
96
129
|
indexes: linebuffer.indexes,
|
|
@@ -98,21 +131,53 @@ export function LineTriangulation(feature) {
|
|
|
98
131
|
};
|
|
99
132
|
}
|
|
100
133
|
export function SimpleLineTriangulation(feature) {
|
|
101
|
-
var coordinates = feature.coordinates
|
|
102
|
-
|
|
103
|
-
|
|
134
|
+
var coordinates = feature.coordinates,
|
|
135
|
+
originCoordinates = feature.originCoordinates,
|
|
136
|
+
version = feature.version;
|
|
137
|
+
var line = new ExtrudePolyline({
|
|
138
|
+
dash: true,
|
|
139
|
+
join: 'bevel'
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
if (version === 'GAODE2.x') {
|
|
143
|
+
// 处理高德2.0几何体构建
|
|
144
|
+
var path1 = coordinates; // 计算位置
|
|
145
|
+
|
|
146
|
+
if (!Array.isArray(path1[0][0])) {
|
|
147
|
+
path1 = [coordinates];
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
var path2 = originCoordinates; // 计算法线
|
|
104
151
|
|
|
105
|
-
|
|
106
|
-
|
|
152
|
+
if (!Array.isArray(path2[0][0])) {
|
|
153
|
+
path2 = [originCoordinates];
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
for (var i = 0; i < path1.length; i++) {
|
|
157
|
+
// 高德2.0在计算线时,需要使用经纬度计算发现,使用 customCoords.lnglatToCoords 计算的数据来计算顶点的位置
|
|
158
|
+
var item1 = path1[i];
|
|
159
|
+
var item2 = path2[i];
|
|
160
|
+
line.simpleExtrude_gaode2(item1, item2);
|
|
161
|
+
}
|
|
162
|
+
} else {
|
|
163
|
+
// 处理非高德2.0的几何体构建
|
|
164
|
+
var path = coordinates;
|
|
165
|
+
|
|
166
|
+
if (path[0] && !Array.isArray(path[0][0])) {
|
|
167
|
+
path = [coordinates];
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
path.forEach(function (item) {
|
|
171
|
+
line.simpleExtrude(item);
|
|
172
|
+
});
|
|
107
173
|
}
|
|
108
174
|
|
|
109
|
-
path.forEach(function (item) {
|
|
110
|
-
line.simpleExtrude(item);
|
|
111
|
-
});
|
|
112
175
|
var linebuffer = line.complex;
|
|
113
176
|
return {
|
|
114
177
|
vertices: linebuffer.positions,
|
|
178
|
+
// [ x,y,z, distance, miter, total ]
|
|
115
179
|
indices: linebuffer.indices,
|
|
180
|
+
normals: linebuffer.normals,
|
|
116
181
|
size: 6
|
|
117
182
|
};
|
|
118
183
|
}
|
|
@@ -127,7 +192,8 @@ export function polygonTriangulation(feature) {
|
|
|
127
192
|
vertices: vertices,
|
|
128
193
|
size: dimensions
|
|
129
194
|
};
|
|
130
|
-
}
|
|
195
|
+
} // TODO:构建几何图形(带有中心点和大小)
|
|
196
|
+
|
|
131
197
|
export function polygonTriangulationWithCenter(feature) {
|
|
132
198
|
var coordinates = feature.coordinates;
|
|
133
199
|
var flattengeo = earcut.flatten(coordinates);
|
|
@@ -167,6 +233,7 @@ export function PolygonExtrudeTriangulation(feature) {
|
|
|
167
233
|
|
|
168
234
|
return {
|
|
169
235
|
vertices: positions,
|
|
236
|
+
// [ x, y, z, uv.x,uv.y ]
|
|
170
237
|
indices: index,
|
|
171
238
|
normals: normals,
|
|
172
239
|
size: 5
|
|
@@ -181,12 +248,19 @@ export function HeatmapGridTriangulation(feature) {
|
|
|
181
248
|
|
|
182
249
|
return {
|
|
183
250
|
vertices: positions,
|
|
251
|
+
// [ x, y, z ] 多边形顶点
|
|
184
252
|
indices: index,
|
|
185
253
|
size: 3
|
|
186
254
|
};
|
|
187
255
|
}
|
|
256
|
+
/**
|
|
257
|
+
* 图片图层顶点构造
|
|
258
|
+
* @param feature 数据
|
|
259
|
+
*/
|
|
260
|
+
|
|
188
261
|
export function RasterImageTriangulation(feature) {
|
|
189
|
-
var coordinates = feature.coordinates;
|
|
262
|
+
var coordinates = feature.coordinates; // [ x, y, z. uv.x, uv.y]
|
|
263
|
+
|
|
190
264
|
var positions = [].concat(_toConsumableArray(coordinates[0]), [0, 0, 1, coordinates[1][0], coordinates[0][1], 0, 1, 1], _toConsumableArray(coordinates[1]), [0, 1, 0], _toConsumableArray(coordinates[0]), [0, 0, 1], _toConsumableArray(coordinates[1]), [0, 1, 0, coordinates[0][0], coordinates[1][1], 0, 0, 0]);
|
|
191
265
|
var indexs = [0, 1, 2, 3, 4, 5];
|
|
192
266
|
return {
|
|
@@ -195,6 +269,12 @@ export function RasterImageTriangulation(feature) {
|
|
|
195
269
|
size: 5
|
|
196
270
|
};
|
|
197
271
|
}
|
|
272
|
+
/**
|
|
273
|
+
* 计算3D弧线顶点
|
|
274
|
+
* @param feature 映射数据
|
|
275
|
+
* @param segNum 弧线线段数
|
|
276
|
+
*/
|
|
277
|
+
|
|
198
278
|
export function LineArcTriangulation(feature, segmentNumber) {
|
|
199
279
|
var segNum = segmentNumber ? segmentNumber : 30;
|
|
200
280
|
var coordinates = feature.coordinates;
|
|
@@ -202,6 +282,8 @@ export function LineArcTriangulation(feature, segmentNumber) {
|
|
|
202
282
|
var indexArray = [];
|
|
203
283
|
|
|
204
284
|
var _loop = function _loop(i) {
|
|
285
|
+
// 上线两个顶点
|
|
286
|
+
// [ x, y, z, sx,sy, tx,ty]
|
|
205
287
|
positions.push(i, 1, i, coordinates[0][0], coordinates[0][1], coordinates[1][0], coordinates[1][1], i, -1, i, coordinates[0][0], coordinates[0][1], coordinates[1][0], coordinates[1][1]);
|
|
206
288
|
|
|
207
289
|
if (i !== segNum - 1) {
|
|
@@ -221,6 +303,12 @@ export function LineArcTriangulation(feature, segmentNumber) {
|
|
|
221
303
|
size: 7
|
|
222
304
|
};
|
|
223
305
|
}
|
|
306
|
+
/**
|
|
307
|
+
* 构建热力图密度图的顶点
|
|
308
|
+
* @param feature
|
|
309
|
+
* @returns
|
|
310
|
+
*/
|
|
311
|
+
|
|
224
312
|
export function HeatmapTriangulation(feature) {
|
|
225
313
|
var coordinates = feature.coordinates;
|
|
226
314
|
|
|
@@ -232,7 +320,8 @@ export function HeatmapTriangulation(feature) {
|
|
|
232
320
|
var dir = addDir(-1, 1);
|
|
233
321
|
var dir1 = addDir(1, 1);
|
|
234
322
|
var dir2 = addDir(-1, -1);
|
|
235
|
-
var dir3 = addDir(1, -1);
|
|
323
|
+
var dir3 = addDir(1, -1); // [x,y,z, dirx ,diry, weight]
|
|
324
|
+
|
|
236
325
|
var positions = [].concat(_toConsumableArray(coordinates), _toConsumableArray(dir), _toConsumableArray(coordinates), _toConsumableArray(dir2), _toConsumableArray(coordinates), _toConsumableArray(dir3), _toConsumableArray(coordinates), _toConsumableArray(dir1));
|
|
237
326
|
var indexArray = [0, 1, 2, 3, 0, 2];
|
|
238
327
|
return {
|
|
@@ -241,6 +330,10 @@ export function HeatmapTriangulation(feature) {
|
|
|
241
330
|
size: 5
|
|
242
331
|
};
|
|
243
332
|
}
|
|
333
|
+
/**
|
|
334
|
+
* 点图层3d geomerty
|
|
335
|
+
* @param shape 3D形状
|
|
336
|
+
*/
|
|
244
337
|
|
|
245
338
|
function getGeometry(shape) {
|
|
246
339
|
var needFlat = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
@@ -336,15 +429,22 @@ function checkIsClosed(points) {
|
|
|
336
429
|
function getHeatmapGeometry(shape) {
|
|
337
430
|
var shape3d = ['cylinder', 'triangleColumn', 'hexagonColumn', 'squareColumn'];
|
|
338
431
|
var path = geometryShape[shape] ? geometryShape[shape]() : geometryShape.circle();
|
|
339
|
-
var geometry = shape3d.indexOf(shape) === -1 ? fillPolygon([path]) : extrudePolygon([path]);
|
|
432
|
+
var geometry = shape3d.indexOf(shape) === -1 ? fillPolygon([path]) : extrudePolygon([path]); // const geometry = fillPolygon([path]);
|
|
433
|
+
|
|
340
434
|
return geometry;
|
|
341
|
-
}
|
|
435
|
+
} // 热力图计算范围
|
|
436
|
+
|
|
342
437
|
|
|
343
438
|
function addDir(dirX, dirY) {
|
|
344
439
|
var x = (dirX + 1) / 2;
|
|
345
440
|
var y = (dirY + 1) / 2;
|
|
346
441
|
return [x, y];
|
|
347
442
|
}
|
|
443
|
+
/**
|
|
444
|
+
* 构建地球三角网格
|
|
445
|
+
* @returns
|
|
446
|
+
*/
|
|
447
|
+
|
|
348
448
|
|
|
349
449
|
export function earthTriangulation() {
|
|
350
450
|
var earthmesh = primitiveSphere(EARTH_RADIUS, {
|
|
@@ -373,5 +473,4 @@ export function earthOuterTriangulation() {
|
|
|
373
473
|
size: 5,
|
|
374
474
|
normals: normalArr
|
|
375
475
|
};
|
|
376
|
-
}
|
|
377
|
-
//# sourceMappingURL=triangulation.js.map
|
|
476
|
+
}
|
package/es/earth/index.js
CHANGED
|
@@ -10,10 +10,10 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
|
10
10
|
|
|
11
11
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
12
12
|
|
|
13
|
-
import BaseLayer from
|
|
14
|
-
import EarthAtomSphereModel from
|
|
15
|
-
import BaseEarthModel from
|
|
16
|
-
import EarthBloomSphereModel from
|
|
13
|
+
import BaseLayer from "../core/BaseLayer";
|
|
14
|
+
import EarthAtomSphereModel from "./models/atmosphere";
|
|
15
|
+
import BaseEarthModel from "./models/base";
|
|
16
|
+
import EarthBloomSphereModel from "./models/bloomsphere";
|
|
17
17
|
var EarthModels = {
|
|
18
18
|
base: BaseEarthModel,
|
|
19
19
|
atomSphere: EarthAtomSphereModel,
|
|
@@ -21,7 +21,7 @@ var EarthModels = {
|
|
|
21
21
|
};
|
|
22
22
|
var earthLayerTypes = ['base', 'atomSphere', 'bloomSphere'];
|
|
23
23
|
|
|
24
|
-
var EarthLayer = function (_BaseLayer) {
|
|
24
|
+
var EarthLayer = /*#__PURE__*/function (_BaseLayer) {
|
|
25
25
|
_inherits(EarthLayer, _BaseLayer);
|
|
26
26
|
|
|
27
27
|
var _super = _createSuper(EarthLayer);
|
|
@@ -55,6 +55,11 @@ var EarthLayer = function (_BaseLayer) {
|
|
|
55
55
|
_this2.renderLayers();
|
|
56
56
|
});
|
|
57
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* 设置当前地球时间
|
|
60
|
+
* @param time
|
|
61
|
+
*/
|
|
62
|
+
|
|
58
63
|
}, {
|
|
59
64
|
key: "setEarthTime",
|
|
60
65
|
value: function setEarthTime(time) {
|
|
@@ -83,5 +88,4 @@ var EarthLayer = function (_BaseLayer) {
|
|
|
83
88
|
return EarthLayer;
|
|
84
89
|
}(BaseLayer);
|
|
85
90
|
|
|
86
|
-
export { EarthLayer as default };
|
|
87
|
-
//# sourceMappingURL=index.js.map
|
|
91
|
+
export { EarthLayer as default };
|
|
@@ -3,19 +3,23 @@ import _createClass from "@babel/runtime/helpers/createClass";
|
|
|
3
3
|
import _inherits from "@babel/runtime/helpers/inherits";
|
|
4
4
|
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
5
5
|
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
6
|
-
import _isNumber from "lodash/isNumber";
|
|
7
6
|
|
|
8
7
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
9
8
|
|
|
10
9
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
11
10
|
|
|
12
11
|
import { AttributeType, gl } from '@antv/l7-core';
|
|
13
|
-
import
|
|
14
|
-
import
|
|
12
|
+
import { isNumber } from 'lodash';
|
|
13
|
+
import BaseModel from "../../core/BaseModel";
|
|
14
|
+
import { earthTriangulation } from "../../core/triangulation";
|
|
15
|
+
|
|
16
|
+
/* babel-plugin-inline-import '../shaders/atmosphere_frag.glsl' */
|
|
15
17
|
var atmoSphereFrag = "\nuniform float u_opacity;\nuniform vec3 u_CameraPosition;\n\nvarying vec3 vVertexNormal;\nvarying float v_offset;\nvarying vec4 v_Color;\nvoid main() {\n \n \n // float intensity = pow(0.5 + dot(normalize(vVertexNormal), normalize(u_CameraPosition)), 3.0);\n float intensity = pow(v_offset + dot(normalize(vVertexNormal), normalize(u_CameraPosition)), 3.0);\n // TODO: \u53BB\u9664\u80CC\u9762\n if(intensity > 1.0) intensity = 0.0;\n\n gl_FragColor = vec4(v_Color.rgb, v_Color.a * intensity * u_opacity);\n}\n";
|
|
18
|
+
|
|
19
|
+
/* babel-plugin-inline-import '../shaders/atmosphere_vert.glsl' */
|
|
16
20
|
var atmoSphereVert = "\nattribute vec3 a_Position;\nattribute vec3 a_Normal;\nattribute vec2 a_Uv;\nattribute vec4 a_Color;\nuniform vec3 u_CameraPosition;\nvarying float v_CamreaDistance;\n\nuniform mat4 u_ViewProjectionMatrix;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_ViewMatrix;\n\nvarying vec3 vVertexNormal;\nvarying vec4 v_Color;\nvarying float v_offset;\n\nvoid main() {\n float EARTH_RADIUS = 100.0;\n \n v_Color = a_Color;\n\n v_offset = min(((length(u_CameraPosition) - EARTH_RADIUS)/600.0) * 0.5 + 0.4, 1.0);\n vVertexNormal = a_Normal;\n\n gl_Position = u_ViewProjectionMatrix * u_ModelMatrix * vec4(a_Position, 1.0);\n}\n";
|
|
17
21
|
|
|
18
|
-
var EarthAtomSphereModel = function (_BaseModel) {
|
|
22
|
+
var EarthAtomSphereModel = /*#__PURE__*/function (_BaseModel) {
|
|
19
23
|
_inherits(EarthAtomSphereModel, _BaseModel);
|
|
20
24
|
|
|
21
25
|
var _super = _createSuper(EarthAtomSphereModel);
|
|
@@ -34,7 +38,7 @@ var EarthAtomSphereModel = function (_BaseModel) {
|
|
|
34
38
|
opacity = _ref$opacity === void 0 ? 1 : _ref$opacity;
|
|
35
39
|
|
|
36
40
|
return {
|
|
37
|
-
u_opacity:
|
|
41
|
+
u_opacity: isNumber(opacity) ? opacity : 1.0
|
|
38
42
|
};
|
|
39
43
|
}
|
|
40
44
|
}, {
|
|
@@ -50,6 +54,7 @@ var EarthAtomSphereModel = function (_BaseModel) {
|
|
|
50
54
|
}, {
|
|
51
55
|
key: "buildModels",
|
|
52
56
|
value: function buildModels(callbackModel) {
|
|
57
|
+
// TODO: 调整图层的绘制顺序 地球大气层
|
|
53
58
|
this.layer.zIndex = -997;
|
|
54
59
|
this.layer.buildLayerModel({
|
|
55
60
|
moduleName: 'earthAtmo',
|
|
@@ -70,12 +75,14 @@ var EarthAtomSphereModel = function (_BaseModel) {
|
|
|
70
75
|
}, {
|
|
71
76
|
key: "registerBuiltinAttributes",
|
|
72
77
|
value: function registerBuiltinAttributes() {
|
|
78
|
+
// point layer size;
|
|
73
79
|
this.styleAttributeService.registerStyleAttribute({
|
|
74
80
|
name: 'size',
|
|
75
81
|
type: AttributeType.Attribute,
|
|
76
82
|
descriptor: {
|
|
77
83
|
name: 'a_Size',
|
|
78
84
|
buffer: {
|
|
85
|
+
// give the WebGL driver a hint that this buffer may change
|
|
79
86
|
usage: gl.DYNAMIC_DRAW,
|
|
80
87
|
data: [],
|
|
81
88
|
type: gl.FLOAT
|
|
@@ -94,6 +101,7 @@ var EarthAtomSphereModel = function (_BaseModel) {
|
|
|
94
101
|
descriptor: {
|
|
95
102
|
name: 'a_Normal',
|
|
96
103
|
buffer: {
|
|
104
|
+
// give the WebGL driver a hint that this buffer may change
|
|
97
105
|
usage: gl.STATIC_DRAW,
|
|
98
106
|
data: [],
|
|
99
107
|
type: gl.FLOAT
|
|
@@ -110,6 +118,7 @@ var EarthAtomSphereModel = function (_BaseModel) {
|
|
|
110
118
|
descriptor: {
|
|
111
119
|
name: 'a_Uv',
|
|
112
120
|
buffer: {
|
|
121
|
+
// give the WebGL driver a hint that this buffer may change
|
|
113
122
|
usage: gl.DYNAMIC_DRAW,
|
|
114
123
|
data: [],
|
|
115
124
|
type: gl.FLOAT
|
|
@@ -126,5 +135,4 @@ var EarthAtomSphereModel = function (_BaseModel) {
|
|
|
126
135
|
return EarthAtomSphereModel;
|
|
127
136
|
}(BaseModel);
|
|
128
137
|
|
|
129
|
-
export { EarthAtomSphereModel as default };
|
|
130
|
-
//# sourceMappingURL=atmosphere.js.map
|
|
138
|
+
export { EarthAtomSphereModel as default };
|
package/es/earth/models/base.js
CHANGED
|
@@ -11,12 +11,16 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
|
11
11
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
12
12
|
|
|
13
13
|
import { AttributeType, gl } from '@antv/l7-core';
|
|
14
|
-
import BaseModel from
|
|
15
|
-
import { earthTriangulation } from
|
|
14
|
+
import BaseModel from "../../core/BaseModel";
|
|
15
|
+
import { earthTriangulation } from "../../core/triangulation";
|
|
16
|
+
|
|
17
|
+
/* babel-plugin-inline-import '../shaders/base_frag.glsl' */
|
|
16
18
|
var baseFrag = "\nuniform sampler2D u_texture;\n\nvarying vec2 v_texCoord;\nvarying float v_lightWeight;\n\n\nvoid main() {\n\n vec4 color = texture2D(u_texture,vec2(v_texCoord.x,v_texCoord.y));\n color.xyz = color.xyz * v_lightWeight;\n gl_FragColor = color;\n}\n";
|
|
19
|
+
|
|
20
|
+
/* babel-plugin-inline-import '../shaders/base_vert.glsl' */
|
|
17
21
|
var baseVert = "// attribute vec4 a_Color;\nattribute vec3 a_Position;\nattribute vec3 a_Normal;\nattribute vec2 a_Uv;\nvarying vec2 v_texCoord;\n\n// attribute vec2 a_Extrude;\n// attribute float a_Size;\n// attribute float a_Shape;\n\nuniform vec3 u_CameraPosition;\nuniform mat4 u_ViewProjectionMatrix;\nuniform mat4 u_ModelMatrix;\nuniform float u_ambientRatio : 0.5;\nuniform float u_diffuseRatio : 0.3;\nuniform float u_specularRatio : 0.2;\nuniform vec3 u_sunLight: [1.0, -10.5, 12.0];\n\n\n\nfloat calc_lighting(vec4 pos) {\n\n vec3 worldPos = vec3(pos * u_ModelMatrix);\n\n vec3 worldNormal = a_Normal;\n\n // cal light weight\n vec3 viewDir = normalize(u_CameraPosition - worldPos);\n\n vec3 lightDir = normalize(u_sunLight);\n\n vec3 halfDir = normalize(viewDir+lightDir);\n // lambert\n float lambert = dot(worldNormal, lightDir);\n // specular\n float specular = pow(max(0.0, dot(worldNormal, halfDir)), 32.0);\n //sum to light weight\n float lightWeight = u_ambientRatio + u_diffuseRatio * lambert + u_specularRatio * specular;\n\n return lightWeight;\n}\n\nvarying float v_lightWeight;\nvoid main() {\n\n v_texCoord = a_Uv;\n\n float lightWeight = calc_lighting(vec4(a_Position, 1.0));\n v_lightWeight = lightWeight;\n\n gl_Position = u_ViewProjectionMatrix * u_ModelMatrix * vec4(a_Position, 1.0);\n}\n";
|
|
18
22
|
|
|
19
|
-
var BaseEarthModel = function (_BaseModel) {
|
|
23
|
+
var BaseEarthModel = /*#__PURE__*/function (_BaseModel) {
|
|
20
24
|
_inherits(BaseEarthModel, _BaseModel);
|
|
21
25
|
|
|
22
26
|
var _super = _createSuper(BaseEarthModel);
|
|
@@ -32,8 +36,6 @@ var BaseEarthModel = function (_BaseModel) {
|
|
|
32
36
|
|
|
33
37
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
34
38
|
|
|
35
|
-
_defineProperty(_assertThisInitialized(_this), "texture", void 0);
|
|
36
|
-
|
|
37
39
|
_defineProperty(_assertThisInitialized(_this), "earthTime", 3.4);
|
|
38
40
|
|
|
39
41
|
_defineProperty(_assertThisInitialized(_this), "sunX", 1000);
|
|
@@ -55,6 +57,8 @@ var BaseEarthModel = function (_BaseModel) {
|
|
|
55
57
|
globelOtions = _this$layer$getLayerC.globelOtions;
|
|
56
58
|
|
|
57
59
|
if (animateOption !== null && animateOption !== void 0 && animateOption.enable) {
|
|
60
|
+
// @ts-ignore
|
|
61
|
+
// T: rotateY 方法只有在地球模式下存在
|
|
58
62
|
this.mapService.rotateY({
|
|
59
63
|
reg: 0.002
|
|
60
64
|
});
|
|
@@ -66,8 +70,12 @@ var BaseEarthModel = function (_BaseModel) {
|
|
|
66
70
|
|
|
67
71
|
return {
|
|
68
72
|
u_ambientRatio: (globelOtions === null || globelOtions === void 0 ? void 0 : globelOtions.ambientRatio) || 0.6,
|
|
73
|
+
// 环境光
|
|
69
74
|
u_diffuseRatio: (globelOtions === null || globelOtions === void 0 ? void 0 : globelOtions.diffuseRatio) || 0.4,
|
|
75
|
+
// 漫反射
|
|
70
76
|
u_specularRatio: (globelOtions === null || globelOtions === void 0 ? void 0 : globelOtions.specularRatio) || 0.1,
|
|
77
|
+
// 高光反射
|
|
78
|
+
// u_sunLight: [120, 120, 120],
|
|
71
79
|
u_sunLight: [this.sunX, this.sunY, this.sunZ],
|
|
72
80
|
u_texture: this.texture
|
|
73
81
|
};
|
|
@@ -120,6 +128,7 @@ var BaseEarthModel = function (_BaseModel) {
|
|
|
120
128
|
}, {
|
|
121
129
|
key: "buildModels",
|
|
122
130
|
value: function buildModels(callbackModel) {
|
|
131
|
+
// TODO: 调整图层的绘制顺序 地球大气层
|
|
123
132
|
this.layer.zIndex = -998;
|
|
124
133
|
this.layer.buildLayerModel({
|
|
125
134
|
moduleName: 'earthBase',
|
|
@@ -140,12 +149,14 @@ var BaseEarthModel = function (_BaseModel) {
|
|
|
140
149
|
}, {
|
|
141
150
|
key: "registerBuiltinAttributes",
|
|
142
151
|
value: function registerBuiltinAttributes() {
|
|
152
|
+
// point layer size;
|
|
143
153
|
this.styleAttributeService.registerStyleAttribute({
|
|
144
154
|
name: 'size',
|
|
145
155
|
type: AttributeType.Attribute,
|
|
146
156
|
descriptor: {
|
|
147
157
|
name: 'a_Size',
|
|
148
158
|
buffer: {
|
|
159
|
+
// give the WebGL driver a hint that this buffer may change
|
|
149
160
|
usage: gl.DYNAMIC_DRAW,
|
|
150
161
|
data: [],
|
|
151
162
|
type: gl.FLOAT
|
|
@@ -164,6 +175,7 @@ var BaseEarthModel = function (_BaseModel) {
|
|
|
164
175
|
descriptor: {
|
|
165
176
|
name: 'a_Normal',
|
|
166
177
|
buffer: {
|
|
178
|
+
// give the WebGL driver a hint that this buffer may change
|
|
167
179
|
usage: gl.STATIC_DRAW,
|
|
168
180
|
data: [],
|
|
169
181
|
type: gl.FLOAT
|
|
@@ -180,6 +192,7 @@ var BaseEarthModel = function (_BaseModel) {
|
|
|
180
192
|
descriptor: {
|
|
181
193
|
name: 'a_Uv',
|
|
182
194
|
buffer: {
|
|
195
|
+
// give the WebGL driver a hint that this buffer may change
|
|
183
196
|
usage: gl.DYNAMIC_DRAW,
|
|
184
197
|
data: [],
|
|
185
198
|
type: gl.FLOAT
|
|
@@ -196,5 +209,4 @@ var BaseEarthModel = function (_BaseModel) {
|
|
|
196
209
|
return BaseEarthModel;
|
|
197
210
|
}(BaseModel);
|
|
198
211
|
|
|
199
|
-
export { BaseEarthModel as default };
|
|
200
|
-
//# sourceMappingURL=base.js.map
|
|
212
|
+
export { BaseEarthModel as default };
|
|
@@ -3,19 +3,23 @@ import _createClass from "@babel/runtime/helpers/createClass";
|
|
|
3
3
|
import _inherits from "@babel/runtime/helpers/inherits";
|
|
4
4
|
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
5
5
|
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
6
|
-
import _isNumber from "lodash/isNumber";
|
|
7
6
|
|
|
8
7
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
9
8
|
|
|
10
9
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
11
10
|
|
|
12
11
|
import { AttributeType, gl } from '@antv/l7-core';
|
|
13
|
-
import
|
|
14
|
-
import
|
|
12
|
+
import { isNumber } from 'lodash';
|
|
13
|
+
import BaseModel from "../../core/BaseModel";
|
|
14
|
+
import { earthOuterTriangulation } from "../../core/triangulation";
|
|
15
|
+
|
|
16
|
+
/* babel-plugin-inline-import '../shaders/bloomsphere_frag.glsl' */
|
|
15
17
|
var bloomSphereFrag = "\nuniform float u_opacity;\nuniform vec3 u_CameraPosition;\nvarying vec3 vVertexNormal;\n\nvarying vec4 v_Color;\nvoid main() {\n\n\n float intensity = - dot(normalize(vVertexNormal), normalize(u_CameraPosition));\n // TODO: \u53BB\u9664\u80CC\u9762\n if(intensity > 1.0) intensity = 0.0;\n\n gl_FragColor = vec4(v_Color.rgb, v_Color.a * intensity * u_opacity);\n}\n";
|
|
18
|
+
|
|
19
|
+
/* babel-plugin-inline-import '../shaders/bloomsphere_vert.glsl' */
|
|
16
20
|
var bloomSphereVert = "\nattribute vec3 a_Position;\nattribute vec3 a_Normal;\nattribute vec2 a_Uv;\nattribute vec4 a_Color;\nuniform vec3 u_CameraPosition;\nuniform mat4 u_ViewProjectionMatrix;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_ViewMatrix;\n\nvarying vec3 vVertexNormal;\nvarying vec4 v_Color;\n\nvoid main() {\n v_Color = a_Color;\n\n vVertexNormal = a_Normal;\n\n gl_Position = u_ViewProjectionMatrix * u_ModelMatrix * vec4(a_Position, 1.0);\n}\n";
|
|
17
21
|
|
|
18
|
-
var EarthBloomSphereModel = function (_BaseModel) {
|
|
22
|
+
var EarthBloomSphereModel = /*#__PURE__*/function (_BaseModel) {
|
|
19
23
|
_inherits(EarthBloomSphereModel, _BaseModel);
|
|
20
24
|
|
|
21
25
|
var _super = _createSuper(EarthBloomSphereModel);
|
|
@@ -34,7 +38,7 @@ var EarthBloomSphereModel = function (_BaseModel) {
|
|
|
34
38
|
opacity = _ref$opacity === void 0 ? 1 : _ref$opacity;
|
|
35
39
|
|
|
36
40
|
return {
|
|
37
|
-
u_opacity:
|
|
41
|
+
u_opacity: isNumber(opacity) ? opacity : 1.0
|
|
38
42
|
};
|
|
39
43
|
}
|
|
40
44
|
}, {
|
|
@@ -50,6 +54,7 @@ var EarthBloomSphereModel = function (_BaseModel) {
|
|
|
50
54
|
}, {
|
|
51
55
|
key: "buildModels",
|
|
52
56
|
value: function buildModels(callbackModel) {
|
|
57
|
+
// TODO: 调整图层的绘制顺序,让它保持在地球后面(减少锯齿现象)
|
|
53
58
|
this.layer.zIndex = -999;
|
|
54
59
|
this.layer.buildLayerModel({
|
|
55
60
|
moduleName: 'earthBloom',
|
|
@@ -70,12 +75,14 @@ var EarthBloomSphereModel = function (_BaseModel) {
|
|
|
70
75
|
}, {
|
|
71
76
|
key: "registerBuiltinAttributes",
|
|
72
77
|
value: function registerBuiltinAttributes() {
|
|
78
|
+
// point layer size;
|
|
73
79
|
this.styleAttributeService.registerStyleAttribute({
|
|
74
80
|
name: 'size',
|
|
75
81
|
type: AttributeType.Attribute,
|
|
76
82
|
descriptor: {
|
|
77
83
|
name: 'a_Size',
|
|
78
84
|
buffer: {
|
|
85
|
+
// give the WebGL driver a hint that this buffer may change
|
|
79
86
|
usage: gl.DYNAMIC_DRAW,
|
|
80
87
|
data: [],
|
|
81
88
|
type: gl.FLOAT
|
|
@@ -94,6 +101,7 @@ var EarthBloomSphereModel = function (_BaseModel) {
|
|
|
94
101
|
descriptor: {
|
|
95
102
|
name: 'a_Normal',
|
|
96
103
|
buffer: {
|
|
104
|
+
// give the WebGL driver a hint that this buffer may change
|
|
97
105
|
usage: gl.STATIC_DRAW,
|
|
98
106
|
data: [],
|
|
99
107
|
type: gl.FLOAT
|
|
@@ -110,6 +118,7 @@ var EarthBloomSphereModel = function (_BaseModel) {
|
|
|
110
118
|
descriptor: {
|
|
111
119
|
name: 'a_Uv',
|
|
112
120
|
buffer: {
|
|
121
|
+
// give the WebGL driver a hint that this buffer may change
|
|
113
122
|
usage: gl.DYNAMIC_DRAW,
|
|
114
123
|
data: [],
|
|
115
124
|
type: gl.FLOAT
|
|
@@ -126,5 +135,4 @@ var EarthBloomSphereModel = function (_BaseModel) {
|
|
|
126
135
|
return EarthBloomSphereModel;
|
|
127
136
|
}(BaseModel);
|
|
128
137
|
|
|
129
|
-
export { EarthBloomSphereModel as default };
|
|
130
|
-
//# sourceMappingURL=bloomsphere.js.map
|
|
138
|
+
export { EarthBloomSphereModel as default };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
|
|
2
|
+
uniform float u_opacity;
|
|
3
|
+
uniform vec3 u_CameraPosition;
|
|
4
|
+
|
|
5
|
+
varying vec3 vVertexNormal;
|
|
6
|
+
varying float v_offset;
|
|
7
|
+
varying vec4 v_Color;
|
|
8
|
+
void main() {
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
// float intensity = pow(0.5 + dot(normalize(vVertexNormal), normalize(u_CameraPosition)), 3.0);
|
|
12
|
+
float intensity = pow(v_offset + dot(normalize(vVertexNormal), normalize(u_CameraPosition)), 3.0);
|
|
13
|
+
// TODO: 去除背面
|
|
14
|
+
if(intensity > 1.0) intensity = 0.0;
|
|
15
|
+
|
|
16
|
+
gl_FragColor = vec4(v_Color.rgb, v_Color.a * intensity * u_opacity);
|
|
17
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
|
|
2
|
+
attribute vec3 a_Position;
|
|
3
|
+
attribute vec3 a_Normal;
|
|
4
|
+
attribute vec2 a_Uv;
|
|
5
|
+
attribute vec4 a_Color;
|
|
6
|
+
uniform vec3 u_CameraPosition;
|
|
7
|
+
varying float v_CamreaDistance;
|
|
8
|
+
|
|
9
|
+
uniform mat4 u_ViewProjectionMatrix;
|
|
10
|
+
uniform mat4 u_ModelMatrix;
|
|
11
|
+
uniform mat4 u_ViewMatrix;
|
|
12
|
+
|
|
13
|
+
varying vec3 vVertexNormal;
|
|
14
|
+
varying vec4 v_Color;
|
|
15
|
+
varying float v_offset;
|
|
16
|
+
|
|
17
|
+
void main() {
|
|
18
|
+
float EARTH_RADIUS = 100.0;
|
|
19
|
+
|
|
20
|
+
v_Color = a_Color;
|
|
21
|
+
|
|
22
|
+
v_offset = min(((length(u_CameraPosition) - EARTH_RADIUS)/600.0) * 0.5 + 0.4, 1.0);
|
|
23
|
+
vVertexNormal = a_Normal;
|
|
24
|
+
|
|
25
|
+
gl_Position = u_ViewProjectionMatrix * u_ModelMatrix * vec4(a_Position, 1.0);
|
|
26
|
+
}
|