@antv/l7-layers 2.9.4 → 2.9.7

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.
Files changed (43) hide show
  1. package/es/Geometry/models/sprite.js +29 -25
  2. package/es/Geometry/models/sprite.js.map +1 -1
  3. package/es/core/BaseLayer.d.ts +1 -1
  4. package/es/core/BaseLayer.js +3 -5
  5. package/es/core/BaseLayer.js.map +1 -1
  6. package/es/core/interface.d.ts +3 -1
  7. package/es/core/interface.js.map +1 -1
  8. package/es/heatmap/models/heatmap.js +1 -1
  9. package/es/raster/models/raster.d.ts +1 -0
  10. package/es/raster/models/raster.js +16 -10
  11. package/es/raster/models/raster.js.map +1 -1
  12. package/es/tile/manager/tileLayerManager.d.ts +2 -1
  13. package/es/tile/manager/tileLayerManager.js +16 -2
  14. package/es/tile/manager/tileLayerManager.js.map +1 -1
  15. package/es/tile/tileFactory/base.d.ts +1 -0
  16. package/es/tile/tileFactory/base.js +10 -0
  17. package/es/tile/tileFactory/base.js.map +1 -1
  18. package/es/tile/tileFactory/rasterData.js +16 -5
  19. package/es/tile/tileFactory/rasterData.js.map +1 -1
  20. package/es/tile/tileLayer/baseTileLayer.d.ts +2 -7
  21. package/es/tile/tileLayer/baseTileLayer.js +8 -14
  22. package/es/tile/tileLayer/baseTileLayer.js.map +1 -1
  23. package/es/tile/tmsTileLayer.js +2 -2
  24. package/es/tile/tmsTileLayer.js.map +1 -1
  25. package/lib/Geometry/models/sprite.js +29 -25
  26. package/lib/Geometry/models/sprite.js.map +1 -1
  27. package/lib/core/BaseLayer.js +3 -5
  28. package/lib/core/BaseLayer.js.map +1 -1
  29. package/lib/core/interface.js.map +1 -1
  30. package/lib/heatmap/models/heatmap.js +1 -1
  31. package/lib/raster/models/raster.js +16 -10
  32. package/lib/raster/models/raster.js.map +1 -1
  33. package/lib/tile/manager/tileLayerManager.js +16 -2
  34. package/lib/tile/manager/tileLayerManager.js.map +1 -1
  35. package/lib/tile/tileFactory/base.js +10 -0
  36. package/lib/tile/tileFactory/base.js.map +1 -1
  37. package/lib/tile/tileFactory/rasterData.js +16 -5
  38. package/lib/tile/tileFactory/rasterData.js.map +1 -1
  39. package/lib/tile/tileLayer/baseTileLayer.js +7 -14
  40. package/lib/tile/tileLayer/baseTileLayer.js.map +1 -1
  41. package/lib/tile/tmsTileLayer.js +2 -2
  42. package/lib/tile/tmsTileLayer.js.map +1 -1
  43. package/package.json +5 -5
@@ -26,7 +26,7 @@ import BaseModel from '../../core/BaseModel';
26
26
  import { HeatmapTriangulation } from '../../core/triangulation';
27
27
  var heatmap3DFrag = "uniform sampler2D u_texture;\nuniform sampler2D u_colorTexture;\nuniform float u_opacity;\nvarying vec2 v_texCoord;\nvarying float v_intensity;\n\nvoid main(){\n \n float intensity = texture2D(u_texture, v_texCoord).r;\n vec4 color = texture2D(u_colorTexture,vec2(intensity, 0));\n gl_FragColor = color;\n // gl_FragColor.a = color.a * smoothstep(0.1,0.2,intensity)* u_opacity;\n gl_FragColor.a = color.a * smoothstep(0.,0.1,intensity) * u_opacity;\n}\n";
28
28
  var heatmap3DVert = "precision highp float;\nattribute vec3 a_Position;\nattribute vec2 a_Uv;\nuniform sampler2D u_texture;\nvarying vec2 v_texCoord;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_InverseViewProjectionMatrix;\nuniform mat4 u_ViewProjectionMatrixUncentered;\nvarying float v_intensity;\n\n\nvec2 toBezier(float t, vec2 P0, vec2 P1, vec2 P2, vec2 P3) {\n float t2 = t * t;\n float one_minus_t = 1.0 - t;\n float one_minus_t2 = one_minus_t * one_minus_t;\n return (P0 * one_minus_t2 * one_minus_t + P1 * 3.0 * t * one_minus_t2 + P2 * 3.0 * t2 * one_minus_t + P3 * t2 * t);\n}\nvec2 toBezier(float t, vec4 p){\n return toBezier(t, vec2(0.0, 0.0), vec2(p.x, p.y), vec2(p.z, p.w), vec2(1.0, 1.0));\n}\n#pragma include \"projection\"\nvoid main() {\n v_texCoord = a_Uv;\n\n vec2 pos = a_Uv * vec2(2.0) - vec2(1.0); // \u5C06\u539F\u672C 0 -> 1 \u7684 uv \u8F6C\u6362\u4E3A -1 -> 1 \u7684\u6807\u51C6\u5750\u6807\u7A7A\u95F4\uFF08NDC\uFF09\n\n vec4 p1 = vec4(pos, 0.0, 1.0); // x/y \u5E73\u9762\u4E0A\u7684\u70B9\uFF08z == 0\uFF09\u53EF\u4EE5\u8BA4\u4E3A\u662F\u4E09\u7EF4\u4E0A\u7684\u70B9\u88AB\u6295\u5F71\u5230\u5E73\u9762\u540E\u7684\u70B9\n\tvec4 p2 = vec4(pos, 1.0, 1.0); // \u5E73\u884C\u4E8Ex/y\u5E73\u9762\u3001z==1 \u7684\u5E73\u9762\u4E0A\u7684\u70B9\n\n\tvec4 inverseP1 = u_InverseViewProjectionMatrix * p1; // \u6839\u636E\u89C6\u56FE\u6295\u5F71\u77E9\u9635\u7684\u9006\u77E9\u9635\u5E73\u9762\u4E0A\u7684\u53CD\u7B97\u51FA\u4E09\u7EF4\u7A7A\u95F4\u4E2D\u7684\u70B9\uFF08p1\u5E73\u9762\u4E0A\u7684\u70B9\uFF09\n\tvec4 inverseP2 = u_InverseViewProjectionMatrix * p2;\n\n inverseP1 = inverseP1 / inverseP1.w; // \u5F52\u4E00\u5316\u64CD\u4F5C\uFF08\u5F52\u4E00\u5316\u540E\u4E3A\u4E16\u754C\u5750\u6807\uFF09\n\tinverseP2 = inverseP2 / inverseP2.w;\n\n\tfloat zPos = (0.0 - inverseP1.z) / (inverseP2.z - inverseP1.z); // ??\n\tvec4 position = inverseP1 + zPos * (inverseP2 - inverseP1);\n\n vec4 b= vec4(0.5000, 0.0, 1.0, 0.5000);\n float fh;\n\n v_intensity = texture2D(u_texture, v_texCoord).r;\n fh = toBezier(v_intensity, b).y;\n gl_Position = u_ViewProjectionMatrixUncentered * vec4(position.xy, fh * project_pixel(50.), 1.0);\n \n}\n";
29
- var heatmapColorFrag = "uniform sampler2D u_texture; // \u70ED\u529B\u5F3A\u5EA6\u56FE\nuniform sampler2D u_colorTexture; // \u6839\u636E\u5F3A\u5EA6\u5206\u5E03\u7684\u8272\u5E26\nuniform float u_opacity;\nvarying vec2 v_texCoord;\n\nfloat getBlurIndusty() {\n float h = 2.0/512.0;\n vec2 vUv = v_texCoord;\n float i11 = texture2D( u_texture, vec2( vUv.x - 1.0 * h, vUv.y + 1.0 * h) ).r;\n float i12 = texture2D( u_texture, vec2( vUv.x - 0.0 * h, vUv.y + 1.0 * h) ).r;\n float i13 = texture2D( u_texture, vec2( vUv.x + 1.0 * h, vUv.y + 1.0 * h) ).r;\n\n float i21 = texture2D( u_texture, vec2( vUv.x - 1.0 * h, vUv.y) ).r;\n float i22 = texture2D( u_texture, vec2( vUv.x , vUv.y) ).r;\n float i23 = texture2D( u_texture, vec2( vUv.x + 1.0 * h, vUv.y) ).r;\n\n float i31 = texture2D( u_texture, vec2( vUv.x - 1.0 * h, vUv.y-1.0*h) ).r;\n float i32 = texture2D( u_texture, vec2( vUv.x - 0.0 * h, vUv.y-1.0*h) ).r;\n float i33 = texture2D( u_texture, vec2( vUv.x + 1.0 * h, vUv.y-1.0*h) ).r;\n\n return(\n i11 + \n i12 + \n i13 + \n i21 + \n i21 + \n i22 + \n i23 + \n i31 + \n i32 + \n i33\n )/9.0;\n}\n\n\nvoid main(){\n // float intensity = texture2D(u_texture, v_texCoord).r;\n float intensity = getBlurIndusty();\n vec4 color = texture2D(u_colorTexture, vec2(intensity, 0.0));\n\n gl_FragColor =color;\n gl_FragColor.a = color.a * smoothstep(0.,0.1,intensity) * u_opacity;\n\n}\n";
29
+ var heatmapColorFrag = "uniform sampler2D u_texture; // \u70ED\u529B\u5F3A\u5EA6\u56FE\nuniform sampler2D u_colorTexture; // \u6839\u636E\u5F3A\u5EA6\u5206\u5E03\u7684\u8272\u5E26\nuniform float u_opacity;\nvarying vec2 v_texCoord;\n\nuniform vec2 u_ViewportSize;\n\nfloat getBlurIndusty() {\n float vW = 2.0/u_ViewportSize.x;\n float vH = 2.0/u_ViewportSize.y;\n vec2 vUv = v_texCoord;\n float i11 = texture2D( u_texture, vec2( vUv.x - 1.0 * vW, vUv.y + 1.0 * vH) ).r;\n float i12 = texture2D( u_texture, vec2( vUv.x - 0.0 * vW, vUv.y + 1.0 * vH) ).r;\n float i13 = texture2D( u_texture, vec2( vUv.x + 1.0 * vW, vUv.y + 1.0 * vH) ).r;\n\n float i21 = texture2D( u_texture, vec2( vUv.x - 1.0 * vW, vUv.y) ).r;\n float i22 = texture2D( u_texture, vec2( vUv.x , vUv.y) ).r;\n float i23 = texture2D( u_texture, vec2( vUv.x + 1.0 * vW, vUv.y) ).r;\n\n float i31 = texture2D( u_texture, vec2( vUv.x - 1.0 * vW, vUv.y-1.0*vH) ).r;\n float i32 = texture2D( u_texture, vec2( vUv.x - 0.0 * vW, vUv.y-1.0*vH) ).r;\n float i33 = texture2D( u_texture, vec2( vUv.x + 1.0 * vW, vUv.y-1.0*vH) ).r;\n\n return(\n i11 + \n i12 + \n i13 + \n i21 + \n i21 + \n i22 + \n i23 + \n i31 + \n i32 + \n i33\n )/9.0;\n}\n\n\nvoid main(){\n // float intensity = texture2D(u_texture, v_texCoord).r;\n float intensity = getBlurIndusty();\n vec4 color = texture2D(u_colorTexture, vec2(intensity, 0.0));\n\n gl_FragColor =color;\n gl_FragColor.a = color.a * smoothstep(0.,0.1,intensity) * u_opacity;\n\n}\n";
30
30
  var heatmapColorVert = "precision highp float;\nattribute vec3 a_Position;\nattribute vec2 a_Uv;\nvarying vec2 v_texCoord;\n\nvoid main() {\n v_texCoord = a_Uv;\n\n gl_Position = vec4(a_Position.xy, 0, 1.);\n}\n";
31
31
  var heatmapFramebufferFrag = "precision highp float;\nuniform float u_intensity;\nvarying float v_weight;\nvarying vec2 v_extrude;\n#define GAUSS_COEF 0.3989422804014327\nvoid main(){\n float d = -0.5 * 3.0 * 3.0 * dot(v_extrude, v_extrude);\n float val = v_weight * u_intensity * GAUSS_COEF * exp(d);\n gl_FragColor = vec4(val, 1., 1., 1.);\n}\n";
32
32
  var heatmapFramebufferVert = "precision highp float;\nattribute vec3 a_Position;\nattribute float a_Size;\nattribute vec2 a_Dir;\nuniform float u_intensity;\nuniform float u_radius;\nvarying vec2 v_extrude;\nvarying float v_weight;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\n\n#define GAUSS_COEF 0.3989422804014327\n\n#pragma include \"projection\"\n\nvoid main(){\n v_weight = a_Size;\n float ZERO = 1.0 / 255.0 / 16.0;\n float extrude_x = a_Dir.x * 2.0 -1.0;\n float extrude_y = a_Dir.y * 2.0 -1.0;\n vec2 extrude_dir = normalize(vec2(extrude_x,extrude_y));\n float S = sqrt(-2.0 * log(ZERO / a_Size / u_intensity / GAUSS_COEF)) / 2.5;\n v_extrude = extrude_dir * S;\n\n vec2 offset = project_pixel(v_extrude * u_radius);\n vec4 project_pos = project_position(vec4(a_Position.xy, 0.0, 1.0));\n\n // gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, 0.0, 1.0));\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * (vec4(project_pos.xy + offset, 0.0, 1.0));\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy + offset, 0.0, 1.0));\n }\n}\n";
@@ -3,6 +3,7 @@ import BaseModel from '../../core/BaseModel';
3
3
  export default class RasterModel extends BaseModel {
4
4
  protected texture: ITexture2D;
5
5
  protected colorTexture: ITexture2D;
6
+ private rampColors;
6
7
  getUninforms(): {
7
8
  u_opacity: number;
8
9
  u_texture: ITexture2D;
@@ -5,6 +5,7 @@ import _inherits from "@babel/runtime/helpers/inherits";
5
5
  import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
6
6
  import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
7
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
8
+ import _isEqual from "lodash/isEqual";
8
9
 
9
10
  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); }; }
10
11
 
@@ -37,6 +38,8 @@ var RasterModel = function (_BaseModel) {
37
38
 
38
39
  _defineProperty(_assertThisInitialized(_this), "colorTexture", void 0);
39
40
 
41
+ _defineProperty(_assertThisInitialized(_this), "rampColors", void 0);
42
+
40
43
  return _this;
41
44
  }
42
45
 
@@ -53,9 +56,14 @@ var RasterModel = function (_BaseModel) {
53
56
  _ref$noDataValue = _ref.noDataValue,
54
57
  noDataValue = _ref$noDataValue === void 0 ? -9999999 : _ref$noDataValue,
55
58
  _ref$domain = _ref.domain,
56
- domain = _ref$domain === void 0 ? [0, 1] : _ref$domain;
59
+ domain = _ref$domain === void 0 ? [0, 1] : _ref$domain,
60
+ rampColors = _ref.rampColors;
61
+
62
+ if (!_isEqual(this.rampColors, rampColors)) {
63
+ this.updateColorTexure();
64
+ this.rampColors = rampColors;
65
+ }
57
66
 
58
- this.updateColorTexure();
59
67
  return {
60
68
  u_opacity: opacity || 1,
61
69
  u_texture: this.texture,
@@ -73,7 +81,9 @@ var RasterModel = function (_BaseModel) {
73
81
  _ref2$mask = _ref2.mask,
74
82
  mask = _ref2$mask === void 0 ? false : _ref2$mask,
75
83
  _ref2$maskInside = _ref2.maskInside,
76
- maskInside = _ref2$maskInside === void 0 ? true : _ref2$maskInside;
84
+ maskInside = _ref2$maskInside === void 0 ? true : _ref2$maskInside,
85
+ rampColorsData = _ref2.rampColorsData,
86
+ rampColors = _ref2.rampColors;
77
87
 
78
88
  var source = this.layer.getSource();
79
89
  var createTexture2D = this.rendererService.createTexture2D;
@@ -85,11 +95,7 @@ var RasterModel = function (_BaseModel) {
85
95
  format: gl.LUMINANCE,
86
96
  type: gl.FLOAT
87
97
  });
88
-
89
- var _ref3 = this.layer.getLayerConfig(),
90
- rampColors = _ref3.rampColors;
91
-
92
- var imageData = generateColorRamp(rampColors);
98
+ var imageData = rampColorsData ? rampColorsData : generateColorRamp(rampColors);
93
99
  this.colorTexture = createTexture2D({
94
100
  data: imageData.data,
95
101
  width: imageData.width,
@@ -147,8 +153,8 @@ var RasterModel = function (_BaseModel) {
147
153
  value: function updateColorTexure() {
148
154
  var createTexture2D = this.rendererService.createTexture2D;
149
155
 
150
- var _ref4 = this.layer.getLayerConfig(),
151
- rampColors = _ref4.rampColors;
156
+ var _ref3 = this.layer.getLayerConfig(),
157
+ rampColors = _ref3.rampColors;
152
158
 
153
159
  var imageData = generateColorRamp(rampColors);
154
160
  this.colorTexture = createTexture2D({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/raster/models/raster.ts"],"names":["AttributeType","gl","generateColorRamp","getMask","BaseModel","RasterImageTriangulation","RasterModel","layer","getLayerConfig","opacity","clampLow","clampHigh","noDataValue","domain","updateColorTexure","u_opacity","u_texture","texture","u_domain","u_clampLow","u_clampHigh","u_noDataValue","u_colorTexture","colorTexture","mask","maskInside","source","getSource","createTexture2D","rendererService","parserDataItem","data","dataArray","width","height","format","LUMINANCE","type","FLOAT","rampColors","imageData","flipY","buildLayerModel","moduleName","vertexShader","rasterVert","fragmentShader","rasterFrag","triangulation","primitive","TRIANGLES","depth","enable","blend","getBlend","stencil","initModels","destroy","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n ITexture2D,\n lazyInject,\n TYPES,\n} from '@antv/l7-core';\nimport { generateColorRamp, getMask, IColorRamp } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { IRasterLayerStyleOptions } from '../../core/interface';\nimport { RasterImageTriangulation } from '../../core/triangulation';\nimport rasterFrag from '../shaders/raster_2d_frag.glsl';\nimport rasterVert from '../shaders/raster_2d_vert.glsl';\nexport default class RasterModel extends BaseModel {\n protected texture: ITexture2D;\n protected colorTexture: ITexture2D;\n public getUninforms() {\n const {\n opacity = 1,\n clampLow = true,\n clampHigh = true,\n noDataValue = -9999999,\n domain = [0, 1],\n } = this.layer.getLayerConfig() as IRasterLayerStyleOptions;\n this.updateColorTexure();\n return {\n u_opacity: opacity || 1,\n u_texture: this.texture,\n u_domain: domain,\n u_clampLow: clampLow,\n u_clampHigh: typeof clampHigh !== 'undefined' ? clampHigh : clampLow,\n u_noDataValue: noDataValue,\n u_colorTexture: this.colorTexture,\n };\n }\n\n public initModels() {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IRasterLayerStyleOptions;\n const source = this.layer.getSource();\n const { createTexture2D } = this.rendererService;\n const parserDataItem = source.data.dataArray[0];\n this.texture = createTexture2D({\n data: parserDataItem.data,\n width: parserDataItem.width,\n height: parserDataItem.height,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n // aniso: 4,\n });\n const {\n rampColors,\n } = this.layer.getLayerConfig() as IRasterLayerStyleOptions;\n const imageData = generateColorRamp(rampColors as IColorRamp);\n this.colorTexture = createTexture2D({\n data: imageData.data,\n width: imageData.width,\n height: imageData.height,\n flipY: false,\n });\n return [\n this.layer.buildLayerModel({\n moduleName: 'RasterImageData',\n vertexShader: rasterVert,\n fragmentShader: rasterFrag,\n triangulation: RasterImageTriangulation,\n primitive: gl.TRIANGLES,\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n\n public buildModels() {\n return this.initModels();\n }\n\n public clearModels(): void {\n this.texture?.destroy();\n this.colorTexture?.destroy();\n }\n\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Uv',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3], vertex[4]];\n },\n },\n });\n }\n\n private updateColorTexure() {\n const { createTexture2D } = this.rendererService;\n const {\n rampColors,\n } = this.layer.getLayerConfig() as IRasterLayerStyleOptions;\n const imageData = generateColorRamp(rampColors as IColorRamp);\n this.colorTexture = createTexture2D({\n data: imageData.data,\n width: imageData.width,\n height: imageData.height,\n flipY: false,\n });\n }\n}\n"],"file":"raster.js"}
1
+ {"version":3,"sources":["../../../src/raster/models/raster.ts"],"names":["AttributeType","gl","generateColorRamp","getMask","BaseModel","RasterImageTriangulation","RasterModel","layer","getLayerConfig","opacity","clampLow","clampHigh","noDataValue","domain","rampColors","updateColorTexure","u_opacity","u_texture","texture","u_domain","u_clampLow","u_clampHigh","u_noDataValue","u_colorTexture","colorTexture","mask","maskInside","rampColorsData","source","getSource","createTexture2D","rendererService","parserDataItem","data","dataArray","width","height","format","LUMINANCE","type","FLOAT","imageData","flipY","buildLayerModel","moduleName","vertexShader","rasterVert","fragmentShader","rasterFrag","triangulation","primitive","TRIANGLES","depth","enable","blend","getBlend","stencil","initModels","destroy","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n ITexture2D,\n lazyInject,\n TYPES,\n} from '@antv/l7-core';\nimport { generateColorRamp, getMask, IColorRamp } from '@antv/l7-utils';\nimport { isEqual } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IRasterLayerStyleOptions } from '../../core/interface';\nimport { RasterImageTriangulation } from '../../core/triangulation';\nimport rasterFrag from '../shaders/raster_2d_frag.glsl';\nimport rasterVert from '../shaders/raster_2d_vert.glsl';\nexport default class RasterModel extends BaseModel {\n protected texture: ITexture2D;\n protected colorTexture: ITexture2D;\n private rampColors: any;\n public getUninforms() {\n const {\n opacity = 1,\n clampLow = true,\n clampHigh = true,\n noDataValue = -9999999,\n domain = [0, 1],\n rampColors,\n } = this.layer.getLayerConfig() as IRasterLayerStyleOptions;\n if (!isEqual(this.rampColors, rampColors)) {\n this.updateColorTexure();\n this.rampColors = rampColors;\n }\n\n return {\n u_opacity: opacity || 1,\n u_texture: this.texture,\n u_domain: domain,\n u_clampLow: clampLow,\n u_clampHigh: typeof clampHigh !== 'undefined' ? clampHigh : clampLow,\n u_noDataValue: noDataValue,\n u_colorTexture: this.colorTexture,\n };\n }\n\n public initModels() {\n const {\n mask = false,\n maskInside = true,\n rampColorsData,\n rampColors,\n } = this.layer.getLayerConfig() as IRasterLayerStyleOptions;\n const source = this.layer.getSource();\n const { createTexture2D } = this.rendererService;\n const parserDataItem = source.data.dataArray[0];\n this.texture = createTexture2D({\n data: parserDataItem.data,\n width: parserDataItem.width,\n height: parserDataItem.height,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n // aniso: 4,\n });\n const imageData = rampColorsData\n ? rampColorsData\n : generateColorRamp(rampColors as IColorRamp);\n this.colorTexture = createTexture2D({\n data: imageData.data,\n width: imageData.width,\n height: imageData.height,\n flipY: false,\n });\n return [\n this.layer.buildLayerModel({\n moduleName: 'RasterImageData',\n vertexShader: rasterVert,\n fragmentShader: rasterFrag,\n triangulation: RasterImageTriangulation,\n primitive: gl.TRIANGLES,\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n\n public buildModels() {\n return this.initModels();\n }\n\n public clearModels(): void {\n this.texture?.destroy();\n this.colorTexture?.destroy();\n }\n\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Uv',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3], vertex[4]];\n },\n },\n });\n }\n\n private updateColorTexure() {\n const { createTexture2D } = this.rendererService;\n const {\n rampColors,\n } = this.layer.getLayerConfig() as IRasterLayerStyleOptions;\n const imageData = generateColorRamp(rampColors as IColorRamp);\n this.colorTexture = createTexture2D({\n data: imageData.data,\n width: imageData.width,\n height: imageData.height,\n flipY: false,\n });\n }\n}\n"],"file":"raster.js"}
@@ -11,6 +11,7 @@ export declare class TileLayerManager implements ITileLayerManager {
11
11
  tileConfigManager: ITileConfigManager;
12
12
  private tileFactory;
13
13
  private initOptions;
14
+ private rampColorsData;
14
15
  constructor(parent: ILayer, mapService: IMapService, rendererService: IRendererService, pickingService: IPickingService, layerService: ILayerService);
15
16
  createTile(tile: Tile): {
16
17
  layers: ILayer[];
@@ -19,7 +20,7 @@ export declare class TileLayerManager implements ITileLayerManager {
19
20
  updateLayersConfig(layers: ILayer[], key: string, value: any): void;
20
21
  addChild(layer: ILayer): void;
21
22
  addChilds(layers: ILayer[]): void;
22
- removeChilds(layerIDList: string[]): void;
23
+ removeChilds(layerIDList: string[], refresh?: boolean): void;
23
24
  removeChild(layer: ILayer): void;
24
25
  getChilds(layerIDList: string[]): ILayer[];
25
26
  getChild(layerID: string): ILayer;
@@ -2,6 +2,7 @@ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
3
  import _createClass from "@babel/runtime/helpers/createClass";
4
4
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
+ import { generateColorRamp } from '@antv/l7-utils';
5
6
  import { getTileFactory } from '../tileFactory';
6
7
  import { getLayerShape, getMaskValue } from '../utils';
7
8
  import TileConfigManager from './tileConfigManager';
@@ -28,6 +29,8 @@ export var TileLayerManager = function () {
28
29
 
29
30
  _defineProperty(this, "initOptions", void 0);
30
31
 
32
+ _defineProperty(this, "rampColorsData", void 0);
33
+
31
34
  this.parent = parent;
32
35
  this.children = parent.layerChildren;
33
36
  this.mapService = mapService;
@@ -72,13 +75,14 @@ export var TileLayerManager = function () {
72
75
  }, {
73
76
  key: "removeChilds",
74
77
  value: function removeChilds(layerIDList) {
78
+ var refresh = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
75
79
  var remveLayerList = [];
76
80
  var cacheLayerList = [];
77
81
  this.children.filter(function (child) {
78
82
  layerIDList.includes(child.id) ? remveLayerList.push(child) : cacheLayerList.push(child);
79
83
  });
80
84
  remveLayerList.map(function (layer) {
81
- return layer.destroy();
85
+ return layer.destroy(refresh);
82
86
  });
83
87
  this.children = cacheLayerList;
84
88
  }
@@ -176,6 +180,11 @@ export var TileLayerManager = function () {
176
180
  coords = _ref2.coords;
177
181
 
178
182
  var layerShape = getLayerShape(this.parent.type, this.parent);
183
+
184
+ if (rampColors) {
185
+ this.rampColorsData = generateColorRamp(rampColors);
186
+ }
187
+
179
188
  this.initOptions = {
180
189
  layerType: this.parent.type,
181
190
  shape: layerShape,
@@ -193,7 +202,8 @@ export var TileLayerManager = function () {
193
202
  clampLow: clampLow,
194
203
  clampHigh: clampHigh,
195
204
  domain: domain,
196
- rampColors: rampColors
205
+ rampColors: rampColors,
206
+ rampColorsData: this.rampColorsData
197
207
  };
198
208
  }
199
209
  }, {
@@ -261,6 +271,10 @@ export var TileLayerManager = function () {
261
271
  var config = layerConfig[style];
262
272
  updateValue = config;
263
273
  this.updateLayersConfig(this.children, style, config);
274
+
275
+ if (style === 'rampColors' && config) {
276
+ this.rampColorsData = generateColorRamp(config);
277
+ }
264
278
  }
265
279
 
266
280
  this.initOptions[style] = updateValue;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tile/manager/tileLayerManager.ts"],"names":["getTileFactory","getLayerShape","getMaskValue","TileConfigManager","TilePickManager","TileLayerManager","parent","mapService","rendererService","pickingService","layerService","children","layerChildren","tilePickManager","tileConfigManager","setSubLayerInitOptipn","setConfigListener","initTileFactory","tile","tileFactory","createTile","initOptions","layers","key","value","map","layer","style","mask","updateLayerConfig","push","layerIDList","remveLayerList","cacheLayerList","filter","child","includes","id","destroy","layerIndex","indexOf","splice","layerID","forEach","slice","length","checkConfig","normalRender","target","pickRender","getLayerConfig","zIndex","opacity","stroke","strokeWidth","strokeOpacity","clampLow","clampHigh","domain","rampColors","colors","positions","featureId","sourceLayer","colorValue","getAttributeScale","sizeValue","source","getSource","data","tilesetOptions","coords","layerShape","type","layerType","shape","color","size","setConfig","getAttribute","scale","on","updateConfigs","updateStyle","updateValue","scaleValue","setStyleAttributeField","layerConfig","config","updateLayersConfig","TileFactory","parser"],"mappings":"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","sourcesContent":["import {\n IInteractionTarget,\n ILayer,\n ILayerService,\n IMapService,\n IPickingService,\n IRendererService,\n ISubLayerInitOptions,\n ITileLayerManager,\n ITilePickManager,\n ScaleAttributeType,\n} from '@antv/l7-core';\nimport { Tile } from '@antv/l7-utils';\nimport { getTileFactory, ITileFactory, TileType } from '../tileFactory';\nimport { getLayerShape, getMaskValue } from '../utils';\nimport TileConfigManager, { ITileConfigManager } from './tileConfigManager';\nimport TilePickManager from './tilePickerManager';\nexport class TileLayerManager implements ITileLayerManager {\n public sourceLayer: string;\n public parent: ILayer;\n public children: ILayer[];\n public mapService: IMapService;\n public rendererService: IRendererService;\n public tilePickManager: ITilePickManager;\n public tileConfigManager: ITileConfigManager;\n private tileFactory: ITileFactory;\n private initOptions: ISubLayerInitOptions;\n constructor(\n parent: ILayer,\n mapService: IMapService,\n rendererService: IRendererService,\n pickingService: IPickingService,\n layerService: ILayerService,\n ) {\n this.parent = parent;\n this.children = parent.layerChildren;\n this.mapService = mapService;\n this.rendererService = rendererService;\n this.tilePickManager = new TilePickManager(\n parent,\n rendererService,\n pickingService,\n this.children,\n layerService,\n );\n this.tileConfigManager = new TileConfigManager();\n\n this.setSubLayerInitOptipn();\n this.setConfigListener();\n this.initTileFactory();\n }\n\n public createTile(tile: Tile) {\n return this.tileFactory.createTile(tile, this.initOptions);\n }\n\n public updateLayersConfig(layers: ILayer[], key: string, value: any) {\n layers.map((layer) => {\n if (key === 'mask') {\n // Tip: 栅格瓦片生效、设置全局的 mask、瓦片被全局的 mask 影响\n layer.style({\n mask: value,\n });\n } else {\n layer.updateLayerConfig({\n [key]: value,\n });\n }\n });\n }\n\n public addChild(layer: ILayer) {\n this.children.push(layer);\n }\n\n public addChilds(layers: ILayer[]) {\n this.children.push(...layers);\n }\n\n public removeChilds(layerIDList: string[]) {\n const remveLayerList: ILayer[] = [];\n const cacheLayerList: ILayer[] = [];\n this.children.filter((child) => {\n layerIDList.includes(child.id)\n ? remveLayerList.push(child)\n : cacheLayerList.push(child);\n });\n remveLayerList.map((layer) => layer.destroy());\n this.children = cacheLayerList;\n }\n\n public removeChild(layer: ILayer) {\n const layerIndex = this.children.indexOf(layer);\n if (layerIndex > -1) {\n this.children.splice(layerIndex, 1);\n }\n layer.destroy();\n }\n\n public getChilds(layerIDList: string[]) {\n return this.children.filter((child) => layerIDList.includes(child.id));\n }\n\n public getChild(layerID: string) {\n return this.children.filter((child) => child.id === layerID)[0];\n }\n\n public clearChild() {\n this.children.forEach((layer: any) => {\n layer.destroy();\n });\n\n this.children.slice(0, this.children.length);\n }\n\n public hasChild(layer: ILayer) {\n return this.children.includes(layer);\n }\n\n public render(): void {\n this.tileConfigManager?.checkConfig(this.parent);\n this.tilePickManager?.normalRender(this.children);\n }\n\n public pickLayers(target: IInteractionTarget) {\n return this.tilePickManager?.pickRender(this.children, target);\n }\n\n private setSubLayerInitOptipn() {\n const {\n zIndex = 0,\n opacity = 1,\n mask = false,\n stroke = '#fff',\n strokeWidth = 0,\n strokeOpacity = 1,\n\n clampLow = true,\n clampHigh = true,\n domain = [0, 1],\n rampColors = {\n colors: [\n 'rgb(166,97,26)',\n 'rgb(223,194,125)',\n 'rgb(245,245,245)',\n 'rgb(128,205,193)',\n 'rgb(1,133,113)',\n ],\n positions: [0, 0.25, 0.5, 0.75, 1.0],\n },\n featureId = 'id',\n sourceLayer,\n } = this.parent.getLayerConfig() as ISubLayerInitOptions;\n\n const colorValue = this.tileConfigManager.getAttributeScale(\n this.parent,\n 'color',\n );\n const sizeValue = this.tileConfigManager.getAttributeScale(\n this.parent,\n 'size',\n );\n const source = this.parent.getSource();\n const { coords } = source?.data?.tilesetOptions || {};\n\n const layerShape = getLayerShape(this.parent.type, this.parent);\n\n this.initOptions = {\n layerType: this.parent.type,\n shape: layerShape,\n zIndex,\n opacity,\n sourceLayer,\n coords,\n featureId,\n color: colorValue,\n size: sizeValue,\n mask: getMaskValue(this.parent.type, mask),\n stroke,\n strokeWidth,\n strokeOpacity,\n // raster tiff\n clampLow,\n clampHigh,\n domain,\n rampColors,\n };\n }\n\n private setConfigListener() {\n // RasterLayer PolygonLayer LineLayer PointLayer\n // All Tile Layer Need Listen\n this.tileConfigManager.setConfig('opacity', this.initOptions.opacity);\n this.tileConfigManager.setConfig('zIndex', this.initOptions.zIndex);\n this.tileConfigManager.setConfig('mask', this.initOptions.mask);\n\n if (this.parent.type === 'RasterLayer') {\n // Raster Tile Layer Need Listen\n this.tileConfigManager.setConfig(\n 'rampColors',\n this.initOptions.rampColors,\n );\n this.tileConfigManager.setConfig('domain', this.initOptions.domain);\n this.tileConfigManager.setConfig('clampHigh', this.initOptions.clampHigh);\n this.tileConfigManager.setConfig('clampLow', this.initOptions.clampLow);\n } else {\n // Vector Tile Layer Need Listen\n this.tileConfigManager.setConfig('stroke', this.initOptions.stroke);\n this.tileConfigManager.setConfig(\n 'strokeWidth',\n this.initOptions.strokeWidth,\n );\n this.tileConfigManager.setConfig(\n 'strokeOpacity',\n this.initOptions.strokeOpacity,\n );\n this.tileConfigManager.setConfig(\n 'color',\n this.parent.getAttribute('color')?.scale,\n );\n this.tileConfigManager.setConfig(\n 'shape',\n this.parent.getAttribute('shape')?.scale,\n );\n this.tileConfigManager.setConfig(\n 'size',\n this.parent.getAttribute('size')?.scale,\n );\n }\n\n this.tileConfigManager.on('updateConfig', (updateConfigs) => {\n updateConfigs.map((key: string) => {\n this.updateStyle(key);\n return '';\n });\n });\n }\n\n private updateStyle(style: string) {\n let updateValue = null;\n if (['size', 'color', 'shape'].includes(style)) {\n const scaleValue = this.parent.getAttribute(style)?.scale;\n if (!scaleValue) {\n return;\n }\n updateValue = scaleValue;\n this.children.map((child) => {\n this.tileFactory.setStyleAttributeField(\n child,\n style as ScaleAttributeType,\n scaleValue,\n );\n return '';\n });\n } else {\n const layerConfig = this.parent.getLayerConfig() as ISubLayerInitOptions;\n if (!(style in layerConfig)) {\n return;\n }\n // @ts-ignore\n const config = layerConfig[style];\n updateValue = config;\n this.updateLayersConfig(this.children, style, config);\n }\n // @ts-ignore\n this.initOptions[style] = updateValue;\n }\n\n private initTileFactory() {\n const source = this.parent.getSource();\n const TileFactory = getTileFactory(\n this.parent.type as TileType,\n source.parser,\n );\n this.tileFactory = new TileFactory({\n parent: this.parent,\n mapService: this.mapService,\n rendererService: this.rendererService,\n });\n }\n}\n"],"file":"tileLayerManager.js"}
1
+ {"version":3,"sources":["../../../src/tile/manager/tileLayerManager.ts"],"names":["generateColorRamp","getTileFactory","getLayerShape","getMaskValue","TileConfigManager","TilePickManager","TileLayerManager","parent","mapService","rendererService","pickingService","layerService","children","layerChildren","tilePickManager","tileConfigManager","setSubLayerInitOptipn","setConfigListener","initTileFactory","tile","tileFactory","createTile","initOptions","layers","key","value","map","layer","style","mask","updateLayerConfig","push","layerIDList","refresh","remveLayerList","cacheLayerList","filter","child","includes","id","destroy","layerIndex","indexOf","splice","layerID","forEach","slice","length","checkConfig","normalRender","target","pickRender","getLayerConfig","zIndex","opacity","stroke","strokeWidth","strokeOpacity","clampLow","clampHigh","domain","rampColors","colors","positions","featureId","sourceLayer","colorValue","getAttributeScale","sizeValue","source","getSource","data","tilesetOptions","coords","layerShape","type","rampColorsData","layerType","shape","color","size","setConfig","getAttribute","scale","on","updateConfigs","updateStyle","updateValue","scaleValue","setStyleAttributeField","layerConfig","config","updateLayersConfig","TileFactory","parser"],"mappings":"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","sourcesContent":["import {\n IInteractionTarget,\n ILayer,\n ILayerService,\n IMapService,\n IPickingService,\n IRendererService,\n ISubLayerInitOptions,\n ITileLayerManager,\n ITilePickManager,\n ScaleAttributeType,\n} from '@antv/l7-core';\nimport { generateColorRamp, IColorRamp, Tile } from '@antv/l7-utils';\nimport { getTileFactory, ITileFactory, TileType } from '../tileFactory';\nimport { getLayerShape, getMaskValue } from '../utils';\nimport TileConfigManager, { ITileConfigManager } from './tileConfigManager';\nimport TilePickManager from './tilePickerManager';\nexport class TileLayerManager implements ITileLayerManager {\n public sourceLayer: string;\n public parent: ILayer;\n public children: ILayer[];\n public mapService: IMapService;\n public rendererService: IRendererService;\n public tilePickManager: ITilePickManager;\n public tileConfigManager: ITileConfigManager;\n private tileFactory: ITileFactory;\n private initOptions: ISubLayerInitOptions;\n private rampColorsData: any;\n constructor(\n parent: ILayer,\n mapService: IMapService,\n rendererService: IRendererService,\n pickingService: IPickingService,\n layerService: ILayerService,\n ) {\n this.parent = parent;\n this.children = parent.layerChildren;\n this.mapService = mapService;\n this.rendererService = rendererService;\n this.tilePickManager = new TilePickManager(\n parent,\n rendererService,\n pickingService,\n this.children,\n layerService,\n );\n this.tileConfigManager = new TileConfigManager();\n\n this.setSubLayerInitOptipn();\n this.setConfigListener();\n this.initTileFactory();\n }\n\n public createTile(tile: Tile) {\n return this.tileFactory.createTile(tile, this.initOptions);\n }\n\n public updateLayersConfig(layers: ILayer[], key: string, value: any) {\n layers.map((layer) => {\n if (key === 'mask') {\n // Tip: 栅格瓦片生效、设置全局的 mask、瓦片被全局的 mask 影响\n layer.style({\n mask: value,\n });\n } else {\n layer.updateLayerConfig({\n [key]: value,\n });\n }\n });\n }\n\n public addChild(layer: ILayer) {\n this.children.push(layer);\n }\n\n public addChilds(layers: ILayer[]) {\n this.children.push(...layers);\n }\n\n public removeChilds(layerIDList: string[], refresh = true) {\n const remveLayerList: ILayer[] = [];\n const cacheLayerList: ILayer[] = [];\n this.children.filter((child) => {\n layerIDList.includes(child.id)\n ? remveLayerList.push(child)\n : cacheLayerList.push(child);\n });\n remveLayerList.map((layer) => layer.destroy(refresh));\n this.children = cacheLayerList;\n }\n\n public removeChild(layer: ILayer) {\n const layerIndex = this.children.indexOf(layer);\n if (layerIndex > -1) {\n this.children.splice(layerIndex, 1);\n }\n layer.destroy();\n }\n\n public getChilds(layerIDList: string[]) {\n return this.children.filter((child) => layerIDList.includes(child.id));\n }\n\n public getChild(layerID: string) {\n return this.children.filter((child) => child.id === layerID)[0];\n }\n\n public clearChild() {\n this.children.forEach((layer: any) => {\n layer.destroy();\n });\n\n this.children.slice(0, this.children.length);\n }\n\n public hasChild(layer: ILayer) {\n return this.children.includes(layer);\n }\n\n public render(): void {\n this.tileConfigManager?.checkConfig(this.parent);\n this.tilePickManager?.normalRender(this.children);\n }\n\n public pickLayers(target: IInteractionTarget) {\n return this.tilePickManager?.pickRender(this.children, target);\n }\n\n private setSubLayerInitOptipn() {\n const {\n zIndex = 0,\n opacity = 1,\n mask = false,\n stroke = '#fff',\n strokeWidth = 0,\n strokeOpacity = 1,\n\n clampLow = true,\n clampHigh = true,\n domain = [0, 1],\n rampColors = {\n colors: [\n 'rgb(166,97,26)',\n 'rgb(223,194,125)',\n 'rgb(245,245,245)',\n 'rgb(128,205,193)',\n 'rgb(1,133,113)',\n ],\n positions: [0, 0.25, 0.5, 0.75, 1.0],\n },\n featureId = 'id',\n sourceLayer,\n } = this.parent.getLayerConfig() as ISubLayerInitOptions;\n\n const colorValue = this.tileConfigManager.getAttributeScale(\n this.parent,\n 'color',\n );\n const sizeValue = this.tileConfigManager.getAttributeScale(\n this.parent,\n 'size',\n );\n const source = this.parent.getSource();\n const { coords } = source?.data?.tilesetOptions || {};\n\n const layerShape = getLayerShape(this.parent.type, this.parent);\n\n if (rampColors) {\n // 构建统一的色带贴图\n this.rampColorsData = generateColorRamp(rampColors as IColorRamp);\n }\n\n this.initOptions = {\n layerType: this.parent.type,\n shape: layerShape,\n zIndex,\n opacity,\n sourceLayer,\n coords,\n featureId,\n color: colorValue,\n size: sizeValue,\n mask: getMaskValue(this.parent.type, mask),\n stroke,\n strokeWidth,\n strokeOpacity,\n // raster tiff\n clampLow,\n clampHigh,\n domain,\n rampColors,\n rampColorsData: this.rampColorsData,\n };\n }\n\n private setConfigListener() {\n // RasterLayer PolygonLayer LineLayer PointLayer\n // All Tile Layer Need Listen\n this.tileConfigManager.setConfig('opacity', this.initOptions.opacity);\n this.tileConfigManager.setConfig('zIndex', this.initOptions.zIndex);\n this.tileConfigManager.setConfig('mask', this.initOptions.mask);\n\n if (this.parent.type === 'RasterLayer') {\n // Raster Tile Layer Need Listen\n this.tileConfigManager.setConfig(\n 'rampColors',\n this.initOptions.rampColors,\n );\n this.tileConfigManager.setConfig('domain', this.initOptions.domain);\n this.tileConfigManager.setConfig('clampHigh', this.initOptions.clampHigh);\n this.tileConfigManager.setConfig('clampLow', this.initOptions.clampLow);\n } else {\n // Vector Tile Layer Need Listen\n this.tileConfigManager.setConfig('stroke', this.initOptions.stroke);\n this.tileConfigManager.setConfig(\n 'strokeWidth',\n this.initOptions.strokeWidth,\n );\n this.tileConfigManager.setConfig(\n 'strokeOpacity',\n this.initOptions.strokeOpacity,\n );\n this.tileConfigManager.setConfig(\n 'color',\n this.parent.getAttribute('color')?.scale,\n );\n this.tileConfigManager.setConfig(\n 'shape',\n this.parent.getAttribute('shape')?.scale,\n );\n this.tileConfigManager.setConfig(\n 'size',\n this.parent.getAttribute('size')?.scale,\n );\n }\n\n this.tileConfigManager.on('updateConfig', (updateConfigs) => {\n updateConfigs.map((key: string) => {\n this.updateStyle(key);\n return '';\n });\n });\n }\n\n private updateStyle(style: string) {\n let updateValue = null;\n if (['size', 'color', 'shape'].includes(style)) {\n const scaleValue = this.parent.getAttribute(style)?.scale;\n if (!scaleValue) {\n return;\n }\n updateValue = scaleValue;\n this.children.map((child) => {\n this.tileFactory.setStyleAttributeField(\n child,\n style as ScaleAttributeType,\n scaleValue,\n );\n return '';\n });\n } else {\n const layerConfig = this.parent.getLayerConfig() as ISubLayerInitOptions;\n if (!(style in layerConfig)) {\n return;\n }\n // @ts-ignore\n const config = layerConfig[style];\n updateValue = config;\n this.updateLayersConfig(this.children, style, config);\n if (style === 'rampColors' && config) {\n this.rampColorsData = generateColorRamp(config as IColorRamp);\n }\n }\n // @ts-ignore\n this.initOptions[style] = updateValue;\n }\n\n private initTileFactory() {\n const source = this.parent.getSource();\n const TileFactory = getTileFactory(\n this.parent.type as TileType,\n source.parser,\n );\n this.tileFactory = new TileFactory({\n parent: this.parent,\n mapService: this.mapService,\n rendererService: this.rendererService,\n });\n }\n}\n"],"file":"tileLayerManager.js"}
@@ -37,6 +37,7 @@ export default class TileFactory implements ITileFactory {
37
37
  protected emitEvent(layers: ILayer[], isVector?: boolean): void;
38
38
  protected getCombineFeature(features: IParseDataItem[]): any;
39
39
  protected getFeatureAndEmitEvent(layer: ILayer, eventName: string, e: any, isVector?: boolean, tile?: any): void;
40
+ private setScale;
40
41
  private getAllFeatures;
41
42
  private getLayerInitOption;
42
43
  private handleOutsideEvent;
@@ -125,6 +125,7 @@ var TileFactory = function () {
125
125
  }
126
126
 
127
127
  layer.source(source);
128
+ this.setScale(layer);
128
129
  this.setStyleAttributeField(layer, 'shape', shape);
129
130
  this.setStyleAttributeField(layer, 'color', color);
130
131
  this.setStyleAttributeField(layer, 'size', size);
@@ -358,6 +359,15 @@ var TileFactory = function () {
358
359
 
359
360
  this.parentLayer.emit(eventName, e);
360
361
  }
362
+ }, {
363
+ key: "setScale",
364
+ value: function setScale(layer) {
365
+ var scaleOptions = this.parentLayer.tileLayer.scaleField;
366
+ var scaleKeys = Object.keys(scaleOptions);
367
+ scaleKeys.map(function (key) {
368
+ layer.scale(key, scaleOptions[key]);
369
+ });
370
+ }
361
371
  }, {
362
372
  key: "getAllFeatures",
363
373
  value: function getAllFeatures(featureId) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tile/tileFactory/base.ts"],"names":["Source","osmLonLat2TileXY","MaskLayer","getLayerShape","readRasterValue","registerLayers","VectorLayer","turf","union","TileFactory","option","click","mousemove","mouseup","mousedown","contextmenu","parentLayer","parent","mapService","rendererService","source","getSource","zoomOffset","parser","tilesetManager","tileset","tile","initOptions","layers","layerIDList","emptyData","features","featureId","vectorTileLayer","sourceLayer","data","Array","isArray","length","type","tileLayerOption","L7Layer","mask","color","layerType","size","shape","FactoryTileLayer","layer","visible","isVisible","tileOrigin","l7TileOrigin","coord","l7TileCoord","getLayerInitOption","isVector","emitEvent","select","setStyleAttributeField","masklayer","bboxPolygon","push","addMaskLayer","styles","value","defaultValue","getDefautStyleAttributeField","params","parseScaleValue","field","values","callback","lng","lat","zoom","getZoom","z","Math","ceil","xy","tiles","filter","t","key","map","once","on","e","eventCache","lngLat","getTile","getFeatureAndEmitEvent","handleOutsideEvent","p","properties","feature","polygon","coordinates","eventName","x","y","getAllFeatures","getCombineFeature","err","console","warn","emit","allLayers","tileLayer","children","dataArray","_id","coords","emitType","outSideEventTimer","clearTimeout","setTimeout"],"mappings":"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","sourcesContent":["import {\n ILayer,\n IMapService,\n IParseDataItem,\n IRendererService,\n IScaleValue,\n ISubLayerInitOptions,\n ScaleAttributeType,\n} from '@antv/l7-core';\nimport Source from '@antv/l7-source';\nimport { osmLonLat2TileXY, Tile, TilesetManager } from '@antv/l7-utils';\nimport MaskLayer from '../../mask';\nimport {\n getLayerShape,\n readPixel,\n readRasterValue,\n registerLayers,\n} from '../utils';\nimport VectorLayer from './vectorLayer';\n\nimport * as turf from '@turf/helpers';\nimport union from '@turf/union';\nimport {\n CacheEvent,\n ILayerTileConfig,\n ITileFactory,\n ITileFactoryOptions,\n ITileStyles,\n Timeout,\n} from '../interface';\n\nexport default class TileFactory implements ITileFactory {\n public type: string;\n public parentLayer: ILayer;\n public mapService: IMapService;\n public rendererService: IRendererService;\n public outSideEventTimer: Timeout | null = null;\n protected zoomOffset: number;\n protected tilesetManager: TilesetManager;\n protected layers: ILayer[];\n // 用于记录图层内事件,辅助判断图层外事件逻辑\n private eventCache = {\n click: 0,\n mousemove: 0,\n mouseup: 0,\n mousedown: 0,\n contextmenu: 0,\n };\n constructor(option: ITileFactoryOptions) {\n this.parentLayer = option.parent;\n this.mapService = option.mapService;\n this.rendererService = option.rendererService;\n\n const source = this.parentLayer.getSource();\n this.zoomOffset = source.parser.zoomOffset || 0;\n this.tilesetManager = source.tileset as TilesetManager;\n }\n\n public createTile(tile: Tile, initOptions: ISubLayerInitOptions) {\n return {\n layers: [] as ILayer[],\n layerIDList: [] as string[],\n };\n }\n\n public getFeatureData(tile: Tile, initOptions: ISubLayerInitOptions) {\n const emptyData = {\n features: [],\n featureId: null,\n vectorTileLayer: null,\n source: null,\n };\n const { sourceLayer, featureId } = initOptions;\n if (!sourceLayer) {\n return emptyData;\n }\n const vectorTileLayer = tile.data.layers[sourceLayer];\n const features = vectorTileLayer?.features;\n if (!(Array.isArray(features) && features.length > 0)) {\n return emptyData;\n } else {\n const source = new Source(\n {\n type: 'FeatureCollection',\n features,\n },\n {\n parser: {\n type: 'geojson',\n featureId,\n },\n },\n );\n\n return {\n features,\n featureId,\n vectorTileLayer,\n source,\n };\n }\n }\n\n public createLayer(tileLayerOption: ILayerTileConfig) {\n const {\n L7Layer,\n tile,\n initOptions,\n vectorTileLayer,\n source,\n } = tileLayerOption;\n const { mask, color, layerType, size, shape } = initOptions;\n const FactoryTileLayer = L7Layer ? L7Layer : VectorLayer;\n const layer = new FactoryTileLayer({\n visible: tile.isVisible,\n tileOrigin: vectorTileLayer?.l7TileOrigin,\n coord: vectorTileLayer?.l7TileCoord,\n ...this.getLayerInitOption(initOptions),\n });\n // vector layer set config\n if (layer.isVector) {\n this.emitEvent([layer]);\n layer.type = layerType;\n layer.select(true);\n }\n\n // set source\n layer.source(source);\n\n // set scale attribute field\n this.setStyleAttributeField(layer, 'shape', shape);\n this.setStyleAttributeField(layer, 'color', color);\n this.setStyleAttributeField(layer, 'size', size);\n\n // set mask\n const layers = [layer];\n if (mask && layer.isVector) {\n const masklayer = new MaskLayer()\n .source({\n type: 'FeatureCollection',\n features: [tile.bboxPolygon],\n })\n .shape('fill');\n\n layers.push(masklayer as VectorLayer);\n\n layer.addMaskLayer(masklayer);\n }\n // regist layer\n registerLayers(this.parentLayer, layers);\n\n this.layers = [layer];\n\n return layer;\n }\n\n public updateStyle(styles: ITileStyles) {\n return '';\n }\n\n public getDefautStyleAttributeField(layer: ILayer, type: string) {\n switch (type) {\n case 'size':\n return 2;\n case 'color':\n return '#fff';\n case 'shape':\n return getLayerShape(this.parentLayer.type, layer);\n default:\n return '';\n }\n }\n\n public setStyleAttributeField(\n layer: ILayer,\n type: ScaleAttributeType,\n value: IScaleValue | undefined | string | string[],\n ) {\n if (Array.isArray(value)) {\n // @ts-ignore\n layer[type](...value);\n return;\n }\n if (typeof value === 'string') {\n layer[type](value);\n return;\n }\n const defaultValue = this.getDefautStyleAttributeField(layer, type);\n if (!value) {\n layer[type](defaultValue);\n return layer;\n }\n const params = this.parseScaleValue(value, type);\n if (params.length === 0) {\n layer[type](defaultValue);\n } else {\n // @ts-ignore\n layer[type](...params);\n }\n }\n\n protected parseScaleValue(value: IScaleValue | string, type: string) {\n if (type === 'shape') {\n if (typeof value === 'string') {\n return [value];\n } else if (value?.field) {\n return [value?.field];\n } else {\n return [];\n }\n }\n const { field, values, callback } = value as IScaleValue;\n if (field && values && Array.isArray(values)) {\n return [field, values];\n } else if (field && callback) {\n return [field, callback];\n } else if (field) {\n return [field];\n }\n return [];\n }\n\n protected getTile(lng: number, lat: number) {\n const zoom = this.mapService.getZoom();\n const z = Math.ceil(zoom) + this.zoomOffset;\n const xy = osmLonLat2TileXY(lng, lat, z);\n\n const tiles = this.tilesetManager.tiles.filter(\n (t) => t.key === `${xy[0]},${xy[1]},${z}`,\n );\n const tile = tiles[0];\n return tile;\n }\n\n protected emitEvent(layers: ILayer[], isVector?: boolean) {\n layers.map((layer) => {\n layer.once('inited', () => {\n layer.on('click', (e) => {\n this.eventCache.click = 1;\n if (this.parentLayer.type === 'RasterLayer') {\n const { lng, lat } = e.lngLat;\n const tile = this.getTile(lng, lat);\n this.getFeatureAndEmitEvent(\n layer,\n 'subLayerClick',\n e,\n isVector,\n tile,\n );\n } else {\n this.getFeatureAndEmitEvent(layer, 'subLayerClick', e);\n }\n });\n\n layer.on('mousemove', (e) => {\n this.eventCache.mousemove = 1;\n if (this.parentLayer.type === 'RasterLayer') {\n const { lng, lat } = e.lngLat;\n const tile = this.getTile(lng, lat);\n this.getFeatureAndEmitEvent(\n layer,\n 'subLayerMouseMove',\n e,\n isVector,\n tile,\n );\n } else {\n this.getFeatureAndEmitEvent(layer, 'subLayerMouseMove', e);\n }\n });\n layer.on('mouseup', (e) => {\n this.eventCache.mouseup = 1;\n this.getFeatureAndEmitEvent(layer, 'subLayerMouseUp', e);\n });\n layer.on('mouseenter', (e) => {\n if (this.parentLayer.type === 'RasterLayer') {\n const { lng, lat } = e.lngLat;\n const tile = this.getTile(lng, lat);\n this.getFeatureAndEmitEvent(\n layer,\n 'subLayerMouseMove',\n e,\n isVector,\n tile,\n );\n } else {\n this.getFeatureAndEmitEvent(layer, 'subLayerMouseEnter', e);\n }\n });\n layer.on('mouseout', (e) => {\n this.getFeatureAndEmitEvent(layer, 'subLayerMouseOut', e);\n });\n layer.on('mousedown', (e) => {\n this.eventCache.mousedown = 1;\n this.getFeatureAndEmitEvent(layer, 'subLayerMouseDown', e);\n });\n layer.on('contextmenu', (e) => {\n this.eventCache.contextmenu = 1;\n this.getFeatureAndEmitEvent(layer, 'subLayerContextmenu', e);\n });\n\n // out side\n layer.on('unclick', (e) =>\n this.handleOutsideEvent('click', 'subLayerUnClick', layer, e),\n );\n layer.on('unmouseup', (e) =>\n this.handleOutsideEvent('mouseup', 'subLayerUnMouseUp', layer, e),\n );\n layer.on('unmousedown', (e) =>\n this.handleOutsideEvent('mousedown', 'subLayerUnMouseDown', layer, e),\n );\n layer.on('uncontextmenu', (e) =>\n this.handleOutsideEvent(\n 'contextmenu',\n 'subLayerUnContextmenu',\n layer,\n e,\n ),\n );\n });\n });\n }\n\n protected getCombineFeature(features: IParseDataItem[]) {\n let p: any = null;\n const properties = features[0];\n features.map((feature) => {\n const polygon = turf.polygon(feature.coordinates);\n if (p === null) {\n p = polygon;\n }\n {\n p = union(p, polygon);\n }\n });\n if (properties) {\n p.properties = { ...properties };\n }\n return p;\n }\n\n protected getFeatureAndEmitEvent(\n layer: ILayer,\n eventName: string,\n e: any,\n isVector?: boolean,\n tile?: any,\n ) {\n if (isVector === false) {\n // raster tile get rgb\n // e.pickedColors = readPixel(e.x, e.y, this.rendererService);\n // raster tile origin value\n e.value = readRasterValue(tile, this.mapService, e.x, e.y);\n } else {\n // VectorLayer\n const featureId = e.featureId;\n const features = this.getAllFeatures(featureId);\n try {\n e.feature = this.getCombineFeature(features);\n } catch (err) {\n console.warn('Combine Featuer Err! Return First Feature!');\n e.feature = features[0];\n }\n }\n this.parentLayer.emit(eventName, e);\n }\n\n private getAllFeatures(featureId: number) {\n const allLayers: ILayer[] = this.parentLayer.tileLayer.children;\n const features: IParseDataItem[] = [];\n allLayers.map((layer) => {\n const source = layer.getSource();\n source.data.dataArray.map((feature) => {\n if (feature._id === featureId) {\n features.push(feature);\n }\n });\n });\n return features;\n }\n\n private getLayerInitOption(initOptions: ISubLayerInitOptions) {\n const option = { ...initOptions };\n delete option.color;\n delete option.shape;\n delete option.size;\n delete option.coords;\n delete option.sourceLayer;\n delete option.coords;\n return option;\n }\n\n private handleOutsideEvent(\n type: CacheEvent,\n emitType: string,\n layer: ILayer,\n e: any,\n ) {\n if (this.outSideEventTimer) {\n clearTimeout(this.outSideEventTimer);\n this.outSideEventTimer = null;\n }\n this.outSideEventTimer = setTimeout(() => {\n if (this.eventCache[type] > 0) {\n this.eventCache[type] = 0;\n } else {\n this.getFeatureAndEmitEvent(layer, emitType, e);\n }\n }, 64);\n }\n}\n"],"file":"base.js"}
1
+ {"version":3,"sources":["../../../src/tile/tileFactory/base.ts"],"names":["Source","osmLonLat2TileXY","MaskLayer","getLayerShape","readRasterValue","registerLayers","VectorLayer","turf","union","TileFactory","option","click","mousemove","mouseup","mousedown","contextmenu","parentLayer","parent","mapService","rendererService","source","getSource","zoomOffset","parser","tilesetManager","tileset","tile","initOptions","layers","layerIDList","emptyData","features","featureId","vectorTileLayer","sourceLayer","data","Array","isArray","length","type","tileLayerOption","L7Layer","mask","color","layerType","size","shape","FactoryTileLayer","layer","visible","isVisible","tileOrigin","l7TileOrigin","coord","l7TileCoord","getLayerInitOption","isVector","emitEvent","select","setScale","setStyleAttributeField","masklayer","bboxPolygon","push","addMaskLayer","styles","value","defaultValue","getDefautStyleAttributeField","params","parseScaleValue","field","values","callback","lng","lat","zoom","getZoom","z","Math","ceil","xy","tiles","filter","t","key","map","once","on","e","eventCache","lngLat","getTile","getFeatureAndEmitEvent","handleOutsideEvent","p","properties","feature","polygon","coordinates","eventName","x","y","getAllFeatures","getCombineFeature","err","console","warn","emit","scaleOptions","tileLayer","scaleField","scaleKeys","Object","keys","scale","allLayers","children","dataArray","_id","coords","emitType","outSideEventTimer","clearTimeout","setTimeout"],"mappings":"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","sourcesContent":["import {\n ILayer,\n IMapService,\n IParseDataItem,\n IRendererService,\n IScaleValue,\n ISubLayerInitOptions,\n ScaleAttributeType,\n} from '@antv/l7-core';\nimport Source from '@antv/l7-source';\nimport { osmLonLat2TileXY, Tile, TilesetManager } from '@antv/l7-utils';\nimport MaskLayer from '../../mask';\nimport {\n getLayerShape,\n readPixel,\n readRasterValue,\n registerLayers,\n} from '../utils';\nimport VectorLayer from './vectorLayer';\n\nimport * as turf from '@turf/helpers';\nimport union from '@turf/union';\nimport {\n CacheEvent,\n ILayerTileConfig,\n ITileFactory,\n ITileFactoryOptions,\n ITileStyles,\n Timeout,\n} from '../interface';\n\nexport default class TileFactory implements ITileFactory {\n public type: string;\n public parentLayer: ILayer;\n public mapService: IMapService;\n public rendererService: IRendererService;\n public outSideEventTimer: Timeout | null = null;\n protected zoomOffset: number;\n protected tilesetManager: TilesetManager;\n protected layers: ILayer[];\n // 用于记录图层内事件,辅助判断图层外事件逻辑\n private eventCache = {\n click: 0,\n mousemove: 0,\n mouseup: 0,\n mousedown: 0,\n contextmenu: 0,\n };\n constructor(option: ITileFactoryOptions) {\n this.parentLayer = option.parent;\n this.mapService = option.mapService;\n this.rendererService = option.rendererService;\n\n const source = this.parentLayer.getSource();\n this.zoomOffset = source.parser.zoomOffset || 0;\n this.tilesetManager = source.tileset as TilesetManager;\n }\n\n public createTile(tile: Tile, initOptions: ISubLayerInitOptions) {\n return {\n layers: [] as ILayer[],\n layerIDList: [] as string[],\n };\n }\n\n public getFeatureData(tile: Tile, initOptions: ISubLayerInitOptions) {\n const emptyData = {\n features: [],\n featureId: null,\n vectorTileLayer: null,\n source: null,\n };\n const { sourceLayer, featureId } = initOptions;\n if (!sourceLayer) {\n return emptyData;\n }\n const vectorTileLayer = tile.data.layers[sourceLayer];\n const features = vectorTileLayer?.features;\n if (!(Array.isArray(features) && features.length > 0)) {\n return emptyData;\n } else {\n const source = new Source(\n {\n type: 'FeatureCollection',\n features,\n },\n {\n parser: {\n type: 'geojson',\n featureId,\n },\n },\n );\n\n return {\n features,\n featureId,\n vectorTileLayer,\n source,\n };\n }\n }\n\n public createLayer(tileLayerOption: ILayerTileConfig) {\n const {\n L7Layer,\n tile,\n initOptions,\n vectorTileLayer,\n source,\n } = tileLayerOption;\n const { mask, color, layerType, size, shape } = initOptions;\n const FactoryTileLayer = L7Layer ? L7Layer : VectorLayer;\n const layer = new FactoryTileLayer({\n visible: tile.isVisible,\n tileOrigin: vectorTileLayer?.l7TileOrigin,\n coord: vectorTileLayer?.l7TileCoord,\n ...this.getLayerInitOption(initOptions),\n });\n // vector layer set config\n if (layer.isVector) {\n this.emitEvent([layer]);\n layer.type = layerType;\n layer.select(true);\n }\n\n // set source\n layer.source(source);\n\n // set scale\n this.setScale(layer);\n // console.log(this.parentLayer.getScaleOptions())\n // console.log()\n\n // console.log(this.parentLayer.tileLayer.scaleCfg)\n\n // set scale attribute field\n this.setStyleAttributeField(layer, 'shape', shape);\n this.setStyleAttributeField(layer, 'color', color);\n this.setStyleAttributeField(layer, 'size', size);\n\n // set mask\n const layers = [layer];\n if (mask && layer.isVector) {\n const masklayer = new MaskLayer()\n .source({\n type: 'FeatureCollection',\n features: [tile.bboxPolygon],\n })\n .shape('fill');\n\n layers.push(masklayer as VectorLayer);\n\n layer.addMaskLayer(masklayer);\n }\n // regist layer\n registerLayers(this.parentLayer, layers);\n\n this.layers = [layer];\n\n return layer;\n }\n\n public updateStyle(styles: ITileStyles) {\n return '';\n }\n\n public getDefautStyleAttributeField(layer: ILayer, type: string) {\n switch (type) {\n case 'size':\n return 2;\n case 'color':\n return '#fff';\n case 'shape':\n return getLayerShape(this.parentLayer.type, layer);\n default:\n return '';\n }\n }\n\n public setStyleAttributeField(\n layer: ILayer,\n type: ScaleAttributeType,\n value: IScaleValue | undefined | string | string[],\n ) {\n if (Array.isArray(value)) {\n // @ts-ignore\n layer[type](...value);\n return;\n }\n if (typeof value === 'string') {\n layer[type](value);\n return;\n }\n const defaultValue = this.getDefautStyleAttributeField(layer, type);\n if (!value) {\n layer[type](defaultValue);\n return layer;\n }\n const params = this.parseScaleValue(value, type);\n if (params.length === 0) {\n layer[type](defaultValue);\n } else {\n // @ts-ignore\n layer[type](...params);\n }\n }\n\n protected parseScaleValue(value: IScaleValue | string, type: string) {\n if (type === 'shape') {\n if (typeof value === 'string') {\n return [value];\n } else if (value?.field) {\n return [value?.field];\n } else {\n return [];\n }\n }\n const { field, values, callback } = value as IScaleValue;\n if (field && values && Array.isArray(values)) {\n return [field, values];\n } else if (field && callback) {\n return [field, callback];\n } else if (field) {\n return [field];\n }\n return [];\n }\n\n protected getTile(lng: number, lat: number) {\n const zoom = this.mapService.getZoom();\n const z = Math.ceil(zoom) + this.zoomOffset;\n const xy = osmLonLat2TileXY(lng, lat, z);\n\n const tiles = this.tilesetManager.tiles.filter(\n (t) => t.key === `${xy[0]},${xy[1]},${z}`,\n );\n const tile = tiles[0];\n return tile;\n }\n\n protected emitEvent(layers: ILayer[], isVector?: boolean) {\n layers.map((layer) => {\n layer.once('inited', () => {\n layer.on('click', (e) => {\n this.eventCache.click = 1;\n if (this.parentLayer.type === 'RasterLayer') {\n const { lng, lat } = e.lngLat;\n const tile = this.getTile(lng, lat);\n this.getFeatureAndEmitEvent(\n layer,\n 'subLayerClick',\n e,\n isVector,\n tile,\n );\n } else {\n this.getFeatureAndEmitEvent(layer, 'subLayerClick', e);\n }\n });\n\n layer.on('mousemove', (e) => {\n this.eventCache.mousemove = 1;\n if (this.parentLayer.type === 'RasterLayer') {\n const { lng, lat } = e.lngLat;\n const tile = this.getTile(lng, lat);\n this.getFeatureAndEmitEvent(\n layer,\n 'subLayerMouseMove',\n e,\n isVector,\n tile,\n );\n } else {\n this.getFeatureAndEmitEvent(layer, 'subLayerMouseMove', e);\n }\n });\n layer.on('mouseup', (e) => {\n this.eventCache.mouseup = 1;\n this.getFeatureAndEmitEvent(layer, 'subLayerMouseUp', e);\n });\n layer.on('mouseenter', (e) => {\n if (this.parentLayer.type === 'RasterLayer') {\n const { lng, lat } = e.lngLat;\n const tile = this.getTile(lng, lat);\n this.getFeatureAndEmitEvent(\n layer,\n 'subLayerMouseMove',\n e,\n isVector,\n tile,\n );\n } else {\n this.getFeatureAndEmitEvent(layer, 'subLayerMouseEnter', e);\n }\n });\n layer.on('mouseout', (e) => {\n this.getFeatureAndEmitEvent(layer, 'subLayerMouseOut', e);\n });\n layer.on('mousedown', (e) => {\n this.eventCache.mousedown = 1;\n this.getFeatureAndEmitEvent(layer, 'subLayerMouseDown', e);\n });\n layer.on('contextmenu', (e) => {\n this.eventCache.contextmenu = 1;\n this.getFeatureAndEmitEvent(layer, 'subLayerContextmenu', e);\n });\n\n // out side\n layer.on('unclick', (e) =>\n this.handleOutsideEvent('click', 'subLayerUnClick', layer, e),\n );\n layer.on('unmouseup', (e) =>\n this.handleOutsideEvent('mouseup', 'subLayerUnMouseUp', layer, e),\n );\n layer.on('unmousedown', (e) =>\n this.handleOutsideEvent('mousedown', 'subLayerUnMouseDown', layer, e),\n );\n layer.on('uncontextmenu', (e) =>\n this.handleOutsideEvent(\n 'contextmenu',\n 'subLayerUnContextmenu',\n layer,\n e,\n ),\n );\n });\n });\n }\n\n protected getCombineFeature(features: IParseDataItem[]) {\n let p: any = null;\n const properties = features[0];\n features.map((feature) => {\n const polygon = turf.polygon(feature.coordinates);\n if (p === null) {\n p = polygon;\n }\n {\n p = union(p, polygon);\n }\n });\n if (properties) {\n p.properties = { ...properties };\n }\n return p;\n }\n\n protected getFeatureAndEmitEvent(\n layer: ILayer,\n eventName: string,\n e: any,\n isVector?: boolean,\n tile?: any,\n ) {\n if (isVector === false) {\n // raster tile get rgb\n // e.pickedColors = readPixel(e.x, e.y, this.rendererService);\n // raster tile origin value\n e.value = readRasterValue(tile, this.mapService, e.x, e.y);\n } else {\n // VectorLayer\n const featureId = e.featureId;\n const features = this.getAllFeatures(featureId);\n try {\n e.feature = this.getCombineFeature(features);\n } catch (err) {\n console.warn('Combine Featuer Err! Return First Feature!');\n e.feature = features[0];\n }\n }\n this.parentLayer.emit(eventName, e);\n }\n\n private setScale(layer: ILayer) {\n const scaleOptions = this.parentLayer.tileLayer.scaleField;\n const scaleKeys = Object.keys(scaleOptions);\n scaleKeys.map((key) => {\n layer.scale(key, scaleOptions[key]);\n });\n }\n\n private getAllFeatures(featureId: number) {\n const allLayers: ILayer[] = this.parentLayer.tileLayer.children;\n const features: IParseDataItem[] = [];\n allLayers.map((layer) => {\n const source = layer.getSource();\n source.data.dataArray.map((feature) => {\n if (feature._id === featureId) {\n features.push(feature);\n }\n });\n });\n return features;\n }\n\n private getLayerInitOption(initOptions: ISubLayerInitOptions) {\n const option = { ...initOptions };\n delete option.color;\n delete option.shape;\n delete option.size;\n delete option.coords;\n delete option.sourceLayer;\n delete option.coords;\n return option;\n }\n\n private handleOutsideEvent(\n type: CacheEvent,\n emitType: string,\n layer: ILayer,\n e: any,\n ) {\n if (this.outSideEventTimer) {\n clearTimeout(this.outSideEventTimer);\n this.outSideEventTimer = null;\n }\n this.outSideEventTimer = setTimeout(() => {\n if (this.eventCache[type] > 0) {\n this.eventCache[type] = 0;\n } else {\n this.getFeatureAndEmitEvent(layer, emitType, e);\n }\n }, 64);\n }\n}\n"],"file":"base.js"}
@@ -40,16 +40,26 @@ var RasterTiffTile = function (_TileFactory) {
40
40
  clampHigh = initOptions.clampHigh,
41
41
  clampLow = initOptions.clampLow,
42
42
  rampColors = initOptions.rampColors,
43
+ rampColorsData = initOptions.rampColorsData,
43
44
  mask = initOptions.mask;
44
- var tiffdata = tile.data;
45
+ var rasterdata = tile.data;
46
+
47
+ if (!rasterdata.data) {
48
+ console.warn('raster data not exist!');
49
+ return {
50
+ layers: [],
51
+ layerIDList: []
52
+ };
53
+ }
54
+
45
55
  var layer = new RasterDataLayer({
46
56
  visible: tile.isVisible,
47
57
  mask: mask
48
- }).source(tiffdata.data, {
58
+ }).source(rasterdata.data, {
49
59
  parser: {
50
60
  type: 'raster',
51
- width: tiffdata.width,
52
- height: tiffdata.height,
61
+ width: rasterdata.width,
62
+ height: rasterdata.height,
53
63
  extent: tile.bboxPolygon.bbox
54
64
  }
55
65
  }).style({
@@ -57,7 +67,8 @@ var RasterTiffTile = function (_TileFactory) {
57
67
  domain: domain,
58
68
  clampHigh: clampHigh,
59
69
  clampLow: clampLow,
60
- rampColors: rampColors
70
+ rampColors: rampColors,
71
+ rampColorsData: rampColorsData
61
72
  });
62
73
  this.emitEvent([layer], false);
63
74
  registerLayers(this.parentLayer, [layer]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tile/tileFactory/rasterData.ts"],"names":["registerLayers","TileFactory","RasterDataLayer","RasterTiffTile","option","parentLayer","parent","tile","initOptions","opacity","domain","clampHigh","clampLow","rampColors","mask","tiffdata","data","layer","visible","isVisible","source","parser","type","width","height","extent","bboxPolygon","bbox","style","emitEvent","layers","layerIDList","id"],"mappings":";;;;;;;;;;;;AAGA,SAASA,cAAT,QAA+B,UAA/B;AACA,OAAOC,WAAP,MAAwB,QAAxB;AACA,OAAOC,eAAP,MAA4B,mBAA5B;;IAEqBC,c;;;;;AAGnB,0BAAYC,MAAZ,EAAyC;AAAA;;AAAA;;AACvC,8BAAMA,MAAN;;AADuC;;AAEvC,UAAKC,WAAL,GAAmBD,MAAM,CAACE,MAA1B;AAFuC;AAGxC;;;;WAED,oBAAkBC,IAAlB,EAA8BC,WAA9B,EAAiE;AAC/D,UACEC,OADF,GAOID,WAPJ,CACEC,OADF;AAAA,UAEEC,MAFF,GAOIF,WAPJ,CAEEE,MAFF;AAAA,UAGEC,SAHF,GAOIH,WAPJ,CAGEG,SAHF;AAAA,UAIEC,QAJF,GAOIJ,WAPJ,CAIEI,QAJF;AAAA,UAKEC,UALF,GAOIL,WAPJ,CAKEK,UALF;AAAA,UAMEC,IANF,GAOIN,WAPJ,CAMEM,IANF;AAQA,UAAMC,QAAQ,GAAGR,IAAI,CAACS,IAAtB;AACA,UAAMC,KAAK,GAAG,IAAIf,eAAJ,CAAoB;AAChCgB,QAAAA,OAAO,EAAEX,IAAI,CAACY,SADkB;AAEhCL,QAAAA,IAAI,EAAJA;AAFgC,OAApB,EAIXM,MAJW,CAIJL,QAAQ,CAACC,IAJL,EAIW;AACrBK,QAAAA,MAAM,EAAE;AACNC,UAAAA,IAAI,EAAE,QADA;AAENC,UAAAA,KAAK,EAAER,QAAQ,CAACQ,KAFV;AAGNC,UAAAA,MAAM,EAAET,QAAQ,CAACS,MAHX;AAINC,UAAAA,MAAM,EAAElB,IAAI,CAACmB,WAAL,CAAiBC;AAJnB;AADa,OAJX,EAYXC,KAZW,CAYL;AACLnB,QAAAA,OAAO,EAAPA,OADK;AAELC,QAAAA,MAAM,EAANA,MAFK;AAGLC,QAAAA,SAAS,EAATA,SAHK;AAILC,QAAAA,QAAQ,EAARA,QAJK;AAKLC,QAAAA,UAAU,EAAVA;AALK,OAZK,CAAd;AAmBA,WAAKgB,SAAL,CAAe,CAACZ,KAAD,CAAf,EAAwB,KAAxB;AAEAjB,MAAAA,cAAc,CAAC,KAAKK,WAAN,EAAmB,CAACY,KAAD,CAAnB,CAAd;AAEA,aAAO;AACLa,QAAAA,MAAM,EAAE,CAACb,KAAD,CADH;AAELc,QAAAA,WAAW,EAAE,CAACd,KAAK,CAACe,EAAP;AAFR,OAAP;AAID;;;;EA7CyC/B,W;;SAAvBE,c","sourcesContent":["import { ILayer, ISubLayerInitOptions } from '@antv/l7-core';\nimport { Tile } from '@antv/l7-utils';\nimport { ITileFactoryOptions } from '../interface';\nimport { registerLayers } from '../utils';\nimport TileFactory from './base';\nimport RasterDataLayer from './rasterDataLayer';\n\nexport default class RasterTiffTile extends TileFactory {\n public parentLayer: ILayer;\n\n constructor(option: ITileFactoryOptions) {\n super(option);\n this.parentLayer = option.parent;\n }\n\n public createTile(tile: Tile, initOptions: ISubLayerInitOptions) {\n const {\n opacity,\n domain,\n clampHigh,\n clampLow,\n rampColors,\n mask,\n } = initOptions;\n const tiffdata = tile.data;\n const layer = new RasterDataLayer({\n visible: tile.isVisible,\n mask,\n })\n .source(tiffdata.data, {\n parser: {\n type: 'raster',\n width: tiffdata.width,\n height: tiffdata.height,\n extent: tile.bboxPolygon.bbox,\n },\n })\n .style({\n opacity,\n domain,\n clampHigh,\n clampLow,\n rampColors,\n });\n this.emitEvent([layer], false);\n\n registerLayers(this.parentLayer, [layer]);\n\n return {\n layers: [layer],\n layerIDList: [layer.id],\n };\n }\n}\n"],"file":"rasterData.js"}
1
+ {"version":3,"sources":["../../../src/tile/tileFactory/rasterData.ts"],"names":["registerLayers","TileFactory","RasterDataLayer","RasterTiffTile","option","parentLayer","parent","tile","initOptions","opacity","domain","clampHigh","clampLow","rampColors","rampColorsData","mask","rasterdata","data","console","warn","layers","layerIDList","layer","visible","isVisible","source","parser","type","width","height","extent","bboxPolygon","bbox","style","emitEvent","id"],"mappings":";;;;;;;;;;;;AAGA,SAASA,cAAT,QAA+B,UAA/B;AACA,OAAOC,WAAP,MAAwB,QAAxB;AACA,OAAOC,eAAP,MAA4B,mBAA5B;;IAEqBC,c;;;;;AAGnB,0BAAYC,MAAZ,EAAyC;AAAA;;AAAA;;AACvC,8BAAMA,MAAN;;AADuC;;AAEvC,UAAKC,WAAL,GAAmBD,MAAM,CAACE,MAA1B;AAFuC;AAGxC;;;;WAED,oBAAkBC,IAAlB,EAA8BC,WAA9B,EAAiE;AAC/D,UACEC,OADF,GAQID,WARJ,CACEC,OADF;AAAA,UAEEC,MAFF,GAQIF,WARJ,CAEEE,MAFF;AAAA,UAGEC,SAHF,GAQIH,WARJ,CAGEG,SAHF;AAAA,UAIEC,QAJF,GAQIJ,WARJ,CAIEI,QAJF;AAAA,UAKEC,UALF,GAQIL,WARJ,CAKEK,UALF;AAAA,UAMEC,cANF,GAQIN,WARJ,CAMEM,cANF;AAAA,UAOEC,IAPF,GAQIP,WARJ,CAOEO,IAPF;AAUA,UAAMC,UAAU,GAAGT,IAAI,CAACU,IAAxB;;AACA,UAAI,CAACD,UAAU,CAACC,IAAhB,EAAsB;AACpBC,QAAAA,OAAO,CAACC,IAAR,CAAa,wBAAb;AACA,eAAO;AACLC,UAAAA,MAAM,EAAE,EADH;AAELC,UAAAA,WAAW,EAAE;AAFR,SAAP;AAID;;AACD,UAAMC,KAAK,GAAG,IAAIpB,eAAJ,CAAoB;AAChCqB,QAAAA,OAAO,EAAEhB,IAAI,CAACiB,SADkB;AAEhCT,QAAAA,IAAI,EAAJA;AAFgC,OAApB,EAIXU,MAJW,CAIJT,UAAU,CAACC,IAJP,EAIa;AACvBS,QAAAA,MAAM,EAAE;AACNC,UAAAA,IAAI,EAAE,QADA;AAENC,UAAAA,KAAK,EAAEZ,UAAU,CAACY,KAFZ;AAGNC,UAAAA,MAAM,EAAEb,UAAU,CAACa,MAHb;AAINC,UAAAA,MAAM,EAAEvB,IAAI,CAACwB,WAAL,CAAiBC;AAJnB;AADe,OAJb,EAYXC,KAZW,CAYL;AACLxB,QAAAA,OAAO,EAAPA,OADK;AAELC,QAAAA,MAAM,EAANA,MAFK;AAGLC,QAAAA,SAAS,EAATA,SAHK;AAILC,QAAAA,QAAQ,EAARA,QAJK;AAKLC,QAAAA,UAAU,EAAVA,UALK;AAMLC,QAAAA,cAAc,EAAdA;AANK,OAZK,CAAd;AAoBA,WAAKoB,SAAL,CAAe,CAACZ,KAAD,CAAf,EAAwB,KAAxB;AAEAtB,MAAAA,cAAc,CAAC,KAAKK,WAAN,EAAmB,CAACiB,KAAD,CAAnB,CAAd;AAEA,aAAO;AACLF,QAAAA,MAAM,EAAE,CAACE,KAAD,CADH;AAELD,QAAAA,WAAW,EAAE,CAACC,KAAK,CAACa,EAAP;AAFR,OAAP;AAID;;;;EAvDyClC,W;;SAAvBE,c","sourcesContent":["import { ILayer, ISubLayerInitOptions } from '@antv/l7-core';\nimport { Tile } from '@antv/l7-utils';\nimport { ITileFactoryOptions } from '../interface';\nimport { registerLayers } from '../utils';\nimport TileFactory from './base';\nimport RasterDataLayer from './rasterDataLayer';\n\nexport default class RasterTiffTile extends TileFactory {\n public parentLayer: ILayer;\n\n constructor(option: ITileFactoryOptions) {\n super(option);\n this.parentLayer = option.parent;\n }\n\n public createTile(tile: Tile, initOptions: ISubLayerInitOptions) {\n const {\n opacity,\n domain,\n clampHigh,\n clampLow,\n rampColors,\n rampColorsData,\n mask,\n } = initOptions;\n\n const rasterdata = tile.data;\n if (!rasterdata.data) {\n console.warn('raster data not exist!');\n return {\n layers: [],\n layerIDList: [],\n };\n }\n const layer = new RasterDataLayer({\n visible: tile.isVisible,\n mask,\n })\n .source(rasterdata.data, {\n parser: {\n type: 'raster',\n width: rasterdata.width,\n height: rasterdata.height,\n extent: tile.bboxPolygon.bbox,\n },\n })\n .style({\n opacity,\n domain,\n clampHigh,\n clampLow,\n rampColors,\n rampColorsData,\n });\n this.emitEvent([layer], false);\n\n registerLayers(this.parentLayer, [layer]);\n\n return {\n layers: [layer],\n layerIDList: [layer.id],\n };\n }\n}\n"],"file":"rasterData.js"}
@@ -1,4 +1,4 @@
1
- import { IInteractionTarget, ILayer, IScale, IScaleOptions, ITileLayer, ITileLayerManager, ITileLayerOPtions } from '@antv/l7-core';
1
+ import { IInteractionTarget, ILayer, ITileLayer, ITileLayerManager, ITileLayerOPtions } from '@antv/l7-core';
2
2
  import { Tile, TilesetManager } from '@antv/l7-utils';
3
3
  export default class BaseTileLayer implements ITileLayer {
4
4
  get children(): ILayer[];
@@ -8,18 +8,13 @@ export default class BaseTileLayer implements ITileLayer {
8
8
  initedTileset: boolean;
9
9
  tilesetManager: TilesetManager | undefined;
10
10
  tileLayerManager: ITileLayerManager;
11
+ scaleField: any;
11
12
  private lastViewStates;
12
13
  private timer;
13
14
  private mapService;
14
15
  private layerService;
15
16
  private pickColors;
16
17
  constructor({ parent, rendererService, mapService, layerService, pickingService, }: ITileLayerOPtions);
17
- /**
18
- * 直接透传 scale 方法
19
- * @param field
20
- * @param cfg
21
- */
22
- scale(field: string | number | IScaleOptions, cfg?: IScale): void;
23
18
  /**
24
19
  * 渲染瓦片的图层
25
20
  */