@antv/l7-layers 2.8.32 → 2.8.33

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 (36) hide show
  1. package/es/Geometry/models/plane.d.ts +13 -11
  2. package/es/Geometry/models/plane.js +134 -110
  3. package/es/Geometry/models/plane.js.map +1 -1
  4. package/es/canvas/models/canvas.js +5 -3
  5. package/es/canvas/models/canvas.js.map +1 -1
  6. package/es/core/BaseLayer.d.ts +5 -1
  7. package/es/core/BaseLayer.js +47 -0
  8. package/es/core/BaseLayer.js.map +1 -1
  9. package/es/line/models/line.js +1 -0
  10. package/es/line/models/line.js.map +1 -1
  11. package/es/point/models/fill.js +1 -0
  12. package/es/point/models/fill.js.map +1 -1
  13. package/es/point/models/simplePoint.js +1 -0
  14. package/es/point/models/simplePoint.js.map +1 -1
  15. package/es/polygon/models/fill.js +1 -0
  16. package/es/polygon/models/fill.js.map +1 -1
  17. package/es/utils/layerData.d.ts +2 -0
  18. package/es/utils/layerData.js +152 -0
  19. package/es/utils/layerData.js.map +1 -0
  20. package/lib/Geometry/models/plane.js +133 -108
  21. package/lib/Geometry/models/plane.js.map +1 -1
  22. package/lib/canvas/models/canvas.js +5 -3
  23. package/lib/canvas/models/canvas.js.map +1 -1
  24. package/lib/core/BaseLayer.js +47 -0
  25. package/lib/core/BaseLayer.js.map +1 -1
  26. package/lib/line/models/line.js +1 -0
  27. package/lib/line/models/line.js.map +1 -1
  28. package/lib/point/models/fill.js +1 -0
  29. package/lib/point/models/fill.js.map +1 -1
  30. package/lib/point/models/simplePoint.js +1 -0
  31. package/lib/point/models/simplePoint.js.map +1 -1
  32. package/lib/polygon/models/fill.js +1 -0
  33. package/lib/polygon/models/fill.js.map +1 -1
  34. package/lib/utils/layerData.js +163 -0
  35. package/lib/utils/layerData.js.map +1 -0
  36. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/line/models/line.ts"],"names":["lineStyleObj","solid","dash","LineModel","createTexture2D","rendererService","texture","update","data","iconService","getCanvas","layer","render","mag","gl","NEAREST","min","premultiplyAlpha","width","height","canvasHeight","getLayerConfig","opacity","sourceColor","targetColor","textureBlend","lineType","dashArray","lineTexture","iconStep","vertexHeightScale","borderWidth","borderColor","raisingHeight","heightfixed","arrow","enable","arrowWidth","arrowHeight","tailWidth","length","push","getDirty","bind","useLinearColor","sourceColorArr","targetColorArr","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","flipY","format","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_textureBlend","u_line_type","u_dash_array","u_texture","u_line_texture","u_icon_step","u_textSize","u_borderWidth","u_borderColor","u_linearColor","u_sourceColor","u_targetColor","u_heightfixed","Number","u_vertexScale","u_raisingHeight","u_arrow","u_arrowHeight","u_arrowWidth","u_tailWidth","undefined","animateOption","u_aimate","animateOption2Array","u_time","getLayerAnimateTime","updateTexture","on","buildModels","destroy","off","mask","maskInside","depth","getShaders","frag","vert","buildLayerModel","moduleName","vertexShader","fragmentShader","triangulation","LineTriangulation","primitive","TRIANGLES","blend","getBlend","stencil","line_dash_frag","line_dash_vert","linear_line_frag","line_vert","line_frag","styleAttributeService","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","feature","featureIdx","vertex","attributeIdx","normal","vertexIndex","DYNAMIC_DRAW","Array","isArray","iconMap","getIconMap","x","y","BaseModel"],"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 { getMask, 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';\n// dash line shader\nimport line_dash_frag from '../shaders/dash/line_dash_frag.glsl';\nimport line_dash_vert from '../shaders/dash/line_dash_vert.glsl';\n// basic line shader\nimport line_frag from '../shaders/line_frag.glsl';\nimport line_vert from '../shaders/line_vert.glsl';\n// other function shaders\nimport linear_line_frag from '../shaders/linear/line_linear_frag.glsl';\n\nconst lineStyleObj: { [key: string]: number } = {\n solid: 0.0,\n dash: 1.0,\n};\nexport default class LineModel extends BaseModel {\n protected texture: ITexture2D;\n public getUninforms(): IModelUniform {\n const {\n opacity,\n sourceColor,\n targetColor,\n textureBlend = 'normal',\n lineType = 'solid',\n dashArray = [10, 5, 0, 0],\n lineTexture = false,\n iconStep = 100,\n vertexHeightScale = 20.0,\n borderWidth = 0.0,\n borderColor = '#ccc',\n raisingHeight = 0,\n heightfixed = false,\n arrow = {\n enable: false,\n arrowWidth: 2,\n arrowHeight: 3,\n tailWidth: 1,\n },\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n if (dashArray.length === 2) {\n dashArray.push(0, 0);\n }\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 return {\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 u_line_type: lineStyleObj[lineType],\n u_dash_array: dashArray,\n\n // 纹理支持参数\n u_texture: this.texture, // 贴图\n u_line_texture: lineTexture ? 1.0 : 0.0, // 传入线的标识\n u_icon_step: iconStep,\n u_textSize: [1024, this.iconService.canvasHeight || 128],\n\n // line border 参数\n u_borderWidth: borderWidth,\n u_borderColor: rgb2arr(borderColor),\n\n // 渐变色支持参数\n u_linearColor: useLinearColor,\n u_sourceColor: sourceColorArr,\n u_targetColor: targetColorArr,\n\n // 是否固定高度\n u_heightfixed: Number(heightfixed),\n\n // 顶点高度 scale\n u_vertexScale: vertexHeightScale,\n u_raisingHeight: Number(raisingHeight),\n\n // arrow\n u_arrow: Number(arrow.enable),\n u_arrowHeight: arrow.arrowHeight || 3,\n u_arrowWidth: arrow.arrowWidth || 2,\n u_tailWidth: arrow.tailWidth === undefined ? 1 : arrow.tailWidth,\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 const {\n mask = false,\n maskInside = true,\n depth = false,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n const { frag, vert, type } = this.getShaders();\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 // depth: { enable: true },\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 const {\n sourceColor,\n targetColor,\n lineType,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n if (lineType === 'dash') {\n return {\n frag: line_dash_frag,\n vert: line_dash_vert,\n type: 'dash',\n };\n }\n\n if (sourceColor && targetColor) {\n // 分离 linear 功能\n return {\n frag: linear_line_frag,\n vert: line_vert,\n type: 'linear',\n };\n } else {\n return {\n frag: line_frag,\n vert: line_vert,\n type: 'normal',\n };\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 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\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":"line.js"}
1
+ {"version":3,"sources":["../../../src/line/models/line.ts"],"names":["lineStyleObj","solid","dash","LineModel","createTexture2D","rendererService","texture","update","data","iconService","getCanvas","layer","render","mag","gl","NEAREST","min","premultiplyAlpha","width","height","canvasHeight","getLayerConfig","opacity","sourceColor","targetColor","textureBlend","lineType","dashArray","lineTexture","iconStep","vertexHeightScale","borderWidth","borderColor","raisingHeight","heightfixed","arrow","enable","arrowWidth","arrowHeight","tailWidth","length","push","getDirty","bind","useLinearColor","sourceColorArr","targetColorArr","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","flipY","format","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_textureBlend","u_line_type","u_dash_array","u_texture","u_line_texture","u_icon_step","u_textSize","u_borderWidth","u_borderColor","u_linearColor","u_sourceColor","u_targetColor","u_heightfixed","Number","u_vertexScale","u_raisingHeight","u_arrow","u_arrowHeight","u_arrowWidth","u_tailWidth","undefined","animateOption","u_aimate","animateOption2Array","u_time","getLayerAnimateTime","updateTexture","on","buildModels","destroy","off","mask","maskInside","depth","getShaders","frag","vert","triangulation","LineTriangulation","buildLayerModel","moduleName","vertexShader","fragmentShader","primitive","TRIANGLES","blend","getBlend","stencil","line_dash_frag","line_dash_vert","linear_line_frag","line_vert","line_frag","styleAttributeService","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","feature","featureIdx","vertex","attributeIdx","normal","vertexIndex","DYNAMIC_DRAW","Array","isArray","iconMap","getIconMap","x","y","BaseModel"],"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 { getMask, 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';\n// dash line shader\nimport line_dash_frag from '../shaders/dash/line_dash_frag.glsl';\nimport line_dash_vert from '../shaders/dash/line_dash_vert.glsl';\n// basic line shader\nimport line_frag from '../shaders/line_frag.glsl';\nimport line_vert from '../shaders/line_vert.glsl';\n// other function shaders\nimport linear_line_frag from '../shaders/linear/line_linear_frag.glsl';\n\nconst lineStyleObj: { [key: string]: number } = {\n solid: 0.0,\n dash: 1.0,\n};\nexport default class LineModel extends BaseModel {\n protected texture: ITexture2D;\n public getUninforms(): IModelUniform {\n const {\n opacity,\n sourceColor,\n targetColor,\n textureBlend = 'normal',\n lineType = 'solid',\n dashArray = [10, 5, 0, 0],\n lineTexture = false,\n iconStep = 100,\n vertexHeightScale = 20.0,\n borderWidth = 0.0,\n borderColor = '#ccc',\n raisingHeight = 0,\n heightfixed = false,\n arrow = {\n enable: false,\n arrowWidth: 2,\n arrowHeight: 3,\n tailWidth: 1,\n },\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n if (dashArray.length === 2) {\n dashArray.push(0, 0);\n }\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 return {\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 u_line_type: lineStyleObj[lineType],\n u_dash_array: dashArray,\n\n // 纹理支持参数\n u_texture: this.texture, // 贴图\n u_line_texture: lineTexture ? 1.0 : 0.0, // 传入线的标识\n u_icon_step: iconStep,\n u_textSize: [1024, this.iconService.canvasHeight || 128],\n\n // line border 参数\n u_borderWidth: borderWidth,\n u_borderColor: rgb2arr(borderColor),\n\n // 渐变色支持参数\n u_linearColor: useLinearColor,\n u_sourceColor: sourceColorArr,\n u_targetColor: targetColorArr,\n\n // 是否固定高度\n u_heightfixed: Number(heightfixed),\n\n // 顶点高度 scale\n u_vertexScale: vertexHeightScale,\n u_raisingHeight: Number(raisingHeight),\n\n // arrow\n u_arrow: Number(arrow.enable),\n u_arrowHeight: arrow.arrowHeight || 3,\n u_arrowWidth: arrow.arrowWidth || 2,\n u_tailWidth: arrow.tailWidth === undefined ? 1 : arrow.tailWidth,\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 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 // depth: { enable: true },\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 const {\n sourceColor,\n targetColor,\n lineType,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n if (lineType === 'dash') {\n return {\n frag: line_dash_frag,\n vert: line_dash_vert,\n type: 'dash',\n };\n }\n\n if (sourceColor && targetColor) {\n // 分离 linear 功能\n return {\n frag: linear_line_frag,\n vert: line_vert,\n type: 'linear',\n };\n } else {\n return {\n frag: line_frag,\n vert: line_vert,\n type: 'normal',\n };\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 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\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":"line.js"}
@@ -228,6 +228,7 @@ var FillModel = function (_BaseModel) {
228
228
  type = _this$getShaders.type;
229
229
 
230
230
  var isGlobel = this.mapService.version === 'GLOBEL';
231
+ this.layer.triangulation = isGlobel ? _triangulation.GlobelPointFillTriangulation : _triangulation.PointFillTriangulation;
231
232
  return [this.layer.buildLayerModel({
232
233
  moduleName: 'pointfill_' + type,
233
234
  vertexShader: vert,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/point/models/fill.ts"],"names":["FillModel","layer","getLayerConfig","opacity","strokeOpacity","strokeWidth","stroke","offsets","blend","blur","raisingHeight","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","width","height","rowCount","dataTexture","length","createTexture2D","flipY","format","gl","LUMINANCE","type","FLOAT","u_raisingHeight","Number","u_isMeter","isMeter","u_blur","u_additive","u_globel","mapService","version","Version","GLOBEL","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_stroke_opacity","u_stroke_width","u_stroke_color","getStrokeColor","u_offsets","isOffsetStatic","animateOption","enable","u_aimate","animateOption2Array","u_time","getLayerAnimateTime","styleAttributeService","createAttributesAndIndices","PointFillTriangulation","unit","L7MAP","calMeter2Coord","buildModels","getSource","extent","minLng","minLat","maxLng","maxLat","center","MAPBOX","window","mapboxgl","MercatorCoordinate","coord","fromLngLat","lng","lat","offsetInMeters","offsetInMercatorCoordinateUnits","meterInMercatorCoordinateUnits","westCoord","x","y","z","westLnglat","toLngLat","meter2coord","m1","meterToCoord","m2","Boolean","mask","maskInside","getShaders","frag","vert","isGlobel","buildLayerModel","moduleName","vertexShader","fragmentShader","triangulation","GlobelPointFillTriangulation","depth","getBlend","stencil","cull","face","waveFillFrag","pointFillVert","pointFillFrag","destroy","option","speed","rings","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx","extrude","n1","vec3","fromValues","n2","xzReg","angle","Math","PI","yReg","asin","m","mat4","create","rotateY","rotateX","v1","transformMat4","normalize","v2","v3","v4","extrudeIndex","Array","isArray","shape","shape2d","shapeIndex","indexOf","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAnimateOption,\n IAttribute,\n IElements,\n IEncodeFeature,\n ILayerConfig,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { getCullFace, getMask } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { IPointLayerStyleOptions } from '../../core/interface';\nimport {\n GlobelPointFillTriangulation,\n PointFillTriangulation,\n} from '../../core/triangulation';\n// animate pointLayer shader - support animate\nimport waveFillFrag from '../shaders/animate/wave_frag.glsl';\n// static pointLayer shader - not support animate\nimport pointFillFrag from '../shaders/fill_frag.glsl';\nimport pointFillVert from '../shaders/fill_vert.glsl';\n\nimport { isNumber } from 'lodash';\n\nimport { Version } from '@antv/l7-maps';\nimport { mat4, vec3 } from 'gl-matrix';\nexport default class FillModel extends BaseModel {\n public meter2coord: number = 1;\n private isMeter: boolean = false;\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n strokeOpacity = 1,\n strokeWidth = 0,\n stroke = 'rgba(0,0,0,0)',\n offsets = [0, 0],\n blend,\n blur = 0,\n raisingHeight = 0,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n\n if (\n this.dataTextureTest &&\n this.dataTextureNeedUpdate({\n opacity,\n strokeOpacity,\n strokeWidth,\n stroke,\n offsets,\n })\n ) {\n // 判断当前的样式中哪些是需要进行数据映射的,哪些是常量,同时计算用于构建数据纹理的一些中间变量\n this.judgeStyleAttributes({\n opacity,\n strokeOpacity,\n strokeWidth,\n stroke,\n offsets,\n });\n\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_raisingHeight: Number(raisingHeight),\n\n u_isMeter: Number(this.isMeter),\n u_blur: blur,\n\n u_additive: blend === 'additive' ? 1.0 : 0.0,\n u_globel: this.mapService.version === Version.GLOBEL ? 1 : 0,\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_stroke_opacity: isNumber(strokeOpacity) ? strokeOpacity : 1.0,\n u_stroke_width: isNumber(strokeWidth) ? strokeWidth : 0.0,\n u_stroke_color: this.getStrokeColor(stroke),\n u_offsets: this.isOffsetStatic(offsets)\n ? (offsets as [number, number])\n : [0, 0],\n };\n }\n public getAnimateUniforms(): IModelUniform {\n const {\n animateOption = { enable: false },\n } = this.layer.getLayerConfig() as ILayerConfig;\n return {\n u_aimate: this.animateOption2Array(animateOption),\n u_time: this.layer.getLayerAnimateTime(),\n };\n }\n\n public getAttribute(): {\n attributes: {\n [attributeName: string]: IAttribute;\n };\n elements: IElements;\n } {\n return this.styleAttributeService.createAttributesAndIndices(\n this.layer.getEncodedData(),\n PointFillTriangulation,\n );\n }\n\n public initModels(): IModel[] {\n const {\n unit = 'l7size',\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const { version } = this.mapService;\n if (\n unit === 'meter' &&\n version !== Version.L7MAP &&\n version !== Version.GLOBEL\n ) {\n this.isMeter = true;\n this.calMeter2Coord();\n }\n\n return this.buildModels();\n }\n\n /**\n * 计算等面积点图层(unit meter)笛卡尔坐标标度与世界坐标标度的比例\n * @returns\n */\n public calMeter2Coord() {\n // @ts-ignore\n const [minLng, minLat, maxLng, maxLat] = this.layer.getSource().extent;\n const center = [(minLng + maxLng) / 2, (minLat + maxLat) / 2];\n\n const { version } = this.mapService;\n if (version === Version.MAPBOX && window.mapboxgl.MercatorCoordinate) {\n const coord = window.mapboxgl.MercatorCoordinate.fromLngLat(\n { lng: center[0], lat: center[1] },\n 0,\n );\n const offsetInMeters = 1;\n const offsetInMercatorCoordinateUnits =\n offsetInMeters * coord.meterInMercatorCoordinateUnits();\n const westCoord = new window.mapboxgl.MercatorCoordinate(\n coord.x - offsetInMercatorCoordinateUnits,\n coord.y,\n coord.z,\n );\n const westLnglat = westCoord.toLngLat();\n\n this.meter2coord = center[0] - westLnglat.lng;\n return;\n }\n\n // @ts-ignore\n const m1 = this.mapService.meterToCoord(center, [minLng, minLat]);\n // @ts-ignore\n const m2 = this.mapService.meterToCoord(center, [\n maxLng === minLng ? maxLng + 0.1 : maxLng,\n maxLat === minLat ? minLat + 0.1 : maxLat,\n ]);\n this.meter2coord = (m1 + m2) / 2;\n if (!Boolean(this.meter2coord)) {\n // Tip: 兼容单个数据导致的 m1、m2 为 NaN\n this.meter2coord = 7.70681090738883;\n }\n }\n\n public buildModels(): IModel[] {\n const {\n mask = false,\n maskInside = true,\n animateOption = { enable: false },\n } = this.layer.getLayerConfig() as Partial<\n ILayerConfig & IPointLayerStyleOptions\n >;\n const { frag, vert, type } = this.getShaders(animateOption);\n\n // TODO: 判断当前的点图层的模型是普通地图模式还是地球模式\n const isGlobel = this.mapService.version === 'GLOBEL';\n return [\n this.layer.buildLayerModel({\n moduleName: 'pointfill_' + type,\n vertexShader: vert,\n fragmentShader: frag,\n triangulation: isGlobel\n ? GlobelPointFillTriangulation\n : PointFillTriangulation,\n // depth: { enable: false },\n depth: { enable: isGlobel },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n cull: {\n enable: true,\n face: getCullFace(this.mapService.version),\n },\n }),\n ];\n }\n\n /**\n * 根据 animateOption 的值返回对应的 shader 代码\n * @returns\n */\n public getShaders(\n animateOption: Partial<IAnimateOption>,\n ): { frag: string; vert: string; type: string } {\n if (animateOption.enable) {\n switch (animateOption.type) {\n case 'wave':\n return {\n frag: waveFillFrag,\n vert: pointFillVert,\n type: 'wave',\n };\n default:\n return {\n frag: waveFillFrag,\n vert: pointFillVert,\n type: 'wave',\n };\n }\n } else {\n return {\n frag: pointFillFrag,\n vert: pointFillVert,\n type: 'normal',\n };\n }\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n }\n\n // overwrite baseModel func\n protected animateOption2Array(option: Partial<IAnimateOption>): number[] {\n return [option.enable ? 0 : 1.0, option.speed || 1, option.rings || 3, 0];\n }\n protected registerBuiltinAttributes() {\n // TODO: 判断当前的点图层的模型是普通地图模式还是地球模式\n const isGlobel = this.mapService.version === 'GLOBEL';\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'extrude',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Extrude',\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: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n let extrude;\n // 地球模式\n if (isGlobel) {\n const [x, y, z] = vertex;\n const n1 = vec3.fromValues(0, 0, 1);\n const n2 = vec3.fromValues(x, 0, z);\n\n const xzReg =\n x >= 0 ? vec3.angle(n1, n2) : Math.PI * 2 - vec3.angle(n1, n2);\n\n const yReg = Math.PI * 2 - Math.asin(y / 100);\n\n const m = mat4.create();\n mat4.rotateY(m, m, xzReg);\n mat4.rotateX(m, m, yReg);\n\n const v1 = vec3.fromValues(1, 1, 0);\n vec3.transformMat4(v1, v1, m);\n vec3.normalize(v1, v1);\n\n const v2 = vec3.fromValues(-1, 1, 0);\n vec3.transformMat4(v2, v2, m);\n vec3.normalize(v2, v2);\n\n const v3 = vec3.fromValues(-1, -1, 0);\n vec3.transformMat4(v3, v3, m);\n vec3.normalize(v3, v3);\n\n const v4 = vec3.fromValues(1, -1, 0);\n vec3.transformMat4(v4, v4, m);\n vec3.normalize(v4, v4);\n\n extrude = [...v1, ...v2, ...v3, ...v4];\n } else {\n // 平面模式\n extrude = [1, 1, 0, -1, 1, 0, -1, -1, 0, 1, -1, 0];\n }\n\n const extrudeIndex = (attributeIdx % 4) * 3;\n return [\n extrude[extrudeIndex],\n extrude[extrudeIndex + 1],\n extrude[extrudeIndex + 2],\n ];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 5 } = feature;\n // console.log('featureIdx', featureIdx, feature)\n return Array.isArray(size)\n ? [size[0] * this.meter2coord]\n : [(size as number) * this.meter2coord];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'shape',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Shape',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { shape = 2 } = feature;\n const shape2d = this.layer.getLayerConfig().shape2d as string[];\n const shapeIndex = shape2d.indexOf(shape as string);\n return [shapeIndex];\n },\n },\n });\n }\n}\n"],"file":"fill.js"}
1
+ {"version":3,"sources":["../../../src/point/models/fill.ts"],"names":["FillModel","layer","getLayerConfig","opacity","strokeOpacity","strokeWidth","stroke","offsets","blend","blur","raisingHeight","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","width","height","rowCount","dataTexture","length","createTexture2D","flipY","format","gl","LUMINANCE","type","FLOAT","u_raisingHeight","Number","u_isMeter","isMeter","u_blur","u_additive","u_globel","mapService","version","Version","GLOBEL","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_stroke_opacity","u_stroke_width","u_stroke_color","getStrokeColor","u_offsets","isOffsetStatic","animateOption","enable","u_aimate","animateOption2Array","u_time","getLayerAnimateTime","styleAttributeService","createAttributesAndIndices","PointFillTriangulation","unit","L7MAP","calMeter2Coord","buildModels","getSource","extent","minLng","minLat","maxLng","maxLat","center","MAPBOX","window","mapboxgl","MercatorCoordinate","coord","fromLngLat","lng","lat","offsetInMeters","offsetInMercatorCoordinateUnits","meterInMercatorCoordinateUnits","westCoord","x","y","z","westLnglat","toLngLat","meter2coord","m1","meterToCoord","m2","Boolean","mask","maskInside","getShaders","frag","vert","isGlobel","triangulation","GlobelPointFillTriangulation","buildLayerModel","moduleName","vertexShader","fragmentShader","depth","getBlend","stencil","cull","face","waveFillFrag","pointFillVert","pointFillFrag","destroy","option","speed","rings","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx","extrude","n1","vec3","fromValues","n2","xzReg","angle","Math","PI","yReg","asin","m","mat4","create","rotateY","rotateX","v1","transformMat4","normalize","v2","v3","v4","extrudeIndex","Array","isArray","shape","shape2d","shapeIndex","indexOf","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAnimateOption,\n IAttribute,\n IElements,\n IEncodeFeature,\n ILayerConfig,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { getCullFace, getMask } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { IPointLayerStyleOptions } from '../../core/interface';\nimport {\n GlobelPointFillTriangulation,\n PointFillTriangulation,\n} from '../../core/triangulation';\n// animate pointLayer shader - support animate\nimport waveFillFrag from '../shaders/animate/wave_frag.glsl';\n// static pointLayer shader - not support animate\nimport pointFillFrag from '../shaders/fill_frag.glsl';\nimport pointFillVert from '../shaders/fill_vert.glsl';\n\nimport { isNumber } from 'lodash';\n\nimport { Version } from '@antv/l7-maps';\nimport { mat4, vec3 } from 'gl-matrix';\nexport default class FillModel extends BaseModel {\n public meter2coord: number = 1;\n private isMeter: boolean = false;\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n strokeOpacity = 1,\n strokeWidth = 0,\n stroke = 'rgba(0,0,0,0)',\n offsets = [0, 0],\n blend,\n blur = 0,\n raisingHeight = 0,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n\n if (\n this.dataTextureTest &&\n this.dataTextureNeedUpdate({\n opacity,\n strokeOpacity,\n strokeWidth,\n stroke,\n offsets,\n })\n ) {\n // 判断当前的样式中哪些是需要进行数据映射的,哪些是常量,同时计算用于构建数据纹理的一些中间变量\n this.judgeStyleAttributes({\n opacity,\n strokeOpacity,\n strokeWidth,\n stroke,\n offsets,\n });\n\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_raisingHeight: Number(raisingHeight),\n\n u_isMeter: Number(this.isMeter),\n u_blur: blur,\n\n u_additive: blend === 'additive' ? 1.0 : 0.0,\n u_globel: this.mapService.version === Version.GLOBEL ? 1 : 0,\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_stroke_opacity: isNumber(strokeOpacity) ? strokeOpacity : 1.0,\n u_stroke_width: isNumber(strokeWidth) ? strokeWidth : 0.0,\n u_stroke_color: this.getStrokeColor(stroke),\n u_offsets: this.isOffsetStatic(offsets)\n ? (offsets as [number, number])\n : [0, 0],\n };\n }\n public getAnimateUniforms(): IModelUniform {\n const {\n animateOption = { enable: false },\n } = this.layer.getLayerConfig() as ILayerConfig;\n return {\n u_aimate: this.animateOption2Array(animateOption),\n u_time: this.layer.getLayerAnimateTime(),\n };\n }\n\n public getAttribute(): {\n attributes: {\n [attributeName: string]: IAttribute;\n };\n elements: IElements;\n } {\n return this.styleAttributeService.createAttributesAndIndices(\n this.layer.getEncodedData(),\n PointFillTriangulation,\n );\n }\n\n public initModels(): IModel[] {\n const {\n unit = 'l7size',\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const { version } = this.mapService;\n if (\n unit === 'meter' &&\n version !== Version.L7MAP &&\n version !== Version.GLOBEL\n ) {\n this.isMeter = true;\n this.calMeter2Coord();\n }\n\n return this.buildModels();\n }\n\n /**\n * 计算等面积点图层(unit meter)笛卡尔坐标标度与世界坐标标度的比例\n * @returns\n */\n public calMeter2Coord() {\n // @ts-ignore\n const [minLng, minLat, maxLng, maxLat] = this.layer.getSource().extent;\n const center = [(minLng + maxLng) / 2, (minLat + maxLat) / 2];\n\n const { version } = this.mapService;\n if (version === Version.MAPBOX && window.mapboxgl.MercatorCoordinate) {\n const coord = window.mapboxgl.MercatorCoordinate.fromLngLat(\n { lng: center[0], lat: center[1] },\n 0,\n );\n const offsetInMeters = 1;\n const offsetInMercatorCoordinateUnits =\n offsetInMeters * coord.meterInMercatorCoordinateUnits();\n const westCoord = new window.mapboxgl.MercatorCoordinate(\n coord.x - offsetInMercatorCoordinateUnits,\n coord.y,\n coord.z,\n );\n const westLnglat = westCoord.toLngLat();\n\n this.meter2coord = center[0] - westLnglat.lng;\n return;\n }\n\n // @ts-ignore\n const m1 = this.mapService.meterToCoord(center, [minLng, minLat]);\n // @ts-ignore\n const m2 = this.mapService.meterToCoord(center, [\n maxLng === minLng ? maxLng + 0.1 : maxLng,\n maxLat === minLat ? minLat + 0.1 : maxLat,\n ]);\n this.meter2coord = (m1 + m2) / 2;\n if (!Boolean(this.meter2coord)) {\n // Tip: 兼容单个数据导致的 m1、m2 为 NaN\n this.meter2coord = 7.70681090738883;\n }\n }\n\n public buildModels(): IModel[] {\n const {\n mask = false,\n maskInside = true,\n animateOption = { enable: false },\n } = this.layer.getLayerConfig() as Partial<\n ILayerConfig & IPointLayerStyleOptions\n >;\n const { frag, vert, type } = this.getShaders(animateOption);\n\n // TODO: 判断当前的点图层的模型是普通地图模式还是地球模式\n const isGlobel = this.mapService.version === 'GLOBEL';\n this.layer.triangulation = isGlobel\n ? GlobelPointFillTriangulation\n : PointFillTriangulation;\n return [\n this.layer.buildLayerModel({\n moduleName: 'pointfill_' + type,\n vertexShader: vert,\n fragmentShader: frag,\n triangulation: isGlobel\n ? GlobelPointFillTriangulation\n : PointFillTriangulation,\n // depth: { enable: false },\n depth: { enable: isGlobel },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n cull: {\n enable: true,\n face: getCullFace(this.mapService.version),\n },\n }),\n ];\n }\n\n /**\n * 根据 animateOption 的值返回对应的 shader 代码\n * @returns\n */\n public getShaders(\n animateOption: Partial<IAnimateOption>,\n ): { frag: string; vert: string; type: string } {\n if (animateOption.enable) {\n switch (animateOption.type) {\n case 'wave':\n return {\n frag: waveFillFrag,\n vert: pointFillVert,\n type: 'wave',\n };\n default:\n return {\n frag: waveFillFrag,\n vert: pointFillVert,\n type: 'wave',\n };\n }\n } else {\n return {\n frag: pointFillFrag,\n vert: pointFillVert,\n type: 'normal',\n };\n }\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n }\n\n // overwrite baseModel func\n protected animateOption2Array(option: Partial<IAnimateOption>): number[] {\n return [option.enable ? 0 : 1.0, option.speed || 1, option.rings || 3, 0];\n }\n protected registerBuiltinAttributes() {\n // TODO: 判断当前的点图层的模型是普通地图模式还是地球模式\n const isGlobel = this.mapService.version === 'GLOBEL';\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'extrude',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Extrude',\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: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n let extrude;\n // 地球模式\n if (isGlobel) {\n const [x, y, z] = vertex;\n const n1 = vec3.fromValues(0, 0, 1);\n const n2 = vec3.fromValues(x, 0, z);\n\n const xzReg =\n x >= 0 ? vec3.angle(n1, n2) : Math.PI * 2 - vec3.angle(n1, n2);\n\n const yReg = Math.PI * 2 - Math.asin(y / 100);\n\n const m = mat4.create();\n mat4.rotateY(m, m, xzReg);\n mat4.rotateX(m, m, yReg);\n\n const v1 = vec3.fromValues(1, 1, 0);\n vec3.transformMat4(v1, v1, m);\n vec3.normalize(v1, v1);\n\n const v2 = vec3.fromValues(-1, 1, 0);\n vec3.transformMat4(v2, v2, m);\n vec3.normalize(v2, v2);\n\n const v3 = vec3.fromValues(-1, -1, 0);\n vec3.transformMat4(v3, v3, m);\n vec3.normalize(v3, v3);\n\n const v4 = vec3.fromValues(1, -1, 0);\n vec3.transformMat4(v4, v4, m);\n vec3.normalize(v4, v4);\n\n extrude = [...v1, ...v2, ...v3, ...v4];\n } else {\n // 平面模式\n extrude = [1, 1, 0, -1, 1, 0, -1, -1, 0, 1, -1, 0];\n }\n\n const extrudeIndex = (attributeIdx % 4) * 3;\n return [\n extrude[extrudeIndex],\n extrude[extrudeIndex + 1],\n extrude[extrudeIndex + 2],\n ];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 5 } = feature;\n // console.log('featureIdx', featureIdx, feature)\n return Array.isArray(size)\n ? [size[0] * this.meter2coord]\n : [(size as number) * this.meter2coord];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'shape',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Shape',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { shape = 2 } = feature;\n const shape2d = this.layer.getLayerConfig().shape2d as string[];\n const shapeIndex = shape2d.indexOf(shape as string);\n return [shapeIndex];\n },\n },\n });\n }\n}\n"],"file":"fill.js"}
@@ -135,6 +135,7 @@ var SimplePointModel = function (_BaseModel) {
135
135
  _ref2$maskInside = _ref2.maskInside,
136
136
  maskInside = _ref2$maskInside === void 0 ? true : _ref2$maskInside;
137
137
 
138
+ this.layer.triangulation = PointTriangulation;
138
139
  return [this.layer.buildLayerModel({
139
140
  moduleName: 'simplepoint',
140
141
  vertexShader: simplePointVert,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/point/models/simplePoint.ts"],"names":["PointTriangulation","feature","coordinates","vertices","indices","size","length","SimplePointModel","blend","layer","getLayerConfig","opacity","offsets","strokeOpacity","strokeWidth","stroke","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","width","height","rowCount","dataTexture","createTexture2D","flipY","format","gl","LUMINANCE","type","FLOAT","u_additive","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_offsets","isOffsetStatic","u_stroke_opacity","u_stroke_width","u_stroke_color","getStrokeColor","buildModels","mask","maskInside","buildLayerModel","moduleName","vertexShader","simplePointVert","fragmentShader","simplePointFrag","triangulation","depth","enable","primitive","POINTS","getBlend","stencil","destroy","styleAttributeService","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","update","featureIdx","vertex","attributeIdx","Array","isArray","BlendType","additive","BaseModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AASA;;AAEA;;;;;;;;;AAMO,SAASA,kBAAT,CAA4BC,OAA5B,EAAqD;AAC1D,MAAMC,WAAW,GAAGD,OAAO,CAACC,WAA5B;AACA,SAAO;AACLC,IAAAA,QAAQ,mCAAMD,WAAN,CADH;AAELE,IAAAA,OAAO,EAAE,CAAC,CAAD,CAFJ;AAGLC,IAAAA,IAAI,EAAEH,WAAW,CAACI;AAHb,GAAP;AAKD;;IAEoBC,gB;;;;;;;;;;;;WACnB,2BAA2D;AACzD,aAAO;AACLC,QAAAA,KAAK,EAAE;AADF,OAAP;AAGD;;;WACD,wBAAqC;AACnC,iBAOI,KAAKC,KAAL,CAAWC,cAAX,EAPJ;AAAA,8BACEC,OADF;AAAA,UACEA,OADF,6BACY,CADZ;AAAA,8BAEEC,OAFF;AAAA,UAEEA,OAFF,6BAEY,CAAC,CAAD,EAAI,CAAJ,CAFZ;AAAA,UAGEJ,KAHF,QAGEA,KAHF;AAAA,oCAIEK,aAJF;AAAA,UAIEA,aAJF,mCAIkB,CAJlB;AAAA,kCAKEC,WALF;AAAA,UAKEA,WALF,iCAKgB,CALhB;AAAA,6BAMEC,MANF;AAAA,UAMEA,MANF,4BAMW,MANX;;AASA,UACE,KAAKC,eAAL,IACA,KAAKC,qBAAL,CAA2B;AACzBN,QAAAA,OAAO,EAAPA,OADyB;AAEzBC,QAAAA,OAAO,EAAPA;AAFyB,OAA3B,CAFF,EAME;AAEA,aAAKM,oBAAL,CAA0B;AACxBP,UAAAA,OAAO,EAAPA,OADwB;AAExBC,UAAAA,OAAO,EAAPA;AAFwB,SAA1B;AAIA,YAAMO,UAAU,GAAG,KAAKV,KAAL,CAAWW,cAAX,EAAnB;;AACA,iCAAgC,KAAKC,YAAL,CAC9B,KAAKC,UADyB,EAE9BH,UAF8B,EAG9B,KAAKI,cAHyB,CAAhC;AAAA,YAAQC,IAAR,sBAAQA,IAAR;AAAA,YAAcC,KAAd,sBAAcA,KAAd;AAAA,YAAqBC,MAArB,sBAAqBA,MAArB;;AAKA,aAAKC,QAAL,GAAgBD,MAAhB;AAEA,aAAKE,WAAL,GACE,KAAKN,UAAL,GAAkB,CAAlB,IAAuBE,IAAI,CAAClB,MAAL,GAAc,CAArC,GACI,KAAKuB,eAAL,CAAqB;AACnBC,UAAAA,KAAK,EAAE,IADY;AAEnBN,UAAAA,IAAI,EAAJA,IAFmB;AAGnBO,UAAAA,MAAM,EAAEC,WAAGC,SAHQ;AAInBC,UAAAA,IAAI,EAAEF,WAAGG,KAJU;AAKnBV,UAAAA,KAAK,EAALA,KALmB;AAMnBC,UAAAA,MAAM,EAANA;AANmB,SAArB,CADJ,GASI,KAAKG,eAAL,CAAqB;AACnBC,UAAAA,KAAK,EAAE,IADY;AAEnBN,UAAAA,IAAI,EAAE,CAAC,CAAD,CAFa;AAGnBO,UAAAA,MAAM,EAAEC,WAAGC,SAHQ;AAInBC,UAAAA,IAAI,EAAEF,WAAGG,KAJU;AAKnBV,UAAAA,KAAK,EAAE,CALY;AAMnBC,UAAAA,MAAM,EAAE;AANW,SAArB,CAVN;AAkBD;;AACD,aAAO;AACLU,QAAAA,UAAU,EAAE5B,KAAK,KAAK,UAAV,GAAuB,GAAvB,GAA6B,GADpC;AAEL6B,QAAAA,aAAa,EAAE,KAAKT,WAFf;AAGLU,QAAAA,gBAAgB,EAAE,KAAKC,iBAAL,EAHb;AAKLC,QAAAA,SAAS,EAAE,wBAAS7B,OAAT,IAAoBA,OAApB,GAA8B,GALpC;AAML8B,QAAAA,SAAS,EAAE,KAAKC,cAAL,CAAoB9B,OAApB,IACNA,OADM,GAEP,CAAC,CAAD,EAAI,CAAJ,CARC;AASL+B,QAAAA,gBAAgB,EAAE,wBAAS9B,aAAT,IAA0BA,aAA1B,GAA0C,GATvD;AAUL+B,QAAAA,cAAc,EAAE,wBAAS9B,WAAT,IAAwBA,WAAxB,GAAsC,GAVjD;AAWL+B,QAAAA,cAAc,EAAE,KAAKC,cAAL,CAAoB/B,MAApB;AAXX,OAAP;AAaD;;;WAED,sBAA8B;AAC5B,aAAO,KAAKgC,WAAL,EAAP;AACD;;;WAED,uBAA+B;AAC7B,kBAGI,KAAKtC,KAAL,CAAWC,cAAX,EAHJ;AAAA,6BACEsC,IADF;AAAA,UACEA,IADF,2BACS,KADT;AAAA,mCAEEC,UAFF;AAAA,UAEEA,UAFF,iCAEe,IAFf;;AAIA,aAAO,CACL,KAAKxC,KAAL,CAAWyC,eAAX,CAA2B;AACzBC,QAAAA,UAAU,EAAE,aADa;AAEzBC,QAAAA,YAAY,EAAEC,eAFW;AAGzBC,QAAAA,cAAc,EAAEC,eAHS;AAIzBC,QAAAA,aAAa,EAAExD,kBAJU;AAKzByD,QAAAA,KAAK,EAAE;AAAEC,UAAAA,MAAM,EAAE;AAAV,SALkB;AAMzBC,QAAAA,SAAS,EAAE3B,WAAG4B,MANW;AAOzBpD,QAAAA,KAAK,EAAE,KAAKqD,QAAL,EAPkB;AAQzBC,QAAAA,OAAO,EAAE,sBAAQd,IAAR,EAAcC,UAAd;AARgB,OAA3B,CADK,CAAP;AAYD;;;WAED,uBAAqB;AAAA;;AACnB,gCAAKrB,WAAL,wEAAkBmC,OAAlB;AACD;;;WAED,qCAAsC;AAEpC,WAAKC,qBAAL,CAA2BC,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,MAD0C;AAEhDhC,QAAAA,IAAI,EAAEiC,sBAAcC,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVH,UAAAA,IAAI,EAAE,QADI;AAEVI,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAEvC,WAAGwC,YAFJ;AAGNhD,YAAAA,IAAI,EAAE,EAHA;AAINU,YAAAA,IAAI,EAAEF,WAAGG;AAJH,WAFE;AAQV9B,UAAAA,IAAI,EAAE,CARI;AASVoE,UAAAA,MAAM,EAAE,gBACNxE,OADM,EAENyE,UAFM,EAGNC,MAHM,EAINC,YAJM,EAKH;AACH,gCAAqB3E,OAArB,CAAQI,IAAR;AAAA,gBAAQA,IAAR,8BAAe,CAAf;AACA,mBAAOwE,KAAK,CAACC,OAAN,CAAczE,IAAd,IAAsB,CAACA,IAAI,CAAC,CAAD,CAAL,CAAtB,GAAkC,CAACA,IAAD,CAAzC;AACD;AAjBS;AAHoC,OAAlD;AAuBD;;;WAED,+BAAgE;AAC9D,aAAO;AACLG,QAAAA,KAAK,EAAEuE,kBAAUC;AADZ,OAAP;AAGD;;;EAhI2CC,mB","sourcesContent":["import {\n AttributeType,\n BlendType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\n\nimport { getMask } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPointLayerStyleOptions } from '../../core/interface';\n\nimport simplePointFrag from '../shaders/simplePoint_frag.glsl';\nimport simplePointVert from '../shaders/simplePoint_vert.glsl';\n\nexport function PointTriangulation(feature: IEncodeFeature) {\n const coordinates = feature.coordinates as number[];\n return {\n vertices: [...coordinates],\n indices: [0],\n size: coordinates.length,\n };\n}\n\nexport default class SimplePointModel extends BaseModel {\n public getDefaultStyle(): Partial<IPointLayerStyleOptions> {\n return {\n blend: 'additive',\n };\n }\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n offsets = [0, 0],\n blend,\n strokeOpacity = 1,\n strokeWidth = 0,\n stroke = '#fff',\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n\n if (\n this.dataTextureTest &&\n this.dataTextureNeedUpdate({\n opacity,\n offsets,\n })\n ) {\n // 判断当前的样式中哪些是需要进行数据映射的,哪些是常量,同时计算用于构建数据纹理的一些中间变量\n this.judgeStyleAttributes({\n opacity,\n offsets,\n });\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_additive: blend === 'additive' ? 1.0 : 0.0,\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_offsets: this.isOffsetStatic(offsets)\n ? (offsets as [number, number])\n : [0, 0],\n u_stroke_opacity: isNumber(strokeOpacity) ? strokeOpacity : 1.0,\n u_stroke_width: isNumber(strokeWidth) ? strokeWidth : 0.0,\n u_stroke_color: this.getStrokeColor(stroke),\n };\n }\n\n public initModels(): IModel[] {\n return this.buildModels();\n }\n\n public buildModels(): IModel[] {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n return [\n this.layer.buildLayerModel({\n moduleName: 'simplepoint',\n vertexShader: simplePointVert,\n fragmentShader: simplePointFrag,\n triangulation: PointTriangulation,\n depth: { enable: false },\n primitive: gl.POINTS,\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n }\n\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n }\n\n private defaultStyleOptions(): Partial<IPointLayerStyleOptions> {\n return {\n blend: BlendType.additive,\n };\n }\n}\n"],"file":"simplePoint.js"}
1
+ {"version":3,"sources":["../../../src/point/models/simplePoint.ts"],"names":["PointTriangulation","feature","coordinates","vertices","indices","size","length","SimplePointModel","blend","layer","getLayerConfig","opacity","offsets","strokeOpacity","strokeWidth","stroke","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","width","height","rowCount","dataTexture","createTexture2D","flipY","format","gl","LUMINANCE","type","FLOAT","u_additive","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_opacity","u_offsets","isOffsetStatic","u_stroke_opacity","u_stroke_width","u_stroke_color","getStrokeColor","buildModels","mask","maskInside","triangulation","buildLayerModel","moduleName","vertexShader","simplePointVert","fragmentShader","simplePointFrag","depth","enable","primitive","POINTS","getBlend","stencil","destroy","styleAttributeService","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","update","featureIdx","vertex","attributeIdx","Array","isArray","BlendType","additive","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n BlendType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\n\nimport { getMask } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPointLayerStyleOptions } from '../../core/interface';\n\nimport simplePointFrag from '../shaders/simplePoint_frag.glsl';\nimport simplePointVert from '../shaders/simplePoint_vert.glsl';\n\nexport function PointTriangulation(feature: IEncodeFeature) {\n const coordinates = feature.coordinates as number[];\n return {\n vertices: [...coordinates],\n indices: [0],\n size: coordinates.length,\n };\n}\n\nexport default class SimplePointModel extends BaseModel {\n public getDefaultStyle(): Partial<IPointLayerStyleOptions> {\n return {\n blend: 'additive',\n };\n }\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n offsets = [0, 0],\n blend,\n strokeOpacity = 1,\n strokeWidth = 0,\n stroke = '#fff',\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n\n if (\n this.dataTextureTest &&\n this.dataTextureNeedUpdate({\n opacity,\n offsets,\n })\n ) {\n // 判断当前的样式中哪些是需要进行数据映射的,哪些是常量,同时计算用于构建数据纹理的一些中间变量\n this.judgeStyleAttributes({\n opacity,\n offsets,\n });\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_additive: blend === 'additive' ? 1.0 : 0.0,\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_offsets: this.isOffsetStatic(offsets)\n ? (offsets as [number, number])\n : [0, 0],\n u_stroke_opacity: isNumber(strokeOpacity) ? strokeOpacity : 1.0,\n u_stroke_width: isNumber(strokeWidth) ? strokeWidth : 0.0,\n u_stroke_color: this.getStrokeColor(stroke),\n };\n }\n\n public initModels(): IModel[] {\n return this.buildModels();\n }\n\n public buildModels(): IModel[] {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n this.layer.triangulation = PointTriangulation;\n return [\n this.layer.buildLayerModel({\n moduleName: 'simplepoint',\n vertexShader: simplePointVert,\n fragmentShader: simplePointFrag,\n triangulation: PointTriangulation,\n depth: { enable: false },\n primitive: gl.POINTS,\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n }\n\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n }\n\n private defaultStyleOptions(): Partial<IPointLayerStyleOptions> {\n return {\n blend: BlendType.additive,\n };\n }\n}\n"],"file":"simplePoint.js"}
@@ -119,6 +119,7 @@ var FillModel = function (_BaseModel) {
119
119
  _ref2$maskInside = _ref2.maskInside,
120
120
  maskInside = _ref2$maskInside === void 0 ? true : _ref2$maskInside;
121
121
 
122
+ this.layer.triangulation = opacityLinear.enable ? _triangulation.polygonTriangulationWithCenter : _triangulation.polygonTriangulation;
122
123
  return [this.layer.buildLayerModel({
123
124
  moduleName: 'polygon',
124
125
  vertexShader: opacityLinear.enable ? polygon_linear_vert : polygon_vert,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/polygon/models/fill.ts"],"names":["FillModel","layer","getLayerConfig","raisingHeight","opacity","opacityLinear","enable","dir","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","width","height","rowCount","dataTexture","length","createTexture2D","flipY","format","gl","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_raisingHeight","Number","u_opacity","u_opacitylinear","u_dir","buildModels","mask","maskInside","buildLayerModel","moduleName","vertexShader","polygon_linear_vert","polygon_vert","fragmentShader","polygon_linear_frag","polygon_frag","triangulation","polygonTriangulationWithCenter","polygonTriangulation","blend","getBlend","depth","cull","face","BACK","stencil","destroy","styleAttributeService","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx","normal","BaseModel"],"mappings":"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","sourcesContent":["import { AttributeType, gl, IEncodeFeature, IModel } from '@antv/l7-core';\nimport { getMask } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPolygonLayerStyleOptions } from '../../core/interface';\nimport {\n polygonTriangulation,\n polygonTriangulationWithCenter,\n} from '../../core/triangulation';\nimport polygon_frag from '../shaders/polygon_frag.glsl';\nimport polygon_linear_frag from '../shaders/polygon_linear_frag.glsl';\nimport polygon_linear_vert from '../shaders/polygon_linear_vert.glsl';\nimport polygon_vert from '../shaders/polygon_vert.glsl';\nexport default class FillModel extends BaseModel {\n public getUninforms() {\n const {\n raisingHeight = 0,\n opacity = 1,\n opacityLinear = {\n enable: false,\n dir: 'in',\n },\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\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 // u_opacity: opacity,\n\n u_raisingHeight: Number(raisingHeight),\n\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n\n u_opacitylinear: Number(opacityLinear.enable),\n u_dir: opacityLinear.dir === 'in' ? 1.0 : 0.0,\n };\n }\n\n public initModels(): IModel[] {\n return this.buildModels();\n }\n\n public buildModels(): IModel[] {\n const {\n opacityLinear = {\n enable: false,\n dir: 'in',\n },\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\n return [\n this.layer.buildLayerModel({\n moduleName: 'polygon',\n vertexShader: opacityLinear.enable ? polygon_linear_vert : polygon_vert,\n fragmentShader: opacityLinear.enable\n ? polygon_linear_frag\n : polygon_frag,\n // triangulation: polygonTriangulation,\n triangulation: opacityLinear.enable\n ? polygonTriangulationWithCenter\n : polygonTriangulation,\n blend: this.getBlend(),\n depth: { enable: false },\n cull: {\n enable: true,\n face: gl.BACK, // gl.FRONT | gl.BACK;\n },\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n }\n\n protected registerBuiltinAttributes() {\n const {\n opacityLinear = {\n enable: false,\n dir: 'in',\n },\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\n if (opacityLinear.enable) {\n this.styleAttributeService.registerStyleAttribute({\n name: 'linear',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_linear',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n // center[0] center[1] radius\n return [vertex[3], vertex[4], vertex[5]];\n },\n },\n });\n }\n }\n}\n"],"file":"fill.js"}
1
+ {"version":3,"sources":["../../../src/polygon/models/fill.ts"],"names":["FillModel","layer","getLayerConfig","raisingHeight","opacity","opacityLinear","enable","dir","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","width","height","rowCount","dataTexture","length","createTexture2D","flipY","format","gl","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_raisingHeight","Number","u_opacity","u_opacitylinear","u_dir","buildModels","mask","maskInside","triangulation","polygonTriangulationWithCenter","polygonTriangulation","buildLayerModel","moduleName","vertexShader","polygon_linear_vert","polygon_vert","fragmentShader","polygon_linear_frag","polygon_frag","blend","getBlend","depth","cull","face","BACK","stencil","destroy","styleAttributeService","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","STATIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx","normal","BaseModel"],"mappings":"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","sourcesContent":["import { AttributeType, gl, IEncodeFeature, IModel } from '@antv/l7-core';\nimport { getMask } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPolygonLayerStyleOptions } from '../../core/interface';\nimport {\n polygonTriangulation,\n polygonTriangulationWithCenter,\n} from '../../core/triangulation';\nimport polygon_frag from '../shaders/polygon_frag.glsl';\nimport polygon_linear_frag from '../shaders/polygon_linear_frag.glsl';\nimport polygon_linear_vert from '../shaders/polygon_linear_vert.glsl';\nimport polygon_vert from '../shaders/polygon_vert.glsl';\nexport default class FillModel extends BaseModel {\n public getUninforms() {\n const {\n raisingHeight = 0,\n opacity = 1,\n opacityLinear = {\n enable: false,\n dir: 'in',\n },\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\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 // u_opacity: opacity,\n\n u_raisingHeight: Number(raisingHeight),\n\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n\n u_opacitylinear: Number(opacityLinear.enable),\n u_dir: opacityLinear.dir === 'in' ? 1.0 : 0.0,\n };\n }\n\n public initModels(): IModel[] {\n return this.buildModels();\n }\n\n public buildModels(): IModel[] {\n const {\n opacityLinear = {\n enable: false,\n dir: 'in',\n },\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\n this.layer.triangulation = opacityLinear.enable\n ? polygonTriangulationWithCenter\n : polygonTriangulation;\n return [\n this.layer.buildLayerModel({\n moduleName: 'polygon',\n vertexShader: opacityLinear.enable ? polygon_linear_vert : polygon_vert,\n fragmentShader: opacityLinear.enable\n ? polygon_linear_frag\n : polygon_frag,\n // triangulation: polygonTriangulation,\n triangulation: opacityLinear.enable\n ? polygonTriangulationWithCenter\n : polygonTriangulation,\n blend: this.getBlend(),\n depth: { enable: false },\n cull: {\n enable: true,\n face: gl.BACK, // gl.FRONT | gl.BACK;\n },\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n\n public clearModels() {\n this.dataTexture?.destroy();\n }\n\n protected registerBuiltinAttributes() {\n const {\n opacityLinear = {\n enable: false,\n dir: 'in',\n },\n } = this.layer.getLayerConfig() as IPolygonLayerStyleOptions;\n if (opacityLinear.enable) {\n this.styleAttributeService.registerStyleAttribute({\n name: 'linear',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_linear',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n // center[0] center[1] radius\n return [vertex[3], vertex[4], vertex[5]];\n },\n },\n });\n }\n }\n}\n"],"file":"fill.js"}
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.calculateData = calculateData;
9
+
10
+ var _l7Maps = require("@antv/l7-maps");
11
+
12
+ var _l7Source = _interopRequireDefault(require("@antv/l7-source"));
13
+
14
+ var _l7Utils = require("@antv/l7-utils");
15
+
16
+ function getArrowPoints(p1, p2) {
17
+ var dir = [p2[0] - p1[0], p2[1] - p1[1]];
18
+ var normalizeDir = (0, _l7Utils.normalize)(dir);
19
+ var arrowPoint = [p1[0] + normalizeDir[0] * 0.0001, p1[1] + normalizeDir[1] * 0.0001];
20
+ return arrowPoint;
21
+ }
22
+
23
+ function adjustData2Amap2Coordinates(mappedData, mapService) {
24
+ var _this = this;
25
+
26
+ if (mappedData.length > 0 && mapService.version === _l7Maps.Version['GAODE2.x']) {
27
+ if (typeof mappedData[0].coordinates[0] === 'number') {
28
+ mappedData.filter(function (d) {
29
+ return !d.originCoordinates;
30
+ }).map(function (d) {
31
+ d.version = _l7Maps.Version['GAODE2.x'];
32
+ d.originCoordinates = cloneDeep(d.coordinates);
33
+ d.coordinates = _this.mapService.lngLatToCoord(d.coordinates);
34
+ });
35
+ } else {
36
+ mappedData.filter(function (d) {
37
+ return !d.originCoordinates;
38
+ }).map(function (d) {
39
+ d.version = _l7Maps.Version['GAODE2.x'];
40
+ d.originCoordinates = cloneDeep(d.coordinates);
41
+ d.coordinates = _this.mapService.lngLatToCoords(d.coordinates);
42
+ });
43
+ }
44
+ }
45
+ }
46
+
47
+ function adjustData2SimpleCoordinates(mappedData, mapService) {
48
+ if (mappedData.length > 0 && mapService.version === _l7Maps.Version.SIMPLE) {
49
+ mappedData.map(function (d) {
50
+ if (!d.simpleCoordinate) {
51
+ d.coordinates = unProjectCoordinates(d.coordinates, mapService);
52
+ d.simpleCoordinate = true;
53
+ }
54
+ });
55
+ }
56
+ }
57
+
58
+ function unProjectCoordinates(coordinates, mapService) {
59
+ if (typeof coordinates[0] === 'number') {
60
+ return mapService.simpleMapCoord.unproject(coordinates);
61
+ }
62
+
63
+ if (coordinates[0] && coordinates[0][0] instanceof Array) {
64
+ var coords = [];
65
+ coordinates.map(function (coord) {
66
+ var c1 = [];
67
+ coord.map(function (co) {
68
+ c1.push(mapService.simpleMapCoord.unproject(co));
69
+ });
70
+ coords.push(c1);
71
+ });
72
+ return coords;
73
+ } else {
74
+ var _coords = [];
75
+ coordinates.map(function (coord) {
76
+ _coords.push(mapService.simpleMapCoord.unproject(coord));
77
+ });
78
+ return _coords;
79
+ }
80
+ }
81
+
82
+ function applyAttributeMapping(attribute, record, minimumColor) {
83
+ var _attribute$scale;
84
+
85
+ if (!attribute.scale) {
86
+ return [];
87
+ }
88
+
89
+ var scalers = (attribute === null || attribute === void 0 ? void 0 : (_attribute$scale = attribute.scale) === null || _attribute$scale === void 0 ? void 0 : _attribute$scale.scalers) || [];
90
+ var params = [];
91
+ scalers.forEach(function (_ref) {
92
+ var _attribute$scale2;
93
+
94
+ var field = _ref.field;
95
+
96
+ if (record.hasOwnProperty(field) || ((_attribute$scale2 = attribute.scale) === null || _attribute$scale2 === void 0 ? void 0 : _attribute$scale2.type) === 'variable') {
97
+ params.push(record[field]);
98
+ }
99
+ });
100
+ var mappingResult = attribute.mapping ? attribute.mapping(params) : [];
101
+
102
+ if (attribute.name === 'color' && !(0, _l7Utils.isColor)(mappingResult[0])) {
103
+ return [minimumColor];
104
+ }
105
+
106
+ return mappingResult;
107
+ }
108
+
109
+ function mapping(attributes, data, fontService, mapService, minimumColor, layer) {
110
+ var _ref2 = layer === null || layer === void 0 ? void 0 : layer.getLayerConfig(),
111
+ _ref2$arrow = _ref2.arrow,
112
+ arrow = _ref2$arrow === void 0 ? {
113
+ enable: false
114
+ } : _ref2$arrow;
115
+
116
+ var mappedData = data.map(function (record) {
117
+ var encodeRecord = {
118
+ id: record._id,
119
+ coordinates: record.coordinates
120
+ };
121
+ attributes.filter(function (attribute) {
122
+ return attribute.scale !== undefined;
123
+ }).forEach(function (attribute) {
124
+ var values = applyAttributeMapping(attribute, record, minimumColor);
125
+ attribute.needRemapping = false;
126
+
127
+ if (attribute.name === 'color') {
128
+ values = values.map(function (c) {
129
+ return (0, _l7Utils.rgb2arr)(c);
130
+ });
131
+ }
132
+
133
+ encodeRecord[attribute.name] = Array.isArray(values) && values.length === 1 ? values[0] : values;
134
+
135
+ if (attribute.name === 'shape') {
136
+ encodeRecord.shape = fontService.getIconFontKey(encodeRecord[attribute.name]);
137
+ }
138
+ });
139
+
140
+ if (encodeRecord.shape === 'line' && arrow.enable) {
141
+ var coords = encodeRecord.coordinates;
142
+ var arrowPoint = getArrowPoints(coords[0], coords[1]);
143
+ encodeRecord.coordinates.splice(1, 0, arrowPoint, arrowPoint);
144
+ }
145
+
146
+ return encodeRecord;
147
+ });
148
+ adjustData2Amap2Coordinates(mappedData, mapService);
149
+ adjustData2SimpleCoordinates(mappedData, mapService);
150
+ return mappedData;
151
+ }
152
+
153
+ function calculateData(layer, fontService, mapService, styleAttributeService, data, options) {
154
+ var source = new _l7Source.default(data, options);
155
+ var bottomColor = layer.getBottomColor();
156
+ var attributes = styleAttributeService.getLayerStyleAttributes() || [];
157
+ var dataArray = source.data.dataArray;
158
+ var filterData = dataArray;
159
+ var mappedEncodeData = mapping(attributes, filterData, fontService, mapService, bottomColor, layer);
160
+ source.destroy();
161
+ return mappedEncodeData;
162
+ }
163
+ //# sourceMappingURL=layerData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/layerData.ts"],"names":["getArrowPoints","p1","p2","dir","normalizeDir","arrowPoint","adjustData2Amap2Coordinates","mappedData","mapService","length","version","Version","coordinates","filter","d","originCoordinates","map","cloneDeep","lngLatToCoord","lngLatToCoords","adjustData2SimpleCoordinates","SIMPLE","simpleCoordinate","unProjectCoordinates","simpleMapCoord","unproject","Array","coords","coord","c1","co","push","applyAttributeMapping","attribute","record","minimumColor","scale","scalers","params","forEach","field","hasOwnProperty","type","mappingResult","mapping","name","attributes","data","fontService","layer","getLayerConfig","arrow","enable","encodeRecord","id","_id","undefined","values","needRemapping","c","isArray","shape","getIconFontKey","splice","calculateData","styleAttributeService","options","source","Source","bottomColor","getBottomColor","getLayerStyleAttributes","dataArray","filterData","mappedEncodeData","destroy"],"mappings":"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","sourcesContent":["import {\n IEncodeFeature,\n IFontService,\n ILayer,\n IMapService,\n IParseDataItem,\n ISourceCFG,\n IStyleAttribute,\n IStyleAttributeService,\n Position,\n} from '@antv/l7-core';\nimport { Version } from '@antv/l7-maps';\nimport Source from '@antv/l7-source';\nimport { isColor, normalize, rgb2arr } from '@antv/l7-utils';\nimport { ILineLayerStyleOptions } from '../core/interface';\n\nfunction getArrowPoints(p1: Position, p2: Position) {\n const dir = [p2[0] - p1[0], p2[1] - p1[1]];\n const normalizeDir = normalize(dir);\n const arrowPoint = [\n p1[0] + normalizeDir[0] * 0.0001,\n p1[1] + normalizeDir[1] * 0.0001,\n ];\n return arrowPoint;\n}\n\nfunction adjustData2Amap2Coordinates(\n mappedData: IEncodeFeature[],\n mapService: IMapService,\n) {\n // 根据地图的类型判断是否需要对点位数据进行处理, 若是高德2.0则需要对坐标进行相对偏移\n if (mappedData.length > 0 && mapService.version === Version['GAODE2.x']) {\n if (typeof mappedData[0].coordinates[0] === 'number') {\n // 单个的点数据\n // @ts-ignore\n mappedData\n // TODO: 避免经纬度被重复计算导致坐标位置偏移\n .filter((d) => !d.originCoordinates)\n .map((d) => {\n d.version = Version['GAODE2.x'];\n // @ts-ignore\n d.originCoordinates = cloneDeep(d.coordinates); // 为了兼容高德1.x 需要保存一份原始的经纬度坐标数据(许多上层逻辑依赖经纬度数据)\n // @ts-ignore\n d.coordinates = this.mapService.lngLatToCoord(d.coordinates);\n });\n } else {\n // 连续的线、面数据\n // @ts-ignore\n mappedData\n // TODO: 避免经纬度被重复计算导致坐标位置偏移\n .filter((d) => !d.originCoordinates)\n .map((d) => {\n d.version = Version['GAODE2.x'];\n // @ts-ignore\n d.originCoordinates = cloneDeep(d.coordinates); // 为了兼容高德1.x 需要保存一份原始的经纬度坐标数据(许多上层逻辑依赖经纬度数据)\n // @ts-ignore\n d.coordinates = this.mapService.lngLatToCoords(d.coordinates);\n });\n }\n }\n}\n\nfunction adjustData2SimpleCoordinates(\n mappedData: IEncodeFeature[],\n mapService: IMapService,\n) {\n if (mappedData.length > 0 && mapService.version === Version.SIMPLE) {\n mappedData.map((d) => {\n if (!d.simpleCoordinate) {\n d.coordinates = unProjectCoordinates(d.coordinates, mapService);\n d.simpleCoordinate = true;\n }\n });\n }\n}\n\nfunction unProjectCoordinates(coordinates: any, mapService: IMapService) {\n if (typeof coordinates[0] === 'number') {\n return mapService.simpleMapCoord.unproject(coordinates as [number, number]);\n }\n\n if (coordinates[0] && coordinates[0][0] instanceof Array) {\n // @ts-ignore\n const coords = [];\n coordinates.map((coord: any) => {\n // @ts-ignore\n const c1 = [];\n coord.map((co: any) => {\n c1.push(mapService.simpleMapCoord.unproject(co as [number, number]));\n });\n // @ts-ignore\n coords.push(c1);\n });\n // @ts-ignore\n return coords;\n } else {\n // @ts-ignore\n const coords = [];\n // @ts-ignore\n coordinates.map((coord) => {\n coords.push(\n mapService.simpleMapCoord.unproject(coord as [number, number]),\n );\n });\n // @ts-ignore\n return coords;\n }\n}\n\nfunction applyAttributeMapping(\n attribute: IStyleAttribute,\n record: { [key: string]: unknown },\n minimumColor?: string,\n) {\n if (!attribute.scale) {\n return [];\n }\n const scalers = attribute?.scale?.scalers || [];\n const params: unknown[] = [];\n\n scalers.forEach(({ field }) => {\n if (record.hasOwnProperty(field) || attribute.scale?.type === 'variable') {\n // TODO:多字段,常量\n params.push(record[field]);\n }\n });\n\n const mappingResult = attribute.mapping ? attribute.mapping(params) : [];\n if (attribute.name === 'color' && !isColor(mappingResult[0])) {\n return [minimumColor];\n }\n return mappingResult;\n}\n\nfunction mapping(\n attributes: IStyleAttribute[],\n data: IParseDataItem[],\n fontService: IFontService,\n mapService: IMapService,\n minimumColor?: string,\n layer?: ILayer,\n): IEncodeFeature[] {\n const {\n arrow = {\n enable: false,\n },\n } = layer?.getLayerConfig() as ILineLayerStyleOptions;\n const mappedData = data.map((record: IParseDataItem) => {\n const encodeRecord: IEncodeFeature = {\n id: record._id,\n coordinates: record.coordinates,\n };\n\n attributes\n .filter((attribute) => attribute.scale !== undefined)\n .forEach((attribute: IStyleAttribute) => {\n let values = applyAttributeMapping(attribute, record, minimumColor);\n\n attribute.needRemapping = false;\n\n // TODO: 支持每个属性配置 postprocess\n if (attribute.name === 'color') {\n values = values.map((c: unknown) => {\n return rgb2arr(c as string);\n });\n }\n // @ts-ignore\n encodeRecord[attribute.name] =\n Array.isArray(values) && values.length === 1 ? values[0] : values;\n\n // 增加对 layer/text/iconfont unicode 映射的解析\n if (attribute.name === 'shape') {\n encodeRecord.shape = fontService.getIconFontKey(\n encodeRecord[attribute.name] as string,\n );\n }\n });\n\n if (encodeRecord.shape === 'line' && arrow.enable) {\n // 只有在线图层且支持配置箭头的时候进行插入顶点的处理\n const coords = encodeRecord.coordinates as Position[];\n const arrowPoint = getArrowPoints(coords[0], coords[1]);\n encodeRecord.coordinates.splice(1, 0, arrowPoint, arrowPoint);\n }\n return encodeRecord;\n }) as IEncodeFeature[];\n // 调整数据兼容 Amap2.0\n adjustData2Amap2Coordinates(mappedData, mapService);\n\n // 调整数据兼容 SimpleCoordinates\n adjustData2SimpleCoordinates(mappedData, mapService);\n\n return mappedData;\n}\n\nexport function calculateData(\n layer: ILayer,\n fontService: IFontService,\n mapService: IMapService,\n styleAttributeService: IStyleAttributeService,\n data: any,\n options: ISourceCFG | undefined,\n): IEncodeFeature[] {\n const source = new Source(data, options);\n const bottomColor = layer.getBottomColor();\n const attributes = styleAttributeService.getLayerStyleAttributes() || [];\n const { dataArray } = source.data;\n const filterData = dataArray;\n\n const mappedEncodeData = mapping(\n attributes,\n filterData,\n fontService,\n mapService,\n bottomColor,\n layer,\n );\n source.destroy();\n return mappedEncodeData;\n}\n"],"file":"layerData.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antv/l7-layers",
3
- "version": "2.8.32",
3
+ "version": "2.8.33",
4
4
  "description": "L7's collection of built-in layers",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -24,9 +24,9 @@
24
24
  "license": "ISC",
25
25
  "dependencies": {
26
26
  "@antv/geo-coord": "^1.0.8",
27
- "@antv/l7-core": "^2.8.32",
28
- "@antv/l7-source": "^2.8.32",
29
- "@antv/l7-utils": "^2.8.32",
27
+ "@antv/l7-core": "^2.8.33",
28
+ "@antv/l7-source": "^2.8.33",
29
+ "@antv/l7-utils": "^2.8.33",
30
30
  "@babel/runtime": "^7.7.7",
31
31
  "@mapbox/martini": "^0.2.0",
32
32
  "@turf/meta": "^6.0.2",
@@ -52,7 +52,7 @@
52
52
  "@types/gl-matrix": "^2.4.5",
53
53
  "@types/lodash": "^4.14.138"
54
54
  },
55
- "gitHead": "346a79a5ff4642ee87fe7f89694748b88718dae1",
55
+ "gitHead": "e8e54bdbb77872096e49b733f3ef818ee3f9b88d",
56
56
  "publishConfig": {
57
57
  "access": "public"
58
58
  }