@antv/l7-layers 2.9.15 → 2.9.16

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 (218) hide show
  1. package/LICENSE.md +1 -1
  2. package/es/core/BaseLayer.d.ts +4 -2
  3. package/es/core/BaseLayer.js +47 -21
  4. package/es/core/BaseLayer.js.map +1 -1
  5. package/es/core/BaseModel.d.ts +2 -1
  6. package/es/core/BaseModel.js +3 -0
  7. package/es/core/BaseModel.js.map +1 -1
  8. package/es/core/interface.d.ts +14 -1
  9. package/es/core/interface.js.map +1 -1
  10. package/es/image/models/image.js.map +1 -1
  11. package/es/line/index.d.ts +1 -1
  12. package/es/line/index.js +13 -1
  13. package/es/line/index.js.map +1 -1
  14. package/es/line/models/earthArc_3d.d.ts +17 -0
  15. package/es/line/models/earthArc_3d.js +311 -0
  16. package/es/line/models/earthArc_3d.js.map +1 -0
  17. package/es/line/models/half.d.ts +18 -0
  18. package/es/line/models/half.js +244 -0
  19. package/es/line/models/half.js.map +1 -0
  20. package/es/line/models/index.d.ts +1 -1
  21. package/es/line/models/index.js +9 -1
  22. package/es/line/models/index.js.map +1 -1
  23. package/es/line/models/tile.d.ts +20 -0
  24. package/es/line/models/tile.js +327 -0
  25. package/es/line/models/tile.js.map +1 -0
  26. package/es/plugins/DataMappingPlugin.js +1 -1
  27. package/es/plugins/DataMappingPlugin.js.map +1 -1
  28. package/es/plugins/DataSourcePlugin.js +7 -6
  29. package/es/plugins/DataSourcePlugin.js.map +1 -1
  30. package/es/plugins/FeatureScalePlugin.js +35 -9
  31. package/es/plugins/FeatureScalePlugin.js.map +1 -1
  32. package/es/plugins/ShaderUniformPlugin.js +3 -1
  33. package/es/plugins/ShaderUniformPlugin.js.map +1 -1
  34. package/es/point/index.d.ts +1 -1
  35. package/es/point/index.js +10 -2
  36. package/es/point/index.js.map +1 -1
  37. package/es/point/models/earthExtrude.d.ts +24 -0
  38. package/es/point/models/earthExtrude.js +259 -0
  39. package/es/point/models/earthExtrude.js.map +1 -0
  40. package/es/point/models/earthFill.d.ts +20 -0
  41. package/es/point/models/earthFill.js +255 -0
  42. package/es/point/models/earthFill.js.map +1 -0
  43. package/es/point/models/extrude.d.ts +0 -1
  44. package/es/point/models/extrude.js +2 -10
  45. package/es/point/models/extrude.js.map +1 -1
  46. package/es/point/models/fill.d.ts +8 -1
  47. package/es/point/models/fill.js +55 -75
  48. package/es/point/models/fill.js.map +1 -1
  49. package/es/point/models/index.d.ts +1 -1
  50. package/es/point/models/index.js +9 -1
  51. package/es/point/models/index.js.map +1 -1
  52. package/es/point/models/radar.js +2 -6
  53. package/es/point/models/radar.js.map +1 -1
  54. package/es/point/models/tile.d.ts +31 -0
  55. package/es/point/models/tile.js +291 -0
  56. package/es/point/models/tile.js.map +1 -0
  57. package/es/polygon/index.js +6 -0
  58. package/es/polygon/index.js.map +1 -1
  59. package/es/polygon/models/index.d.ts +1 -1
  60. package/es/polygon/models/index.js +5 -1
  61. package/es/polygon/models/index.js.map +1 -1
  62. package/es/polygon/models/tile.d.ts +16 -0
  63. package/es/polygon/models/tile.js +137 -0
  64. package/es/polygon/models/tile.js.map +1 -0
  65. package/es/raster/index.d.ts +2 -2
  66. package/es/raster/index.js +4 -4
  67. package/es/raster/index.js.map +1 -1
  68. package/es/raster/models/index.js +1 -1
  69. package/es/raster/models/index.js.map +1 -1
  70. package/es/raster/models/raster.d.ts +2 -0
  71. package/es/raster/models/raster.js +24 -12
  72. package/es/raster/models/raster.js.map +1 -1
  73. package/es/tile/interface.d.ts +28 -0
  74. package/es/tile/interface.js +2 -0
  75. package/es/tile/interface.js.map +1 -0
  76. package/es/tile/manager/tileConfigManager.d.ts +17 -0
  77. package/es/tile/manager/tileConfigManager.js +123 -0
  78. package/es/tile/manager/tileConfigManager.js.map +1 -0
  79. package/es/tile/manager/tileLayerManager.d.ts +35 -0
  80. package/es/tile/manager/tileLayerManager.js +297 -0
  81. package/es/tile/manager/tileLayerManager.js.map +1 -0
  82. package/es/tile/manager/tilePickerManager.d.ts +21 -0
  83. package/es/tile/manager/tilePickerManager.js +189 -0
  84. package/es/tile/manager/tilePickerManager.js.map +1 -0
  85. package/es/tile/models/tileModel.d.ts +8 -0
  86. package/es/tile/models/tileModel.js +61 -0
  87. package/es/tile/models/tileModel.js.map +1 -0
  88. package/es/tile/tileFactory/base.d.ts +44 -0
  89. package/es/tile/tileFactory/base.js +423 -0
  90. package/es/tile/tileFactory/base.js.map +1 -0
  91. package/es/tile/tileFactory/index.d.ts +5 -0
  92. package/es/tile/tileFactory/index.js +30 -0
  93. package/es/tile/tileFactory/index.js.map +1 -0
  94. package/es/tile/tileFactory/line.d.ts +12 -0
  95. package/es/tile/tileFactory/line.js +65 -0
  96. package/es/tile/tileFactory/line.js.map +1 -0
  97. package/es/tile/tileFactory/point.d.ts +12 -0
  98. package/es/tile/tileFactory/point.js +65 -0
  99. package/es/tile/tileFactory/point.js.map +1 -0
  100. package/es/tile/tileFactory/polygon.d.ts +12 -0
  101. package/es/tile/tileFactory/polygon.js +65 -0
  102. package/es/tile/tileFactory/polygon.js.map +1 -0
  103. package/es/tile/tileFactory/raster.d.ts +12 -0
  104. package/es/tile/tileFactory/raster.js +61 -0
  105. package/es/tile/tileFactory/raster.js.map +1 -0
  106. package/es/tile/tileFactory/rasterData.d.ts +12 -0
  107. package/es/tile/tileFactory/rasterData.js +86 -0
  108. package/es/tile/tileFactory/rasterData.js.map +1 -0
  109. package/es/tile/tileFactory/rasterDataLayer.d.ts +19 -0
  110. package/es/{core/LayerGroup.js → tile/tileFactory/rasterDataLayer.js} +39 -32
  111. package/es/tile/tileFactory/rasterDataLayer.js.map +1 -0
  112. package/es/tile/tileFactory/vectorLayer.d.ts +27 -0
  113. package/es/tile/tileFactory/vectorLayer.js +131 -0
  114. package/es/tile/tileFactory/vectorLayer.js.map +1 -0
  115. package/es/tile/tileLayer/baseTileLayer.d.ts +47 -0
  116. package/es/tile/tileLayer/baseTileLayer.js +409 -0
  117. package/es/tile/tileLayer/baseTileLayer.js.map +1 -0
  118. package/es/tile/tmsTileLayer.d.ts +7 -0
  119. package/es/tile/tmsTileLayer.js +100 -0
  120. package/es/tile/tmsTileLayer.js.map +1 -0
  121. package/es/tile/utils.d.ts +11 -0
  122. package/es/tile/utils.js +125 -0
  123. package/es/tile/utils.js.map +1 -0
  124. package/lib/core/BaseLayer.js +45 -20
  125. package/lib/core/BaseLayer.js.map +1 -1
  126. package/lib/core/BaseModel.js +2 -0
  127. package/lib/core/BaseModel.js.map +1 -1
  128. package/lib/core/interface.js.map +1 -1
  129. package/lib/image/models/image.js.map +1 -1
  130. package/lib/line/index.js +13 -1
  131. package/lib/line/index.js.map +1 -1
  132. package/lib/line/models/earthArc_3d.js +328 -0
  133. package/lib/line/models/earthArc_3d.js.map +1 -0
  134. package/lib/line/models/half.js +260 -0
  135. package/lib/line/models/half.js.map +1 -0
  136. package/lib/line/models/index.js +13 -1
  137. package/lib/line/models/index.js.map +1 -1
  138. package/lib/line/models/tile.js +342 -0
  139. package/lib/line/models/tile.js.map +1 -0
  140. package/lib/plugins/DataMappingPlugin.js +1 -1
  141. package/lib/plugins/DataMappingPlugin.js.map +1 -1
  142. package/lib/plugins/DataSourcePlugin.js +7 -6
  143. package/lib/plugins/DataSourcePlugin.js.map +1 -1
  144. package/lib/plugins/FeatureScalePlugin.js +35 -9
  145. package/lib/plugins/FeatureScalePlugin.js.map +1 -1
  146. package/lib/plugins/ShaderUniformPlugin.js +3 -1
  147. package/lib/plugins/ShaderUniformPlugin.js.map +1 -1
  148. package/lib/point/index.js +10 -2
  149. package/lib/point/index.js.map +1 -1
  150. package/lib/point/models/earthExtrude.js +277 -0
  151. package/lib/point/models/earthExtrude.js.map +1 -0
  152. package/lib/point/models/earthFill.js +291 -0
  153. package/lib/point/models/earthFill.js.map +1 -0
  154. package/lib/point/models/extrude.js +2 -11
  155. package/lib/point/models/extrude.js.map +1 -1
  156. package/lib/point/models/fill.js +51 -93
  157. package/lib/point/models/fill.js.map +1 -1
  158. package/lib/point/models/index.js +13 -1
  159. package/lib/point/models/index.js.map +1 -1
  160. package/lib/point/models/radar.js +1 -5
  161. package/lib/point/models/radar.js.map +1 -1
  162. package/lib/point/models/tile.js +308 -0
  163. package/lib/point/models/tile.js.map +1 -0
  164. package/lib/polygon/index.js +6 -0
  165. package/lib/polygon/index.js.map +1 -1
  166. package/lib/polygon/models/index.js +7 -1
  167. package/lib/polygon/models/index.js.map +1 -1
  168. package/lib/polygon/models/tile.js +152 -0
  169. package/lib/polygon/models/tile.js.map +1 -0
  170. package/lib/raster/index.js +4 -4
  171. package/lib/raster/index.js.map +1 -1
  172. package/lib/raster/models/index.js +2 -2
  173. package/lib/raster/models/index.js.map +1 -1
  174. package/lib/raster/models/raster.js +24 -12
  175. package/lib/raster/models/raster.js.map +1 -1
  176. package/lib/tile/interface.js +2 -0
  177. package/lib/tile/interface.js.map +1 -0
  178. package/lib/tile/manager/tileConfigManager.js +134 -0
  179. package/lib/tile/manager/tileConfigManager.js.map +1 -0
  180. package/lib/tile/manager/tileLayerManager.js +305 -0
  181. package/lib/tile/manager/tileLayerManager.js.map +1 -0
  182. package/lib/tile/manager/tilePickerManager.js +195 -0
  183. package/lib/tile/manager/tilePickerManager.js.map +1 -0
  184. package/lib/tile/models/tileModel.js +73 -0
  185. package/lib/tile/models/tileModel.js.map +1 -0
  186. package/lib/tile/tileFactory/base.js +436 -0
  187. package/lib/tile/tileFactory/base.js.map +1 -0
  188. package/lib/tile/tileFactory/index.js +60 -0
  189. package/lib/tile/tileFactory/index.js.map +1 -0
  190. package/lib/tile/tileFactory/line.js +76 -0
  191. package/lib/tile/tileFactory/line.js.map +1 -0
  192. package/lib/tile/tileFactory/point.js +76 -0
  193. package/lib/tile/tileFactory/point.js.map +1 -0
  194. package/lib/tile/tileFactory/polygon.js +76 -0
  195. package/lib/tile/tileFactory/polygon.js.map +1 -0
  196. package/lib/tile/tileFactory/raster.js +74 -0
  197. package/lib/tile/tileFactory/raster.js.map +1 -0
  198. package/lib/tile/tileFactory/rasterData.js +99 -0
  199. package/lib/tile/tileFactory/rasterData.js.map +1 -0
  200. package/lib/{core/LayerGroup.js → tile/tileFactory/rasterDataLayer.js} +40 -32
  201. package/lib/tile/tileFactory/rasterDataLayer.js.map +1 -0
  202. package/lib/tile/tileFactory/vectorLayer.js +145 -0
  203. package/lib/tile/tileFactory/vectorLayer.js.map +1 -0
  204. package/lib/tile/tileLayer/baseTileLayer.js +407 -0
  205. package/lib/tile/tileLayer/baseTileLayer.js.map +1 -0
  206. package/lib/tile/tmsTileLayer.js +116 -0
  207. package/lib/tile/tmsTileLayer.js.map +1 -0
  208. package/lib/tile/utils.js +147 -0
  209. package/lib/tile/utils.js.map +1 -0
  210. package/package.json +8 -6
  211. package/es/core/LayerGroup.d.ts +0 -9
  212. package/es/core/LayerGroup.js.map +0 -1
  213. package/es/raster/models/raste-tile.d.ts +0 -23
  214. package/es/raster/models/raste-tile.js +0 -285
  215. package/es/raster/models/raste-tile.js.map +0 -1
  216. package/lib/core/LayerGroup.js.map +0 -1
  217. package/lib/raster/models/raste-tile.js +0 -294
  218. package/lib/raster/models/raste-tile.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/BaseModel.ts"],"names":["BlendType","gl","lazyInject","TYPES","rgb2arr","color","BlendTypes","BaseModel","IGlobalConfigService","layer","rendererService","getContainer","get","IRendererService","shaderModuleService","IShaderModuleService","styleAttributeService","IStyleAttributeService","mapService","IMapService","iconService","IIconService","fontService","IFontService","cameraService","ICameraService","layerService","ILayerService","registerBuiltinAttributes","startModelAnimate","createTexture2D","DATA_TEXTURE_WIDTH","rowCount","cellLength","cellProperties","cacheStyleProperties","thetaOffset","undefined","opacity","strokeOpacity","strokeWidth","stroke","offsets","stylePropertyesExist","hasThetaOffset","hasOpacity","hasStrokeOpacity","hasStrokeWidth","hasStroke","hasOffsets","dataTextureTest","getOESTextureFloat","dataTexture","data","Uint8Array","mag","NEAREST","min","width","height","options","isUpdate","clearLastCalRes","push","attr","count","isStaticColor","isOffsetStatic","strokeColor","Array","isArray","length","d","i","cellData","cellPropertiesLayouts","layout","value","patchMod","encodeData","encodeDatalength","Math","ceil","totalLength","patchData","getLayerConfig","blend","Error","option","enable","duration","interval","trailLength","animateOption","setAnimateStartTime"],"mappings":"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","sourcesContent":["import {\n BlendType,\n gl,\n IAnimateOption,\n IAttribute,\n IBlendOptions,\n ICameraService,\n IElements,\n IEncodeFeature,\n IFontService,\n IGlobalConfigService,\n IIconService,\n ILayer,\n ILayerConfig,\n ILayerModel,\n ILayerService,\n IMapService,\n IModel,\n IModelUniform,\n IRendererService,\n IShaderModuleService,\n IStyleAttributeService,\n ITexture2D,\n ITexture2DInitializationOptions,\n lazyInject,\n Triangulation,\n TYPES,\n} from '@antv/l7-core';\nimport { rgb2arr } from '@antv/l7-utils';\nimport { color } from 'd3-color';\nimport { isEqual, isFunction, isNumber, isString } from 'lodash';\nimport { BlendTypes } from '../utils/blend';\n\nexport type styleSingle =\n | number\n | string\n | [string, (single: any) => number]\n | [string, [number, number]];\nexport type styleOffset =\n | string\n | [number, number]\n | [string, (single: any) => number];\nexport type styleColor =\n | string\n | [string, (single: any) => string]\n | [string, [string, string]];\nexport interface IDataTextureFrame {\n data: number[];\n width: number;\n height: number;\n}\n\nexport interface ICellProperty {\n attr: string;\n count: number;\n}\n\nexport default class BaseModel<ChildLayerStyleOptions = {}>\n implements ILayerModel {\n public triangulation: Triangulation;\n\n // style texture data mapping\n public createTexture2D: (\n options: ITexture2DInitializationOptions,\n ) => ITexture2D;\n\n protected layer: ILayer;\n protected dataTexture: ITexture2D; // 用于数据传递的数据纹理\n protected DATA_TEXTURE_WIDTH: number; // 默认有多少列(宽度)\n protected rowCount: number; // 计算得到的当前数据纹理有多少行(高度)\n protected cacheStyleProperties: {\n // 记录存储上一次样式字段的值\n thetaOffset: styleSingle | undefined;\n opacity: styleSingle | undefined;\n strokeOpacity: styleSingle | undefined;\n strokeWidth: styleSingle | undefined;\n stroke: styleColor | undefined;\n offsets: styleOffset | undefined;\n };\n protected cellLength: number; // 单个 cell 的长度\n protected cellProperties: ICellProperty[]; // 需要进行数据映射的属性集合\n protected cellTypeLayout: number[];\n protected stylePropertyesExist: {\n // 记录 style 属性是否存在的中间变量\n hasThetaOffset: number;\n hasOpacity: number;\n hasStrokeOpacity: number;\n hasStrokeWidth: number;\n hasStroke: number;\n hasOffsets: number;\n };\n protected dataTextureTest: boolean;\n\n @lazyInject(TYPES.IGlobalConfigService)\n protected readonly configService: IGlobalConfigService;\n\n // @lazyInject(TYPES.IIconService)\n // protected readonly iconService: IIconService;\n\n // @lazyInject(TYPES.IFontService)\n // protected readonly fontService: IFontService;\n\n // @lazyInject(TYPES.IShaderModuleService)\n protected shaderModuleService: IShaderModuleService;\n\n protected rendererService: IRendererService;\n protected iconService: IIconService;\n protected fontService: IFontService;\n protected styleAttributeService: IStyleAttributeService;\n protected mapService: IMapService;\n protected cameraService: ICameraService;\n protected layerService: ILayerService;\n\n // style texture data mapping\n\n constructor(layer: ILayer) {\n this.layer = layer;\n this.rendererService = layer\n .getContainer()\n .get<IRendererService>(TYPES.IRendererService);\n this.shaderModuleService = layer\n .getContainer()\n .get<IShaderModuleService>(TYPES.IShaderModuleService);\n\n this.styleAttributeService = layer\n .getContainer()\n .get<IStyleAttributeService>(TYPES.IStyleAttributeService);\n this.mapService = layer.getContainer().get<IMapService>(TYPES.IMapService);\n this.iconService = layer\n .getContainer()\n .get<IIconService>(TYPES.IIconService);\n this.fontService = layer\n .getContainer()\n .get<IFontService>(TYPES.IFontService);\n this.cameraService = layer\n .getContainer()\n .get<ICameraService>(TYPES.ICameraService);\n this.layerService = layer\n .getContainer()\n .get<ILayerService>(TYPES.ILayerService);\n\n // 注册 Attribute\n this.registerBuiltinAttributes();\n // 开启动画\n this.startModelAnimate();\n\n const { createTexture2D } = this.rendererService;\n this.createTexture2D = createTexture2D;\n this.DATA_TEXTURE_WIDTH = 1024; // 数据纹理固定宽度\n this.rowCount = 1;\n this.cellLength = 0;\n this.cellProperties = [];\n this.cacheStyleProperties = {\n thetaOffset: undefined,\n opacity: undefined,\n strokeOpacity: undefined,\n strokeWidth: undefined,\n stroke: undefined,\n offsets: undefined,\n };\n this.stylePropertyesExist = {\n hasThetaOffset: 0,\n hasOpacity: 0,\n hasStrokeOpacity: 0,\n hasStrokeWidth: 0,\n hasStroke: 0,\n hasOffsets: 0,\n };\n this.dataTextureTest = this.layerService.getOESTextureFloat();\n // 只有在不支持数据纹理的情况下进行赋值\n if (!this.dataTextureTest) {\n this.dataTexture = this.createTexture2D({\n // data: new Uint8ClampedArray(4),\n // 使用 Uint8ClampedArray 在 支付宝 环境中可能存在问题 UC 内核对格式有要求 L7 v2.7.18 版本发现\n // Uint8ClampedArray 和 Uint8Array 没有实质性的区别\n data: new Uint8Array(4),\n mag: gl.NEAREST,\n min: gl.NEAREST,\n width: 1,\n height: 1,\n });\n }\n }\n\n // style datatexture mapping\n\n /**\n * 清除上一次的计算结果 - 全量清除\n */\n public clearLastCalRes() {\n this.cellProperties = []; // 清空上一次计算的需要进行数据映射的属性集合\n this.cellLength = 0; // 清空上一次计算的 cell 的长度\n this.stylePropertyesExist = {\n // 全量清空上一次是否需要对 style 属性进行数据映射的判断\n hasThetaOffset: 0,\n hasOpacity: 0,\n hasStrokeOpacity: 0,\n hasStrokeWidth: 0,\n hasStroke: 0,\n hasOffsets: 0,\n };\n }\n\n public getCellTypeLayout() {\n if (this.dataTextureTest) {\n return [\n // 0\n this.rowCount, // 数据纹理有几行\n this.DATA_TEXTURE_WIDTH, // 数据纹理有几列\n 0.0,\n 0.0,\n // 1\n this.stylePropertyesExist.hasOpacity, // cell 中是否存在 opacity\n this.stylePropertyesExist.hasStrokeOpacity, // cell 中是否存在 strokeOpacity\n this.stylePropertyesExist.hasStrokeWidth, // cell 中是否存在 strokeWidth\n this.stylePropertyesExist.hasStroke, // cell 中是否存在 stroke\n // 2\n this.stylePropertyesExist.hasOffsets, // cell 中是否存在 offsets\n this.stylePropertyesExist.hasThetaOffset, // cell 中是否存在 thetaOffset\n 0.0,\n 0.0,\n // 3\n 0.0,\n 0.0,\n 0.0,\n 1.0,\n ];\n } else {\n return [\n 1.0, // 数据纹理有几行\n 1.0, // 数据纹理有几列\n 0.0,\n 0.0,\n 0.0, // cell 中是否存在 opacity\n 0.0, // cell 中是否存在 strokeOpacity\n 0.0, // cell 中是否存在 strokeWidth\n 0.0, // cell 中是否存在 stroke\n 0.0, // cell 中是否存在 offsets\n 0.0,\n 0.0,\n 0.0,\n 0.0,\n 0.0,\n 0.0,\n -1.0,\n ];\n }\n }\n\n /**\n * 判断数据纹理是否需要重新计算 - 根据传入的值进行判断\n * @param options\n * @returns\n */\n public dataTextureNeedUpdate(options: {\n // TODO: thetaOffset 目前只有 lineLayer/arc 使用\n thetaOffset?: styleSingle;\n opacity?: styleSingle;\n strokeOpacity?: styleSingle;\n strokeWidth?: styleSingle;\n stroke?: styleColor;\n offsets?: styleOffset;\n textOffset?: styleOffset;\n }): boolean {\n let isUpdate = false;\n if (!isEqual(options.thetaOffset, this.cacheStyleProperties.thetaOffset)) {\n isUpdate = true;\n this.cacheStyleProperties.thetaOffset = options.thetaOffset;\n }\n if (!isEqual(options.opacity, this.cacheStyleProperties.opacity)) {\n isUpdate = true;\n this.cacheStyleProperties.opacity = options.opacity;\n }\n if (\n !isEqual(options.strokeOpacity, this.cacheStyleProperties.strokeOpacity)\n ) {\n isUpdate = true;\n this.cacheStyleProperties.strokeOpacity = options.strokeOpacity;\n }\n if (!isEqual(options.strokeWidth, this.cacheStyleProperties.strokeWidth)) {\n isUpdate = true;\n this.cacheStyleProperties.strokeWidth = options.strokeWidth;\n }\n if (!isEqual(options.stroke, this.cacheStyleProperties.stroke)) {\n isUpdate = true;\n this.cacheStyleProperties.stroke = options.stroke;\n }\n if (!isEqual(options.offsets, this.cacheStyleProperties.offsets)) {\n isUpdate = true;\n this.cacheStyleProperties.offsets = options.offsets;\n }\n if (this.dataTexture === undefined) {\n isUpdate = true;\n }\n return isUpdate;\n }\n /**\n * 判断当前的样式中哪些是需要进行数据映射的,哪些是常量,同时计算用于构建数据纹理的一些中间变量\n * @param options\n */\n public judgeStyleAttributes(options: {\n // TODO: 目前 thetaOffset 只有 lineLayer/arc 使用\n thetaOffset?: styleSingle;\n opacity?: styleSingle;\n strokeOpacity?: styleSingle;\n strokeWidth?: styleSingle;\n stroke?: styleColor;\n offsets?: styleOffset;\n }) {\n this.clearLastCalRes(); // 清除上一次的计算结果 - 全量清除\n\n if (options.opacity !== undefined && !isNumber(options.opacity)) {\n // 数据映射\n this.cellProperties.push({ attr: 'opacity', count: 1 });\n this.stylePropertyesExist.hasOpacity = 1;\n this.cellLength += 1;\n }\n\n if (\n options.strokeOpacity !== undefined &&\n !isNumber(options.strokeOpacity)\n ) {\n // 数据映射\n this.cellProperties.push({ attr: 'strokeOpacity', count: 1 });\n this.stylePropertyesExist.hasStrokeOpacity = 1;\n this.cellLength += 1;\n }\n\n if (options.strokeWidth !== undefined && !isNumber(options.strokeWidth)) {\n // 数据映射\n this.cellProperties.push({ attr: 'strokeWidth', count: 1 });\n this.stylePropertyesExist.hasStrokeWidth = 1;\n this.cellLength += 1;\n }\n\n if (options.stroke !== undefined && !this.isStaticColor(options.stroke)) {\n // 数据映射\n this.cellProperties.push({ attr: 'stroke', count: 4 });\n this.stylePropertyesExist.hasStroke = 1;\n this.cellLength += 4;\n }\n\n if (\n options.offsets !== undefined &&\n !this.isOffsetStatic(options.offsets)\n ) {\n // 数据映射\n this.cellProperties.push({ attr: 'offsets', count: 2 });\n this.stylePropertyesExist.hasOffsets = 1;\n this.cellLength += 2;\n }\n\n if (options.thetaOffset !== undefined && !isNumber(options.thetaOffset)) {\n // 数据映射\n this.cellProperties.push({ attr: 'thetaOffset', count: 1 });\n this.stylePropertyesExist.hasThetaOffset = 1;\n this.cellLength += 1;\n }\n // console.log('this.cellLength', this.cellLength)\n }\n\n /**\n * 判断变量 stroke 是否是常量值\n * @param stroke\n * @returns\n */\n public isStaticColor(stroke: styleColor): boolean {\n if (isString(stroke)) {\n if (color(stroke)) {\n return true;\n } else {\n return false;\n }\n }\n return false;\n }\n /**\n * 获取 stroke 颜色并做兼容处理\n * @param stroke\n * @returns\n */\n public getStrokeColor(stroke: styleColor) {\n if (this.isStaticColor(stroke)) {\n const strokeColor = rgb2arr(stroke as string);\n strokeColor[0] = strokeColor[0] ? strokeColor[0] : 0;\n strokeColor[1] = strokeColor[1] ? strokeColor[1] : 0;\n strokeColor[2] = strokeColor[2] ? strokeColor[2] : 0;\n strokeColor[3] = strokeColor[3] ? strokeColor[3] : 0;\n return strokeColor;\n } else {\n return [0, 0, 0, 0];\n }\n }\n\n /**\n * 判断 offsets 是否是常量\n * @param offsets\n * @returns\n */\n public isOffsetStatic(offsets: styleOffset) {\n if (\n Array.isArray(offsets) &&\n offsets.length === 2 &&\n isNumber(offsets[0]) &&\n isNumber(offsets[1])\n ) {\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * 补空位\n * @param d\n * @param count\n */\n public patchMod(d: number[], count: number) {\n for (let i = 0; i < count; i++) {\n d.push(-1);\n }\n }\n\n /**\n * 根据映射的数据字段往推入数据\n * @param d\n * @param cellData\n * @param cellPropertiesLayouts\n */\n public patchData(\n d: number[],\n cellData: IEncodeFeature,\n cellPropertiesLayouts: ICellProperty[],\n ) {\n for (const layout of cellPropertiesLayouts) {\n const { attr, count } = layout;\n\n const value = cellData[attr];\n if (value !== undefined) {\n // 数据中存在该属性\n if (attr === 'stroke') {\n d.push(...rgb2arr(value));\n } else if (attr === 'offsets') {\n if (this.isOffsetStatic(value)) {\n d.push(-value[0], value[1]);\n } else {\n d.push(0, 0);\n }\n } else {\n d.push(isNumber(value) ? value : 1.0);\n }\n } else {\n // 若不存在时则补位\n this.patchMod(d, count);\n }\n }\n }\n\n /**\n * 计算推入数据纹理的数据\n * @param cellLength\n * @param encodeData\n * @param cellPropertiesLayouts\n * @returns\n */\n public calDataFrame(\n cellLength: number,\n encodeData: IEncodeFeature[],\n cellPropertiesLayouts: ICellProperty[],\n ): IDataTextureFrame {\n const encodeDatalength = encodeData.length;\n const rowCount = Math.ceil(\n (encodeDatalength * cellLength) / this.DATA_TEXTURE_WIDTH,\n ); // 有多少行\n\n const totalLength = rowCount * this.DATA_TEXTURE_WIDTH;\n const d: number[] = [];\n for (let i = 0; i < encodeDatalength; i++) {\n // 根据 encodeData 数据推入数据\n const cellData = encodeData[i];\n this.patchData(d, cellData, cellPropertiesLayouts);\n }\n for (let i = d.length; i < totalLength; i++) {\n // 每行不足的部分用 -1 补足(数据纹理时 width * height 的矩形数据集合)\n d.push(-1);\n }\n // console.log('data', d)\n return { data: d, width: this.DATA_TEXTURE_WIDTH, height: rowCount };\n }\n\n // style datatexture mapping\n\n public getBlend(): IBlendOptions {\n const { blend = 'normal' } = this.layer.getLayerConfig();\n return BlendTypes[BlendType[blend]] as IBlendOptions;\n }\n public getDefaultStyle(): unknown {\n return {};\n }\n public getUninforms(): IModelUniform {\n throw new Error('Method not implemented.');\n }\n\n public getAnimateUniforms(): IModelUniform {\n return {};\n }\n\n public needUpdate(): boolean {\n return false;\n }\n public buildModels(): IModel[] {\n throw new Error('Method not implemented.');\n }\n public initModels(): IModel[] {\n throw new Error('Method not implemented.');\n }\n public clearModels() {\n return;\n }\n public getAttribute(): {\n attributes: {\n [attributeName: string]: IAttribute;\n };\n elements: IElements;\n } {\n throw new Error('Method not implemented.');\n }\n public render() {\n throw new Error('Method not implemented.');\n }\n protected registerBuiltinAttributes() {\n throw new Error('Method not implemented.');\n }\n protected animateOption2Array(option: IAnimateOption): number[] {\n return [\n option.enable ? 0 : 1.0,\n option.duration || 4.0,\n option.interval || 0.2,\n option.trailLength || 0.1,\n ];\n }\n protected startModelAnimate() {\n const { animateOption } = this.layer.getLayerConfig() as ILayerConfig;\n if (animateOption.enable) {\n this.layer.setAnimateStartTime();\n }\n }\n}\n"],"file":"BaseModel.js"}
1
+ {"version":3,"sources":["../../src/core/BaseModel.ts"],"names":["BlendType","gl","lazyInject","TYPES","rgb2arr","color","BlendTypes","BaseModel","IGlobalConfigService","layer","rendererService","getContainer","get","IRendererService","pickingService","IPickingService","shaderModuleService","IShaderModuleService","styleAttributeService","IStyleAttributeService","mapService","IMapService","iconService","IIconService","fontService","IFontService","cameraService","ICameraService","layerService","ILayerService","registerBuiltinAttributes","startModelAnimate","createTexture2D","DATA_TEXTURE_WIDTH","rowCount","cellLength","cellProperties","cacheStyleProperties","thetaOffset","undefined","opacity","strokeOpacity","strokeWidth","stroke","offsets","stylePropertyesExist","hasThetaOffset","hasOpacity","hasStrokeOpacity","hasStrokeWidth","hasStroke","hasOffsets","dataTextureTest","getOESTextureFloat","dataTexture","data","Uint8Array","mag","NEAREST","min","width","height","options","isUpdate","clearLastCalRes","push","attr","count","isStaticColor","isOffsetStatic","strokeColor","Array","isArray","length","d","i","cellData","cellPropertiesLayouts","layout","value","patchMod","encodeData","encodeDatalength","Math","ceil","totalLength","patchData","getLayerConfig","blend","Error","option","enable","duration","interval","trailLength","animateOption","setAnimateStartTime"],"mappings":"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","sourcesContent":["import {\n BlendType,\n gl,\n IAnimateOption,\n IAttribute,\n IBlendOptions,\n ICameraService,\n IElements,\n IEncodeFeature,\n IFontService,\n IGlobalConfigService,\n IIconService,\n ILayer,\n ILayerConfig,\n ILayerModel,\n ILayerService,\n IMapService,\n IModel,\n IModelUniform,\n IPickingService,\n IRendererService,\n IShaderModuleService,\n IStyleAttributeService,\n ITexture2D,\n ITexture2DInitializationOptions,\n lazyInject,\n Triangulation,\n TYPES,\n} from '@antv/l7-core';\nimport { rgb2arr } from '@antv/l7-utils';\nimport { color } from 'd3-color';\nimport { isEqual, isFunction, isNumber, isString } from 'lodash';\nimport { BlendTypes } from '../utils/blend';\n\nexport type styleSingle =\n | number\n | string\n | [string, (single: any) => number]\n | [string, [number, number]];\nexport type styleOffset =\n | string\n | [number, number]\n | [string, (single: any) => number];\nexport type styleColor =\n | string\n | [string, (single: any) => string]\n | [string, [string, string]];\nexport interface IDataTextureFrame {\n data: number[];\n width: number;\n height: number;\n}\n\nexport interface ICellProperty {\n attr: string;\n count: number;\n}\n\nexport default class BaseModel<ChildLayerStyleOptions = {}>\n implements ILayerModel {\n public triangulation: Triangulation;\n\n // style texture data mapping\n public createTexture2D: (\n options: ITexture2DInitializationOptions,\n ) => ITexture2D;\n\n protected layer: ILayer;\n protected dataTexture: ITexture2D; // 用于数据传递的数据纹理\n protected DATA_TEXTURE_WIDTH: number; // 默认有多少列(宽度)\n protected rowCount: number; // 计算得到的当前数据纹理有多少行(高度)\n protected cacheStyleProperties: {\n // 记录存储上一次样式字段的值\n thetaOffset: styleSingle | undefined;\n opacity: styleSingle | undefined;\n strokeOpacity: styleSingle | undefined;\n strokeWidth: styleSingle | undefined;\n stroke: styleColor | undefined;\n offsets: styleOffset | undefined;\n };\n protected cellLength: number; // 单个 cell 的长度\n protected cellProperties: ICellProperty[]; // 需要进行数据映射的属性集合\n protected cellTypeLayout: number[];\n protected stylePropertyesExist: {\n // 记录 style 属性是否存在的中间变量\n hasThetaOffset: number;\n hasOpacity: number;\n hasStrokeOpacity: number;\n hasStrokeWidth: number;\n hasStroke: number;\n hasOffsets: number;\n };\n protected dataTextureTest: boolean;\n\n @lazyInject(TYPES.IGlobalConfigService)\n protected readonly configService: IGlobalConfigService;\n\n // @lazyInject(TYPES.IIconService)\n // protected readonly iconService: IIconService;\n\n // @lazyInject(TYPES.IFontService)\n // protected readonly fontService: IFontService;\n\n // @lazyInject(TYPES.IShaderModuleService)\n protected shaderModuleService: IShaderModuleService;\n\n protected rendererService: IRendererService;\n protected iconService: IIconService;\n protected fontService: IFontService;\n protected styleAttributeService: IStyleAttributeService;\n protected mapService: IMapService;\n protected cameraService: ICameraService;\n protected layerService: ILayerService;\n protected pickingService: IPickingService;\n\n // style texture data mapping\n\n constructor(layer: ILayer) {\n this.layer = layer;\n this.rendererService = layer\n .getContainer()\n .get<IRendererService>(TYPES.IRendererService);\n this.pickingService = layer\n .getContainer()\n .get<IPickingService>(TYPES.IPickingService);\n\n this.shaderModuleService = layer\n .getContainer()\n .get<IShaderModuleService>(TYPES.IShaderModuleService);\n\n this.styleAttributeService = layer\n .getContainer()\n .get<IStyleAttributeService>(TYPES.IStyleAttributeService);\n this.mapService = layer.getContainer().get<IMapService>(TYPES.IMapService);\n this.iconService = layer\n .getContainer()\n .get<IIconService>(TYPES.IIconService);\n this.fontService = layer\n .getContainer()\n .get<IFontService>(TYPES.IFontService);\n this.cameraService = layer\n .getContainer()\n .get<ICameraService>(TYPES.ICameraService);\n this.layerService = layer\n .getContainer()\n .get<ILayerService>(TYPES.ILayerService);\n\n // 注册 Attribute\n this.registerBuiltinAttributes();\n // 开启动画\n this.startModelAnimate();\n\n const { createTexture2D } = this.rendererService;\n this.createTexture2D = createTexture2D;\n this.DATA_TEXTURE_WIDTH = 1024; // 数据纹理固定宽度\n this.rowCount = 1;\n this.cellLength = 0;\n this.cellProperties = [];\n this.cacheStyleProperties = {\n thetaOffset: undefined,\n opacity: undefined,\n strokeOpacity: undefined,\n strokeWidth: undefined,\n stroke: undefined,\n offsets: undefined,\n };\n this.stylePropertyesExist = {\n hasThetaOffset: 0,\n hasOpacity: 0,\n hasStrokeOpacity: 0,\n hasStrokeWidth: 0,\n hasStroke: 0,\n hasOffsets: 0,\n };\n this.dataTextureTest = this.layerService.getOESTextureFloat();\n // 只有在不支持数据纹理的情况下进行赋值\n if (!this.dataTextureTest) {\n this.dataTexture = this.createTexture2D({\n // data: new Uint8ClampedArray(4),\n // 使用 Uint8ClampedArray 在 支付宝 环境中可能存在问题 UC 内核对格式有要求 L7 v2.7.18 版本发现\n // Uint8ClampedArray 和 Uint8Array 没有实质性的区别\n data: new Uint8Array(4),\n mag: gl.NEAREST,\n min: gl.NEAREST,\n width: 1,\n height: 1,\n });\n }\n }\n\n // style datatexture mapping\n\n /**\n * 清除上一次的计算结果 - 全量清除\n */\n public clearLastCalRes() {\n this.cellProperties = []; // 清空上一次计算的需要进行数据映射的属性集合\n this.cellLength = 0; // 清空上一次计算的 cell 的长度\n this.stylePropertyesExist = {\n // 全量清空上一次是否需要对 style 属性进行数据映射的判断\n hasThetaOffset: 0,\n hasOpacity: 0,\n hasStrokeOpacity: 0,\n hasStrokeWidth: 0,\n hasStroke: 0,\n hasOffsets: 0,\n };\n }\n\n public getCellTypeLayout() {\n if (this.dataTextureTest) {\n return [\n // 0\n this.rowCount, // 数据纹理有几行\n this.DATA_TEXTURE_WIDTH, // 数据纹理有几列\n 0.0,\n 0.0,\n // 1\n this.stylePropertyesExist.hasOpacity, // cell 中是否存在 opacity\n this.stylePropertyesExist.hasStrokeOpacity, // cell 中是否存在 strokeOpacity\n this.stylePropertyesExist.hasStrokeWidth, // cell 中是否存在 strokeWidth\n this.stylePropertyesExist.hasStroke, // cell 中是否存在 stroke\n // 2\n this.stylePropertyesExist.hasOffsets, // cell 中是否存在 offsets\n this.stylePropertyesExist.hasThetaOffset, // cell 中是否存在 thetaOffset\n 0.0,\n 0.0,\n // 3\n 0.0,\n 0.0,\n 0.0,\n 1.0,\n ];\n } else {\n return [\n 1.0, // 数据纹理有几行\n 1.0, // 数据纹理有几列\n 0.0,\n 0.0,\n 0.0, // cell 中是否存在 opacity\n 0.0, // cell 中是否存在 strokeOpacity\n 0.0, // cell 中是否存在 strokeWidth\n 0.0, // cell 中是否存在 stroke\n 0.0, // cell 中是否存在 offsets\n 0.0,\n 0.0,\n 0.0,\n 0.0,\n 0.0,\n 0.0,\n -1.0,\n ];\n }\n }\n\n /**\n * 判断数据纹理是否需要重新计算 - 根据传入的值进行判断\n * @param options\n * @returns\n */\n public dataTextureNeedUpdate(options: {\n // TODO: thetaOffset 目前只有 lineLayer/arc 使用\n thetaOffset?: styleSingle;\n opacity?: styleSingle;\n strokeOpacity?: styleSingle;\n strokeWidth?: styleSingle;\n stroke?: styleColor;\n offsets?: styleOffset;\n textOffset?: styleOffset;\n }): boolean {\n let isUpdate = false;\n if (!isEqual(options.thetaOffset, this.cacheStyleProperties.thetaOffset)) {\n isUpdate = true;\n this.cacheStyleProperties.thetaOffset = options.thetaOffset;\n }\n if (!isEqual(options.opacity, this.cacheStyleProperties.opacity)) {\n isUpdate = true;\n this.cacheStyleProperties.opacity = options.opacity;\n }\n if (\n !isEqual(options.strokeOpacity, this.cacheStyleProperties.strokeOpacity)\n ) {\n isUpdate = true;\n this.cacheStyleProperties.strokeOpacity = options.strokeOpacity;\n }\n if (!isEqual(options.strokeWidth, this.cacheStyleProperties.strokeWidth)) {\n isUpdate = true;\n this.cacheStyleProperties.strokeWidth = options.strokeWidth;\n }\n if (!isEqual(options.stroke, this.cacheStyleProperties.stroke)) {\n isUpdate = true;\n this.cacheStyleProperties.stroke = options.stroke;\n }\n if (!isEqual(options.offsets, this.cacheStyleProperties.offsets)) {\n isUpdate = true;\n this.cacheStyleProperties.offsets = options.offsets;\n }\n if (this.dataTexture === undefined) {\n isUpdate = true;\n }\n return isUpdate;\n }\n /**\n * 判断当前的样式中哪些是需要进行数据映射的,哪些是常量,同时计算用于构建数据纹理的一些中间变量\n * @param options\n */\n public judgeStyleAttributes(options: {\n // TODO: 目前 thetaOffset 只有 lineLayer/arc 使用\n thetaOffset?: styleSingle;\n opacity?: styleSingle;\n strokeOpacity?: styleSingle;\n strokeWidth?: styleSingle;\n stroke?: styleColor;\n offsets?: styleOffset;\n }) {\n this.clearLastCalRes(); // 清除上一次的计算结果 - 全量清除\n\n if (options.opacity !== undefined && !isNumber(options.opacity)) {\n // 数据映射\n this.cellProperties.push({ attr: 'opacity', count: 1 });\n this.stylePropertyesExist.hasOpacity = 1;\n this.cellLength += 1;\n }\n\n if (\n options.strokeOpacity !== undefined &&\n !isNumber(options.strokeOpacity)\n ) {\n // 数据映射\n this.cellProperties.push({ attr: 'strokeOpacity', count: 1 });\n this.stylePropertyesExist.hasStrokeOpacity = 1;\n this.cellLength += 1;\n }\n\n if (options.strokeWidth !== undefined && !isNumber(options.strokeWidth)) {\n // 数据映射\n this.cellProperties.push({ attr: 'strokeWidth', count: 1 });\n this.stylePropertyesExist.hasStrokeWidth = 1;\n this.cellLength += 1;\n }\n\n if (options.stroke !== undefined && !this.isStaticColor(options.stroke)) {\n // 数据映射\n this.cellProperties.push({ attr: 'stroke', count: 4 });\n this.stylePropertyesExist.hasStroke = 1;\n this.cellLength += 4;\n }\n\n if (\n options.offsets !== undefined &&\n !this.isOffsetStatic(options.offsets)\n ) {\n // 数据映射\n this.cellProperties.push({ attr: 'offsets', count: 2 });\n this.stylePropertyesExist.hasOffsets = 1;\n this.cellLength += 2;\n }\n\n if (options.thetaOffset !== undefined && !isNumber(options.thetaOffset)) {\n // 数据映射\n this.cellProperties.push({ attr: 'thetaOffset', count: 1 });\n this.stylePropertyesExist.hasThetaOffset = 1;\n this.cellLength += 1;\n }\n // console.log('this.cellLength', this.cellLength)\n }\n\n /**\n * 判断变量 stroke 是否是常量值\n * @param stroke\n * @returns\n */\n public isStaticColor(stroke: styleColor): boolean {\n if (isString(stroke)) {\n if (color(stroke)) {\n return true;\n } else {\n return false;\n }\n }\n return false;\n }\n /**\n * 获取 stroke 颜色并做兼容处理\n * @param stroke\n * @returns\n */\n public getStrokeColor(stroke: styleColor) {\n if (this.isStaticColor(stroke)) {\n const strokeColor = rgb2arr(stroke as string);\n strokeColor[0] = strokeColor[0] ? strokeColor[0] : 0;\n strokeColor[1] = strokeColor[1] ? strokeColor[1] : 0;\n strokeColor[2] = strokeColor[2] ? strokeColor[2] : 0;\n strokeColor[3] = strokeColor[3] ? strokeColor[3] : 0;\n return strokeColor;\n } else {\n return [0, 0, 0, 0];\n }\n }\n\n /**\n * 判断 offsets 是否是常量\n * @param offsets\n * @returns\n */\n public isOffsetStatic(offsets: styleOffset) {\n if (\n Array.isArray(offsets) &&\n offsets.length === 2 &&\n isNumber(offsets[0]) &&\n isNumber(offsets[1])\n ) {\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * 补空位\n * @param d\n * @param count\n */\n public patchMod(d: number[], count: number) {\n for (let i = 0; i < count; i++) {\n d.push(-1);\n }\n }\n\n /**\n * 根据映射的数据字段往推入数据\n * @param d\n * @param cellData\n * @param cellPropertiesLayouts\n */\n public patchData(\n d: number[],\n cellData: IEncodeFeature,\n cellPropertiesLayouts: ICellProperty[],\n ) {\n for (const layout of cellPropertiesLayouts) {\n const { attr, count } = layout;\n\n const value = cellData[attr];\n if (value !== undefined) {\n // 数据中存在该属性\n if (attr === 'stroke') {\n d.push(...rgb2arr(value));\n } else if (attr === 'offsets') {\n if (this.isOffsetStatic(value)) {\n d.push(-value[0], value[1]);\n } else {\n d.push(0, 0);\n }\n } else {\n d.push(isNumber(value) ? value : 1.0);\n }\n } else {\n // 若不存在时则补位\n this.patchMod(d, count);\n }\n }\n }\n\n /**\n * 计算推入数据纹理的数据\n * @param cellLength\n * @param encodeData\n * @param cellPropertiesLayouts\n * @returns\n */\n public calDataFrame(\n cellLength: number,\n encodeData: IEncodeFeature[],\n cellPropertiesLayouts: ICellProperty[],\n ): IDataTextureFrame {\n const encodeDatalength = encodeData.length;\n const rowCount = Math.ceil(\n (encodeDatalength * cellLength) / this.DATA_TEXTURE_WIDTH,\n ); // 有多少行\n\n const totalLength = rowCount * this.DATA_TEXTURE_WIDTH;\n const d: number[] = [];\n for (let i = 0; i < encodeDatalength; i++) {\n // 根据 encodeData 数据推入数据\n const cellData = encodeData[i];\n this.patchData(d, cellData, cellPropertiesLayouts);\n }\n for (let i = d.length; i < totalLength; i++) {\n // 每行不足的部分用 -1 补足(数据纹理时 width * height 的矩形数据集合)\n d.push(-1);\n }\n // console.log('data', d)\n return { data: d, width: this.DATA_TEXTURE_WIDTH, height: rowCount };\n }\n\n // style datatexture mapping\n\n public getBlend(): IBlendOptions {\n const { blend = 'normal' } = this.layer.getLayerConfig();\n return BlendTypes[BlendType[blend]] as IBlendOptions;\n }\n public getDefaultStyle(): unknown {\n return {};\n }\n public getUninforms(): IModelUniform {\n throw new Error('Method not implemented.');\n }\n\n public getAnimateUniforms(): IModelUniform {\n return {};\n }\n\n public needUpdate(): boolean {\n return false;\n }\n public buildModels(): IModel[] {\n throw new Error('Method not implemented.');\n }\n public initModels(): IModel[] {\n throw new Error('Method not implemented.');\n }\n public clearModels() {\n return;\n }\n public getAttribute(): {\n attributes: {\n [attributeName: string]: IAttribute;\n };\n elements: IElements;\n } {\n throw new Error('Method not implemented.');\n }\n public render() {\n throw new Error('Method not implemented.');\n }\n protected registerBuiltinAttributes() {\n throw new Error('Method not implemented.');\n }\n protected animateOption2Array(option: IAnimateOption): number[] {\n return [\n option.enable ? 0 : 1.0,\n option.duration || 4.0,\n option.interval || 0.2,\n option.trailLength || 0.1,\n ];\n }\n protected startModelAnimate() {\n const { animateOption } = this.layer.getLayerConfig() as ILayerConfig;\n if (animateOption.enable) {\n this.layer.setAnimateStartTime();\n }\n }\n}\n"],"file":"BaseModel.js"}
@@ -1,5 +1,5 @@
1
1
  import { IAnimateOption, IMapService } from '@antv/l7-core';
2
- import { IColorRamp } from '@antv/l7-utils';
2
+ import { IColorRamp, IImagedata } from '@antv/l7-utils';
3
3
  import { styleOffset, styleSingle } from '../core/BaseModel';
4
4
  import { anchorType } from '../utils/symbol-layout';
5
5
  export declare enum lineStyleType {
@@ -13,6 +13,8 @@ interface ILineArrow {
13
13
  tailWidth: number;
14
14
  }
15
15
  export interface ILineLayerStyleOptions {
16
+ tileOrigin?: number[];
17
+ coord?: string;
16
18
  opacity: styleSingle;
17
19
  lineType?: keyof typeof lineStyleType;
18
20
  dashArray?: [number, number];
@@ -36,8 +38,12 @@ export interface ILineLayerStyleOptions {
36
38
  maskInside?: boolean;
37
39
  arrow?: ILineArrow;
38
40
  rampColors?: IColorRamp;
41
+ featureId?: string;
42
+ sourceLayer?: string;
39
43
  }
40
44
  export interface IPointLayerStyleOptions {
45
+ tileOrigin?: number[];
46
+ coord?: string;
41
47
  opacity: number;
42
48
  strokeOpacity: number;
43
49
  strokeWidth: number;
@@ -70,8 +76,12 @@ export interface IPointLayerStyleOptions {
70
76
  maskInside?: boolean;
71
77
  rotation?: number;
72
78
  speed?: number;
79
+ featureId?: string;
80
+ sourceLayer?: string;
73
81
  }
74
82
  export interface IPolygonLayerStyleOptions {
83
+ tileOrigin?: number[];
84
+ coord?: string;
75
85
  opacity?: number;
76
86
  opacityLinear?: {
77
87
  enable: boolean;
@@ -91,6 +101,8 @@ export interface IPolygonLayerStyleOptions {
91
101
  speed?: number;
92
102
  watercolor?: string;
93
103
  watercolor2?: string;
104
+ featureId?: string;
105
+ sourceLayer?: string;
94
106
  }
95
107
  export interface IRasterTileLayerStyleOptions {
96
108
  zIndex?: number;
@@ -181,5 +193,6 @@ export interface IRasterLayerStyleOptions {
181
193
  rampColors: IColorRamp;
182
194
  mask?: boolean;
183
195
  maskInside?: boolean;
196
+ rampColorsData?: ImageData | IImagedata;
184
197
  }
185
198
  export {};
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/interface.ts"],"names":["lineStyleType","CanvasUpdateType"],"mappings":"AAIA,WAAYA,aAAZ;;WAAYA,a;AAAAA,EAAAA,a,CAAAA,a;AAAAA,EAAAA,a,CAAAA,a;GAAAA,a,KAAAA,a;;AA4LZ,WAAYC,gBAAZ;;WAAYA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;GAAAA,gB,KAAAA,gB","sourcesContent":["import { IAnimateOption, IMapService } from '@antv/l7-core';\nimport { IColorRamp } from '@antv/l7-utils';\nimport { styleOffset, styleSingle } from '../core/BaseModel';\nimport { anchorType } from '../utils/symbol-layout';\nexport enum lineStyleType {\n 'solid' = 0.0,\n 'dash' = 1.0,\n}\n\ninterface ILineArrow {\n enable: boolean;\n arrowWidth: number;\n arrowHeight: number;\n tailWidth: number;\n}\n\nexport interface ILineLayerStyleOptions {\n opacity: styleSingle;\n lineType?: keyof typeof lineStyleType; // 可选参数、线类型(all - dash/solid)\n dashArray?: [number, number]; // 可选参数、虚线间隔\n segmentNumber?: number;\n\n depth?: boolean;\n forward?: boolean; // 可选参数、是否反向(arcLine)\n lineTexture?: boolean; // 可选参数、是否开启纹理贴图功能(all)\n iconStep?: number; // 可选参数、纹理贴图步长(all)\n iconStepCount?: number; // 可选参数、纹理贴图间隔\n textureBlend?: string; // 可选参数、供给纹理贴图使用(all)\n sourceColor?: string; // 可选参数、设置渐变色的起始颜色(all)\n targetColor?: string; // 可选参数、设置渐变色的终点颜色(all)\n thetaOffset?: number; // 可选参数、设置弧线的偏移量\n\n globalArcHeight?: number; // 可选参数、地球模式下 3D 弧线的高度\n vertexHeightScale?: number; // 可选参数、lineLayer vertex height scale\n\n borderWidth?: number; // 可选参数 线边框宽度\n borderColor?: string; // 可选参数 线边框颜色\n\n heightfixed?: boolean; // 可选参数 高度是否固定\n raisingHeight?: number; // 线图层抬升高度\n\n mask?: boolean; // 可选参数 时候允许蒙层\n maskInside?: boolean; // 可选参数 控制图层是否显示在蒙层的内部\n\n arrow?: ILineArrow;\n\n rampColors?: IColorRamp;\n}\n\nexport interface IPointLayerStyleOptions {\n opacity: number;\n strokeOpacity: number;\n strokeWidth: number;\n stroke: string;\n\n blur?: number;\n\n // text\n textOffset?: [number, number];\n textAnchor?: anchorType;\n spacing?: number;\n padding?: [number, number];\n halo?: number;\n gamma?: number;\n fontWeight?: string;\n fontFamily?: string;\n textAllowOverlap?: boolean;\n\n raisingHeight?: number; // 线图层抬升高度\n\n // cylinder\n pickLight?: boolean;\n depth?: boolean;\n sourceColor?: string; // 可选参数、设置渐变色的起始颜色(all)\n targetColor?: string; // 可选参数、设置渐变色的终点颜色(all)\n opacityLinear?: {\n enable: boolean;\n dir: string;\n };\n lightEnable: boolean;\n heightfixed?: boolean; // 圆柱体高度是否固定(不随 zoom 发生变化)\n\n offsets?: styleOffset;\n blend?: string;\n unit?: string;\n mask?: boolean;\n maskInside?: boolean;\n\n rotation?: number; // angle\n speed?: number;\n}\n\nexport interface IPolygonLayerStyleOptions {\n opacity?: number;\n\n opacityLinear?: {\n enable: boolean;\n dir: string;\n };\n\n topsurface?: boolean;\n sidesurface?: boolean;\n\n mapTexture?: string; // 挤出几何体顶面贴图\n raisingHeight?: number; // 挤出几何体抬升高度\n sourceColor?: string; // 可选参数、设置渐变色的起始颜色(all)\n targetColor?: string; // 可选参数、设置渐变色的终点颜色(all)\n heightfixed?: boolean; // 挤出几何体高度是否固定(不随 zoom 发生变化)\n\n pickLight: boolean;\n mask?: boolean;\n maskInside?: boolean;\n\n // water\n waterTexture?: string;\n speed?: number;\n // ocean\n watercolor?: string;\n watercolor2?: string;\n}\n\n// 栅格瓦片图层\nexport interface IRasterTileLayerStyleOptions {\n // TODO: define\n zIndex?: number;\n opacity?: number;\n}\nexport interface IMaskLayerStyleOptions {\n opacity: styleSingle;\n}\n\nexport interface IWindLayerStyleOptions {\n uMin?: number;\n uMax?: number;\n vMin?: number;\n vMax?: number;\n fadeOpacity?: number;\n speedFactor?: number;\n dropRate?: number;\n dropRateBump?: number;\n opacity?: number;\n numParticles?: number;\n rampColors?: {\n [key: number]: string;\n };\n sizeScale?: number;\n}\n\nexport interface IImageLayerStyleOptions {\n opacity: number;\n mask?: boolean;\n maskInside?: boolean;\n}\n\nexport interface IGeometryLayerStyleOptions {\n opacity: number;\n mask?: boolean;\n maskInside?: boolean;\n\n mapTexture?: string;\n terrainTexture?: string;\n\n // planeGeometry\n center?: [number, number];\n width?: number;\n height?: number;\n\n widthSegments?: number;\n heightSegments?: number;\n\n terrainClipHeight?: number;\n rgb2height?: (r: number, g: number, b: number) => number;\n\n // billboard\n raisingHeight?: number; // 抬升高度\n canvasWidth?: number;\n canvasHeight?: number;\n drawCanvas?: (canvas: HTMLCanvasElement) => void;\n\n // sprite\n spriteAnimate?: string;\n spriteRadius?: number;\n spriteCount?: number;\n spriteSpeed?: number;\n spriteTop?: number;\n spriteBottom?: number;\n spriteUpdate?: number;\n spriteScale?: number;\n\n animateOption?: IAnimateOption;\n}\n\nexport enum CanvasUpdateType {\n 'ALWAYS' = 'always',\n 'DRAGEND' = 'dragend',\n}\n\nexport interface IDrawingOnCanvas {\n canvas: HTMLCanvasElement;\n ctx: CanvasRenderingContext2D;\n mapService: IMapService;\n size: [number, number];\n}\nexport interface ICanvasLayerStyleOptions {\n zIndex: number;\n update: CanvasUpdateType | string;\n drawingOnCanvas: (option: IDrawingOnCanvas) => void;\n}\n\nexport interface IHeatMapLayerStyleOptions {\n opacity: number;\n intensity: number;\n radius: number;\n angle: number;\n rampColors: IColorRamp;\n mask?: boolean;\n maskInside?: boolean;\n\n coverage?: number;\n}\n\nexport interface IRasterLayerStyleOptions {\n opacity: number;\n domain: [number, number];\n noDataValue: number;\n clampLow: boolean;\n clampHigh: boolean;\n rampColors: IColorRamp;\n mask?: boolean;\n maskInside?: boolean;\n}\n"],"file":"interface.js"}
1
+ {"version":3,"sources":["../../src/core/interface.ts"],"names":["lineStyleType","CanvasUpdateType"],"mappings":"AAIA,WAAYA,aAAZ;;WAAYA,a;AAAAA,EAAAA,a,CAAAA,a;AAAAA,EAAAA,a,CAAAA,a;GAAAA,a,KAAAA,a;;AA0MZ,WAAYC,gBAAZ;;WAAYA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;GAAAA,gB,KAAAA,gB","sourcesContent":["import { IAnimateOption, IMapService } from '@antv/l7-core';\nimport { IColorRamp, IImagedata } from '@antv/l7-utils';\nimport { styleOffset, styleSingle } from '../core/BaseModel';\nimport { anchorType } from '../utils/symbol-layout';\nexport enum lineStyleType {\n 'solid' = 0.0,\n 'dash' = 1.0,\n}\n\ninterface ILineArrow {\n enable: boolean;\n arrowWidth: number;\n arrowHeight: number;\n tailWidth: number;\n}\n\nexport interface ILineLayerStyleOptions {\n tileOrigin?: number[];\n coord?: string;\n\n opacity: styleSingle;\n lineType?: keyof typeof lineStyleType; // 可选参数、线类型(all - dash/solid)\n dashArray?: [number, number]; // 可选参数、虚线间隔\n segmentNumber?: number;\n\n depth?: boolean;\n forward?: boolean; // 可选参数、是否反向(arcLine)\n lineTexture?: boolean; // 可选参数、是否开启纹理贴图功能(all)\n iconStep?: number; // 可选参数、纹理贴图步长(all)\n iconStepCount?: number; // 可选参数、纹理贴图间隔\n textureBlend?: string; // 可选参数、供给纹理贴图使用(all)\n sourceColor?: string; // 可选参数、设置渐变色的起始颜色(all)\n targetColor?: string; // 可选参数、设置渐变色的终点颜色(all)\n thetaOffset?: number; // 可选参数、设置弧线的偏移量\n\n globalArcHeight?: number; // 可选参数、地球模式下 3D 弧线的高度\n vertexHeightScale?: number; // 可选参数、lineLayer vertex height scale\n\n borderWidth?: number; // 可选参数 线边框宽度\n borderColor?: string; // 可选参数 线边框颜色\n\n heightfixed?: boolean; // 可选参数 高度是否固定\n raisingHeight?: number; // 线图层抬升高度\n\n mask?: boolean; // 可选参数 时候允许蒙层\n maskInside?: boolean; // 可选参数 控制图层是否显示在蒙层的内部\n\n arrow?: ILineArrow;\n\n rampColors?: IColorRamp;\n featureId?: string;\n sourceLayer?: string;\n}\n\nexport interface IPointLayerStyleOptions {\n tileOrigin?: number[];\n coord?: string;\n opacity: number;\n strokeOpacity: number;\n strokeWidth: number;\n stroke: string;\n\n blur?: number;\n\n // text\n textOffset?: [number, number];\n textAnchor?: anchorType;\n spacing?: number;\n padding?: [number, number];\n halo?: number;\n gamma?: number;\n fontWeight?: string;\n fontFamily?: string;\n textAllowOverlap?: boolean;\n\n raisingHeight?: number; // 线图层抬升高度\n\n // cylinder\n pickLight?: boolean;\n depth?: boolean;\n sourceColor?: string; // 可选参数、设置渐变色的起始颜色(all)\n targetColor?: string; // 可选参数、设置渐变色的终点颜色(all)\n opacityLinear?: {\n enable: boolean;\n dir: string;\n };\n lightEnable: boolean;\n heightfixed?: boolean; // 圆柱体高度是否固定(不随 zoom 发生变化)\n\n offsets?: styleOffset;\n blend?: string;\n unit?: string;\n mask?: boolean;\n maskInside?: boolean;\n\n rotation?: number; // angle\n speed?: number;\n featureId?: string;\n sourceLayer?: string;\n}\n\nexport interface IPolygonLayerStyleOptions {\n tileOrigin?: number[];\n coord?: string;\n opacity?: number;\n\n opacityLinear?: {\n enable: boolean;\n dir: string;\n };\n\n topsurface?: boolean;\n sidesurface?: boolean;\n\n mapTexture?: string; // 挤出几何体顶面贴图\n raisingHeight?: number; // 挤出几何体抬升高度\n sourceColor?: string; // 可选参数、设置渐变色的起始颜色(all)\n targetColor?: string; // 可选参数、设置渐变色的终点颜色(all)\n heightfixed?: boolean; // 挤出几何体高度是否固定(不随 zoom 发生变化)\n\n pickLight: boolean;\n mask?: boolean;\n maskInside?: boolean;\n\n // water\n waterTexture?: string;\n speed?: number;\n // ocean\n watercolor?: string;\n watercolor2?: string;\n\n featureId?: string;\n sourceLayer?: string;\n}\n\n// 栅格瓦片图层\nexport interface IRasterTileLayerStyleOptions {\n // TODO: define\n zIndex?: number;\n opacity?: number;\n}\nexport interface IMaskLayerStyleOptions {\n opacity: styleSingle;\n}\n\nexport interface IWindLayerStyleOptions {\n uMin?: number;\n uMax?: number;\n vMin?: number;\n vMax?: number;\n fadeOpacity?: number;\n speedFactor?: number;\n dropRate?: number;\n dropRateBump?: number;\n opacity?: number;\n numParticles?: number;\n rampColors?: {\n [key: number]: string;\n };\n sizeScale?: number;\n}\n\nexport interface IImageLayerStyleOptions {\n opacity: number;\n mask?: boolean;\n maskInside?: boolean;\n}\n\nexport interface IGeometryLayerStyleOptions {\n opacity: number;\n mask?: boolean;\n maskInside?: boolean;\n\n mapTexture?: string;\n terrainTexture?: string;\n\n // planeGeometry\n center?: [number, number];\n width?: number;\n height?: number;\n\n widthSegments?: number;\n heightSegments?: number;\n\n terrainClipHeight?: number;\n rgb2height?: (r: number, g: number, b: number) => number;\n\n // billboard\n raisingHeight?: number; // 抬升高度\n canvasWidth?: number;\n canvasHeight?: number;\n drawCanvas?: (canvas: HTMLCanvasElement) => void;\n\n // sprite\n spriteAnimate?: string;\n spriteRadius?: number;\n spriteCount?: number;\n spriteSpeed?: number;\n spriteTop?: number;\n spriteBottom?: number;\n spriteUpdate?: number;\n spriteScale?: number;\n\n animateOption?: IAnimateOption;\n}\n\nexport enum CanvasUpdateType {\n 'ALWAYS' = 'always',\n 'DRAGEND' = 'dragend',\n}\n\nexport interface IDrawingOnCanvas {\n canvas: HTMLCanvasElement;\n ctx: CanvasRenderingContext2D;\n mapService: IMapService;\n size: [number, number];\n}\nexport interface ICanvasLayerStyleOptions {\n zIndex: number;\n update: CanvasUpdateType | string;\n drawingOnCanvas: (option: IDrawingOnCanvas) => void;\n}\n\nexport interface IHeatMapLayerStyleOptions {\n opacity: number;\n intensity: number;\n radius: number;\n angle: number;\n rampColors: IColorRamp;\n mask?: boolean;\n maskInside?: boolean;\n\n coverage?: number;\n}\n\nexport interface IRasterLayerStyleOptions {\n opacity: number;\n domain: [number, number];\n noDataValue: number;\n clampLow: boolean;\n clampHigh: boolean;\n rampColors: IColorRamp;\n mask?: boolean;\n maskInside?: boolean;\n rampColorsData?: ImageData | IImagedata;\n}\n"],"file":"interface.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/image/models/image.ts"],"names":["AttributeType","gl","getMask","isMini","BaseModel","RasterImageTriangulation","ImageModel","layer","getLayerConfig","opacity","u_opacity","u_texture","texture","mask","maskInside","source","getSource","createTexture2D","rendererService","height","width","canvas","layerService","sceneService","getSceneConfig","img","createImage","crossOrigin","src","data","originData","onload","updateLayerRenderList","renderLayers","images","then","imageData","buildLayerModel","moduleName","vertexShader","ImageVert","fragmentShader","ImageFrag","triangulation","primitive","TRIANGLES","depth","enable","blend","getBlend","stencil","initModels","properties","type","minimum","maximum","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { getMask, isMini } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { IImageLayerStyleOptions } from '../../core/interface';\nimport { RasterImageTriangulation } from '../../core/triangulation';\nimport ImageFrag from '../shaders/image_frag.glsl';\nimport ImageVert from '../shaders/image_vert.glsl';\n\nexport default class ImageModel extends BaseModel {\n protected texture: ITexture2D;\n public getUninforms(): IModelUniform {\n const { opacity } = this.layer.getLayerConfig() as IImageLayerStyleOptions;\n return {\n u_opacity: opacity || 1,\n u_texture: this.texture,\n };\n }\n public initModels() {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IImageLayerStyleOptions;\n\n const source = this.layer.getSource();\n const { createTexture2D } = this.rendererService;\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n\n if (isMini) {\n // @ts-ignore\n const canvas = this.layerService.sceneService.getSceneConfig().canvas;\n const img = canvas.createImage();\n img.crossOrigin = 'anonymous';\n img.src = source.data.originData;\n\n img.onload = () => {\n this.texture = createTexture2D({\n data: img,\n width: img.width,\n height: img.height,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n };\n } else {\n source.data.images.then((imageData: HTMLImageElement[]) => {\n this.texture = createTexture2D({\n data: imageData[0],\n width: imageData[0].width,\n height: imageData[0].height,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n });\n }\n\n return [\n this.layer.buildLayerModel({\n moduleName: 'RasterImage',\n vertexShader: ImageVert,\n fragmentShader: ImageFrag,\n triangulation: RasterImageTriangulation,\n primitive: gl.TRIANGLES,\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n public buildModels() {\n return this.initModels();\n }\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 registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Uv',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3], vertex[4]];\n },\n },\n });\n }\n}\n"],"file":"image.js"}
1
+ {"version":3,"sources":["../../../src/image/models/image.ts"],"names":["AttributeType","gl","getMask","isMini","BaseModel","RasterImageTriangulation","ImageModel","layer","getLayerConfig","opacity","u_opacity","u_texture","texture","mask","maskInside","source","getSource","createTexture2D","rendererService","height","width","canvas","layerService","sceneService","getSceneConfig","img","createImage","crossOrigin","src","data","originData","onload","updateLayerRenderList","renderLayers","images","then","imageData","buildLayerModel","moduleName","vertexShader","ImageVert","fragmentShader","ImageFrag","triangulation","primitive","TRIANGLES","depth","enable","blend","getBlend","stencil","initModels","properties","type","minimum","maximum","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx"],"mappings":";;;;;;;;;;;;AAAA,SACEA,aADF,EAEEC,EAFF,QAMO,eANP;AAOA,SAASC,OAAT,EAAkBC,MAAlB,QAAgC,gBAAhC;AACA,OAAOC,SAAP,MAAsB,sBAAtB;AAEA,SAASC,wBAAT,QAAyC,0BAAzC;;;;IAIqBC,U;;;;;;;;;;;;;;;;;;;;;;;WAEnB,wBAAqC;AACnC,iBAAoB,KAAKC,KAAL,CAAWC,cAAX,EAApB;AAAA,UAAQC,OAAR,QAAQA,OAAR;;AACA,aAAO;AACLC,QAAAA,SAAS,EAAED,OAAO,IAAI,CADjB;AAELE,QAAAA,SAAS,EAAE,KAAKC;AAFX,OAAP;AAID;;;WACD,sBAAoB;AAAA;;AAClB,kBAGI,KAAKL,KAAL,CAAWC,cAAX,EAHJ;AAAA,6BACEK,IADF;AAAA,UACEA,IADF,2BACS,KADT;AAAA,mCAEEC,UAFF;AAAA,UAEEA,UAFF,iCAEe,IAFf;;AAKA,UAAMC,MAAM,GAAG,KAAKR,KAAL,CAAWS,SAAX,EAAf;AACA,UAAQC,eAAR,GAA4B,KAAKC,eAAjC,CAAQD,eAAR;AACA,WAAKL,OAAL,GAAeK,eAAe,CAAC;AAC7BE,QAAAA,MAAM,EAAE,CADqB;AAE7BC,QAAAA,KAAK,EAAE;AAFsB,OAAD,CAA9B;;AAKA,UAAIjB,MAAJ,EAAY;AAEV,YAAMkB,MAAM,GAAG,KAAKC,YAAL,CAAkBC,YAAlB,CAA+BC,cAA/B,GAAgDH,MAA/D;AACA,YAAMI,GAAG,GAAGJ,MAAM,CAACK,WAAP,EAAZ;AACAD,QAAAA,GAAG,CAACE,WAAJ,GAAkB,WAAlB;AACAF,QAAAA,GAAG,CAACG,GAAJ,GAAUb,MAAM,CAACc,IAAP,CAAYC,UAAtB;;AAEAL,QAAAA,GAAG,CAACM,MAAJ,GAAa,YAAM;AACjB,UAAA,MAAI,CAACnB,OAAL,GAAeK,eAAe,CAAC;AAC7BY,YAAAA,IAAI,EAAEJ,GADuB;AAE7BL,YAAAA,KAAK,EAAEK,GAAG,CAACL,KAFkB;AAG7BD,YAAAA,MAAM,EAAEM,GAAG,CAACN;AAHiB,WAAD,CAA9B;;AAKA,UAAA,MAAI,CAACG,YAAL,CAAkBU,qBAAlB;;AACA,UAAA,MAAI,CAACV,YAAL,CAAkBW,YAAlB;AACD,SARD;AASD,OAhBD,MAgBO;AACLlB,QAAAA,MAAM,CAACc,IAAP,CAAYK,MAAZ,CAAmBC,IAAnB,CACE,UAACC,SAAD,EAAsD;AACpD,UAAA,MAAI,CAACxB,OAAL,GAAeK,eAAe,CAAC;AAC7BY,YAAAA,IAAI,EAAEO,SAAS,CAAC,CAAD,CADc;AAE7BhB,YAAAA,KAAK,EAAEgB,SAAS,CAAC,CAAD,CAAT,CAAahB,KAFS;AAG7BD,YAAAA,MAAM,EAAEiB,SAAS,CAAC,CAAD,CAAT,CAAajB;AAHQ,WAAD,CAA9B;;AAKA,UAAA,MAAI,CAACG,YAAL,CAAkBU,qBAAlB;;AACA,UAAA,MAAI,CAACV,YAAL,CAAkBW,YAAlB;AACD,SATH;AAWD;;AAED,aAAO,CACL,KAAK1B,KAAL,CAAW8B,eAAX,CAA2B;AACzBC,QAAAA,UAAU,EAAE,aADa;AAEzBC,QAAAA,YAAY,EAAEC,SAFW;AAGzBC,QAAAA,cAAc,EAAEC,SAHS;AAIzBC,QAAAA,aAAa,EAAEtC,wBAJU;AAKzBuC,QAAAA,SAAS,EAAE3C,EAAE,CAAC4C,SALW;AAMzBC,QAAAA,KAAK,EAAE;AAAEC,UAAAA,MAAM,EAAE;AAAV,SANkB;AAOzBC,QAAAA,KAAK,EAAE,KAAKC,QAAL,EAPkB;AAQzBC,QAAAA,OAAO,EAAEhD,OAAO,CAACW,IAAD,EAAOC,UAAP;AARS,OAA3B,CADK,CAAP;AAYD;;;WACD,uBAAqB;AACnB,aAAO,KAAKqC,UAAL,EAAP;AACD;;;WAED,2BAA4B;AAC1B,aAAO;AACLC,QAAAA,UAAU,EAAE;AACV3C,UAAAA,OAAO,EAAE;AACP4C,YAAAA,IAAI,EAAE,QADC;AAEPC,YAAAA,OAAO,EAAE,CAFF;AAGPC,YAAAA,OAAO,EAAE;AAHF;AADC;AADP,OAAP;AASD;;;WAED,qCAAsC;AAEpC,WAAKC,qBAAL,CAA2BC,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,IAD0C;AAEhDL,QAAAA,IAAI,EAAErD,aAAa,CAAC2D,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVF,UAAAA,IAAI,EAAE,MADI;AAEVG,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAE7D,EAAE,CAAC8D,YAFJ;AAGNlC,YAAAA,IAAI,EAAE,EAHA;AAINwB,YAAAA,IAAI,EAAEpD,EAAE,CAAC+D;AAJH,WAFE;AAQVC,UAAAA,IAAI,EAAE,CARI;AASVC,UAAAA,MAAM,EAAE,gBACNC,OADM,EAENC,UAFM,EAGNC,MAHM,EAINC,YAJM,EAKH;AACH,mBAAO,CAACD,MAAM,CAAC,CAAD,CAAP,EAAYA,MAAM,CAAC,CAAD,CAAlB,CAAP;AACD;AAhBS;AAHoC,OAAlD;AAsBD;;;;EAzGqCjE,S;;SAAnBE,U","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { getMask, isMini } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { IImageLayerStyleOptions } from '../../core/interface';\nimport { RasterImageTriangulation } from '../../core/triangulation';\nimport ImageFrag from '../shaders/image_frag.glsl';\nimport ImageVert from '../shaders/image_vert.glsl';\n\nexport default class ImageModel extends BaseModel {\n protected texture: ITexture2D;\n public getUninforms(): IModelUniform {\n const { opacity } = this.layer.getLayerConfig() as IImageLayerStyleOptions;\n return {\n u_opacity: opacity || 1,\n u_texture: this.texture,\n };\n }\n public initModels() {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IImageLayerStyleOptions;\n\n const source = this.layer.getSource();\n const { createTexture2D } = this.rendererService;\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n\n if (isMini) {\n // @ts-ignore\n const canvas = this.layerService.sceneService.getSceneConfig().canvas;\n const img = canvas.createImage();\n img.crossOrigin = 'anonymous';\n img.src = source.data.originData;\n\n img.onload = () => {\n this.texture = createTexture2D({\n data: img,\n width: img.width,\n height: img.height,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n };\n } else {\n source.data.images.then(\n (imageData: Array<HTMLImageElement | ImageBitmap>) => {\n this.texture = createTexture2D({\n data: imageData[0],\n width: imageData[0].width,\n height: imageData[0].height,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n },\n );\n }\n\n return [\n this.layer.buildLayerModel({\n moduleName: 'RasterImage',\n vertexShader: ImageVert,\n fragmentShader: ImageFrag,\n triangulation: RasterImageTriangulation,\n primitive: gl.TRIANGLES,\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n public buildModels() {\n return this.initModels();\n }\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 registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Uv',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3], vertex[4]];\n },\n },\n });\n }\n}\n"],"file":"image.js"}
@@ -22,6 +22,6 @@ export default class LineLayer extends BaseLayer<ILineLayerStyleOptions> {
22
22
  blend: string;
23
23
  } | {
24
24
  blend: string;
25
- };
25
+ } | {} | {} | {} | {};
26
26
  protected getModelType(): LineModelType;
27
27
  }
package/es/line/index.js CHANGED
@@ -79,7 +79,11 @@ var LineLayer = function (_BaseLayer) {
79
79
  },
80
80
  greatcircle: {
81
81
  blend: 'additive'
82
- }
82
+ },
83
+ vectorline: {},
84
+ tileLine: {},
85
+ halfLine: {},
86
+ earthArc3d: {}
83
87
  };
84
88
  return defaultConfig[type];
85
89
  }
@@ -88,6 +92,14 @@ var LineLayer = function (_BaseLayer) {
88
92
  value: function getModelType() {
89
93
  var _shapeAttribute$scale;
90
94
 
95
+ if (this.layerType) {
96
+ return this.layerType;
97
+ }
98
+
99
+ if (this.layerSource.parser.type === 'mvt') {
100
+ return 'vectorline';
101
+ }
102
+
91
103
  var shapeAttribute = this.styleAttributeService.getLayerStyleAttribute('shape');
92
104
  var shape = shapeAttribute === null || shapeAttribute === void 0 ? void 0 : (_shapeAttribute$scale = shapeAttribute.scale) === null || _shapeAttribute$scale === void 0 ? void 0 : _shapeAttribute$scale.field;
93
105
  return shape || 'line';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/line/index.ts"],"names":["BaseLayer","LineModels","LineLayer","shape","getModelType","layerModel","models","initModels","buildModels","properties","opacity","type","minimum","maximum","defaultConfig","line","linearline","simple","wall","arc3d","blend","arc","arcmini","greatcircle","shapeAttribute","styleAttributeService","getLayerStyleAttribute","scale","field"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,SAAP,MAAsB,mBAAtB;AAEA,OAAOC,UAAP,MAA0C,UAA1C;;IAEqBC,S;;;;;;;;;;;;;;;;2DACG,W;;;;;;;WAEtB,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;;;WAED,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;;;WACD,4BAA6B;AAC3B,UAAMF,IAAI,GAAG,KAAKP,YAAL,EAAb;AACA,UAAMU,aAAa,GAAG;AACpBC,QAAAA,IAAI,EAAE,EADc;AAEpBC,QAAAA,UAAU,EAAE,EAFQ;AAGpBC,QAAAA,MAAM,EAAE,EAHY;AAIpBC,QAAAA,IAAI,EAAE,EAJc;AAKpBC,QAAAA,KAAK,EAAE;AAAEC,UAAAA,KAAK,EAAE;AAAT,SALa;AAMpBC,QAAAA,GAAG,EAAE;AAAED,UAAAA,KAAK,EAAE;AAAT,SANe;AAOpBE,QAAAA,OAAO,EAAE;AAAEF,UAAAA,KAAK,EAAE;AAAT,SAPW;AAQpBG,QAAAA,WAAW,EAAE;AAAEH,UAAAA,KAAK,EAAE;AAAT;AARO,OAAtB;AAUA,aAAON,aAAa,CAACH,IAAD,CAApB;AACD;;;WACD,wBAAwC;AAAA;;AACtC,UAAMa,cAAc,GAAG,KAAKC,qBAAL,CAA2BC,sBAA3B,CACrB,OADqB,CAAvB;AAGA,UAAMvB,KAAK,GAAGqB,cAAH,aAAGA,cAAH,gDAAGA,cAAc,CAAEG,KAAnB,0DAAG,sBAAuBC,KAArC;AACA,aAAOzB,KAAK,IAAI,MAAhB;AACD;;;;EA3CoCH,S;;SAAlBE,S","sourcesContent":["import BaseLayer from '../core/BaseLayer';\nimport { ILineLayerStyleOptions } from '../core/interface';\nimport LineModels, { LineModelType } from './models';\n\nexport default class LineLayer extends BaseLayer<ILineLayerStyleOptions> {\n public type: string = 'LineLayer';\n\n public buildModels() {\n const shape = this.getModelType();\n this.layerModel = new LineModels[shape](this);\n this.models = this.layerModel.initModels();\n }\n public rebuildModels() {\n this.models = this.layerModel.buildModels();\n }\n\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n protected getDefaultConfig() {\n const type = this.getModelType();\n const defaultConfig = {\n line: {},\n linearline: {},\n simple: {},\n wall: {},\n arc3d: { blend: 'additive' },\n arc: { blend: 'additive' },\n arcmini: { blend: 'additive' },\n greatcircle: { blend: 'additive' },\n };\n return defaultConfig[type];\n }\n protected getModelType(): LineModelType {\n const shapeAttribute = this.styleAttributeService.getLayerStyleAttribute(\n 'shape',\n );\n const shape = shapeAttribute?.scale?.field as LineModelType;\n return shape || 'line';\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/line/index.ts"],"names":["BaseLayer","LineModels","LineLayer","shape","getModelType","layerModel","models","initModels","buildModels","properties","opacity","type","minimum","maximum","defaultConfig","line","linearline","simple","wall","arc3d","blend","arc","arcmini","greatcircle","vectorline","tileLine","halfLine","earthArc3d","layerType","layerSource","parser","shapeAttribute","styleAttributeService","getLayerStyleAttribute","scale","field"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,SAAP,MAAsB,mBAAtB;AAEA,OAAOC,UAAP,MAA0C,UAA1C;;IAEqBC,S;;;;;;;;;;;;;;;;2DACG,W;;;;;;;WAEtB,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;;;WAED,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;;;WACD,4BAA6B;AAC3B,UAAMF,IAAI,GAAG,KAAKP,YAAL,EAAb;AACA,UAAMU,aAAa,GAAG;AACpBC,QAAAA,IAAI,EAAE,EADc;AAEpBC,QAAAA,UAAU,EAAE,EAFQ;AAGpBC,QAAAA,MAAM,EAAE,EAHY;AAIpBC,QAAAA,IAAI,EAAE,EAJc;AAKpBC,QAAAA,KAAK,EAAE;AAAEC,UAAAA,KAAK,EAAE;AAAT,SALa;AAMpBC,QAAAA,GAAG,EAAE;AAAED,UAAAA,KAAK,EAAE;AAAT,SANe;AAOpBE,QAAAA,OAAO,EAAE;AAAEF,UAAAA,KAAK,EAAE;AAAT,SAPW;AAQpBG,QAAAA,WAAW,EAAE;AAAEH,UAAAA,KAAK,EAAE;AAAT,SARO;AASpBI,QAAAA,UAAU,EAAE,EATQ;AAUpBC,QAAAA,QAAQ,EAAE,EAVU;AAWpBC,QAAAA,QAAQ,EAAE,EAXU;AAYpBC,QAAAA,UAAU,EAAE;AAZQ,OAAtB;AAcA,aAAOb,aAAa,CAACH,IAAD,CAApB;AACD;;;WACD,wBAAwC;AAAA;;AACtC,UAAI,KAAKiB,SAAT,EAAoB;AAClB,eAAO,KAAKA,SAAZ;AACD;;AACD,UAAI,KAAKC,WAAL,CAAiBC,MAAjB,CAAwBnB,IAAxB,KAAiC,KAArC,EAA4C;AAC1C,eAAO,YAAP;AACD;;AACD,UAAMoB,cAAc,GAAG,KAAKC,qBAAL,CAA2BC,sBAA3B,CACrB,OADqB,CAAvB;AAGA,UAAM9B,KAAK,GAAG4B,cAAH,aAAGA,cAAH,gDAAGA,cAAc,CAAEG,KAAnB,0DAAG,sBAAuBC,KAArC;AACA,aAAOhC,KAAK,IAAI,MAAhB;AACD;;;;EArDoCH,S;;SAAlBE,S","sourcesContent":["import BaseLayer from '../core/BaseLayer';\nimport { ILineLayerStyleOptions } from '../core/interface';\nimport LineModels, { LineModelType } from './models';\n\nexport default class LineLayer extends BaseLayer<ILineLayerStyleOptions> {\n public type: string = 'LineLayer';\n\n public buildModels() {\n const shape = this.getModelType();\n this.layerModel = new LineModels[shape](this);\n this.models = this.layerModel.initModels();\n }\n public rebuildModels() {\n this.models = this.layerModel.buildModels();\n }\n\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n protected getDefaultConfig() {\n const type = this.getModelType();\n const defaultConfig = {\n line: {},\n linearline: {},\n simple: {},\n wall: {},\n arc3d: { blend: 'additive' },\n arc: { blend: 'additive' },\n arcmini: { blend: 'additive' },\n greatcircle: { blend: 'additive' },\n vectorline: {},\n tileLine: {},\n halfLine: {},\n earthArc3d: {},\n };\n return defaultConfig[type];\n }\n protected getModelType(): LineModelType {\n if (this.layerType) {\n return this.layerType as LineModelType;\n }\n if (this.layerSource.parser.type === 'mvt') {\n return 'vectorline';\n }\n const shapeAttribute = this.styleAttributeService.getLayerStyleAttribute(\n 'shape',\n );\n const shape = shapeAttribute?.scale?.field as LineModelType;\n return shape || 'line';\n }\n}\n"],"file":"index.js"}
@@ -0,0 +1,17 @@
1
+ import { IModel, IModelUniform, ITexture2D } from '@antv/l7-core';
2
+ import BaseModel from '../../core/BaseModel';
3
+ export default class Arc3DModel extends BaseModel {
4
+ protected texture: ITexture2D;
5
+ getUninforms(): IModelUniform;
6
+ getAnimateUniforms(): IModelUniform;
7
+ initModels(): IModel[];
8
+ clearModels(): void;
9
+ getShaders(): {
10
+ frag: string;
11
+ vert: string;
12
+ type: string;
13
+ };
14
+ buildModels(): IModel[];
15
+ protected registerBuiltinAttributes(): void;
16
+ private updateTexture;
17
+ }