@antv/l7-layers 2.9.27-alpha.2 → 2.9.27-alpha.4
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 +6 -2
- package/es/Geometry/models/billboard.js +3 -7
- package/es/Geometry/models/plane.js +5 -7
- package/es/Geometry/models/sprite.js +4 -7
- package/es/canvas/index.d.ts +4 -0
- package/es/canvas/index.js +38 -2
- package/es/citybuliding/building.js +6 -2
- package/es/citybuliding/models/build.js +2 -3
- package/es/core/BaseLayer.d.ts +20 -12
- package/es/core/BaseLayer.js +61 -85
- package/es/core/BaseModel.d.ts +2 -2
- package/es/core/BaseModel.js +22 -19
- package/es/core/interface.d.ts +20 -1
- package/es/core/triangulation.d.ts +6 -0
- package/es/core/triangulation.js +64 -2
- package/es/earth/index.js +3 -1
- package/es/earth/models/atmosphere.js +4 -7
- package/es/earth/models/base.js +12 -18
- package/es/earth/models/bloomsphere.js +4 -8
- package/es/earth/shaders/atmosphere_frag.glsl +1 -1
- package/es/earth/shaders/bloomsphere_frag.glsl +1 -1
- package/es/heatmap/index.d.ts +2 -2
- package/es/heatmap/index.js +7 -5
- package/es/heatmap/models/grid.js +1 -3
- package/es/heatmap/models/grid3d.js +4 -11
- package/es/heatmap/models/heatmap.js +8 -9
- package/es/heatmap/models/hexagon.js +2 -6
- package/es/heatmap/triangulation.js +0 -1
- package/es/image/index.d.ts +1 -1
- package/es/image/index.js +10 -3
- package/es/image/models/dataImage.d.ts +1 -1
- package/es/image/models/dataImage.js +14 -39
- package/es/image/models/image.js +5 -10
- package/es/image/models/index.d.ts +1 -1
- package/es/image/models/index.js +3 -1
- package/es/image/models/tileDataImage.d.ts +19 -0
- package/es/image/models/tileDataImage.js +174 -0
- package/es/line/index.d.ts +1 -0
- package/es/line/index.js +8 -2
- package/es/line/models/arc.js +10 -10
- package/es/line/models/arc_3d.js +8 -10
- package/es/line/models/earthArc_3d.js +8 -10
- package/es/line/models/great_circle.js +7 -7
- package/es/line/models/half.js +3 -4
- package/es/line/models/line.js +10 -9
- package/es/line/models/linearline.js +3 -4
- package/es/line/models/simpleLine.js +5 -4
- package/es/line/models/simpleTileLine.d.ts +9 -0
- package/es/line/models/simpleTileLine.js +100 -0
- package/es/line/models/tile.d.ts +1 -4
- package/es/line/models/tile.js +50 -223
- package/es/line/models/wall.js +11 -47
- package/es/line/shaders/dash/arc_dash_vert.glsl +2 -0
- package/es/line/shaders/dash/line_dash_frag.glsl +1 -1
- package/es/line/shaders/line_arc2d_vert.glsl +2 -2
- package/es/line/shaders/line_arc_3d_frag.glsl +10 -10
- package/es/line/shaders/line_arc_3d_vert.glsl +5 -6
- package/es/line/shaders/line_arc_frag.glsl +9 -10
- package/es/line/shaders/line_arc_great_circle_frag.glsl +6 -6
- package/es/line/shaders/line_arc_great_circle_vert.glsl +2 -3
- package/es/line/shaders/line_arc_vert.glsl +6 -4
- package/es/line/shaders/line_bezier_vert.glsl +2 -2
- package/es/line/shaders/line_frag.glsl +5 -6
- package/es/line/shaders/line_vert.glsl +1 -1
- package/es/line/shaders/linear/arc3d_linear_frag.glsl +6 -7
- package/es/line/shaders/linear/arc3d_linear_vert.glsl +11 -12
- package/es/line/shaders/linear/arc_linear_frag.glsl +1 -1
- package/es/line/shaders/tile/line_tile_map_vert.glsl +25 -0
- package/es/line/shaders/tile/line_tile_vert.glsl +19 -177
- package/es/line/shaders/tile/simpleline_map_vert.glsl +15 -0
- package/es/line/shaders/tile/simpleline_vert.glsl +21 -0
- package/es/line/shaders/{wall_frag.glsl → wall/wall_frag.glsl} +21 -25
- package/es/line/shaders/wall/wall_vert.glsl +77 -0
- package/es/mask/index.d.ts +1 -0
- package/es/mask/index.js +80 -5
- package/es/mask/models/fill.d.ts +2 -1
- package/es/mask/models/fill.js +13 -10
- package/es/mask/shaders/mask_vert.glsl +0 -6
- package/es/plugins/DataMappingPlugin.d.ts +4 -3
- package/es/plugins/DataMappingPlugin.js +129 -58
- package/es/plugins/DataSourcePlugin.js +3 -2
- package/es/plugins/FeatureScalePlugin.d.ts +0 -2
- package/es/plugins/FeatureScalePlugin.js +8 -51
- package/es/plugins/LayerAnimateStylePlugin.d.ts +0 -2
- package/es/plugins/LayerAnimateStylePlugin.js +7 -27
- package/es/plugins/LayerModelPlugin.js +2 -6
- package/es/plugins/LightingPlugin.js +1 -7
- package/es/plugins/MultiPassRendererPlugin.d.ts +0 -1
- package/es/plugins/MultiPassRendererPlugin.js +4 -16
- package/es/plugins/PixelPickingPlugin.d.ts +1 -1
- package/es/plugins/PixelPickingPlugin.js +8 -28
- package/es/plugins/RegisterStyleAttributePlugin.d.ts +4 -0
- package/es/plugins/RegisterStyleAttributePlugin.js +56 -5
- package/es/plugins/UpdateStyleAttributePlugin.js +2 -9
- package/es/point/index.js +9 -6
- package/es/point/models/earthExtrude.d.ts +1 -1
- package/es/point/models/earthExtrude.js +9 -14
- package/es/point/models/earthFill.js +2 -2
- package/es/point/models/extrude.d.ts +1 -1
- package/es/point/models/extrude.js +9 -12
- package/es/point/models/fill.d.ts +1 -1
- package/es/point/models/fill.js +8 -9
- package/es/point/models/fillmage.js +5 -6
- package/es/point/models/image.js +3 -3
- package/es/point/models/index.d.ts +1 -1
- package/es/point/models/index.js +3 -3
- package/es/point/models/normal.d.ts +0 -1
- package/es/point/models/normal.js +9 -62
- package/es/point/models/radar.js +5 -70
- package/es/point/models/simplePoint.d.ts +0 -1
- package/es/point/models/simplePoint.js +2 -11
- package/es/point/models/text.js +7 -10
- package/es/point/models/tile.d.ts +0 -7
- package/es/point/models/tile.js +24 -158
- package/es/point/models/tileText.d.ts +0 -4
- package/es/point/models/tileText.js +99 -188
- package/es/point/shaders/animate/wave_frag.glsl +4 -4
- package/es/point/shaders/earth/fill_vert.glsl +0 -1
- package/es/point/shaders/fill_vert.glsl +0 -1
- package/es/point/shaders/normal_frag.glsl +1 -10
- package/es/point/shaders/normal_vert.glsl +5 -60
- package/es/point/shaders/radar/radar_frag.glsl +4 -15
- package/es/point/shaders/radar/radar_vert.glsl +4 -54
- package/es/point/shaders/tile/fill_tile_frag.glsl +10 -17
- package/es/point/shaders/tile/fill_tile_vert.glsl +20 -123
- package/es/point/shaders/tile/text_frag.glsl +33 -0
- package/es/point/shaders/tile/text_map_frag.glsl +31 -0
- package/es/point/shaders/tile/text_map_vert.glsl +38 -0
- package/es/point/shaders/tile/text_vert.glsl +48 -0
- package/es/polygon/index.js +6 -2
- package/es/polygon/models/extrude.js +4 -8
- package/es/polygon/models/fill.js +3 -4
- package/es/polygon/models/ocean.d.ts +0 -2
- package/es/polygon/models/ocean.js +13 -47
- package/es/polygon/models/tile.d.ts +1 -4
- package/es/polygon/models/tile.js +25 -57
- package/es/polygon/models/water.d.ts +0 -2
- package/es/polygon/models/water.js +13 -47
- package/es/polygon/shaders/polygon_frag.glsl +2 -2
- package/es/polygon/shaders/polygon_vert.glsl +2 -2
- package/es/polygon/shaders/tile/polygon_tile_map_vert.glsl +16 -0
- package/es/polygon/shaders/tile/polygon_tile_vert.glsl +20 -60
- package/es/polygon/shaders/water/polygon_ocean_frag.glsl +1 -2
- package/es/polygon/shaders/water/polygon_ocean_vert.glsl +0 -31
- package/es/polygon/shaders/water/polygon_water_frag.glsl +1 -3
- package/es/polygon/shaders/water/polygon_water_vert.glsl +0 -29
- package/es/raster/buffers/triangulation.js +1 -4
- package/es/raster/index.js +6 -2
- package/es/raster/models/raster.d.ts +1 -1
- package/es/raster/models/raster.js +6 -5
- package/es/shader/minify_frag.glsl +7 -0
- package/es/shader/minify_picking_frag.glsl +10 -0
- package/es/tile/manager/baseMapTileLayerManager.d.ts +29 -0
- package/es/tile/manager/baseMapTileLayerManager.js +207 -0
- package/es/tile/manager/tileLayerManager.d.ts +2 -2
- package/es/tile/manager/tileLayerManager.js +12 -2
- package/es/tile/manager/tilePickerManager.d.ts +2 -3
- package/es/tile/manager/tilePickerManager.js +1 -2
- package/es/tile/models/tileModel.d.ts +1 -0
- package/es/tile/models/tileModel.js +18 -2
- package/es/tile/tileFactory/base.d.ts +1 -1
- package/es/tile/tileFactory/base.js +58 -33
- package/es/tile/tileFactory/line.js +3 -0
- package/es/tile/tileFactory/point.js +3 -0
- package/es/tile/tileFactory/polygon.js +3 -0
- package/es/tile/tileFactory/raster.js +3 -0
- package/es/tile/tileFactory/rasterData.js +3 -0
- package/es/tile/tileFactory/rasterDataLayer.js +6 -2
- package/es/tile/tileFactory/test.js +26 -5
- package/es/tile/tileFactory/vectorLayer.d.ts +4 -1
- package/es/tile/tileFactory/vectorLayer.js +110 -7
- package/es/tile/tileLayer/baseMapTileLayer.d.ts +29 -0
- package/es/tile/tileLayer/baseMapTileLayer.js +188 -0
- package/es/tile/tileLayer/baseTileLayer.d.ts +4 -4
- package/es/tile/tileLayer/baseTileLayer.js +46 -75
- package/es/tile/tileTest.d.ts +1 -0
- package/es/tile/tileTest.js +3 -2
- package/es/tile/tmsMapTileLayer.d.ts +9 -0
- package/es/tile/tmsMapTileLayer.js +119 -0
- package/es/tile/tmsTileLayer.d.ts +2 -0
- package/es/tile/tmsTileLayer.js +24 -2
- package/es/tile/utils.d.ts +4 -0
- package/es/tile/utils.js +30 -0
- package/es/utils/dataMappingStyle.js +3 -0
- package/es/utils/layerData.js +2 -2
- package/es/utils/updateShape.js +2 -2
- package/es/wind/index.js +6 -2
- package/es/wind/models/wind.js +8 -8
- package/es/wind/shaders/wind_vert.glsl +1 -1
- package/lib/Geometry/index.js +6 -2
- package/lib/Geometry/models/billboard.js +3 -7
- package/lib/Geometry/models/plane.js +5 -7
- package/lib/Geometry/models/sprite.js +4 -7
- package/lib/canvas/index.js +37 -2
- package/lib/citybuliding/building.js +6 -2
- package/lib/citybuliding/models/build.js +2 -3
- package/lib/core/BaseLayer.js +61 -85
- package/lib/core/BaseModel.js +22 -19
- package/lib/core/triangulation.js +66 -2
- package/lib/earth/index.js +3 -1
- package/lib/earth/models/atmosphere.js +4 -7
- package/lib/earth/models/base.js +12 -18
- package/lib/earth/models/bloomsphere.js +4 -8
- package/lib/earth/shaders/atmosphere_frag.glsl +1 -1
- package/lib/earth/shaders/bloomsphere_frag.glsl +1 -1
- package/lib/heatmap/index.js +7 -5
- package/lib/heatmap/models/grid.js +1 -3
- package/lib/heatmap/models/grid3d.js +4 -11
- package/lib/heatmap/models/heatmap.js +8 -9
- package/lib/heatmap/models/hexagon.js +2 -6
- package/lib/heatmap/triangulation.js +0 -1
- package/lib/image/index.js +10 -3
- package/lib/image/models/dataImage.js +13 -38
- package/lib/image/models/image.js +5 -10
- package/lib/image/models/index.js +4 -1
- package/lib/image/models/tileDataImage.js +188 -0
- package/lib/line/index.js +7 -2
- package/lib/line/models/arc.js +10 -10
- package/lib/line/models/arc_3d.js +8 -10
- package/lib/line/models/earthArc_3d.js +8 -10
- package/lib/line/models/great_circle.js +7 -7
- package/lib/line/models/half.js +3 -4
- package/lib/line/models/line.js +10 -9
- package/lib/line/models/linearline.js +3 -4
- package/lib/line/models/simpleLine.js +5 -4
- package/lib/line/models/simpleTileLine.js +115 -0
- package/lib/line/models/tile.js +50 -224
- package/lib/line/models/wall.js +11 -47
- package/lib/line/shaders/dash/arc_dash_vert.glsl +2 -0
- package/lib/line/shaders/dash/line_dash_frag.glsl +1 -1
- package/lib/line/shaders/line_arc2d_vert.glsl +2 -2
- package/lib/line/shaders/line_arc_3d_frag.glsl +10 -10
- package/lib/line/shaders/line_arc_3d_vert.glsl +5 -6
- package/lib/line/shaders/line_arc_frag.glsl +9 -10
- package/lib/line/shaders/line_arc_great_circle_frag.glsl +6 -6
- package/lib/line/shaders/line_arc_great_circle_vert.glsl +2 -3
- package/lib/line/shaders/line_arc_vert.glsl +6 -4
- package/lib/line/shaders/line_bezier_vert.glsl +2 -2
- package/lib/line/shaders/line_frag.glsl +5 -6
- package/lib/line/shaders/line_vert.glsl +1 -1
- package/lib/line/shaders/linear/arc3d_linear_frag.glsl +6 -7
- package/lib/line/shaders/linear/arc3d_linear_vert.glsl +11 -12
- package/lib/line/shaders/linear/arc_linear_frag.glsl +1 -1
- package/lib/line/shaders/tile/line_tile_map_vert.glsl +25 -0
- package/lib/line/shaders/tile/line_tile_vert.glsl +19 -177
- package/lib/line/shaders/tile/simpleline_map_vert.glsl +15 -0
- package/lib/line/shaders/tile/simpleline_vert.glsl +21 -0
- package/lib/line/shaders/{wall_frag.glsl → wall/wall_frag.glsl} +21 -25
- package/lib/line/shaders/wall/wall_vert.glsl +77 -0
- package/lib/mask/index.js +82 -5
- package/lib/mask/models/fill.js +14 -10
- package/lib/mask/shaders/mask_vert.glsl +0 -6
- package/lib/plugins/DataMappingPlugin.js +127 -57
- package/lib/plugins/DataSourcePlugin.js +3 -2
- package/lib/plugins/FeatureScalePlugin.js +6 -50
- package/lib/plugins/LayerAnimateStylePlugin.js +6 -29
- package/lib/plugins/LayerModelPlugin.js +2 -6
- package/lib/plugins/LightingPlugin.js +1 -7
- package/lib/plugins/MultiPassRendererPlugin.js +3 -19
- package/lib/plugins/PixelPickingPlugin.js +8 -28
- package/lib/plugins/RegisterStyleAttributePlugin.js +56 -5
- package/lib/plugins/UpdateStyleAttributePlugin.js +2 -9
- package/lib/point/index.js +9 -6
- package/lib/point/models/earthExtrude.js +9 -14
- package/lib/point/models/earthFill.js +2 -2
- package/lib/point/models/extrude.js +9 -12
- package/lib/point/models/fill.js +8 -9
- package/lib/point/models/fillmage.js +5 -6
- package/lib/point/models/image.js +3 -3
- package/lib/point/models/index.js +1 -1
- package/lib/point/models/normal.js +8 -61
- package/lib/point/models/radar.js +5 -70
- package/lib/point/models/simplePoint.js +1 -10
- package/lib/point/models/text.js +7 -10
- package/lib/point/models/tile.js +23 -159
- package/lib/point/models/tileText.js +98 -187
- package/lib/point/shaders/animate/wave_frag.glsl +4 -4
- package/lib/point/shaders/earth/fill_vert.glsl +0 -1
- package/lib/point/shaders/fill_vert.glsl +0 -1
- package/lib/point/shaders/normal_frag.glsl +1 -10
- package/lib/point/shaders/normal_vert.glsl +5 -60
- package/lib/point/shaders/radar/radar_frag.glsl +4 -15
- package/lib/point/shaders/radar/radar_vert.glsl +4 -54
- package/lib/point/shaders/tile/fill_tile_frag.glsl +10 -17
- package/lib/point/shaders/tile/fill_tile_vert.glsl +20 -123
- package/lib/point/shaders/tile/text_frag.glsl +33 -0
- package/lib/point/shaders/tile/text_map_frag.glsl +31 -0
- package/lib/point/shaders/tile/text_map_vert.glsl +38 -0
- package/lib/point/shaders/tile/text_vert.glsl +48 -0
- package/lib/polygon/index.js +6 -2
- package/lib/polygon/models/extrude.js +4 -8
- package/lib/polygon/models/fill.js +3 -4
- package/lib/polygon/models/ocean.js +14 -47
- package/lib/polygon/models/tile.js +24 -57
- package/lib/polygon/models/water.js +14 -47
- package/lib/polygon/shaders/polygon_frag.glsl +2 -2
- package/lib/polygon/shaders/polygon_vert.glsl +2 -2
- package/lib/polygon/shaders/tile/polygon_tile_map_vert.glsl +16 -0
- package/lib/polygon/shaders/tile/polygon_tile_vert.glsl +20 -60
- package/lib/polygon/shaders/water/polygon_ocean_frag.glsl +1 -2
- package/lib/polygon/shaders/water/polygon_ocean_vert.glsl +0 -31
- package/lib/polygon/shaders/water/polygon_water_frag.glsl +1 -3
- package/lib/polygon/shaders/water/polygon_water_vert.glsl +0 -29
- package/lib/raster/buffers/triangulation.js +1 -4
- package/lib/raster/index.js +6 -2
- package/lib/raster/models/raster.js +6 -5
- package/lib/shader/minify_frag.glsl +7 -0
- package/lib/shader/minify_picking_frag.glsl +10 -0
- package/lib/tile/manager/baseMapTileLayerManager.js +222 -0
- package/lib/tile/manager/tileLayerManager.js +12 -2
- package/lib/tile/manager/tilePickerManager.js +1 -2
- package/lib/tile/models/tileModel.js +19 -2
- package/lib/tile/tileFactory/base.js +60 -33
- package/lib/tile/tileFactory/line.js +3 -0
- package/lib/tile/tileFactory/point.js +3 -0
- package/lib/tile/tileFactory/polygon.js +3 -0
- package/lib/tile/tileFactory/raster.js +3 -0
- package/lib/tile/tileFactory/rasterData.js +3 -0
- package/lib/tile/tileFactory/rasterDataLayer.js +6 -2
- package/lib/tile/tileFactory/test.js +26 -5
- package/lib/tile/tileFactory/vectorLayer.js +112 -8
- package/lib/tile/tileLayer/baseMapTileLayer.js +195 -0
- package/lib/tile/tileLayer/baseTileLayer.js +46 -75
- package/lib/tile/tileTest.js +3 -2
- package/lib/tile/tmsMapTileLayer.js +136 -0
- package/lib/tile/tmsTileLayer.js +25 -2
- package/lib/tile/utils.js +38 -0
- package/lib/utils/dataMappingStyle.js +3 -0
- package/lib/utils/layerData.js +2 -2
- package/lib/utils/updateShape.js +2 -2
- package/lib/wind/index.js +6 -2
- package/lib/wind/models/wind.js +7 -7
- package/lib/wind/shaders/wind_vert.glsl +1 -1
- package/package.json +8 -7
- package/es/line/shaders/tile/line_tile_frag.glsl +0 -79
- package/es/line/shaders/wall_vert.glsl +0 -111
- package/es/mask/shaders/mask_frag.glsl +0 -7
- package/es/polygon/shaders/tile/polygon_tile_frag.glsl +0 -12
- package/lib/line/shaders/tile/line_tile_frag.glsl +0 -79
- package/lib/line/shaders/wall_vert.glsl +0 -111
- package/lib/mask/shaders/mask_frag.glsl +0 -7
- package/lib/polygon/shaders/tile/polygon_tile_frag.glsl +0 -12
|
@@ -21,17 +21,23 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
|
|
|
21
21
|
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; } }
|
|
22
22
|
|
|
23
23
|
import { AttributeType, gl } from '@antv/l7-core';
|
|
24
|
-
import { calculateCentroid,
|
|
24
|
+
import { calculateCentroid, padBounds, rgb2arr } from '@antv/l7-utils';
|
|
25
25
|
import { isNumber } from 'lodash';
|
|
26
26
|
import BaseModel from "../../core/BaseModel";
|
|
27
27
|
import CollisionIndex from "../../utils/collision-index";
|
|
28
28
|
import { getGlyphQuads, shapeText } from "../../utils/symbol-layout";
|
|
29
29
|
|
|
30
|
-
/* babel-plugin-inline-import '../shaders/text_frag.glsl' */
|
|
31
|
-
var
|
|
30
|
+
/* babel-plugin-inline-import '../shaders/tile/text_frag.glsl' */
|
|
31
|
+
var text_frag = "#define SDF_PX 8.0\n#define EDGE_GAMMA 0.105\n#define FONT_SIZE 48.0\nuniform sampler2D u_sdf_map;\nuniform float u_gamma_scale : 0.5;\n// uniform float u_font_size : 24.0;\nuniform float u_opacity : 1.0;\nuniform vec4 u_stroke_color : [0, 0, 0, 1];\nuniform float u_stroke_width : 2.0;\nuniform float u_halo_blur : 0.5;\nuniform float u_DevicePixelRatio;\n\nvarying vec4 v_color;\nvarying vec2 v_uv;\nvarying float v_gamma_scale;\nvarying float v_fontScale;\n\n#pragma include \"picking\"\nvoid main() {\n // get sdf from atlas\n float dist = texture2D(u_sdf_map, v_uv).a;\n\n lowp float buff = (6.0 - u_stroke_width / v_fontScale) / SDF_PX;\n highp float gamma = (u_halo_blur * 1.19 / SDF_PX + EDGE_GAMMA) / (v_fontScale * u_gamma_scale) / 1.0;\n\n highp float gamma_scaled = gamma * v_gamma_scale;\n\n highp float alpha = smoothstep(buff - gamma_scaled, buff + gamma_scaled, dist);\n \n gl_FragColor = mix(vec4(v_color.rgb, v_color.a * u_opacity), vec4(u_stroke_color.rgb, u_stroke_color.a * u_opacity), smoothstep(0., 0.5, 1. - dist));\n gl_FragColor.a= gl_FragColor.a * alpha;\n gl_FragColor = filterColor(gl_FragColor);\n}\n";
|
|
32
32
|
|
|
33
|
-
/* babel-plugin-inline-import '../shaders/text_vert.glsl' */
|
|
34
|
-
var
|
|
33
|
+
/* babel-plugin-inline-import '../shaders/tile/text_vert.glsl' */
|
|
34
|
+
var text_vert = "#define SDF_PX 8.0\n#define EDGE_GAMMA 0.105\n#define FONT_SIZE 24.0\nattribute vec3 a_Position;\nattribute vec2 a_tex;\nattribute vec2 a_textOffsets;\nattribute vec4 a_Color;\nattribute float a_Size;\n\nuniform vec2 u_sdf_map_size;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\n\nvarying vec2 v_uv;\nvarying float v_gamma_scale;\nvarying vec4 v_color;\nvarying float v_fontScale;\n\nuniform float u_opacity : 1;\nuniform float u_stroke_width : 2;\nuniform vec4 u_stroke_color : [0.0, 0.0, 0.0, 0.0];\n\n#pragma include \"projection\"\n#pragma include \"picking\"\n\nvoid main() {\n v_color = a_Color;\n v_uv = a_tex / u_sdf_map_size;\n\n // \u6587\u672C\u7F29\u653E\u6BD4\u4F8B\n float fontScale = a_Size / FONT_SIZE;\n v_fontScale = fontScale;\n\n vec4 project_pos = project_position(vec4(a_Position, 1.0));\n\n vec4 projected_position;\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n projected_position = u_Mvp * (vec4(a_Position.xyz, 1.0));\n } else { // else\n projected_position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));\n }\n\n gl_Position = vec4(\n projected_position.xy / projected_position.w + a_textOffsets * fontScale / u_ViewportSize * 2.0 * u_DevicePixelRatio, 0.0, 1.0);\n v_gamma_scale = gl_Position.w;\n setPickingColor(a_PickingColor);\n\n}\n";
|
|
35
|
+
|
|
36
|
+
/* babel-plugin-inline-import '../shaders/tile/text_map_frag.glsl' */
|
|
37
|
+
var text_map_frag = "#define SDF_PX 8.0\n#define EDGE_GAMMA 0.105\n#define FONT_SIZE 48.0\nuniform sampler2D u_sdf_map;\nuniform float u_gamma_scale : 0.5;\n\nuniform float u_opacity : 1.0;\nuniform vec4 u_stroke_color : [0, 0, 0, 1];\nuniform float u_stroke_width : 2.0;\nuniform float u_halo_blur : 0.5;\nuniform float u_DevicePixelRatio;\n\nvarying vec2 v_uv;\nvarying float v_gamma_scale;\nvarying float v_fontScale;\nuniform vec4 u_color;\n\nvoid main() {\n // get sdf from atlas\n float dist = texture2D(u_sdf_map, v_uv).a;\n\n lowp float buff = (6.0 - u_stroke_width / v_fontScale) / SDF_PX;\n highp float gamma = (u_halo_blur * 1.19 / SDF_PX + EDGE_GAMMA) / (v_fontScale * u_gamma_scale) / 1.0;\n\n highp float gamma_scaled = gamma * v_gamma_scale;\n\n highp float alpha = smoothstep(buff - gamma_scaled, buff + gamma_scaled, dist);\n \n gl_FragColor = mix(vec4(u_color.rgb, u_color.a * u_opacity), vec4(u_stroke_color.rgb, u_stroke_color.a * u_opacity), smoothstep(0., 0.5, 1. - dist));\n gl_FragColor.a= gl_FragColor.a * alpha;\n}\n";
|
|
38
|
+
|
|
39
|
+
/* babel-plugin-inline-import '../shaders/tile/text_map_vert.glsl' */
|
|
40
|
+
var text_map_vert = "#define FONT_SIZE 24.0\nattribute vec3 a_Position;\nattribute vec2 a_tex;\nattribute vec2 a_textOffsets;\n\nuniform vec2 u_sdf_map_size;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\n\nuniform float u_size;\n\nvarying vec2 v_uv;\nvarying float v_gamma_scale;\nvarying float v_fontScale;\n\n#pragma include \"projection\"\n\nvoid main() {\n v_uv = a_tex / u_sdf_map_size;\n\n // \u6587\u672C\u7F29\u653E\u6BD4\u4F8B\n float fontScale = u_size / FONT_SIZE;\n v_fontScale = fontScale;\n\n vec4 project_pos = project_position(vec4(a_Position, 1.0));\n\n vec4 projected_position;\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n projected_position = u_Mvp * (vec4(a_Position.xyz, 1.0));\n } else { // else\n projected_position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));\n }\n\n gl_Position = vec4(\n projected_position.xy / projected_position.w + a_textOffsets * fontScale / u_ViewportSize * 2.0 * u_DevicePixelRatio, 0.0, 1.0);\n v_gamma_scale = gl_Position.w;\n\n}\n";
|
|
35
41
|
export function TextTriangulation(feature) {
|
|
36
42
|
// @ts-ignore
|
|
37
43
|
var that = this;
|
|
@@ -91,26 +97,26 @@ var TextModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
91
97
|
|
|
92
98
|
_defineProperty(_assertThisInitialized(_this), "buildModels", /*#__PURE__*/function () {
|
|
93
99
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(callbackModel) {
|
|
94
|
-
var
|
|
100
|
+
var _this$layer$getLayerC, usage;
|
|
95
101
|
|
|
96
102
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
97
103
|
while (1) {
|
|
98
104
|
switch (_context.prev = _context.next) {
|
|
99
105
|
case 0:
|
|
100
|
-
_ref2 = _this.layer.getLayerConfig(), _ref2$mask = _ref2.mask, mask = _ref2$mask === void 0 ? false : _ref2$mask, _ref2$maskInside = _ref2.maskInside, maskInside = _ref2$maskInside === void 0 ? true : _ref2$maskInside;
|
|
101
|
-
|
|
102
106
|
_this.mapping();
|
|
103
107
|
|
|
108
|
+
_this$layer$getLayerC = _this.layer.getLayerConfig(), usage = _this$layer$getLayerC.usage;
|
|
109
|
+
|
|
104
110
|
_this.layer.buildLayerModel({
|
|
105
|
-
moduleName: '
|
|
106
|
-
vertexShader:
|
|
107
|
-
fragmentShader:
|
|
111
|
+
moduleName: 'pointTileText_' + usage,
|
|
112
|
+
vertexShader: usage === 'basemap' ? text_map_vert : text_vert,
|
|
113
|
+
fragmentShader: usage === 'basemap' ? text_map_frag : text_frag,
|
|
108
114
|
triangulation: TextTriangulation.bind(_assertThisInitialized(_this)),
|
|
109
115
|
depth: {
|
|
110
116
|
enable: false
|
|
111
117
|
},
|
|
112
118
|
blend: _this.getBlend(),
|
|
113
|
-
|
|
119
|
+
pick: usage !== 'basemap'
|
|
114
120
|
}).then(function (model) {
|
|
115
121
|
callbackModel([model]);
|
|
116
122
|
}).catch(function (err) {
|
|
@@ -147,23 +153,26 @@ var TextModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
147
153
|
_createClass(TextModel, [{
|
|
148
154
|
key: "getUninforms",
|
|
149
155
|
value: function getUninforms() {
|
|
150
|
-
var
|
|
151
|
-
|
|
152
|
-
opacity =
|
|
153
|
-
|
|
154
|
-
stroke =
|
|
155
|
-
|
|
156
|
-
strokeWidth =
|
|
157
|
-
|
|
158
|
-
textAnchor =
|
|
159
|
-
|
|
160
|
-
textAllowOverlap =
|
|
161
|
-
|
|
162
|
-
halo =
|
|
163
|
-
|
|
164
|
-
gamma =
|
|
165
|
-
|
|
166
|
-
|
|
156
|
+
var _ref2 = this.layer.getLayerConfig(),
|
|
157
|
+
_ref2$opacity = _ref2.opacity,
|
|
158
|
+
opacity = _ref2$opacity === void 0 ? 1.0 : _ref2$opacity,
|
|
159
|
+
_ref2$stroke = _ref2.stroke,
|
|
160
|
+
stroke = _ref2$stroke === void 0 ? '#fff' : _ref2$stroke,
|
|
161
|
+
_ref2$strokeWidth = _ref2.strokeWidth,
|
|
162
|
+
strokeWidth = _ref2$strokeWidth === void 0 ? 0 : _ref2$strokeWidth,
|
|
163
|
+
_ref2$textAnchor = _ref2.textAnchor,
|
|
164
|
+
textAnchor = _ref2$textAnchor === void 0 ? 'center' : _ref2$textAnchor,
|
|
165
|
+
_ref2$textAllowOverla = _ref2.textAllowOverlap,
|
|
166
|
+
textAllowOverlap = _ref2$textAllowOverla === void 0 ? false : _ref2$textAllowOverla,
|
|
167
|
+
_ref2$halo = _ref2.halo,
|
|
168
|
+
halo = _ref2$halo === void 0 ? 0.5 : _ref2$halo,
|
|
169
|
+
_ref2$gamma = _ref2.gamma,
|
|
170
|
+
gamma = _ref2$gamma === void 0 ? 2.0 : _ref2$gamma,
|
|
171
|
+
usage = _ref2.usage,
|
|
172
|
+
_ref2$color = _ref2.color,
|
|
173
|
+
color = _ref2$color === void 0 ? '#fff' : _ref2$color,
|
|
174
|
+
_ref2$size = _ref2.size,
|
|
175
|
+
size = _ref2$size === void 0 ? 1 : _ref2$size;
|
|
167
176
|
|
|
168
177
|
var _this$fontService = this.fontService,
|
|
169
178
|
canvas = _this$fontService.canvas,
|
|
@@ -178,68 +187,28 @@ var TextModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
178
187
|
textAnchor: textAnchor,
|
|
179
188
|
textAllowOverlap: textAllowOverlap
|
|
180
189
|
};
|
|
181
|
-
|
|
182
|
-
if (this.dataTextureTest && this.dataTextureNeedUpdate({
|
|
183
|
-
opacity: opacity,
|
|
184
|
-
strokeWidth: strokeWidth,
|
|
185
|
-
stroke: stroke
|
|
186
|
-
})) {
|
|
187
|
-
this.judgeStyleAttributes({
|
|
188
|
-
opacity: opacity,
|
|
189
|
-
strokeWidth: strokeWidth,
|
|
190
|
-
stroke: stroke
|
|
191
|
-
});
|
|
192
|
-
var encodeData = this.layer.getEncodedData();
|
|
193
|
-
|
|
194
|
-
var _this$calDataFrame = this.calDataFrame(this.cellLength, encodeData, this.cellProperties),
|
|
195
|
-
data = _this$calDataFrame.data,
|
|
196
|
-
width = _this$calDataFrame.width,
|
|
197
|
-
height = _this$calDataFrame.height;
|
|
198
|
-
|
|
199
|
-
this.rowCount = height; // 当前数据纹理有多少行
|
|
200
|
-
|
|
201
|
-
this.dataTexture = this.cellLength > 0 && data.length > 0 ? this.createTexture2D({
|
|
202
|
-
flipY: true,
|
|
203
|
-
data: data,
|
|
204
|
-
format: gl.LUMINANCE,
|
|
205
|
-
type: gl.FLOAT,
|
|
206
|
-
width: width,
|
|
207
|
-
height: height
|
|
208
|
-
}) : this.createTexture2D({
|
|
209
|
-
flipY: true,
|
|
210
|
-
data: [1],
|
|
211
|
-
format: gl.LUMINANCE,
|
|
212
|
-
type: gl.FLOAT,
|
|
213
|
-
width: 1,
|
|
214
|
-
height: 1
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
|
|
218
190
|
return {
|
|
219
|
-
u_dataTexture: this.dataTexture,
|
|
220
|
-
// 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]
|
|
221
|
-
u_cellTypeLayout: this.getCellTypeLayout(),
|
|
222
|
-
u_raisingHeight: Number(raisingHeight),
|
|
223
191
|
u_opacity: isNumber(opacity) ? opacity : 1.0,
|
|
224
192
|
u_stroke_width: isNumber(strokeWidth) ? strokeWidth : 1.0,
|
|
225
193
|
u_stroke_color: this.getStrokeColor(stroke),
|
|
226
194
|
u_sdf_map: this.texture,
|
|
227
195
|
u_halo_blur: halo,
|
|
228
196
|
u_gamma_scale: gamma,
|
|
229
|
-
u_sdf_map_size: [canvas.width, canvas.height]
|
|
197
|
+
u_sdf_map_size: [canvas.width, canvas.height],
|
|
198
|
+
u_color: usage === 'basemap' ? rgb2arr(color) : [0, 0, 0, 0],
|
|
199
|
+
u_size: usage === 'basemap' ? size : 1
|
|
230
200
|
};
|
|
231
201
|
}
|
|
232
202
|
}, {
|
|
233
203
|
key: "initModels",
|
|
234
204
|
value: function initModels(callbackModel) {
|
|
235
|
-
this.layer.on('remapping', this.mapping);
|
|
236
205
|
this.extent = this.textExtent();
|
|
237
206
|
|
|
238
|
-
var
|
|
239
|
-
|
|
240
|
-
textAnchor =
|
|
241
|
-
|
|
242
|
-
textAllowOverlap =
|
|
207
|
+
var _ref3 = this.layer.getLayerConfig(),
|
|
208
|
+
_ref3$textAnchor = _ref3.textAnchor,
|
|
209
|
+
textAnchor = _ref3$textAnchor === void 0 ? 'center' : _ref3$textAnchor,
|
|
210
|
+
_ref3$textAllowOverla = _ref3.textAllowOverlap,
|
|
211
|
+
textAllowOverlap = _ref3$textAllowOverla === void 0 ? true : _ref3$textAllowOverla;
|
|
243
212
|
|
|
244
213
|
this.preTextStyle = {
|
|
245
214
|
textAnchor: textAnchor,
|
|
@@ -250,70 +219,53 @@ var TextModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
250
219
|
}, {
|
|
251
220
|
key: "clearModels",
|
|
252
221
|
value: function clearModels() {
|
|
253
|
-
var _this$texture
|
|
222
|
+
var _this$texture;
|
|
254
223
|
|
|
255
224
|
(_this$texture = this.texture) === null || _this$texture === void 0 ? void 0 : _this$texture.destroy();
|
|
256
|
-
(_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
|
|
257
|
-
this.layer.off('remapping', this.mapping);
|
|
258
225
|
}
|
|
259
226
|
}, {
|
|
260
227
|
key: "registerBuiltinAttributes",
|
|
261
228
|
value: function registerBuiltinAttributes() {
|
|
262
|
-
this.
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
descriptor: {
|
|
266
|
-
name: 'a_Rotate',
|
|
267
|
-
buffer: {
|
|
268
|
-
usage: gl.DYNAMIC_DRAW,
|
|
269
|
-
data: [],
|
|
270
|
-
type: gl.FLOAT
|
|
271
|
-
},
|
|
272
|
-
size: 1,
|
|
273
|
-
update: function update(feature, featureIdx, vertex, attributeIdx) {
|
|
274
|
-
var _feature$rotate = feature.rotate,
|
|
275
|
-
rotate = _feature$rotate === void 0 ? 0 : _feature$rotate;
|
|
276
|
-
return Array.isArray(rotate) ? [rotate[0]] : [rotate];
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
});
|
|
229
|
+
var _this$layer$getLayerC2 = this.layer.getLayerConfig(),
|
|
230
|
+
usage = _this$layer$getLayerC2.usage;
|
|
231
|
+
|
|
280
232
|
this.styleAttributeService.registerStyleAttribute({
|
|
281
233
|
name: 'textOffsets',
|
|
282
234
|
type: AttributeType.Attribute,
|
|
283
235
|
descriptor: {
|
|
284
236
|
name: 'a_textOffsets',
|
|
285
237
|
buffer: {
|
|
286
|
-
// give the WebGL driver a hint that this buffer may change
|
|
287
238
|
usage: gl.STATIC_DRAW,
|
|
288
239
|
data: [],
|
|
289
240
|
type: gl.FLOAT
|
|
290
241
|
},
|
|
291
242
|
size: 2,
|
|
292
|
-
update: function update(feature, featureIdx, vertex
|
|
243
|
+
update: function update(feature, featureIdx, vertex) {
|
|
293
244
|
return [vertex[5], vertex[6]];
|
|
294
245
|
}
|
|
295
246
|
}
|
|
296
|
-
});
|
|
247
|
+
});
|
|
297
248
|
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
249
|
+
if (usage !== 'basemap') {
|
|
250
|
+
this.styleAttributeService.registerStyleAttribute({
|
|
251
|
+
name: 'size',
|
|
252
|
+
type: AttributeType.Attribute,
|
|
253
|
+
descriptor: {
|
|
254
|
+
name: 'a_Size',
|
|
255
|
+
buffer: {
|
|
256
|
+
usage: gl.DYNAMIC_DRAW,
|
|
257
|
+
data: [],
|
|
258
|
+
type: gl.FLOAT
|
|
259
|
+
},
|
|
260
|
+
size: 1,
|
|
261
|
+
update: function update(feature) {
|
|
262
|
+
var _feature$size = feature.size,
|
|
263
|
+
size = _feature$size === void 0 ? 12 : _feature$size;
|
|
264
|
+
return Array.isArray(size) ? [size[0]] : [size];
|
|
265
|
+
}
|
|
314
266
|
}
|
|
315
|
-
}
|
|
316
|
-
}
|
|
267
|
+
});
|
|
268
|
+
}
|
|
317
269
|
|
|
318
270
|
this.styleAttributeService.registerStyleAttribute({
|
|
319
271
|
name: 'textUv',
|
|
@@ -321,13 +273,12 @@ var TextModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
321
273
|
descriptor: {
|
|
322
274
|
name: 'a_tex',
|
|
323
275
|
buffer: {
|
|
324
|
-
// give the WebGL driver a hint that this buffer may change
|
|
325
276
|
usage: gl.DYNAMIC_DRAW,
|
|
326
277
|
data: [],
|
|
327
278
|
type: gl.FLOAT
|
|
328
279
|
},
|
|
329
280
|
size: 2,
|
|
330
|
-
update: function update(feature, featureIdx, vertex
|
|
281
|
+
update: function update(feature, featureIdx, vertex) {
|
|
331
282
|
return [vertex[3], vertex[4]];
|
|
332
283
|
}
|
|
333
284
|
}
|
|
@@ -346,11 +297,11 @@ var TextModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
346
297
|
}, {
|
|
347
298
|
key: "initTextFont",
|
|
348
299
|
value: function initTextFont() {
|
|
349
|
-
var
|
|
350
|
-
|
|
351
|
-
fontWeight =
|
|
352
|
-
|
|
353
|
-
fontFamily =
|
|
300
|
+
var _ref4 = this.layer.getLayerConfig(),
|
|
301
|
+
_ref4$fontWeight = _ref4.fontWeight,
|
|
302
|
+
fontWeight = _ref4$fontWeight === void 0 ? '400' : _ref4$fontWeight,
|
|
303
|
+
_ref4$fontFamily = _ref4.fontFamily,
|
|
304
|
+
fontFamily = _ref4$fontFamily === void 0 ? 'sans-serif' : _ref4$fontFamily;
|
|
354
305
|
|
|
355
306
|
var data = this.layer.getEncodedData();
|
|
356
307
|
var characterSet = [];
|
|
@@ -384,54 +335,22 @@ var TextModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
384
335
|
iconfont: false
|
|
385
336
|
});
|
|
386
337
|
}
|
|
387
|
-
/**
|
|
388
|
-
* 生成 iconfont 纹理字典
|
|
389
|
-
*/
|
|
390
|
-
|
|
391
|
-
}, {
|
|
392
|
-
key: "initIconFontTex",
|
|
393
|
-
value: function initIconFontTex() {
|
|
394
|
-
var _ref6 = this.layer.getLayerConfig(),
|
|
395
|
-
_ref6$fontWeight = _ref6.fontWeight,
|
|
396
|
-
fontWeight = _ref6$fontWeight === void 0 ? '400' : _ref6$fontWeight,
|
|
397
|
-
_ref6$fontFamily = _ref6.fontFamily,
|
|
398
|
-
fontFamily = _ref6$fontFamily === void 0 ? 'sans-serif' : _ref6$fontFamily;
|
|
399
|
-
|
|
400
|
-
var data = this.layer.getEncodedData();
|
|
401
|
-
var characterSet = [];
|
|
402
|
-
data.forEach(function (item) {
|
|
403
|
-
var _item$shape2 = item.shape,
|
|
404
|
-
shape = _item$shape2 === void 0 ? '' : _item$shape2;
|
|
405
|
-
shape = "".concat(shape);
|
|
406
|
-
|
|
407
|
-
if (characterSet.indexOf(shape) === -1) {
|
|
408
|
-
characterSet.push(shape);
|
|
409
|
-
}
|
|
410
|
-
});
|
|
411
|
-
this.fontService.setFontOptions({
|
|
412
|
-
characterSet: characterSet,
|
|
413
|
-
fontWeight: fontWeight,
|
|
414
|
-
fontFamily: fontFamily,
|
|
415
|
-
iconfont: true
|
|
416
|
-
});
|
|
417
|
-
}
|
|
418
338
|
/**
|
|
419
339
|
* 生成文字布局(对照文字纹理字典提取对应文字的位置很好信息)
|
|
420
340
|
*/
|
|
421
341
|
|
|
422
342
|
}, {
|
|
423
343
|
key: "generateGlyphLayout",
|
|
424
|
-
value: function generateGlyphLayout(
|
|
344
|
+
value: function generateGlyphLayout() {
|
|
425
345
|
var _this2 = this;
|
|
426
346
|
|
|
427
|
-
// TODO:更新文字布局
|
|
428
347
|
var mapping = this.fontService.mapping;
|
|
429
348
|
|
|
430
|
-
var
|
|
431
|
-
|
|
432
|
-
spacing =
|
|
433
|
-
|
|
434
|
-
textAnchor =
|
|
349
|
+
var _ref5 = this.layer.getLayerConfig(),
|
|
350
|
+
_ref5$spacing = _ref5.spacing,
|
|
351
|
+
spacing = _ref5$spacing === void 0 ? 2 : _ref5$spacing,
|
|
352
|
+
_ref5$textAnchor = _ref5.textAnchor,
|
|
353
|
+
textAnchor = _ref5$textAnchor === void 0 ? 'center' : _ref5$textAnchor;
|
|
435
354
|
|
|
436
355
|
var data = this.layer.getEncodedData();
|
|
437
356
|
this.glyphInfo = data.map(function (feature) {
|
|
@@ -443,7 +362,7 @@ var TextModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
443
362
|
_feature$textOffset = feature.textOffset,
|
|
444
363
|
textOffset = _feature$textOffset === void 0 ? [0, 0] : _feature$textOffset;
|
|
445
364
|
var shaping = shapeText(shape.toString(), mapping, // @ts-ignore
|
|
446
|
-
size, textAnchor, 'left', spacing, textOffset,
|
|
365
|
+
size, textAnchor, 'left', spacing, textOffset, false);
|
|
447
366
|
var glyphQuads = getGlyphQuads(shaping, textOffset, false);
|
|
448
367
|
feature.shaping = shaping;
|
|
449
368
|
feature.glyphQuads = glyphQuads;
|
|
@@ -467,11 +386,11 @@ var TextModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
467
386
|
value: function filterGlyphs() {
|
|
468
387
|
var _this3 = this;
|
|
469
388
|
|
|
470
|
-
var
|
|
471
|
-
|
|
472
|
-
padding =
|
|
473
|
-
|
|
474
|
-
textAllowOverlap =
|
|
389
|
+
var _ref6 = this.layer.getLayerConfig(),
|
|
390
|
+
_ref6$padding = _ref6.padding,
|
|
391
|
+
padding = _ref6$padding === void 0 ? [4, 4] : _ref6$padding,
|
|
392
|
+
_ref6$textAllowOverla = _ref6.textAllowOverlap,
|
|
393
|
+
textAllowOverlap = _ref6$textAllowOverla === void 0 ? false : _ref6$textAllowOverla;
|
|
475
394
|
|
|
476
395
|
if (textAllowOverlap) {
|
|
477
396
|
// 如果允许文本覆盖
|
|
@@ -508,7 +427,6 @@ var TextModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
508
427
|
box = _collisionIndex$place.box;
|
|
509
428
|
|
|
510
429
|
if (box && box.length) {
|
|
511
|
-
// TODO:featureIndex
|
|
512
430
|
collisionIndex.insertCollisionBox(box, id);
|
|
513
431
|
return true;
|
|
514
432
|
} else {
|
|
@@ -527,14 +445,10 @@ var TextModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
527
445
|
}, {
|
|
528
446
|
key: "initGlyph",
|
|
529
447
|
value: function initGlyph() {
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
iconfont = _this$layer$getLayerC2 === void 0 ? false : _this$layer$getLayerC2; // 1.生成文字纹理(或是生成 iconfont)
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
iconfont ? this.initIconFontTex() : this.initTextFont(); // 2.生成文字布局
|
|
448
|
+
// 1.生成文字纹理
|
|
449
|
+
this.initTextFont(); // 2.生成文字布局
|
|
536
450
|
|
|
537
|
-
this.generateGlyphLayout(
|
|
451
|
+
this.generateGlyphLayout();
|
|
538
452
|
}
|
|
539
453
|
/**
|
|
540
454
|
* 更新文字纹理
|
|
@@ -564,27 +478,24 @@ var TextModel = /*#__PURE__*/function (_BaseModel) {
|
|
|
564
478
|
value: function reBuildModel() {
|
|
565
479
|
var _this4 = this;
|
|
566
480
|
|
|
567
|
-
var
|
|
568
|
-
|
|
569
|
-
mask = _ref9$mask === void 0 ? false : _ref9$mask,
|
|
570
|
-
_ref9$maskInside = _ref9.maskInside,
|
|
571
|
-
maskInside = _ref9$maskInside === void 0 ? true : _ref9$maskInside;
|
|
481
|
+
var _this$layer$getLayerC3 = this.layer.getLayerConfig(),
|
|
482
|
+
usage = _this$layer$getLayerC3.usage;
|
|
572
483
|
|
|
573
484
|
this.filterGlyphs();
|
|
574
485
|
this.layer.buildLayerModel({
|
|
575
|
-
moduleName: '
|
|
576
|
-
vertexShader:
|
|
577
|
-
fragmentShader:
|
|
486
|
+
moduleName: 'pointTileText_' + usage,
|
|
487
|
+
vertexShader: usage === 'basemap' ? text_map_vert : text_vert,
|
|
488
|
+
fragmentShader: usage === 'basemap' ? text_map_frag : text_frag,
|
|
578
489
|
triangulation: TextTriangulation.bind(this),
|
|
579
490
|
depth: {
|
|
580
491
|
enable: false
|
|
581
492
|
},
|
|
582
493
|
blend: this.getBlend(),
|
|
583
|
-
|
|
494
|
+
pick: usage !== 'basemap'
|
|
584
495
|
}).then(function (model) {
|
|
585
496
|
_this4.layer.models = [model];
|
|
586
497
|
|
|
587
|
-
_this4.
|
|
498
|
+
_this4.layerService.throttleRenderLayers();
|
|
588
499
|
}).catch(function (err) {
|
|
589
500
|
console.warn(err);
|
|
590
501
|
_this4.layer.models = [];
|
|
@@ -7,7 +7,7 @@ varying vec4 v_data;
|
|
|
7
7
|
varying vec4 v_color;
|
|
8
8
|
varying float v_radius;
|
|
9
9
|
uniform float u_time;
|
|
10
|
-
uniform vec4
|
|
10
|
+
uniform vec4 u_animate: [ 1., 2., 1.0, 0.2 ];
|
|
11
11
|
|
|
12
12
|
#pragma include "sdf_2d"
|
|
13
13
|
#pragma include "picking"
|
|
@@ -51,12 +51,12 @@ void main() {
|
|
|
51
51
|
if(d > 0.5) {
|
|
52
52
|
discard;
|
|
53
53
|
}
|
|
54
|
-
float intensity = clamp(cos(d * PI), 0.0, 1.0) * clamp(cos(2.0 * PI * (d * 2.0 *
|
|
54
|
+
float intensity = clamp(cos(d * PI), 0.0, 1.0) * clamp(cos(2.0 * PI * (d * 2.0 * u_animate.z - u_animate.y * u_time)), 0.0, 1.0);
|
|
55
55
|
|
|
56
|
-
//
|
|
56
|
+
// 根据叠加模式选择效果
|
|
57
57
|
if(u_additive > 0.0) {
|
|
58
58
|
gl_FragColor *= intensity;
|
|
59
|
-
//
|
|
59
|
+
// 优化水波点 blend additive 模式下有的拾取效果
|
|
60
60
|
gl_FragColor = filterColorAlpha(gl_FragColor, gl_FragColor.a);
|
|
61
61
|
} else {
|
|
62
62
|
gl_FragColor = vec4(gl_FragColor.xyz, gl_FragColor.a * intensity);
|
|
@@ -1,15 +1,6 @@
|
|
|
1
|
-
|
|
2
1
|
uniform float u_opacity : 1;
|
|
3
|
-
uniform vec2 u_offsets;
|
|
4
2
|
varying vec4 v_color;
|
|
5
|
-
varying mat4 styleMappingMat; // 传递从片元中传递的映射数据
|
|
6
|
-
|
|
7
|
-
#pragma include "picking"
|
|
8
3
|
void main() {
|
|
9
|
-
float opacity = styleMappingMat[0][0];
|
|
10
|
-
|
|
11
4
|
gl_FragColor = v_color;
|
|
12
|
-
|
|
13
|
-
gl_FragColor.a =gl_FragColor.a * opacity;
|
|
14
|
-
gl_FragColor = filterColor(gl_FragColor);
|
|
5
|
+
gl_FragColor.a *= u_opacity;
|
|
15
6
|
}
|
|
@@ -4,76 +4,21 @@ uniform mat4 u_ModelMatrix;
|
|
|
4
4
|
uniform mat4 u_Mvp;
|
|
5
5
|
attribute float a_Size;
|
|
6
6
|
attribute vec4 a_Color;
|
|
7
|
-
varying vec4 v_color;
|
|
8
|
-
|
|
9
|
-
uniform float u_opacity : 1;
|
|
10
|
-
uniform vec2 u_offsets;
|
|
11
7
|
|
|
12
|
-
varying
|
|
13
|
-
|
|
14
|
-
#pragma include "styleMapping"
|
|
15
|
-
#pragma include "styleMappingCalOpacity"
|
|
8
|
+
varying vec4 v_color;
|
|
16
9
|
|
|
17
10
|
#pragma include "projection"
|
|
18
|
-
#pragma include "picking"
|
|
19
11
|
#pragma include "project"
|
|
12
|
+
|
|
20
13
|
void main() {
|
|
21
14
|
v_color = a_Color;
|
|
22
15
|
|
|
23
|
-
// cal style mapping - 数据纹理映射部分的计算
|
|
24
|
-
styleMappingMat = mat4(
|
|
25
|
-
0.0, 0.0, 0.0, 0.0, // opacity - strokeOpacity - strokeWidth - empty
|
|
26
|
-
0.0, 0.0, 0.0, 0.0, // strokeR - strokeG - strokeB - strokeA
|
|
27
|
-
0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1]
|
|
28
|
-
0.0, 0.0, 0.0, 0.0
|
|
29
|
-
);
|
|
30
|
-
|
|
31
|
-
float rowCount = u_cellTypeLayout[0][0]; // 当前的数据纹理有几行
|
|
32
|
-
float columnCount = u_cellTypeLayout[0][1]; // 当看到数据纹理有几列
|
|
33
|
-
float columnWidth = 1.0/columnCount; // 列宽
|
|
34
|
-
float rowHeight = 1.0/rowCount; // 行高
|
|
35
|
-
float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets
|
|
36
|
-
float id = a_vertexId; // 第n个顶点
|
|
37
|
-
float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // 起始点在第几行
|
|
38
|
-
float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // 起始点在第几列
|
|
39
|
-
|
|
40
|
-
// cell 固定顺序 opacity -> strokeOpacity -> strokeWidth -> stroke ...
|
|
41
|
-
// 按顺序从 cell 中取值、若没有则自动往下取值
|
|
42
|
-
float textureOffset = 0.0; // 在 cell 中取值的偏移量
|
|
43
|
-
|
|
44
|
-
vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);
|
|
45
|
-
styleMappingMat[0][0] = opacityAndOffset.r;
|
|
46
|
-
textureOffset = opacityAndOffset.g;
|
|
47
|
-
|
|
48
|
-
vec2 textrueOffsets = vec2(0.0, 0.0);
|
|
49
|
-
if(hasOffsets()) {
|
|
50
|
-
vec2 valueXPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);
|
|
51
|
-
textrueOffsets.r = pos2value(valueXPos, columnWidth, rowHeight); // x
|
|
52
|
-
textureOffset += 1.0;
|
|
53
|
-
|
|
54
|
-
vec2 valueYPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);
|
|
55
|
-
textrueOffsets.g = pos2value(valueYPos, columnWidth, rowHeight); // x
|
|
56
|
-
textureOffset += 1.0;
|
|
57
|
-
} else {
|
|
58
|
-
textrueOffsets = u_offsets;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
// cal style mapping
|
|
62
|
-
|
|
63
|
-
// vec2 offset = project_pixel(u_offsets);
|
|
64
|
-
vec2 offset = project_pixel(textrueOffsets);
|
|
65
|
-
// vec4 project_pos = project_position(vec4(a_Position, 1.0)) + vec4(a_Size / 2.,-a_Size /2.,0.,0.);
|
|
66
|
-
// gl_Position = project_common_position_to_clipspace(vec4(vec2(project_pos.xy+offset),project_pos.z,project_pos.w));\
|
|
67
|
-
//
|
|
68
16
|
if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
} else { // else
|
|
72
|
-
// vec2 offset = project_pixel(u_offsets);
|
|
17
|
+
gl_Position = u_Mvp * vec4(a_Position.xy, a_Position.z, 1.0);
|
|
18
|
+
} else {
|
|
73
19
|
vec4 project_pos = project_position(vec4(a_Position, 1.0)) + vec4(a_Size / 2.,-a_Size /2.,0.,0.);
|
|
74
|
-
gl_Position = project_common_position_to_clipspace(vec4(vec2(project_pos.xy
|
|
20
|
+
gl_Position = project_common_position_to_clipspace(vec4(vec2(project_pos.xy),project_pos.z,project_pos.w));
|
|
75
21
|
}
|
|
76
22
|
|
|
77
23
|
gl_PointSize = a_Size * 2.0 * u_DevicePixelRatio;
|
|
78
|
-
setPickingColor(a_PickingColor);
|
|
79
24
|
}
|