@antv/l7-layers 2.8.34 → 2.8.37

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 (206) hide show
  1. package/es/Geometry/index.d.ts +1 -1
  2. package/es/Geometry/index.js +4 -1
  3. package/es/Geometry/index.js.map +1 -1
  4. package/es/Geometry/models/billboard.d.ts +26 -0
  5. package/es/Geometry/models/billboard.js +213 -0
  6. package/es/Geometry/models/billboard.js.map +1 -0
  7. package/es/Geometry/models/index.d.ts +1 -1
  8. package/es/Geometry/models/index.js +3 -1
  9. package/es/Geometry/models/index.js.map +1 -1
  10. package/es/Geometry/models/sprite.js +2 -2
  11. package/es/core/BaseLayer.d.ts +2 -2
  12. package/es/core/BaseLayer.js.map +1 -1
  13. package/es/core/LayerGroup.d.ts +2 -1
  14. package/es/core/LayerGroup.js +5 -0
  15. package/es/core/LayerGroup.js.map +1 -1
  16. package/es/core/interface.d.ts +29 -2
  17. package/es/core/interface.js.map +1 -1
  18. package/es/image/models/image.js.map +1 -1
  19. package/es/index.d.ts +2 -2
  20. package/es/index.js +2 -2
  21. package/es/index.js.map +1 -1
  22. package/es/line/models/arc.js +4 -4
  23. package/es/line/models/arc.js.map +1 -1
  24. package/es/line/models/arc_3d.js +4 -5
  25. package/es/line/models/arc_3d.js.map +1 -1
  26. package/es/line/models/arcmini.js +5 -5
  27. package/es/line/models/arcmini.js.map +1 -1
  28. package/es/line/models/great_circle.js +3 -3
  29. package/es/line/models/great_circle.js.map +1 -1
  30. package/es/line/models/line.js +3 -3
  31. package/es/line/models/line.js.map +1 -1
  32. package/es/line/models/linearline.js +3 -3
  33. package/es/line/models/linearline.js.map +1 -1
  34. package/es/line/models/simpleLine.js +8 -8
  35. package/es/line/models/simpleLine.js.map +1 -1
  36. package/es/line/models/wall.js +5 -5
  37. package/es/line/models/wall.js.map +1 -1
  38. package/es/mask/index.d.ts +1 -4
  39. package/es/mask/index.js.map +1 -1
  40. package/es/mask/models/fill.js.map +1 -1
  41. package/es/plugins/DataMappingPlugin.d.ts +1 -0
  42. package/es/plugins/DataMappingPlugin.js +17 -9
  43. package/es/plugins/DataMappingPlugin.js.map +1 -1
  44. package/es/plugins/FeatureScalePlugin.d.ts +1 -2
  45. package/es/plugins/FeatureScalePlugin.js +42 -33
  46. package/es/plugins/FeatureScalePlugin.js.map +1 -1
  47. package/es/plugins/ShaderUniformPlugin.d.ts +1 -0
  48. package/es/plugins/ShaderUniformPlugin.js +12 -0
  49. package/es/plugins/ShaderUniformPlugin.js.map +1 -1
  50. package/es/point/models/extrude.js +3 -4
  51. package/es/point/models/extrude.js.map +1 -1
  52. package/es/point/models/fill.js +3 -4
  53. package/es/point/models/fill.js.map +1 -1
  54. package/es/point/models/fillmage.d.ts +1 -1
  55. package/es/point/models/fillmage.js +6 -21
  56. package/es/point/models/fillmage.js.map +1 -1
  57. package/es/point/models/icon-font.js +1 -1
  58. package/es/point/models/image.js +4 -4
  59. package/es/point/models/image.js.map +1 -1
  60. package/es/point/models/normal.js +1 -2
  61. package/es/point/models/normal.js.map +1 -1
  62. package/es/point/models/radar.js +5 -18
  63. package/es/point/models/radar.js.map +1 -1
  64. package/es/point/models/simplePoint.js +5 -6
  65. package/es/point/models/simplePoint.js.map +1 -1
  66. package/es/point/models/text.js +4 -4
  67. package/es/point/models/text.js.map +1 -1
  68. package/es/polygon/models/extrude.js +3 -4
  69. package/es/polygon/models/extrude.js.map +1 -1
  70. package/es/polygon/models/fill.d.ts +1 -0
  71. package/es/polygon/models/fill.js +37 -12
  72. package/es/polygon/models/fill.js.map +1 -1
  73. package/es/polygon/models/ocean.js +3 -4
  74. package/es/polygon/models/ocean.js.map +1 -1
  75. package/es/polygon/models/water.js +3 -4
  76. package/es/polygon/models/water.js.map +1 -1
  77. package/es/raster/index.d.ts +3 -3
  78. package/es/raster/index.js +16 -6
  79. package/es/raster/index.js.map +1 -1
  80. package/es/raster/models/index.d.ts +1 -1
  81. package/es/raster/models/index.js +3 -1
  82. package/es/raster/models/index.js.map +1 -1
  83. package/es/raster/models/raste-tile.d.ts +23 -0
  84. package/es/raster/models/raste-tile.js +285 -0
  85. package/es/raster/models/raste-tile.js.map +1 -0
  86. package/es/raster/models/raster.js +2 -0
  87. package/es/raster/models/raster.js.map +1 -1
  88. package/es/wind/index.d.ts +1 -17
  89. package/es/wind/index.js.map +1 -1
  90. package/es/wind/models/utils.d.ts +12 -12
  91. package/es/wind/models/utils.js +6 -5
  92. package/es/wind/models/utils.js.map +1 -1
  93. package/es/wind/models/wind.js.map +1 -1
  94. package/es/wind/models/windRender.js.map +1 -1
  95. package/lib/Geometry/index.js +4 -1
  96. package/lib/Geometry/index.js.map +1 -1
  97. package/lib/Geometry/models/billboard.js +227 -0
  98. package/lib/Geometry/models/billboard.js.map +1 -0
  99. package/lib/Geometry/models/index.js +4 -1
  100. package/lib/Geometry/models/index.js.map +1 -1
  101. package/lib/Geometry/models/sprite.js +2 -2
  102. package/lib/core/BaseLayer.js.map +1 -1
  103. package/lib/core/LayerGroup.js +5 -0
  104. package/lib/core/LayerGroup.js.map +1 -1
  105. package/lib/core/interface.js.map +1 -1
  106. package/lib/image/models/image.js.map +1 -1
  107. package/lib/index.js +29 -8
  108. package/lib/index.js.map +1 -1
  109. package/lib/line/models/arc.js +4 -5
  110. package/lib/line/models/arc.js.map +1 -1
  111. package/lib/line/models/arc_3d.js +4 -6
  112. package/lib/line/models/arc_3d.js.map +1 -1
  113. package/lib/line/models/arcmini.js +5 -6
  114. package/lib/line/models/arcmini.js.map +1 -1
  115. package/lib/line/models/great_circle.js +3 -4
  116. package/lib/line/models/great_circle.js.map +1 -1
  117. package/lib/line/models/line.js +3 -4
  118. package/lib/line/models/line.js.map +1 -1
  119. package/lib/line/models/linearline.js +3 -4
  120. package/lib/line/models/linearline.js.map +1 -1
  121. package/lib/line/models/simpleLine.js +8 -9
  122. package/lib/line/models/simpleLine.js.map +1 -1
  123. package/lib/line/models/wall.js +5 -6
  124. package/lib/line/models/wall.js.map +1 -1
  125. package/lib/mask/index.js.map +1 -1
  126. package/lib/mask/models/fill.js.map +1 -1
  127. package/lib/plugins/DataMappingPlugin.js +17 -9
  128. package/lib/plugins/DataMappingPlugin.js.map +1 -1
  129. package/lib/plugins/FeatureScalePlugin.js +43 -33
  130. package/lib/plugins/FeatureScalePlugin.js.map +1 -1
  131. package/lib/plugins/ShaderUniformPlugin.js +12 -0
  132. package/lib/plugins/ShaderUniformPlugin.js.map +1 -1
  133. package/lib/point/models/extrude.js +3 -5
  134. package/lib/point/models/extrude.js.map +1 -1
  135. package/lib/point/models/fill.js +3 -5
  136. package/lib/point/models/fill.js.map +1 -1
  137. package/lib/point/models/fillmage.js +7 -23
  138. package/lib/point/models/fillmage.js.map +1 -1
  139. package/lib/point/models/icon-font.js +1 -1
  140. package/lib/point/models/image.js +4 -5
  141. package/lib/point/models/image.js.map +1 -1
  142. package/lib/point/models/normal.js +1 -3
  143. package/lib/point/models/normal.js.map +1 -1
  144. package/lib/point/models/radar.js +5 -19
  145. package/lib/point/models/radar.js.map +1 -1
  146. package/lib/point/models/simplePoint.js +5 -7
  147. package/lib/point/models/simplePoint.js.map +1 -1
  148. package/lib/point/models/text.js +4 -5
  149. package/lib/point/models/text.js.map +1 -1
  150. package/lib/polygon/models/extrude.js +3 -5
  151. package/lib/polygon/models/extrude.js.map +1 -1
  152. package/lib/polygon/models/fill.js +37 -13
  153. package/lib/polygon/models/fill.js.map +1 -1
  154. package/lib/polygon/models/ocean.js +3 -5
  155. package/lib/polygon/models/ocean.js.map +1 -1
  156. package/lib/polygon/models/water.js +3 -5
  157. package/lib/polygon/models/water.js.map +1 -1
  158. package/lib/raster/index.js +16 -6
  159. package/lib/raster/index.js.map +1 -1
  160. package/lib/raster/models/index.js +4 -1
  161. package/lib/raster/models/index.js.map +1 -1
  162. package/lib/raster/models/raste-tile.js +294 -0
  163. package/lib/raster/models/raste-tile.js.map +1 -0
  164. package/lib/raster/models/raster.js +2 -0
  165. package/lib/raster/models/raster.js.map +1 -1
  166. package/lib/wind/index.js.map +1 -1
  167. package/lib/wind/models/utils.js +6 -5
  168. package/lib/wind/models/utils.js.map +1 -1
  169. package/lib/wind/models/wind.js.map +1 -1
  170. package/lib/wind/models/windRender.js.map +1 -1
  171. package/package.json +7 -6
  172. package/es/imagetile/index.d.ts +0 -22
  173. package/es/imagetile/index.js +0 -82
  174. package/es/imagetile/index.js.map +0 -1
  175. package/es/imagetile/models/imagetile.d.ts +0 -12
  176. package/es/imagetile/models/imagetile.js +0 -133
  177. package/es/imagetile/models/imagetile.js.map +0 -1
  178. package/es/imagetile/models/index.d.ts +0 -5
  179. package/es/imagetile/models/index.js +0 -6
  180. package/es/imagetile/models/index.js.map +0 -1
  181. package/es/imagetile/utils/ImageTile.d.ts +0 -20
  182. package/es/imagetile/utils/ImageTile.js +0 -92
  183. package/es/imagetile/utils/ImageTile.js.map +0 -1
  184. package/es/imagetile/utils/Tile.d.ts +0 -27
  185. package/es/imagetile/utils/Tile.js +0 -313
  186. package/es/imagetile/utils/Tile.js.map +0 -1
  187. package/es/imagetile/utils/lruCache.d.ts +0 -20
  188. package/es/imagetile/utils/lruCache.js +0 -105
  189. package/es/imagetile/utils/lruCache.js.map +0 -1
  190. package/es/imagetile/utils/tileCache.d.ts +0 -8
  191. package/es/imagetile/utils/tileCache.js +0 -50
  192. package/es/imagetile/utils/tileCache.js.map +0 -1
  193. package/lib/imagetile/index.js +0 -95
  194. package/lib/imagetile/index.js.map +0 -1
  195. package/lib/imagetile/models/imagetile.js +0 -146
  196. package/lib/imagetile/models/imagetile.js.map +0 -1
  197. package/lib/imagetile/models/index.js +0 -17
  198. package/lib/imagetile/models/index.js.map +0 -1
  199. package/lib/imagetile/utils/ImageTile.js +0 -101
  200. package/lib/imagetile/utils/ImageTile.js.map +0 -1
  201. package/lib/imagetile/utils/Tile.js +0 -316
  202. package/lib/imagetile/utils/Tile.js.map +0 -1
  203. package/lib/imagetile/utils/lruCache.js +0 -109
  204. package/lib/imagetile/utils/lruCache.js.map +0 -1
  205. package/lib/imagetile/utils/tileCache.js +0 -58
  206. package/lib/imagetile/utils/tileCache.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/line/models/linearline.ts"],"names":["AttributeType","gl","generateColorRamp","getMask","BaseModel","LineTriangulation","LinearLineModel","createTexture2D","rendererService","colorTexture","destroy","layer","getLayerConfig","rampColors","imageData","data","Uint8Array","width","height","wrapS","CLAMP_TO_EDGE","wrapT","min","NEAREST","mag","flipY","opacity","vertexHeightScale","raisingHeight","heightfixed","getDirty","bind","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","length","format","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_texture","u_heightfixed","Number","u_vertexScale","u_raisingHeight","updateTexture","buildModels","mask","maskInside","depth","getShaders","frag","vert","triangulation","buildLayerModel","moduleName","vertexShader","fragmentShader","primitive","TRIANGLES","blend","getBlend","enable","stencil","linear_line_frag","linear_line_vert","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx","normal","vertexIndex","undefined","DYNAMIC_DRAW","Array","isArray"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAnimateOption,\n IEncodeFeature,\n IImage,\n ILayerConfig,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\n\nimport { generateColorRamp, getMask, IColorRamp } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { ILineLayerStyleOptions } from '../../core/interface';\nimport { LineTriangulation } from '../../core/triangulation';\nimport linear_line_frag from '../shaders/linearLine/line_linear_frag.glsl';\nimport linear_line_vert from '../shaders/linearLine/line_linear_vert.glsl';\n\nexport default class LinearLineModel extends BaseModel {\n protected colorTexture: ITexture2D;\n public getUninforms(): IModelUniform {\n const {\n opacity,\n vertexHeightScale = 20.0,\n raisingHeight = 0,\n heightfixed = false,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n if (this.rendererService.getDirty()) {\n this.colorTexture.bind();\n }\n\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n // 纹理支持参数\n u_texture: this.colorTexture, // 贴图\n\n // 是否固定高度\n u_heightfixed: Number(heightfixed),\n\n // 顶点高度 scale\n u_vertexScale: vertexHeightScale,\n u_raisingHeight: Number(raisingHeight),\n };\n }\n\n public initModels(): IModel[] {\n this.updateTexture();\n return this.buildModels();\n }\n\n public clearModels() {\n this.colorTexture?.destroy();\n this.dataTexture?.destroy();\n }\n\n public buildModels(): IModel[] {\n const {\n mask = false,\n maskInside = true,\n depth = false,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n const { frag, vert, type } = this.getShaders();\n this.layer.triangulation = LineTriangulation;\n return [\n this.layer.buildLayerModel({\n moduleName: 'line_' + type,\n vertexShader: vert,\n fragmentShader: frag,\n triangulation: LineTriangulation,\n primitive: gl.TRIANGLES,\n blend: this.getBlend(),\n depth: { enable: depth },\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n\n /**\n * 根据参数获取不同的 shader 代码\n * @returns\n */\n public getShaders(): { frag: string; vert: string; type: string } {\n return {\n frag: linear_line_frag,\n vert: linear_line_vert,\n type: 'linear_rampColors',\n };\n }\n\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'distanceAndIndex',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_DistanceAndIndex',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n vertexIndex?: number,\n ) => {\n return vertexIndex === undefined\n ? [vertex[3], 10]\n : [vertex[3], vertexIndex];\n },\n },\n });\n this.styleAttributeService.registerStyleAttribute({\n name: 'total_distance',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Total_Distance',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[5]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0], size[1]] : [size as number, 0];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'normal',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Normal',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n // @ts-ignore\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n return normal;\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'miter',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Miter',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[4]];\n },\n },\n });\n }\n\n private updateTexture = () => {\n const { createTexture2D } = this.rendererService;\n if (this.colorTexture) {\n this.colorTexture.destroy();\n }\n const {\n rampColors,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n const imageData = generateColorRamp(rampColors as IColorRamp);\n this.colorTexture = createTexture2D({\n data: new Uint8Array(imageData.data),\n width: imageData.width,\n height: imageData.height,\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n min: gl.NEAREST,\n mag: gl.NEAREST,\n flipY: false,\n });\n };\n}\n"],"file":"linearline.js"}
1
+ {"version":3,"sources":["../../../src/line/models/linearline.ts"],"names":["AttributeType","gl","generateColorRamp","getMask","BaseModel","LineTriangulation","LinearLineModel","createTexture2D","rendererService","colorTexture","destroy","layer","getLayerConfig","rampColors","imageData","data","Uint8Array","width","height","wrapS","CLAMP_TO_EDGE","wrapT","min","NEAREST","mag","flipY","opacity","vertexHeightScale","raisingHeight","heightfixed","getDirty","bind","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","length","format","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","Number","u_texture","u_heightfixed","u_vertexScale","u_raisingHeight","updateTexture","buildModels","mask","maskInside","depth","getShaders","frag","vert","triangulation","buildLayerModel","moduleName","vertexShader","fragmentShader","primitive","TRIANGLES","blend","getBlend","enable","stencil","linear_line_frag","linear_line_vert","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx","normal","vertexIndex","undefined","DYNAMIC_DRAW","Array","isArray"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\n\nimport { generateColorRamp, getMask, IColorRamp } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { ILineLayerStyleOptions } from '../../core/interface';\nimport { LineTriangulation } from '../../core/triangulation';\nimport linear_line_frag from '../shaders/linearLine/line_linear_frag.glsl';\nimport linear_line_vert from '../shaders/linearLine/line_linear_vert.glsl';\n\nexport default class LinearLineModel extends BaseModel {\n protected colorTexture: ITexture2D;\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n vertexHeightScale = 20.0,\n raisingHeight = 0,\n heightfixed = false,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n if (this.rendererService.getDirty()) {\n this.colorTexture.bind();\n }\n\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_opacity: Number(opacity),\n // 纹理支持参数\n u_texture: this.colorTexture, // 贴图\n\n // 是否固定高度\n u_heightfixed: Number(heightfixed),\n\n // 顶点高度 scale\n u_vertexScale: vertexHeightScale,\n u_raisingHeight: Number(raisingHeight),\n };\n }\n\n public initModels(): IModel[] {\n this.updateTexture();\n return this.buildModels();\n }\n\n public clearModels() {\n this.colorTexture?.destroy();\n this.dataTexture?.destroy();\n }\n\n public buildModels(): IModel[] {\n const {\n mask = false,\n maskInside = true,\n depth = false,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n const { frag, vert, type } = this.getShaders();\n this.layer.triangulation = LineTriangulation;\n return [\n this.layer.buildLayerModel({\n moduleName: 'line_' + type,\n vertexShader: vert,\n fragmentShader: frag,\n triangulation: LineTriangulation,\n primitive: gl.TRIANGLES,\n blend: this.getBlend(),\n depth: { enable: depth },\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n\n /**\n * 根据参数获取不同的 shader 代码\n * @returns\n */\n public getShaders(): { frag: string; vert: string; type: string } {\n return {\n frag: linear_line_frag,\n vert: linear_line_vert,\n type: 'linear_rampColors',\n };\n }\n\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'distanceAndIndex',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_DistanceAndIndex',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n vertexIndex?: number,\n ) => {\n return vertexIndex === undefined\n ? [vertex[3], 10]\n : [vertex[3], vertexIndex];\n },\n },\n });\n this.styleAttributeService.registerStyleAttribute({\n name: 'total_distance',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Total_Distance',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[5]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0], size[1]] : [size as number, 0];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'normal',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Normal',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n // @ts-ignore\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n return normal;\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'miter',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Miter',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[4]];\n },\n },\n });\n }\n\n private updateTexture = () => {\n const { createTexture2D } = this.rendererService;\n if (this.colorTexture) {\n this.colorTexture.destroy();\n }\n const {\n rampColors,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n const imageData = generateColorRamp(rampColors as IColorRamp);\n this.colorTexture = createTexture2D({\n data: new Uint8Array(imageData.data),\n width: imageData.width,\n height: imageData.height,\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n min: gl.NEAREST,\n mag: gl.NEAREST,\n flipY: false,\n });\n };\n}\n"],"file":"linearline.js"}
@@ -3,7 +3,6 @@ import _createClass from "@babel/runtime/helpers/createClass";
3
3
  import _inherits from "@babel/runtime/helpers/inherits";
4
4
  import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
5
5
  import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
6
- import _isNumber from "lodash/isNumber";
7
6
 
8
7
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
9
8
 
@@ -13,9 +12,9 @@ import { AttributeType, gl } from '@antv/l7-core';
13
12
  import { getMask, rgb2arr } from '@antv/l7-utils';
14
13
  import BaseModel from '../../core/BaseModel';
15
14
  import { SimpleLineTriangulation } from '../../core/triangulation';
16
- var simle_linear_frag = "\n\nuniform vec4 u_sourceColor;\nuniform vec4 u_targetColor;\n\nvarying mat4 styleMappingMat;\nvoid main() {\n float opacity = styleMappingMat[0][0];\n float d_distance_ratio = styleMappingMat[3].r; // \u5F53\u524D\u70B9\u4F4D\u8DDD\u79BB\u5360\u7EBF\u603B\u957F\u7684\u6BD4\u4F8B\n\n gl_FragColor = mix(u_sourceColor, u_targetColor, d_distance_ratio);\n gl_FragColor.a *= opacity; // \u5168\u5C40\u900F\u660E\u5EA6\n}\n";
15
+ var simle_linear_frag = "uniform vec4 u_sourceColor;\nuniform vec4 u_targetColor;\n\nvarying mat4 styleMappingMat;\nvoid main() {\n float opacity = styleMappingMat[0][0];\n float d_distance_ratio = styleMappingMat[3].r; // \u5F53\u524D\u70B9\u4F4D\u8DDD\u79BB\u5360\u7EBF\u603B\u957F\u7684\u6BD4\u4F8B\n\n gl_FragColor = mix(u_sourceColor, u_targetColor, d_distance_ratio);\n gl_FragColor.a *= opacity; // \u5168\u5C40\u900F\u660E\u5EA6\n}\n";
17
16
  var simple_line_frag = "\nvarying vec4 v_color;\nvarying mat4 styleMappingMat;\nvoid main() {\n float opacity = styleMappingMat[0][0];\n float d_distance_ratio = styleMappingMat[3].r; // \u5F53\u524D\u70B9\u4F4D\u8DDD\u79BB\u5360\u7EBF\u603B\u957F\u7684\u6BD4\u4F8B\n\n gl_FragColor = v_color;\n gl_FragColor.a *= opacity; // \u5168\u5C40\u900F\u660E\u5EA6\n}\n";
18
- var simple_line_vert = "\nattribute vec4 a_Color;\nattribute vec2 a_Size;\nattribute vec3 a_Position;\n\n\n// dash line\nattribute float a_Total_Distance;\nattribute float a_Distance;\n\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\n\nuniform float u_opacity: 1.0;\nuniform float u_vertexScale: 1.0;\n\n#pragma include \"projection\"\n\nvarying vec4 v_color;\n\nvarying mat4 styleMappingMat; // \u7528\u4E8E\u5C06\u5728\u9876\u70B9\u7740\u8272\u5668\u4E2D\u8BA1\u7B97\u597D\u7684\u6837\u5F0F\u503C\u4F20\u9012\u7ED9\u7247\u5143\n\n#pragma include \"styleMapping\"\n#pragma include \"styleMappingCalOpacity\"\n\nvoid main() {\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n styleMappingMat = mat4(\n 0.0, 0.0, 0.0, 0.0, // opacity - strokeOpacity - strokeWidth - empty\n 0.0, 0.0, 0.0, 0.0, // strokeR - strokeG - strokeB - strokeA\n 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1]\n 0.0, 0.0, 0.0, 0.0 // distance_ratio/distance/pixelLen/texV\n );\n\n float rowCount = u_cellTypeLayout[0][0]; // \u5F53\u524D\u7684\u6570\u636E\u7EB9\u7406\u6709\u51E0\u884C\n float columnCount = u_cellTypeLayout[0][1]; // \u5F53\u770B\u5230\u6570\u636E\u7EB9\u7406\u6709\u51E0\u5217\n float columnWidth = 1.0/columnCount; // \u5217\u5BBD\n float rowHeight = 1.0/rowCount; // \u884C\u9AD8\n float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets\n float id = a_vertexId; // \u7B2Cn\u4E2A\u9876\u70B9\n float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u884C\n float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u5217\n \n // cell \u56FA\u5B9A\u987A\u5E8F opacity -> strokeOpacity -> strokeWidth -> stroke ... \n // \u6309\u987A\u5E8F\u4ECE cell \u4E2D\u53D6\u503C\u3001\u82E5\u6CA1\u6709\u5219\u81EA\u52A8\u5F80\u4E0B\u53D6\u503C\n float textureOffset = 0.0; // \u5728 cell \u4E2D\u53D6\u503C\u7684\u504F\u79FB\u91CF\n\n vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][0] = opacityAndOffset.r;\n textureOffset = opacityAndOffset.g;\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n\n float d_distance_ratio; // \u5F53\u524D\u70B9\u4F4D\u8DDD\u79BB\u5360\u7EBF\u603B\u957F\u7684\u6BD4\u4F8B\n v_color = a_Color; \n\n vec4 project_pos = project_position(vec4(a_Position.xy, 0, 1.0));\n\n float h = float(a_Position.z) * u_vertexScale; // \u7EBF\u9876\u70B9\u7684\u9AD8\u5EA6 - \u517C\u5BB9\u4E0D\u5B58\u5728\u7B2C\u4E09\u4E2A\u6570\u503C\u7684\u60C5\u51B5\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * (vec4(project_pos.xy, project_pixel(a_Size.y) + h * 0.2, 1.0));\n } else {\n float lineHeight = a_Size.y;\n // \u517C\u5BB9 mapbox \u5728\u7EBF\u9AD8\u5EA6\u4E0A\u7684\u6548\u679C\u8868\u73B0\u57FA\u672C\u4E00\u81F4\n if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {\n // \u4FDD\u6301\u9AD8\u5EA6\u76F8\u5BF9\u4E0D\u53D8\n h *= 2.0/pow(2.0, 20.0 - u_Zoom);\n }\n\n // #define COORDINATE_SYSTEM_P20 5.0\n // #define COORDINATE_SYSTEM_P20_OFFSET 6.0\n // amap1.x\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20 || u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET) {\n // \u4FDD\u6301\u9AD8\u5EA6\u76F8\u5BF9\u4E0D\u53D8\n lineHeight *= pow(2.0, 20.0 - u_Zoom);\n }\n\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, lineHeight + h, 1.0));\n }\n}\n";
17
+ var simple_line_vert = "attribute vec4 a_Color;\nattribute vec2 a_Size;\nattribute vec3 a_Position;\n\nattribute float a_Total_Distance;\nattribute float a_Distance;\n\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\n\nuniform float u_opacity: 1.0;\nuniform float u_vertexScale: 1.0;\n\n#pragma include \"projection\"\n\nvarying vec4 v_color;\n\nvarying mat4 styleMappingMat; // \u7528\u4E8E\u5C06\u5728\u9876\u70B9\u7740\u8272\u5668\u4E2D\u8BA1\u7B97\u597D\u7684\u6837\u5F0F\u503C\u4F20\u9012\u7ED9\u7247\u5143\n\n#pragma include \"styleMapping\"\n#pragma include \"styleMappingCalOpacity\"\n\nvoid main() {\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n styleMappingMat = mat4(\n 0.0, 0.0, 0.0, 0.0, // opacity - strokeOpacity - strokeWidth - empty\n 0.0, 0.0, 0.0, 0.0, // strokeR - strokeG - strokeB - strokeA\n 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1]\n 0.0, 0.0, 0.0, 0.0 // distance_ratio/distance/pixelLen/texV\n );\n\n float rowCount = u_cellTypeLayout[0][0]; // \u5F53\u524D\u7684\u6570\u636E\u7EB9\u7406\u6709\u51E0\u884C\n float columnCount = u_cellTypeLayout[0][1]; // \u5F53\u770B\u5230\u6570\u636E\u7EB9\u7406\u6709\u51E0\u5217\n float columnWidth = 1.0/columnCount; // \u5217\u5BBD\n float rowHeight = 1.0/rowCount; // \u884C\u9AD8\n float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets\n float id = a_vertexId; // \u7B2Cn\u4E2A\u9876\u70B9\n float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u884C\n float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u5217\n \n // cell \u56FA\u5B9A\u987A\u5E8F opacity -> strokeOpacity -> strokeWidth -> stroke ... \n // \u6309\u987A\u5E8F\u4ECE cell \u4E2D\u53D6\u503C\u3001\u82E5\u6CA1\u6709\u5219\u81EA\u52A8\u5F80\u4E0B\u53D6\u503C\n float textureOffset = 0.0; // \u5728 cell \u4E2D\u53D6\u503C\u7684\u504F\u79FB\u91CF\n\n vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][0] = opacityAndOffset.r;\n textureOffset = opacityAndOffset.g;\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n\n float d_distance_ratio; // \u5F53\u524D\u70B9\u4F4D\u8DDD\u79BB\u5360\u7EBF\u603B\u957F\u7684\u6BD4\u4F8B\n v_color = a_Color; \n\n vec4 project_pos = project_position(vec4(a_Position.xy, 0, 1.0));\n\n float h = float(a_Position.z) * u_vertexScale; // \u7EBF\u9876\u70B9\u7684\u9AD8\u5EA6 - \u517C\u5BB9\u4E0D\u5B58\u5728\u7B2C\u4E09\u4E2A\u6570\u503C\u7684\u60C5\u51B5\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * (vec4(project_pos.xy, project_pixel(a_Size.y) + h * 0.2, 1.0));\n } else {\n float lineHeight = a_Size.y;\n // \u517C\u5BB9 mapbox \u5728\u7EBF\u9AD8\u5EA6\u4E0A\u7684\u6548\u679C\u8868\u73B0\u57FA\u672C\u4E00\u81F4\n if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {\n // \u4FDD\u6301\u9AD8\u5EA6\u76F8\u5BF9\u4E0D\u53D8\n h *= 2.0/pow(2.0, 20.0 - u_Zoom);\n }\n\n // #define COORDINATE_SYSTEM_P20 5.0\n // #define COORDINATE_SYSTEM_P20_OFFSET 6.0\n // amap1.x\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20 || u_CoordinateSystem == COORDINATE_SYSTEM_P20_OFFSET) {\n // \u4FDD\u6301\u9AD8\u5EA6\u76F8\u5BF9\u4E0D\u53D8\n lineHeight *= pow(2.0, 20.0 - u_Zoom);\n }\n\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, lineHeight + h, 1.0));\n }\n}\n";
19
18
 
20
19
  var SimpleLineModel = function (_BaseModel) {
21
20
  _inherits(SimpleLineModel, _BaseModel);
@@ -32,7 +31,8 @@ var SimpleLineModel = function (_BaseModel) {
32
31
  key: "getUninforms",
33
32
  value: function getUninforms() {
34
33
  var _ref = this.layer.getLayerConfig(),
35
- opacity = _ref.opacity,
34
+ _ref$opacity = _ref.opacity,
35
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
36
36
  sourceColor = _ref.sourceColor,
37
37
  targetColor = _ref.targetColor,
38
38
  _ref$vertexHeightScal = _ref.vertexHeightScale,
@@ -82,7 +82,7 @@ var SimpleLineModel = function (_BaseModel) {
82
82
  return {
83
83
  u_dataTexture: this.dataTexture,
84
84
  u_cellTypeLayout: this.getCellTypeLayout(),
85
- u_opacity: _isNumber(opacity) ? opacity : 1.0,
85
+ u_opacity: Number(opacity),
86
86
  u_linearColor: useLinearColor,
87
87
  u_sourceColor: sourceColorArr,
88
88
  u_targetColor: targetColorArr,
@@ -123,13 +123,13 @@ var SimpleLineModel = function (_BaseModel) {
123
123
  return {
124
124
  frag: simle_linear_frag,
125
125
  vert: simple_line_vert,
126
- type: 'linear'
126
+ type: 'simple_linear'
127
127
  };
128
128
  } else {
129
129
  return {
130
130
  frag: simple_line_frag,
131
131
  vert: simple_line_vert,
132
- type: 'normal'
132
+ type: 'simple_normal'
133
133
  };
134
134
  }
135
135
  }
@@ -148,7 +148,7 @@ var SimpleLineModel = function (_BaseModel) {
148
148
  type = _this$getShaders.type;
149
149
 
150
150
  return [this.layer.buildLayerModel({
151
- moduleName: 'simpleline' + type,
151
+ moduleName: type,
152
152
  vertexShader: vert,
153
153
  fragmentShader: frag,
154
154
  triangulation: SimpleLineTriangulation,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/line/models/simpleLine.ts"],"names":["AttributeType","gl","getMask","rgb2arr","BaseModel","SimpleLineTriangulation","SimpleLineModel","layer","getLayerConfig","opacity","sourceColor","targetColor","vertexHeightScale","useLinearColor","sourceColorArr","targetColorArr","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","width","height","rowCount","dataTexture","length","createTexture2D","flipY","format","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_linearColor","u_sourceColor","u_targetColor","u_vertexScale","animateOption","u_aimate","animateOption2Array","u_time","getLayerAnimateTime","buildModels","destroy","frag","simle_linear_frag","vert","simple_line_vert","simple_line_frag","mask","maskInside","getShaders","buildLayerModel","moduleName","vertexShader","fragmentShader","triangulation","primitive","LINES","blend","getBlend","depth","enable","stencil","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx","DYNAMIC_DRAW","Array","isArray","normal"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAnimateOption,\n IEncodeFeature,\n ILayerConfig,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\n\nimport { getMask, rgb2arr } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { ILineLayerStyleOptions } from '../../core/interface';\nimport { SimpleLineTriangulation } from '../../core/triangulation';\n// linear simple line shader\nimport simle_linear_frag from '../shaders/linear/simpleline_linear_frag.glsl';\nimport simple_line_frag from '../shaders/simpleline_frag.glsl';\nimport simple_line_vert from '../shaders/simpleline_vert.glsl';\nexport default class SimpleLineModel extends BaseModel {\n public getUninforms(): IModelUniform {\n const {\n opacity,\n sourceColor,\n targetColor,\n vertexHeightScale = 20.0,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n // 转化渐变色\n let useLinearColor = 0; // 默认不生效\n let sourceColorArr = [0, 0, 0, 0];\n let targetColorArr = [0, 0, 0, 0];\n if (sourceColor && targetColor) {\n sourceColorArr = rgb2arr(sourceColor);\n targetColorArr = rgb2arr(targetColor);\n useLinearColor = 1;\n }\n\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n\n // 渐变色支持参数\n u_linearColor: useLinearColor,\n u_sourceColor: sourceColorArr,\n u_targetColor: targetColorArr,\n\n // 顶点高度 scale\n u_vertexScale: vertexHeightScale,\n };\n }\n public getAnimateUniforms(): IModelUniform {\n const { animateOption } = this.layer.getLayerConfig() as ILayerConfig;\n return {\n u_aimate: this.animateOption2Array(animateOption as IAnimateOption),\n u_time: this.layer.getLayerAnimateTime(),\n };\n }\n\n public initModels(): IModel[] {\n return this.buildModels();\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n }\n\n public getShaders(): { frag: string; vert: string; type: string } {\n const {\n sourceColor,\n targetColor,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n if (sourceColor && targetColor) {\n // 分离 linear 功能\n return {\n frag: simle_linear_frag,\n vert: simple_line_vert,\n type: 'linear',\n };\n } else {\n return {\n frag: simple_line_frag,\n vert: simple_line_vert,\n type: 'normal',\n };\n }\n }\n\n public buildModels(): IModel[] {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n const { frag, vert, type } = this.getShaders();\n return [\n this.layer.buildLayerModel({\n moduleName: 'simpleline' + type,\n vertexShader: vert,\n fragmentShader: frag,\n triangulation: SimpleLineTriangulation,\n primitive: gl.LINES, // gl.LINES gl.TRIANGLES\n blend: this.getBlend(),\n depth: { enable: false },\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'distance',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Distance',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3]];\n },\n },\n });\n this.styleAttributeService.registerStyleAttribute({\n name: 'total_distance',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Total_Distance',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[5]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0], size[1]] : [size as number, 0];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'normal',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Normal',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n // @ts-ignore\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n return normal;\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'miter',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Miter',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[4]];\n },\n },\n });\n }\n}\n"],"file":"simpleLine.js"}
1
+ {"version":3,"sources":["../../../src/line/models/simpleLine.ts"],"names":["AttributeType","gl","getMask","rgb2arr","BaseModel","SimpleLineTriangulation","SimpleLineModel","layer","getLayerConfig","opacity","sourceColor","targetColor","vertexHeightScale","useLinearColor","sourceColorArr","targetColorArr","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","width","height","rowCount","dataTexture","length","createTexture2D","flipY","format","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","Number","u_linearColor","u_sourceColor","u_targetColor","u_vertexScale","animateOption","u_aimate","animateOption2Array","u_time","getLayerAnimateTime","buildModels","destroy","frag","simle_linear_frag","vert","simple_line_vert","simple_line_frag","mask","maskInside","getShaders","buildLayerModel","moduleName","vertexShader","fragmentShader","triangulation","primitive","LINES","blend","getBlend","depth","enable","stencil","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx","DYNAMIC_DRAW","Array","isArray","normal"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAnimateOption,\n IEncodeFeature,\n ILayerConfig,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\n\nimport { getMask, rgb2arr } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { ILineLayerStyleOptions } from '../../core/interface';\nimport { SimpleLineTriangulation } from '../../core/triangulation';\n// linear simple line shader\nimport simle_linear_frag from '../shaders/linear/simpleline_linear_frag.glsl';\nimport simple_line_frag from '../shaders/simpleline_frag.glsl';\nimport simple_line_vert from '../shaders/simpleline_vert.glsl';\nexport default class SimpleLineModel extends BaseModel {\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n sourceColor,\n targetColor,\n vertexHeightScale = 20.0,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n // 转化渐变色\n let useLinearColor = 0; // 默认不生效\n let sourceColorArr = [0, 0, 0, 0];\n let targetColorArr = [0, 0, 0, 0];\n if (sourceColor && targetColor) {\n sourceColorArr = rgb2arr(sourceColor);\n targetColorArr = rgb2arr(targetColor);\n useLinearColor = 1;\n }\n\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n u_opacity: Number(opacity),\n\n // 渐变色支持参数\n u_linearColor: useLinearColor,\n u_sourceColor: sourceColorArr,\n u_targetColor: targetColorArr,\n\n // 顶点高度 scale\n u_vertexScale: vertexHeightScale,\n };\n }\n public getAnimateUniforms(): IModelUniform {\n const { animateOption } = this.layer.getLayerConfig() as ILayerConfig;\n return {\n u_aimate: this.animateOption2Array(animateOption as IAnimateOption),\n u_time: this.layer.getLayerAnimateTime(),\n };\n }\n\n public initModels(): IModel[] {\n return this.buildModels();\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n }\n\n public getShaders(): { frag: string; vert: string; type: string } {\n const {\n sourceColor,\n targetColor,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n if (sourceColor && targetColor) {\n // 分离 linear 功能\n return {\n frag: simle_linear_frag,\n vert: simple_line_vert,\n type: 'simple_linear',\n };\n } else {\n return {\n frag: simple_line_frag,\n vert: simple_line_vert,\n type: 'simple_normal',\n };\n }\n }\n\n public buildModels(): IModel[] {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n const { frag, vert, type } = this.getShaders();\n return [\n this.layer.buildLayerModel({\n moduleName: type,\n vertexShader: vert,\n fragmentShader: frag,\n triangulation: SimpleLineTriangulation,\n primitive: gl.LINES, // gl.LINES gl.TRIANGLES\n blend: this.getBlend(),\n depth: { enable: false },\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'distance',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Distance',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3]];\n },\n },\n });\n this.styleAttributeService.registerStyleAttribute({\n name: 'total_distance',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Total_Distance',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[5]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0], size[1]] : [size as number, 0];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'normal',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Normal',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n // @ts-ignore\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n return normal;\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'miter',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Miter',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[4]];\n },\n },\n });\n }\n}\n"],"file":"simpleLine.js"}
@@ -5,7 +5,6 @@ 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 _isNumber from "lodash/isNumber";
9
8
 
10
9
  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); }; }
11
10
 
@@ -15,8 +14,8 @@ import { AttributeType, gl } from '@antv/l7-core';
15
14
  import { rgb2arr } from '@antv/l7-utils';
16
15
  import BaseModel from '../../core/BaseModel';
17
16
  import { LineTriangulation } from '../../core/triangulation';
18
- var line_frag = "#define LineTypeSolid 0.0\n#define Animate 0.0\n#define LineTexture 1.0\n\nuniform float u_opacity : 1.0;\nuniform float u_textureBlend;\nuniform float u_iconStepCount;\n\nvarying vec4 v_color;\n\n// line texture\nuniform float u_line_texture;\nuniform sampler2D u_texture;\nuniform vec2 u_textSize;\n\n// dash\nuniform float u_dash_offset : 0.0;\nuniform float u_dash_ratio : 0.1;\n\nvarying vec2 v_iconMapUV;\nvarying float v_blur;\n\nuniform float u_linearColor: 0;\nuniform vec4 u_sourceColor;\nuniform vec4 u_targetColor;\n\n#pragma include \"picking\"\n\nuniform float u_time;\nuniform vec4 u_aimate: [ 0, 2., 1.0, 0.2 ]; // \u63A7\u5236\u8FD0\u52A8\n\nvarying mat4 styleMappingMat;\n// [animate, duration, interval, trailLength],\nvoid main() {\n float opacity = styleMappingMat[0][0];\n float animateSpeed = 0.0; // \u8FD0\u52A8\u901F\u5EA6\n float d_distance_ratio = styleMappingMat[3].r; // \u5F53\u524D\u70B9\u4F4D\u8DDD\u79BB\u5360\u7EBF\u603B\u957F\u7684\u6BD4\u4F8B\n float v = styleMappingMat[3].a;\n\n if(u_linearColor == 1.0) { // \u4F7F\u7528\u6E10\u53D8\u989C\u8272\n gl_FragColor = mix(u_sourceColor, u_targetColor, v);\n } else { // \u4F7F\u7528 color \u65B9\u6CD5\u4F20\u5165\u7684\u989C\u8272\n gl_FragColor = v_color;\n }\n\n gl_FragColor.a *= opacity; // \u5168\u5C40\u900F\u660E\u5EA6\n if(u_aimate.x == Animate) {\n animateSpeed = u_time / u_aimate.y;\n float alpha =1.0 - fract( mod(1.0- d_distance_ratio, u_aimate.z)* (1.0/ u_aimate.z) + animateSpeed);\n alpha = (alpha + u_aimate.w -1.0) / u_aimate.w;\n alpha = smoothstep(0., 1., alpha);\n gl_FragColor.a *= alpha;\n }\n\n if(u_line_texture == LineTexture) { // while load texture\n float aDistance = styleMappingMat[3].g; // \u5F53\u524D\u9876\u70B9\u7684\u8DDD\u79BB\n float d_texPixelLen = styleMappingMat[3].b; // \u8D34\u56FE\u7684\u50CF\u7D20\u957F\u5EA6\uFF0C\u6839\u636E\u5730\u56FE\u5C42\u7EA7\u7F29\u653E\n float u = fract(mod(aDistance, d_texPixelLen)/d_texPixelLen - animateSpeed);\n float v = styleMappingMat[3].a; // \u7EBF\u56FE\u5C42\u8D34\u56FE\u90E8\u5206\u7684 v \u5750\u6807\u503C\n\n // \u8BA1\u7B97\u7EB9\u7406\u95F4\u9694 start\n float flag = 0.0;\n if(u > 1.0/u_iconStepCount) {\n flag = 1.0;\n }\n u = fract(u*u_iconStepCount);\n // \u8BA1\u7B97\u7EB9\u7406\u95F4\u9694 end\n\n vec2 uv= v_iconMapUV / u_textSize + vec2(u, v) / u_textSize * 64.;\n vec4 pattern = texture2D(u_texture, uv);\n\n // Tip: \u5224\u65AD\u7EB9\u7406\u95F4\u9694\n if(flag > 0.0) {\n pattern = vec4(0.0);\n }\n\n if(u_textureBlend == 0.0) { // normal\n pattern.a = 0.0;\n gl_FragColor = filterColor(gl_FragColor + pattern);\n } else { // replace\n pattern.a *= opacity;\n if(gl_FragColor.a <= 0.0) {\n pattern.a = 0.0;\n }\n gl_FragColor = filterColor(pattern);\n }\n }\n \n\n // blur - AA\n if(v < v_blur) {\n gl_FragColor.a = mix(0.0, gl_FragColor.a, v/v_blur);\n } else if(v > 1.0 - v_blur) {\n gl_FragColor.a = mix(gl_FragColor.a, 0.0, (v - (1.0 - v_blur))/v_blur);\n }\n\n gl_FragColor = filterColor(gl_FragColor);\n\n \n \n \n}\n";
19
- var line_vert = "#define LineTypeSolid 0.0\n#define LineTypeDash 1.0\n#define Animate 0.0\n\nattribute float a_Miter;\nattribute vec4 a_Color;\nattribute vec2 a_Size;\nattribute vec3 a_Normal;\nattribute vec3 a_Position;\nattribute vec2 a_iconMapUV;\n\n// dash line\nattribute float a_Total_Distance;\nattribute float a_Distance;\n\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nuniform vec4 u_aimate: [ 0, 2., 1.0, 0.2 ];\nuniform float u_icon_step: 100;\nuniform float u_heightfixed;\n\n#pragma include \"projection\"\n#pragma include \"light\"\n#pragma include \"picking\"\n\nvarying vec4 v_color;\nvarying float v_blur;\n\n// texV \u7EBF\u56FE\u5C42 - \u8D34\u56FE\u90E8\u5206\u7684 v \u5750\u6807\uFF08\u7EBF\u7684\u5BBD\u5EA6\u65B9\u5411\uFF09\nvarying vec2 v_iconMapUV;\n\n\nuniform float u_linearColor: 0;\n\nuniform float u_opacity: 1.0;\nvarying mat4 styleMappingMat; // \u7528\u4E8E\u5C06\u5728\u9876\u70B9\u7740\u8272\u5668\u4E2D\u8BA1\u7B97\u597D\u7684\u6837\u5F0F\u503C\u4F20\u9012\u7ED9\u7247\u5143\n\n#pragma include \"styleMapping\"\n#pragma include \"light\"\n#pragma include \"styleMappingCalOpacity\"\n\nvoid main() {\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n styleMappingMat = mat4(\n 0.0, 0.0, 0.0, 0.0, // opacity - strokeOpacity - strokeWidth - empty\n 0.0, 0.0, 0.0, 0.0, // strokeR - strokeG - strokeB - strokeA\n 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1]\n 0.0, 0.0, 0.0, 0.0 // distance_ratio/distance/pixelLen/texV\n );\n\n float rowCount = u_cellTypeLayout[0][0]; // \u5F53\u524D\u7684\u6570\u636E\u7EB9\u7406\u6709\u51E0\u884C\n float columnCount = u_cellTypeLayout[0][1]; // \u5F53\u770B\u5230\u6570\u636E\u7EB9\u7406\u6709\u51E0\u5217\n float columnWidth = 1.0/columnCount; // \u5217\u5BBD\n float rowHeight = 1.0/rowCount; // \u884C\u9AD8\n float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets\n float id = a_vertexId; // \u7B2Cn\u4E2A\u9876\u70B9\n float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u884C\n float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u5217\n \n // cell \u56FA\u5B9A\u987A\u5E8F opacity -> strokeOpacity -> strokeWidth -> stroke ... \n // \u6309\u987A\u5E8F\u4ECE cell \u4E2D\u53D6\u503C\u3001\u82E5\u6CA1\u6709\u5219\u81EA\u52A8\u5F80\u4E0B\u53D6\u503C\n float textureOffset = 0.0; // \u5728 cell \u4E2D\u53D6\u503C\u7684\u504F\u79FB\u91CF\n\n vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][0] = opacityAndOffset.r;\n textureOffset = opacityAndOffset.g;\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n\n float d_distance_ratio; // \u5F53\u524D\u70B9\u4F4D\u8DDD\u79BB\u5360\u7EBF\u603B\u957F\u7684\u6BD4\u4F8B\n float d_texPixelLen; // \u8D34\u56FE\u7684\u50CF\u7D20\u957F\u5EA6\uFF0C\u6839\u636E\u5730\u56FE\u5C42\u7EA7\u7F29\u653E\n\n v_iconMapUV = a_iconMapUV;\n if(u_heightfixed < 1.0) { // \u9AD8\u5EA6\u968F zoom \u8C03\u6574\n d_texPixelLen = project_pixel(u_icon_step);\n } else {\n d_texPixelLen = u_icon_step;\n }\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) {\n d_texPixelLen *= 10.0;\n }\n\n if(u_aimate.x == Animate || u_linearColor == 1.0) {\n d_distance_ratio = a_Distance / a_Total_Distance;\n }\n\n float miter = (a_Miter + 1.0)/2.0;\n // \u8BBE\u7F6E\u6570\u636E\u96C6\u7684\u53C2\u6570\n styleMappingMat[3][0] = d_distance_ratio; // \u5F53\u524D\u70B9\u4F4D\u8DDD\u79BB\u5360\u7EBF\u603B\u957F\u7684\u6BD4\u4F8B\n styleMappingMat[3][1] = a_Distance; // \u5F53\u524D\u9876\u70B9\u7684\u8DDD\u79BB\n styleMappingMat[3][2] = d_texPixelLen; // \u8D34\u56FE\u7684\u50CF\u7D20\u957F\u5EA6\uFF0C\u6839\u636E\u5730\u56FE\u5C42\u7EA7\u7F29\u653E\n styleMappingMat[3][3] = miter; // \u7EBF\u56FE\u5C42\u8D34\u56FE\u90E8\u5206\u7684 v \u5750\u6807\u503C 0 - 1\n\n vec4 project_pos = project_position(vec4(a_Position.xy, 0, 1.0));\n\n float originSize = a_Size.x; // \u56FA\u5B9A\u9AD8\u5EA6\n if(u_heightfixed < 1.0) { // \u9AD8\u5EA6\u968F zoom \u8C03\u6574\n originSize = project_float_pixel(a_Size.x);\n }\n\n float wallHeight = originSize * miter;\n float lightWeight = calc_lighting(vec4(project_pos.xy, wallHeight, 1.0));\n\n v_blur = min(project_float_pixel(2.0) / originSize, 0.05);\n\n // v_lightWeight = lightWeight;\n v_color = vec4(a_Color.rgb * lightWeight, a_Color.w);\n // v_color = a_Color;\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * (vec4(project_pos.xy, wallHeight, 1.0));\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, wallHeight, 1.0));\n }\n\n setPickingColor(a_PickingColor);\n}\n";
17
+ var line_frag = "#define Animate 0.0\n#define LineTexture 1.0\n\nuniform float u_opacity : 1.0;\nuniform float u_textureBlend;\nuniform float u_iconStepCount;\n\nvarying vec4 v_color;\n\n// line texture\nuniform float u_line_texture;\nuniform sampler2D u_texture;\nuniform vec2 u_textSize;\n\nvarying vec2 v_iconMapUV;\nvarying float v_blur;\n\nuniform float u_linearColor: 0;\nuniform vec4 u_sourceColor;\nuniform vec4 u_targetColor;\n\n#pragma include \"picking\"\n\nuniform float u_time;\nuniform vec4 u_aimate: [ 0, 2., 1.0, 0.2 ]; // \u63A7\u5236\u8FD0\u52A8\n\nvarying mat4 styleMappingMat;\n// [animate, duration, interval, trailLength],\nvoid main() {\n float opacity = styleMappingMat[0][0];\n float animateSpeed = 0.0; // \u8FD0\u52A8\u901F\u5EA6\n float d_distance_ratio = styleMappingMat[3].r; // \u5F53\u524D\u70B9\u4F4D\u8DDD\u79BB\u5360\u7EBF\u603B\u957F\u7684\u6BD4\u4F8B\n float v = styleMappingMat[3].a;\n\n if(u_linearColor == 1.0) { // \u4F7F\u7528\u6E10\u53D8\u989C\u8272\n gl_FragColor = mix(u_sourceColor, u_targetColor, v);\n } else { // \u4F7F\u7528 color \u65B9\u6CD5\u4F20\u5165\u7684\u989C\u8272\n gl_FragColor = v_color;\n }\n\n gl_FragColor.a *= opacity; // \u5168\u5C40\u900F\u660E\u5EA6\n if(u_aimate.x == Animate) {\n animateSpeed = u_time / u_aimate.y;\n float alpha =1.0 - fract( mod(1.0- d_distance_ratio, u_aimate.z)* (1.0/ u_aimate.z) + animateSpeed);\n alpha = (alpha + u_aimate.w -1.0) / u_aimate.w;\n alpha = smoothstep(0., 1., alpha);\n gl_FragColor.a *= alpha;\n }\n\n if(u_line_texture == LineTexture) { // while load texture\n float aDistance = styleMappingMat[3].g; // \u5F53\u524D\u9876\u70B9\u7684\u8DDD\u79BB\n float d_texPixelLen = styleMappingMat[3].b; // \u8D34\u56FE\u7684\u50CF\u7D20\u957F\u5EA6\uFF0C\u6839\u636E\u5730\u56FE\u5C42\u7EA7\u7F29\u653E\n float u = fract(mod(aDistance, d_texPixelLen)/d_texPixelLen - animateSpeed);\n float v = styleMappingMat[3].a; // \u7EBF\u56FE\u5C42\u8D34\u56FE\u90E8\u5206\u7684 v \u5750\u6807\u503C\n\n // \u8BA1\u7B97\u7EB9\u7406\u95F4\u9694 start\n float flag = 0.0;\n if(u > 1.0/u_iconStepCount) {\n flag = 1.0;\n }\n u = fract(u*u_iconStepCount);\n // \u8BA1\u7B97\u7EB9\u7406\u95F4\u9694 end\n\n vec2 uv= v_iconMapUV / u_textSize + vec2(u, v) / u_textSize * 64.;\n vec4 pattern = texture2D(u_texture, uv);\n\n // Tip: \u5224\u65AD\u7EB9\u7406\u95F4\u9694\n if(flag > 0.0) {\n pattern = vec4(0.0);\n }\n\n if(u_textureBlend == 0.0) { // normal\n pattern.a = 0.0;\n gl_FragColor = filterColor(gl_FragColor + pattern);\n } else { // replace\n pattern.a *= opacity;\n if(gl_FragColor.a <= 0.0) {\n pattern.a = 0.0;\n }\n gl_FragColor = filterColor(pattern);\n }\n }\n \n\n // blur - AA\n if(v < v_blur) {\n gl_FragColor.a = mix(0.0, gl_FragColor.a, v/v_blur);\n } else if(v > 1.0 - v_blur) {\n gl_FragColor.a = mix(gl_FragColor.a, 0.0, (v - (1.0 - v_blur))/v_blur);\n }\n\n gl_FragColor = filterColor(gl_FragColor);\n}\n";
18
+ var line_vert = "#define Animate 0.0\n\nattribute float a_Miter;\nattribute vec4 a_Color;\nattribute vec2 a_Size;\nattribute vec3 a_Normal;\nattribute vec3 a_Position;\nattribute vec2 a_iconMapUV;\n\nattribute float a_Total_Distance;\nattribute float a_Distance;\n\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nuniform vec4 u_aimate: [ 0, 2., 1.0, 0.2 ];\nuniform float u_icon_step: 100;\nuniform float u_heightfixed;\n\n#pragma include \"projection\"\n#pragma include \"light\"\n#pragma include \"picking\"\n\nvarying vec4 v_color;\nvarying float v_blur;\n\n// texV \u7EBF\u56FE\u5C42 - \u8D34\u56FE\u90E8\u5206\u7684 v \u5750\u6807\uFF08\u7EBF\u7684\u5BBD\u5EA6\u65B9\u5411\uFF09\nvarying vec2 v_iconMapUV;\n\nuniform float u_linearColor: 0;\n\nuniform float u_opacity: 1.0;\nvarying mat4 styleMappingMat; // \u7528\u4E8E\u5C06\u5728\u9876\u70B9\u7740\u8272\u5668\u4E2D\u8BA1\u7B97\u597D\u7684\u6837\u5F0F\u503C\u4F20\u9012\u7ED9\u7247\u5143\n\n#pragma include \"styleMapping\"\n#pragma include \"light\"\n#pragma include \"styleMappingCalOpacity\"\n\nvoid main() {\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n styleMappingMat = mat4(\n 0.0, 0.0, 0.0, 0.0, // opacity - strokeOpacity - strokeWidth - empty\n 0.0, 0.0, 0.0, 0.0, // strokeR - strokeG - strokeB - strokeA\n 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1]\n 0.0, 0.0, 0.0, 0.0 // distance_ratio/distance/pixelLen/texV\n );\n\n float rowCount = u_cellTypeLayout[0][0]; // \u5F53\u524D\u7684\u6570\u636E\u7EB9\u7406\u6709\u51E0\u884C\n float columnCount = u_cellTypeLayout[0][1]; // \u5F53\u770B\u5230\u6570\u636E\u7EB9\u7406\u6709\u51E0\u5217\n float columnWidth = 1.0/columnCount; // \u5217\u5BBD\n float rowHeight = 1.0/rowCount; // \u884C\u9AD8\n float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets\n float id = a_vertexId; // \u7B2Cn\u4E2A\u9876\u70B9\n float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u884C\n float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u5217\n \n // cell \u56FA\u5B9A\u987A\u5E8F opacity -> strokeOpacity -> strokeWidth -> stroke ... \n // \u6309\u987A\u5E8F\u4ECE cell \u4E2D\u53D6\u503C\u3001\u82E5\u6CA1\u6709\u5219\u81EA\u52A8\u5F80\u4E0B\u53D6\u503C\n float textureOffset = 0.0; // \u5728 cell \u4E2D\u53D6\u503C\u7684\u504F\u79FB\u91CF\n\n vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][0] = opacityAndOffset.r;\n textureOffset = opacityAndOffset.g;\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n\n float d_distance_ratio; // \u5F53\u524D\u70B9\u4F4D\u8DDD\u79BB\u5360\u7EBF\u603B\u957F\u7684\u6BD4\u4F8B\n float d_texPixelLen; // \u8D34\u56FE\u7684\u50CF\u7D20\u957F\u5EA6\uFF0C\u6839\u636E\u5730\u56FE\u5C42\u7EA7\u7F29\u653E\n\n v_iconMapUV = a_iconMapUV;\n if(u_heightfixed < 1.0) { // \u9AD8\u5EA6\u968F zoom \u8C03\u6574\n d_texPixelLen = project_pixel(u_icon_step);\n } else {\n d_texPixelLen = u_icon_step;\n }\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) {\n d_texPixelLen *= 10.0;\n }\n\n if(u_aimate.x == Animate || u_linearColor == 1.0) {\n d_distance_ratio = a_Distance / a_Total_Distance;\n }\n\n float miter = (a_Miter + 1.0)/2.0;\n // \u8BBE\u7F6E\u6570\u636E\u96C6\u7684\u53C2\u6570\n styleMappingMat[3][0] = d_distance_ratio; // \u5F53\u524D\u70B9\u4F4D\u8DDD\u79BB\u5360\u7EBF\u603B\u957F\u7684\u6BD4\u4F8B\n styleMappingMat[3][1] = a_Distance; // \u5F53\u524D\u9876\u70B9\u7684\u8DDD\u79BB\n styleMappingMat[3][2] = d_texPixelLen; // \u8D34\u56FE\u7684\u50CF\u7D20\u957F\u5EA6\uFF0C\u6839\u636E\u5730\u56FE\u5C42\u7EA7\u7F29\u653E\n styleMappingMat[3][3] = miter; // \u7EBF\u56FE\u5C42\u8D34\u56FE\u90E8\u5206\u7684 v \u5750\u6807\u503C 0 - 1\n\n vec4 project_pos = project_position(vec4(a_Position.xy, 0, 1.0));\n\n float originSize = a_Size.x; // \u56FA\u5B9A\u9AD8\u5EA6\n if(u_heightfixed < 1.0) { // \u9AD8\u5EA6\u968F zoom \u8C03\u6574\n originSize = project_float_pixel(a_Size.x);\n }\n\n float wallHeight = originSize * miter;\n float lightWeight = calc_lighting(vec4(project_pos.xy, wallHeight, 1.0));\n\n v_blur = min(project_float_pixel(2.0) / originSize, 0.05);\n\n v_color = vec4(a_Color.rgb * lightWeight, a_Color.w);\n // v_color = a_Color;\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * (vec4(project_pos.xy, wallHeight, 1.0));\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, wallHeight, 1.0));\n }\n\n setPickingColor(a_PickingColor);\n}\n";
20
19
 
21
20
  var LineWallModel = function (_BaseModel) {
22
21
  _inherits(LineWallModel, _BaseModel);
@@ -66,7 +65,8 @@ var LineWallModel = function (_BaseModel) {
66
65
  key: "getUninforms",
67
66
  value: function getUninforms() {
68
67
  var _ref = this.layer.getLayerConfig(),
69
- opacity = _ref.opacity,
68
+ _ref$opacity = _ref.opacity,
69
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
70
70
  sourceColor = _ref.sourceColor,
71
71
  targetColor = _ref.targetColor,
72
72
  _ref$textureBlend = _ref.textureBlend,
@@ -129,7 +129,7 @@ var LineWallModel = function (_BaseModel) {
129
129
  u_heightfixed: Number(heightfixed),
130
130
  u_dataTexture: this.dataTexture,
131
131
  u_cellTypeLayout: this.getCellTypeLayout(),
132
- u_opacity: _isNumber(opacity) ? opacity : 1.0,
132
+ u_opacity: Number(opacity),
133
133
  u_textureBlend: textureBlend === 'normal' ? 0.0 : 1.0,
134
134
  u_texture: this.texture,
135
135
  u_line_texture: lineTexture ? 1.0 : 0.0,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/line/models/wall.ts"],"names":["AttributeType","gl","rgb2arr","BaseModel","LineTriangulation","LineWallModel","createTexture2D","rendererService","texture","update","data","iconService","getCanvas","layer","render","mag","NEAREST","min","premultiplyAlpha","width","height","canvasHeight","getLayerConfig","opacity","sourceColor","targetColor","textureBlend","heightfixed","lineTexture","iconStep","iconStepCount","getDirty","bind","useLinearColor","sourceColorArr","targetColorArr","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","length","flipY","format","LUMINANCE","type","FLOAT","u_heightfixed","Number","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_textureBlend","u_texture","u_line_texture","u_iconStepCount","u_icon_step","u_textSize","u_linearColor","u_sourceColor","u_targetColor","animateOption","u_aimate","animateOption2Array","u_time","getLayerAnimateTime","updateTexture","on","buildModels","destroy","off","buildLayerModel","moduleName","vertexShader","line_vert","fragmentShader","line_frag","triangulation","primitive","TRIANGLES","blend","getBlend","depth","enable","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","feature","featureIdx","vertex","attributeIdx","DYNAMIC_DRAW","Array","isArray","normal","iconMap","getIconMap","x","y"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAnimateOption,\n IEncodeFeature,\n ILayerConfig,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\n\nimport { rgb2arr } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { ILineLayerStyleOptions, lineStyleType } from '../../core/interface';\nimport { LineTriangulation } from '../../core/triangulation';\nimport line_frag from '../shaders/wall_frag.glsl';\nimport line_vert from '../shaders/wall_vert.glsl';\n\nexport default class LineWallModel extends BaseModel {\n protected texture: ITexture2D;\n public getUninforms(): IModelUniform {\n const {\n opacity,\n sourceColor,\n targetColor,\n textureBlend = 'normal',\n heightfixed = false,\n lineTexture = false,\n iconStep = 100,\n iconStepCount = 1,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n if (this.rendererService.getDirty()) {\n this.texture.bind();\n }\n\n // 转化渐变色\n let useLinearColor = 0; // 默认不生效\n let sourceColorArr = [0, 0, 0, 0];\n let targetColorArr = [0, 0, 0, 0];\n if (sourceColor && targetColor) {\n sourceColorArr = rgb2arr(sourceColor);\n targetColorArr = rgb2arr(targetColor);\n useLinearColor = 1;\n }\n\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n\n return {\n u_heightfixed: Number(heightfixed),\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n // u_opacity: opacity === undefined ? 1 : opacity,\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_textureBlend: textureBlend === 'normal' ? 0.0 : 1.0,\n\n // 纹理支持参数\n u_texture: this.texture, // 贴图\n u_line_texture: lineTexture ? 1.0 : 0.0, // 传入线的标识\n u_iconStepCount: iconStepCount,\n u_icon_step: iconStep,\n u_textSize: [1024, this.iconService.canvasHeight || 128],\n\n // 渐变色支持参数\n u_linearColor: useLinearColor,\n u_sourceColor: sourceColorArr,\n u_targetColor: targetColorArr,\n };\n }\n public getAnimateUniforms(): IModelUniform {\n const { animateOption } = this.layer.getLayerConfig() as ILayerConfig;\n return {\n u_aimate: this.animateOption2Array(animateOption as IAnimateOption),\n u_time: this.layer.getLayerAnimateTime(),\n };\n }\n\n public initModels(): IModel[] {\n this.updateTexture();\n this.iconService.on('imageUpdate', this.updateTexture);\n\n return this.buildModels();\n }\n\n public clearModels() {\n this.texture?.destroy();\n this.dataTexture?.destroy();\n this.iconService.off('imageUpdate', this.updateTexture);\n }\n\n public buildModels(): IModel[] {\n return [\n this.layer.buildLayerModel({\n moduleName: 'linewall',\n vertexShader: line_vert,\n fragmentShader: line_frag,\n triangulation: LineTriangulation,\n primitive: gl.TRIANGLES,\n blend: this.getBlend(),\n depth: { enable: false },\n }),\n ];\n }\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'distance',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Distance',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3]];\n },\n },\n });\n this.styleAttributeService.registerStyleAttribute({\n name: 'total_distance',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Total_Distance',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[5]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0], size[1]] : [size as number, 0];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'normal',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Normal',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n // @ts-ignore\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n return normal;\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'miter',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Miter',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[4]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_iconMapUV',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const iconMap = this.iconService.getIconMap();\n const { texture } = feature;\n const { x, y } = iconMap[texture as string] || { x: 0, y: 0 };\n return [x, y];\n },\n },\n });\n }\n private updateTexture = () => {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.update({\n data: this.iconService.getCanvas(),\n });\n this.layer.render();\n return;\n }\n this.texture = createTexture2D({\n data: this.iconService.getCanvas(),\n mag: gl.NEAREST,\n min: gl.NEAREST,\n premultiplyAlpha: false,\n width: 1024,\n height: this.iconService.canvasHeight || 128,\n });\n };\n}\n"],"file":"wall.js"}
1
+ {"version":3,"sources":["../../../src/line/models/wall.ts"],"names":["AttributeType","gl","rgb2arr","BaseModel","LineTriangulation","LineWallModel","createTexture2D","rendererService","texture","update","data","iconService","getCanvas","layer","render","mag","NEAREST","min","premultiplyAlpha","width","height","canvasHeight","getLayerConfig","opacity","sourceColor","targetColor","textureBlend","heightfixed","lineTexture","iconStep","iconStepCount","getDirty","bind","useLinearColor","sourceColorArr","targetColorArr","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","length","flipY","format","LUMINANCE","type","FLOAT","u_heightfixed","Number","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_textureBlend","u_texture","u_line_texture","u_iconStepCount","u_icon_step","u_textSize","u_linearColor","u_sourceColor","u_targetColor","animateOption","u_aimate","animateOption2Array","u_time","getLayerAnimateTime","updateTexture","on","buildModels","destroy","off","buildLayerModel","moduleName","vertexShader","line_vert","fragmentShader","line_frag","triangulation","primitive","TRIANGLES","blend","getBlend","depth","enable","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","feature","featureIdx","vertex","attributeIdx","DYNAMIC_DRAW","Array","isArray","normal","iconMap","getIconMap","x","y"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAnimateOption,\n IEncodeFeature,\n ILayerConfig,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\n\nimport { rgb2arr } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { ILineLayerStyleOptions } from '../../core/interface';\nimport { LineTriangulation } from '../../core/triangulation';\nimport line_frag from '../shaders/wall_frag.glsl';\nimport line_vert from '../shaders/wall_vert.glsl';\n\nexport default class LineWallModel extends BaseModel {\n protected texture: ITexture2D;\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n sourceColor,\n targetColor,\n textureBlend = 'normal',\n heightfixed = false,\n lineTexture = false,\n iconStep = 100,\n iconStepCount = 1,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n if (this.rendererService.getDirty()) {\n this.texture.bind();\n }\n\n // 转化渐变色\n let useLinearColor = 0; // 默认不生效\n let sourceColorArr = [0, 0, 0, 0];\n let targetColorArr = [0, 0, 0, 0];\n if (sourceColor && targetColor) {\n sourceColorArr = rgb2arr(sourceColor);\n targetColorArr = rgb2arr(targetColor);\n useLinearColor = 1;\n }\n\n if (this.dataTextureTest && this.dataTextureNeedUpdate({ opacity })) {\n this.judgeStyleAttributes({ opacity });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n\n return {\n u_heightfixed: Number(heightfixed),\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_opacity: Number(opacity),\n u_textureBlend: textureBlend === 'normal' ? 0.0 : 1.0,\n\n // 纹理支持参数\n u_texture: this.texture, // 贴图\n u_line_texture: lineTexture ? 1.0 : 0.0, // 传入线的标识\n u_iconStepCount: iconStepCount,\n u_icon_step: iconStep,\n u_textSize: [1024, this.iconService.canvasHeight || 128],\n\n // 渐变色支持参数\n u_linearColor: useLinearColor,\n u_sourceColor: sourceColorArr,\n u_targetColor: targetColorArr,\n };\n }\n public getAnimateUniforms(): IModelUniform {\n const { animateOption } = this.layer.getLayerConfig() as ILayerConfig;\n return {\n u_aimate: this.animateOption2Array(animateOption as IAnimateOption),\n u_time: this.layer.getLayerAnimateTime(),\n };\n }\n\n public initModels(): IModel[] {\n this.updateTexture();\n this.iconService.on('imageUpdate', this.updateTexture);\n\n return this.buildModels();\n }\n\n public clearModels() {\n this.texture?.destroy();\n this.dataTexture?.destroy();\n this.iconService.off('imageUpdate', this.updateTexture);\n }\n\n public buildModels(): IModel[] {\n return [\n this.layer.buildLayerModel({\n moduleName: 'linewall',\n vertexShader: line_vert,\n fragmentShader: line_frag,\n triangulation: LineTriangulation,\n primitive: gl.TRIANGLES,\n blend: this.getBlend(),\n depth: { enable: false },\n }),\n ];\n }\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'distance',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Distance',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3]];\n },\n },\n });\n this.styleAttributeService.registerStyleAttribute({\n name: 'total_distance',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Total_Distance',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[5]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0], size[1]] : [size as number, 0];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'normal',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Normal',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n // @ts-ignore\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n return normal;\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'miter',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Miter',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[4]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_iconMapUV',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const iconMap = this.iconService.getIconMap();\n const { texture } = feature;\n const { x, y } = iconMap[texture as string] || { x: 0, y: 0 };\n return [x, y];\n },\n },\n });\n }\n private updateTexture = () => {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.update({\n data: this.iconService.getCanvas(),\n });\n this.layer.render();\n return;\n }\n this.texture = createTexture2D({\n data: this.iconService.getCanvas(),\n mag: gl.NEAREST,\n min: gl.NEAREST,\n premultiplyAlpha: false,\n width: 1024,\n height: this.iconService.canvasHeight || 128,\n });\n };\n}\n"],"file":"wall.js"}
@@ -1,8 +1,6 @@
1
1
  import BaseLayer from '../core/BaseLayer';
2
+ import { IMaskLayerStyleOptions } from '../core/interface';
2
3
  import { MaskModelType } from './models';
3
- interface IMaskLayerStyleOptions {
4
- opacity: number;
5
- }
6
4
  export default class MaskLayer extends BaseLayer<IMaskLayerStyleOptions> {
7
5
  type: string;
8
6
  buildModels(): void;
@@ -18,4 +16,3 @@ export default class MaskLayer extends BaseLayer<IMaskLayerStyleOptions> {
18
16
  };
19
17
  protected getModelType(): MaskModelType;
20
18
  }
21
- export {};
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mask/index.ts"],"names":["BaseLayer","MaskModels","MaskLayer","shape","getModelType","layerModel","models","initModels","buildModels","properties","opacity","type","minimum","maximum"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,SAAP,MAAsB,mBAAtB;AACA,OAAOC,UAAP,MAA0C,UAA1C;;IAMqBC,S;;;;;;;;;;;;;;;;2DACG,W;;;;;;;WACtB,uBAAqB;AACnB,UAAMC,KAAK,GAAG,KAAKC,YAAL,EAAd;AACA,WAAKC,UAAL,GAAkB,IAAIJ,UAAU,CAACE,KAAD,CAAd,CAAsB,IAAtB,CAAlB;AACA,WAAKG,MAAL,GAAc,KAAKD,UAAL,CAAgBE,UAAhB,EAAd;AACD;;;WACD,yBAAuB;AACrB,WAAKD,MAAL,GAAc,KAAKD,UAAL,CAAgBG,WAAhB,EAAd;AACD;;;WACD,2BAA4B;AAC1B,aAAO;AACLC,QAAAA,UAAU,EAAE;AACVC,UAAAA,OAAO,EAAE;AACPC,YAAAA,IAAI,EAAE,QADC;AAEPC,YAAAA,OAAO,EAAE,CAFF;AAGPC,YAAAA,OAAO,EAAE;AAHF;AADC;AADP,OAAP;AASD;;;WAED,wBAAwC;AACtC,aAAO,MAAP;AACD;;;;EAxBoCb,S;;SAAlBE,S","sourcesContent":["import BaseLayer from '../core/BaseLayer';\nimport MaskModels, { MaskModelType } from './models';\n\ninterface IMaskLayerStyleOptions {\n opacity: number;\n}\n\nexport default class MaskLayer extends BaseLayer<IMaskLayerStyleOptions> {\n public type: string = 'MaskLayer';\n public buildModels() {\n const shape = this.getModelType();\n this.layerModel = new MaskModels[shape](this);\n this.models = this.layerModel.initModels();\n }\n public rebuildModels() {\n this.models = this.layerModel.buildModels();\n }\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n\n protected getModelType(): MaskModelType {\n return 'fill';\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/mask/index.ts"],"names":["BaseLayer","MaskModels","MaskLayer","shape","getModelType","layerModel","models","initModels","buildModels","properties","opacity","type","minimum","maximum"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,SAAP,MAAsB,mBAAtB;AAEA,OAAOC,UAAP,MAA0C,UAA1C;;IAEqBC,S;;;;;;;;;;;;;;;;2DACG,W;;;;;;;WACtB,uBAAqB;AACnB,UAAMC,KAAK,GAAG,KAAKC,YAAL,EAAd;AACA,WAAKC,UAAL,GAAkB,IAAIJ,UAAU,CAACE,KAAD,CAAd,CAAsB,IAAtB,CAAlB;AACA,WAAKG,MAAL,GAAc,KAAKD,UAAL,CAAgBE,UAAhB,EAAd;AACD;;;WACD,yBAAuB;AACrB,WAAKD,MAAL,GAAc,KAAKD,UAAL,CAAgBG,WAAhB,EAAd;AACD;;;WACD,2BAA4B;AAC1B,aAAO;AACLC,QAAAA,UAAU,EAAE;AACVC,UAAAA,OAAO,EAAE;AACPC,YAAAA,IAAI,EAAE,QADC;AAEPC,YAAAA,OAAO,EAAE,CAFF;AAGPC,YAAAA,OAAO,EAAE;AAHF;AADC;AADP,OAAP;AASD;;;WAED,wBAAwC;AACtC,aAAO,MAAP;AACD;;;;EAxBoCb,S;;SAAlBE,S","sourcesContent":["import BaseLayer from '../core/BaseLayer';\nimport { IMaskLayerStyleOptions } from '../core/interface';\nimport MaskModels, { MaskModelType } from './models';\n\nexport default class MaskLayer extends BaseLayer<IMaskLayerStyleOptions> {\n public type: string = 'MaskLayer';\n public buildModels() {\n const shape = this.getModelType();\n this.layerModel = new MaskModels[shape](this);\n this.models = this.layerModel.initModels();\n }\n public rebuildModels() {\n this.models = this.layerModel.buildModels();\n }\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n\n protected getModelType(): MaskModelType {\n return 'fill';\n }\n}\n"],"file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mask/models/fill.ts"],"names":["gl","BaseModel","polygonTriangulation","MaskModel","layer","getLayerConfig","opacity","u_opacity","buildModels","buildLayerModel","moduleName","vertexShader","mask_vert","fragmentShader","mask_frag","triangulation","blend","getBlend","depth","enable","stencil","mask","func","cmp","ALWAYS","ref","opFront","fail","REPLACE","zfail","zpass","dataTexture","destroy","layerService","clear"],"mappings":";;;;;;;;;;;AAAA,SAASA,EAAT,QAA2B,eAA3B;AAEA,OAAOC,SAAP,MAAuC,sBAAvC;AACA,SAASC,oBAAT,QAAqC,0BAArC;;;;IAMqBC,S;;;;;;;;;;;;;WACnB,wBAAsB;AACpB,iBAAwB,KAAKC,KAAL,CAAWC,cAAX,EAAxB;AAAA,8BAAQC,OAAR;AAAA,UAAQA,OAAR,6BAAkB,CAAlB;;AACA,aAAO;AACLC,QAAAA,SAAS,EAAE,UAASD,OAAT,IAAoBA,OAApB,GAA8B;AADpC,OAAP;AAGD;;;WAED,sBAA8B;AAC5B,aAAO,KAAKE,WAAL,EAAP;AACD;;;WAED,uBAA+B;AAC7B,aAAO,CACL,KAAKJ,KAAL,CAAWK,eAAX,CAA2B;AACzBC,QAAAA,UAAU,EAAE,MADa;AAEzBC,QAAAA,YAAY,EAAEC,SAFW;AAGzBC,QAAAA,cAAc,EAAEC,SAHS;AAIzBC,QAAAA,aAAa,EAAEb,oBAJU;AAKzBc,QAAAA,KAAK,EAAE,KAAKC,QAAL,EALkB;AAMzBC,QAAAA,KAAK,EAAE;AAAEC,UAAAA,MAAM,EAAE;AAAV,SANkB;AAQzBC,QAAAA,OAAO,EAAE;AACPD,UAAAA,MAAM,EAAE,IADD;AAEPE,UAAAA,IAAI,EAAE,IAFC;AAGPC,UAAAA,IAAI,EAAE;AACJC,YAAAA,GAAG,EAAEvB,EAAE,CAACwB,MADJ;AAEJC,YAAAA,GAAG,EAAE,CAFD;AAGJJ,YAAAA,IAAI,EAAE;AAHF,WAHC;AAQPK,UAAAA,OAAO,EAAE;AACPC,YAAAA,IAAI,EAAE3B,EAAE,CAAC4B,OADF;AAEPC,YAAAA,KAAK,EAAE7B,EAAE,CAAC4B,OAFH;AAGPE,YAAAA,KAAK,EAAE9B,EAAE,CAAC4B;AAHH;AARF;AARgB,OAA3B,CADK,CAAP;AAyBD;;;WAED,uBAAqB;AAAA;;AACnB,gCAAKG,WAAL,wEAAkBC,OAAlB;AACA,WAAKC,YAAL,CAAkBC,KAAlB;AACD;;;WAED,qCAAsC;AACpC,aAAO,EAAP;AACD;;;;EA/CoCjC,S;;SAAlBE,S","sourcesContent":["import { gl, IModel } from '@antv/l7-core';\nimport { isNumber } from 'lodash';\nimport BaseModel, { styleSingle } from '../../core/BaseModel';\nimport { polygonTriangulation } from '../../core/triangulation';\nimport mask_frag from '../shaders/mask_frag.glsl';\nimport mask_vert from '../shaders/mask_vert.glsl';\ninterface IMaskStyleOptions {\n opacity: styleSingle;\n}\nexport default class MaskModel extends BaseModel {\n public getUninforms() {\n const { opacity = 0 } = this.layer.getLayerConfig() as IMaskStyleOptions;\n return {\n u_opacity: isNumber(opacity) ? opacity : 0.0,\n };\n }\n\n public initModels(): IModel[] {\n return this.buildModels();\n }\n\n public buildModels(): IModel[] {\n return [\n this.layer.buildLayerModel({\n moduleName: 'mask',\n vertexShader: mask_vert,\n fragmentShader: mask_frag,\n triangulation: polygonTriangulation,\n blend: this.getBlend(),\n depth: { enable: false },\n\n stencil: {\n enable: true,\n mask: 0xff,\n func: {\n cmp: gl.ALWAYS,\n ref: 1,\n mask: 0xff,\n },\n opFront: {\n fail: gl.REPLACE,\n zfail: gl.REPLACE,\n zpass: gl.REPLACE,\n },\n },\n }),\n ];\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n this.layerService.clear();\n }\n\n protected registerBuiltinAttributes() {\n return '';\n }\n}\n"],"file":"fill.js"}
1
+ {"version":3,"sources":["../../../src/mask/models/fill.ts"],"names":["gl","BaseModel","polygonTriangulation","MaskModel","layer","getLayerConfig","opacity","u_opacity","buildModels","buildLayerModel","moduleName","vertexShader","mask_vert","fragmentShader","mask_frag","triangulation","blend","getBlend","depth","enable","stencil","mask","func","cmp","ALWAYS","ref","opFront","fail","REPLACE","zfail","zpass","dataTexture","destroy","layerService","clear"],"mappings":";;;;;;;;;;;AAAA,SAASA,EAAT,QAA2B,eAA3B;AAEA,OAAOC,SAAP,MAAsB,sBAAtB;AAEA,SAASC,oBAAT,QAAqC,0BAArC;;;;IAIqBC,S;;;;;;;;;;;;;WACnB,wBAAsB;AACpB,iBAEI,KAAKC,KAAL,CAAWC,cAAX,EAFJ;AAAA,8BACEC,OADF;AAAA,UACEA,OADF,6BACY,CADZ;;AAGA,aAAO;AACLC,QAAAA,SAAS,EAAE,UAASD,OAAT,IAAoBA,OAApB,GAA8B;AADpC,OAAP;AAGD;;;WAED,sBAA8B;AAC5B,aAAO,KAAKE,WAAL,EAAP;AACD;;;WAED,uBAA+B;AAC7B,aAAO,CACL,KAAKJ,KAAL,CAAWK,eAAX,CAA2B;AACzBC,QAAAA,UAAU,EAAE,MADa;AAEzBC,QAAAA,YAAY,EAAEC,SAFW;AAGzBC,QAAAA,cAAc,EAAEC,SAHS;AAIzBC,QAAAA,aAAa,EAAEb,oBAJU;AAKzBc,QAAAA,KAAK,EAAE,KAAKC,QAAL,EALkB;AAMzBC,QAAAA,KAAK,EAAE;AAAEC,UAAAA,MAAM,EAAE;AAAV,SANkB;AAQzBC,QAAAA,OAAO,EAAE;AACPD,UAAAA,MAAM,EAAE,IADD;AAEPE,UAAAA,IAAI,EAAE,IAFC;AAGPC,UAAAA,IAAI,EAAE;AACJC,YAAAA,GAAG,EAAEvB,EAAE,CAACwB,MADJ;AAEJC,YAAAA,GAAG,EAAE,CAFD;AAGJJ,YAAAA,IAAI,EAAE;AAHF,WAHC;AAQPK,UAAAA,OAAO,EAAE;AACPC,YAAAA,IAAI,EAAE3B,EAAE,CAAC4B,OADF;AAEPC,YAAAA,KAAK,EAAE7B,EAAE,CAAC4B,OAFH;AAGPE,YAAAA,KAAK,EAAE9B,EAAE,CAAC4B;AAHH;AARF;AARgB,OAA3B,CADK,CAAP;AAyBD;;;WAED,uBAAqB;AAAA;;AACnB,gCAAKG,WAAL,wEAAkBC,OAAlB;AACA,WAAKC,YAAL,CAAkBC,KAAlB;AACD;;;WAED,qCAAsC;AACpC,aAAO,EAAP;AACD;;;;EAjDoCjC,S;;SAAlBE,S","sourcesContent":["import { gl, IModel } from '@antv/l7-core';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IMaskLayerStyleOptions } from '../../core/interface';\nimport { polygonTriangulation } from '../../core/triangulation';\nimport mask_frag from '../shaders/mask_frag.glsl';\nimport mask_vert from '../shaders/mask_vert.glsl';\n\nexport default class MaskModel extends BaseModel {\n public getUninforms() {\n const {\n opacity = 0,\n } = this.layer.getLayerConfig() as IMaskLayerStyleOptions;\n return {\n u_opacity: isNumber(opacity) ? opacity : 0.0,\n };\n }\n\n public initModels(): IModel[] {\n return this.buildModels();\n }\n\n public buildModels(): IModel[] {\n return [\n this.layer.buildLayerModel({\n moduleName: 'mask',\n vertexShader: mask_vert,\n fragmentShader: mask_frag,\n triangulation: polygonTriangulation,\n blend: this.getBlend(),\n depth: { enable: false },\n\n stencil: {\n enable: true,\n mask: 0xff,\n func: {\n cmp: gl.ALWAYS,\n ref: 1,\n mask: 0xff,\n },\n opFront: {\n fail: gl.REPLACE,\n zfail: gl.REPLACE,\n zpass: gl.REPLACE,\n },\n },\n }),\n ];\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n this.layerService.clear();\n }\n\n protected registerBuiltinAttributes() {\n return '';\n }\n}\n"],"file":"fill.js"}
@@ -11,6 +11,7 @@ export default class DataMappingPlugin implements ILayerPlugin {
11
11
  private getArrowPoints;
12
12
  private mapping;
13
13
  private adjustData2Amap2Coordinates;
14
+ private getLayerCenter;
14
15
  private adjustData2SimpleCoordinates;
15
16
  private unProjectCoordinates;
16
17
  private applyAttributeMapping;
@@ -70,10 +70,10 @@ var DataMappingPlugin = (_dec = injectable(), _dec2 = inject(TYPES.IGlobalConfig
70
70
 
71
71
  if (attributesToRemapping.length) {
72
72
  if (filter !== null && filter !== void 0 && filter.needRemapping) {
73
- layer.setEncodedData(_this.mapping(attributes, filterData, undefined, bottomColor, layer));
73
+ layer.setEncodedData(_this.mapping(layer, attributes, filterData, undefined, bottomColor));
74
74
  filter.needRemapping = false;
75
75
  } else {
76
- layer.setEncodedData(_this.mapping(attributesToRemapping, filterData, layer.getEncodedData(), bottomColor, layer));
76
+ layer.setEncodedData(_this.mapping(layer, attributesToRemapping, filterData, layer.getEncodedData(), bottomColor));
77
77
  }
78
78
 
79
79
  layer.emit('remapping', null);
@@ -98,7 +98,7 @@ var DataMappingPlugin = (_dec = injectable(), _dec2 = inject(TYPES.IGlobalConfig
98
98
  });
99
99
  }
100
100
 
101
- layer.setEncodedData(this.mapping(attributes, filterData, undefined, bottomColor, layer));
101
+ layer.setEncodedData(this.mapping(layer, attributes, filterData, undefined, bottomColor));
102
102
  layer.emit('dataUpdate', null);
103
103
  }
104
104
  }, {
@@ -111,10 +111,10 @@ var DataMappingPlugin = (_dec = injectable(), _dec2 = inject(TYPES.IGlobalConfig
111
111
  }
112
112
  }, {
113
113
  key: "mapping",
114
- value: function mapping(attributes, data, predata, minimumColor, layer) {
114
+ value: function mapping(layer, attributes, data, predata, minimumColor) {
115
115
  var _this3 = this;
116
116
 
117
- var _ref3 = layer === null || layer === void 0 ? void 0 : layer.getLayerConfig(),
117
+ var _ref3 = layer.getLayerConfig(),
118
118
  _ref3$arrow = _ref3.arrow,
119
119
  arrow = _ref3$arrow === void 0 ? {
120
120
  enable: false
@@ -158,23 +158,25 @@ var DataMappingPlugin = (_dec = injectable(), _dec2 = inject(TYPES.IGlobalConfig
158
158
 
159
159
  return encodeRecord;
160
160
  });
161
- this.adjustData2Amap2Coordinates(mappedData);
161
+ this.adjustData2Amap2Coordinates(mappedData, layer);
162
162
  this.adjustData2SimpleCoordinates(mappedData);
163
163
  return mappedData;
164
164
  }
165
165
  }, {
166
166
  key: "adjustData2Amap2Coordinates",
167
- value: function adjustData2Amap2Coordinates(mappedData) {
167
+ value: function adjustData2Amap2Coordinates(mappedData, layer) {
168
168
  var _this4 = this;
169
169
 
170
170
  if (mappedData.length > 0 && this.mapService.version === Version['GAODE2.x']) {
171
+ var layerCenter = this.getLayerCenter(layer);
172
+
171
173
  if (typeof mappedData[0].coordinates[0] === 'number') {
172
174
  mappedData.filter(function (d) {
173
175
  return !d.originCoordinates;
174
176
  }).map(function (d) {
175
177
  d.version = Version['GAODE2.x'];
176
178
  d.originCoordinates = _cloneDeep(d.coordinates);
177
- d.coordinates = _this4.mapService.lngLatToCoord(d.coordinates);
179
+ d.coordinates = _this4.mapService.lngLatToCoordByLayer(d.coordinates, layerCenter);
178
180
  });
179
181
  } else {
180
182
  mappedData.filter(function (d) {
@@ -182,11 +184,17 @@ var DataMappingPlugin = (_dec = injectable(), _dec2 = inject(TYPES.IGlobalConfig
182
184
  }).map(function (d) {
183
185
  d.version = Version['GAODE2.x'];
184
186
  d.originCoordinates = _cloneDeep(d.coordinates);
185
- d.coordinates = _this4.mapService.lngLatToCoords(d.coordinates);
187
+ d.coordinates = _this4.mapService.lngLatToCoordsByLayer(d.coordinates, layerCenter);
186
188
  });
187
189
  }
188
190
  }
189
191
  }
192
+ }, {
193
+ key: "getLayerCenter",
194
+ value: function getLayerCenter(layer) {
195
+ var source = layer.getSource();
196
+ return source.center;
197
+ }
190
198
  }, {
191
199
  key: "adjustData2SimpleCoordinates",
192
200
  value: function adjustData2SimpleCoordinates(mappedData) {