@antv/l7-layers 2.9.14 → 2.9.15

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 +2 -4
  3. package/es/core/BaseLayer.js +21 -47
  4. package/es/core/BaseLayer.js.map +1 -1
  5. package/es/core/BaseModel.d.ts +1 -2
  6. package/es/core/BaseModel.js +0 -3
  7. package/es/core/BaseModel.js.map +1 -1
  8. package/es/core/LayerGroup.d.ts +9 -0
  9. package/es/{tile/tileFactory/rasterDataLayer.js → core/LayerGroup.js} +32 -39
  10. package/es/core/LayerGroup.js.map +1 -0
  11. package/es/core/interface.d.ts +1 -14
  12. package/es/core/interface.js.map +1 -1
  13. package/es/image/models/image.js.map +1 -1
  14. package/es/line/index.d.ts +1 -1
  15. package/es/line/index.js +1 -13
  16. package/es/line/index.js.map +1 -1
  17. package/es/line/models/index.d.ts +1 -1
  18. package/es/line/models/index.js +1 -9
  19. package/es/line/models/index.js.map +1 -1
  20. package/es/plugins/DataMappingPlugin.js +1 -1
  21. package/es/plugins/DataMappingPlugin.js.map +1 -1
  22. package/es/plugins/DataSourcePlugin.js +6 -7
  23. package/es/plugins/DataSourcePlugin.js.map +1 -1
  24. package/es/plugins/FeatureScalePlugin.js +9 -35
  25. package/es/plugins/FeatureScalePlugin.js.map +1 -1
  26. package/es/plugins/ShaderUniformPlugin.js +1 -3
  27. package/es/plugins/ShaderUniformPlugin.js.map +1 -1
  28. package/es/point/index.d.ts +1 -1
  29. package/es/point/index.js +2 -10
  30. package/es/point/index.js.map +1 -1
  31. package/es/point/models/extrude.d.ts +1 -0
  32. package/es/point/models/extrude.js +10 -2
  33. package/es/point/models/extrude.js.map +1 -1
  34. package/es/point/models/fill.d.ts +1 -8
  35. package/es/point/models/fill.js +75 -55
  36. package/es/point/models/fill.js.map +1 -1
  37. package/es/point/models/index.d.ts +1 -1
  38. package/es/point/models/index.js +1 -9
  39. package/es/point/models/index.js.map +1 -1
  40. package/es/point/models/radar.js +6 -2
  41. package/es/point/models/radar.js.map +1 -1
  42. package/es/polygon/index.js +0 -6
  43. package/es/polygon/index.js.map +1 -1
  44. package/es/polygon/models/index.d.ts +1 -1
  45. package/es/polygon/models/index.js +1 -5
  46. package/es/polygon/models/index.js.map +1 -1
  47. package/es/raster/index.d.ts +2 -2
  48. package/es/raster/index.js +4 -4
  49. package/es/raster/index.js.map +1 -1
  50. package/es/raster/models/index.js +1 -1
  51. package/es/raster/models/index.js.map +1 -1
  52. package/es/raster/models/raste-tile.d.ts +23 -0
  53. package/es/raster/models/raste-tile.js +285 -0
  54. package/es/raster/models/raste-tile.js.map +1 -0
  55. package/es/raster/models/raster.d.ts +0 -2
  56. package/es/raster/models/raster.js +12 -24
  57. package/es/raster/models/raster.js.map +1 -1
  58. package/lib/core/BaseLayer.js +20 -45
  59. package/lib/core/BaseLayer.js.map +1 -1
  60. package/lib/core/BaseModel.js +0 -2
  61. package/lib/core/BaseModel.js.map +1 -1
  62. package/lib/{tile/tileFactory/rasterDataLayer.js → core/LayerGroup.js} +32 -40
  63. package/lib/core/LayerGroup.js.map +1 -0
  64. package/lib/core/interface.js.map +1 -1
  65. package/lib/image/models/image.js.map +1 -1
  66. package/lib/line/index.js +1 -13
  67. package/lib/line/index.js.map +1 -1
  68. package/lib/line/models/index.js +1 -13
  69. package/lib/line/models/index.js.map +1 -1
  70. package/lib/plugins/DataMappingPlugin.js +1 -1
  71. package/lib/plugins/DataMappingPlugin.js.map +1 -1
  72. package/lib/plugins/DataSourcePlugin.js +6 -7
  73. package/lib/plugins/DataSourcePlugin.js.map +1 -1
  74. package/lib/plugins/FeatureScalePlugin.js +9 -35
  75. package/lib/plugins/FeatureScalePlugin.js.map +1 -1
  76. package/lib/plugins/ShaderUniformPlugin.js +1 -3
  77. package/lib/plugins/ShaderUniformPlugin.js.map +1 -1
  78. package/lib/point/index.js +2 -10
  79. package/lib/point/index.js.map +1 -1
  80. package/lib/point/models/extrude.js +11 -2
  81. package/lib/point/models/extrude.js.map +1 -1
  82. package/lib/point/models/fill.js +93 -51
  83. package/lib/point/models/fill.js.map +1 -1
  84. package/lib/point/models/index.js +1 -13
  85. package/lib/point/models/index.js.map +1 -1
  86. package/lib/point/models/radar.js +5 -1
  87. package/lib/point/models/radar.js.map +1 -1
  88. package/lib/polygon/index.js +0 -6
  89. package/lib/polygon/index.js.map +1 -1
  90. package/lib/polygon/models/index.js +1 -7
  91. package/lib/polygon/models/index.js.map +1 -1
  92. package/lib/raster/index.js +4 -4
  93. package/lib/raster/index.js.map +1 -1
  94. package/lib/raster/models/index.js +2 -2
  95. package/lib/raster/models/index.js.map +1 -1
  96. package/lib/raster/models/raste-tile.js +294 -0
  97. package/lib/raster/models/raste-tile.js.map +1 -0
  98. package/lib/raster/models/raster.js +12 -24
  99. package/lib/raster/models/raster.js.map +1 -1
  100. package/package.json +7 -9
  101. package/es/line/models/earthArc_3d.d.ts +0 -17
  102. package/es/line/models/earthArc_3d.js +0 -311
  103. package/es/line/models/earthArc_3d.js.map +0 -1
  104. package/es/line/models/half.d.ts +0 -18
  105. package/es/line/models/half.js +0 -244
  106. package/es/line/models/half.js.map +0 -1
  107. package/es/line/models/tile.d.ts +0 -20
  108. package/es/line/models/tile.js +0 -327
  109. package/es/line/models/tile.js.map +0 -1
  110. package/es/point/models/earthExtrude.d.ts +0 -24
  111. package/es/point/models/earthExtrude.js +0 -259
  112. package/es/point/models/earthExtrude.js.map +0 -1
  113. package/es/point/models/earthFill.d.ts +0 -20
  114. package/es/point/models/earthFill.js +0 -255
  115. package/es/point/models/earthFill.js.map +0 -1
  116. package/es/point/models/tile.d.ts +0 -31
  117. package/es/point/models/tile.js +0 -291
  118. package/es/point/models/tile.js.map +0 -1
  119. package/es/polygon/models/tile.d.ts +0 -16
  120. package/es/polygon/models/tile.js +0 -137
  121. package/es/polygon/models/tile.js.map +0 -1
  122. package/es/tile/interface.d.ts +0 -28
  123. package/es/tile/interface.js +0 -2
  124. package/es/tile/interface.js.map +0 -1
  125. package/es/tile/manager/tileConfigManager.d.ts +0 -17
  126. package/es/tile/manager/tileConfigManager.js +0 -123
  127. package/es/tile/manager/tileConfigManager.js.map +0 -1
  128. package/es/tile/manager/tileLayerManager.d.ts +0 -35
  129. package/es/tile/manager/tileLayerManager.js +0 -297
  130. package/es/tile/manager/tileLayerManager.js.map +0 -1
  131. package/es/tile/manager/tilePickerManager.d.ts +0 -21
  132. package/es/tile/manager/tilePickerManager.js +0 -189
  133. package/es/tile/manager/tilePickerManager.js.map +0 -1
  134. package/es/tile/models/tileModel.d.ts +0 -8
  135. package/es/tile/models/tileModel.js +0 -61
  136. package/es/tile/models/tileModel.js.map +0 -1
  137. package/es/tile/tileFactory/base.d.ts +0 -44
  138. package/es/tile/tileFactory/base.js +0 -423
  139. package/es/tile/tileFactory/base.js.map +0 -1
  140. package/es/tile/tileFactory/index.d.ts +0 -5
  141. package/es/tile/tileFactory/index.js +0 -30
  142. package/es/tile/tileFactory/index.js.map +0 -1
  143. package/es/tile/tileFactory/line.d.ts +0 -12
  144. package/es/tile/tileFactory/line.js +0 -65
  145. package/es/tile/tileFactory/line.js.map +0 -1
  146. package/es/tile/tileFactory/point.d.ts +0 -12
  147. package/es/tile/tileFactory/point.js +0 -65
  148. package/es/tile/tileFactory/point.js.map +0 -1
  149. package/es/tile/tileFactory/polygon.d.ts +0 -12
  150. package/es/tile/tileFactory/polygon.js +0 -65
  151. package/es/tile/tileFactory/polygon.js.map +0 -1
  152. package/es/tile/tileFactory/raster.d.ts +0 -12
  153. package/es/tile/tileFactory/raster.js +0 -61
  154. package/es/tile/tileFactory/raster.js.map +0 -1
  155. package/es/tile/tileFactory/rasterData.d.ts +0 -12
  156. package/es/tile/tileFactory/rasterData.js +0 -86
  157. package/es/tile/tileFactory/rasterData.js.map +0 -1
  158. package/es/tile/tileFactory/rasterDataLayer.d.ts +0 -19
  159. package/es/tile/tileFactory/rasterDataLayer.js.map +0 -1
  160. package/es/tile/tileFactory/vectorLayer.d.ts +0 -27
  161. package/es/tile/tileFactory/vectorLayer.js +0 -131
  162. package/es/tile/tileFactory/vectorLayer.js.map +0 -1
  163. package/es/tile/tileLayer/baseTileLayer.d.ts +0 -47
  164. package/es/tile/tileLayer/baseTileLayer.js +0 -409
  165. package/es/tile/tileLayer/baseTileLayer.js.map +0 -1
  166. package/es/tile/tmsTileLayer.d.ts +0 -7
  167. package/es/tile/tmsTileLayer.js +0 -100
  168. package/es/tile/tmsTileLayer.js.map +0 -1
  169. package/es/tile/utils.d.ts +0 -11
  170. package/es/tile/utils.js +0 -125
  171. package/es/tile/utils.js.map +0 -1
  172. package/lib/line/models/earthArc_3d.js +0 -328
  173. package/lib/line/models/earthArc_3d.js.map +0 -1
  174. package/lib/line/models/half.js +0 -260
  175. package/lib/line/models/half.js.map +0 -1
  176. package/lib/line/models/tile.js +0 -342
  177. package/lib/line/models/tile.js.map +0 -1
  178. package/lib/point/models/earthExtrude.js +0 -277
  179. package/lib/point/models/earthExtrude.js.map +0 -1
  180. package/lib/point/models/earthFill.js +0 -291
  181. package/lib/point/models/earthFill.js.map +0 -1
  182. package/lib/point/models/tile.js +0 -308
  183. package/lib/point/models/tile.js.map +0 -1
  184. package/lib/polygon/models/tile.js +0 -152
  185. package/lib/polygon/models/tile.js.map +0 -1
  186. package/lib/tile/interface.js +0 -2
  187. package/lib/tile/interface.js.map +0 -1
  188. package/lib/tile/manager/tileConfigManager.js +0 -134
  189. package/lib/tile/manager/tileConfigManager.js.map +0 -1
  190. package/lib/tile/manager/tileLayerManager.js +0 -305
  191. package/lib/tile/manager/tileLayerManager.js.map +0 -1
  192. package/lib/tile/manager/tilePickerManager.js +0 -195
  193. package/lib/tile/manager/tilePickerManager.js.map +0 -1
  194. package/lib/tile/models/tileModel.js +0 -73
  195. package/lib/tile/models/tileModel.js.map +0 -1
  196. package/lib/tile/tileFactory/base.js +0 -436
  197. package/lib/tile/tileFactory/base.js.map +0 -1
  198. package/lib/tile/tileFactory/index.js +0 -60
  199. package/lib/tile/tileFactory/index.js.map +0 -1
  200. package/lib/tile/tileFactory/line.js +0 -76
  201. package/lib/tile/tileFactory/line.js.map +0 -1
  202. package/lib/tile/tileFactory/point.js +0 -76
  203. package/lib/tile/tileFactory/point.js.map +0 -1
  204. package/lib/tile/tileFactory/polygon.js +0 -76
  205. package/lib/tile/tileFactory/polygon.js.map +0 -1
  206. package/lib/tile/tileFactory/raster.js +0 -74
  207. package/lib/tile/tileFactory/raster.js.map +0 -1
  208. package/lib/tile/tileFactory/rasterData.js +0 -99
  209. package/lib/tile/tileFactory/rasterData.js.map +0 -1
  210. package/lib/tile/tileFactory/rasterDataLayer.js.map +0 -1
  211. package/lib/tile/tileFactory/vectorLayer.js +0 -145
  212. package/lib/tile/tileFactory/vectorLayer.js.map +0 -1
  213. package/lib/tile/tileLayer/baseTileLayer.js +0 -407
  214. package/lib/tile/tileLayer/baseTileLayer.js.map +0 -1
  215. package/lib/tile/tmsTileLayer.js +0 -116
  216. package/lib/tile/tmsTileLayer.js.map +0 -1
  217. package/lib/tile/utils.js +0 -147
  218. package/lib/tile/utils.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","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
+ {"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"}
@@ -0,0 +1,9 @@
1
+ import { ILayer, ILayerGroup } from '@antv/l7-core';
2
+ import BaseLayer from './BaseLayer';
3
+ export default class LayerGroup<ChildLayerStyleOptions = {}> extends BaseLayer<ChildLayerStyleOptions> implements ILayerGroup {
4
+ isLayerGroup: boolean;
5
+ addChild(layer: ILayer): void;
6
+ removeChild(layer: ILayer): void;
7
+ clearChild(): void;
8
+ hasChild(layer: ILayer): boolean;
9
+ }
@@ -10,18 +10,17 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
10
10
 
11
11
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
12
12
 
13
- import BaseLayer from '../../core/BaseLayer';
14
- import RasterModel from '../../raster/models/raster';
13
+ import BaseLayer from './BaseLayer';
15
14
 
16
- var RasterTiffLayer = function (_BaseLayer) {
17
- _inherits(RasterTiffLayer, _BaseLayer);
15
+ var LayerGroup = function (_BaseLayer) {
16
+ _inherits(LayerGroup, _BaseLayer);
18
17
 
19
- var _super = _createSuper(RasterTiffLayer);
18
+ var _super = _createSuper(LayerGroup);
20
19
 
21
- function RasterTiffLayer() {
20
+ function LayerGroup() {
22
21
  var _this;
23
22
 
24
- _classCallCheck(this, RasterTiffLayer);
23
+ _classCallCheck(this, LayerGroup);
25
24
 
26
25
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
27
26
  args[_key] = arguments[_key];
@@ -29,50 +28,44 @@ var RasterTiffLayer = function (_BaseLayer) {
29
28
 
30
29
  _this = _super.call.apply(_super, [this].concat(args));
31
30
 
32
- _defineProperty(_assertThisInitialized(_this), "type", _this.layerType);
31
+ _defineProperty(_assertThisInitialized(_this), "isLayerGroup", true);
33
32
 
34
33
  return _this;
35
34
  }
36
35
 
37
- _createClass(RasterTiffLayer, [{
38
- key: "buildModels",
39
- value: function buildModels() {
40
- var model = this.getModelType();
41
- this.layerModel = new model(this);
42
- this.models = this.layerModel.initModels();
36
+ _createClass(LayerGroup, [{
37
+ key: "addChild",
38
+ value: function addChild(layer) {
39
+ this.layerChildren.push(layer);
43
40
  }
44
41
  }, {
45
- key: "rebuildModels",
46
- value: function rebuildModels() {
47
- this.models = this.layerModel.buildModels();
48
- }
49
- }, {
50
- key: "getModelType",
51
- value: function getModelType() {
52
- return RasterModel;
42
+ key: "removeChild",
43
+ value: function removeChild(layer) {
44
+ var layerIndex = this.layerChildren.indexOf(layer);
45
+
46
+ if (layerIndex > -1) {
47
+ this.layerChildren.splice(layerIndex, 1);
48
+ }
49
+
50
+ layer.destroy();
53
51
  }
54
52
  }, {
55
- key: "getConfigSchema",
56
- value: function getConfigSchema() {
57
- return {
58
- properties: {
59
- opacity: {
60
- type: 'number',
61
- minimum: 0,
62
- maximum: 1
63
- }
64
- }
65
- };
53
+ key: "clearChild",
54
+ value: function clearChild() {
55
+ this.layerChildren.forEach(function (layer) {
56
+ layer.destroy();
57
+ });
58
+ this.layerChildren = [];
66
59
  }
67
60
  }, {
68
- key: "getDefaultConfig",
69
- value: function getDefaultConfig() {
70
- return {};
61
+ key: "hasChild",
62
+ value: function hasChild(layer) {
63
+ return this.layerChildren.includes(layer);
71
64
  }
72
65
  }]);
73
66
 
74
- return RasterTiffLayer;
67
+ return LayerGroup;
75
68
  }(BaseLayer);
76
69
 
77
- export { RasterTiffLayer as default };
78
- //# sourceMappingURL=rasterDataLayer.js.map
70
+ export { LayerGroup as default };
71
+ //# sourceMappingURL=LayerGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/core/LayerGroup.ts"],"names":["BaseLayer","LayerGroup","layer","layerChildren","push","layerIndex","indexOf","splice","destroy","forEach","includes"],"mappings":";;;;;;;;;;;;AACA,OAAOA,SAAP,MAAsB,aAAtB;;IAIqBC,U;;;;;;;;;;;;;;;;mEAGY,I;;;;;;;WAE/B,kBAAgBC,KAAhB,EAA+B;AAC7B,WAAKC,aAAL,CAAmBC,IAAnB,CAAwBF,KAAxB;AACD;;;WAED,qBAAmBA,KAAnB,EAAkC;AAChC,UAAMG,UAAU,GAAG,KAAKF,aAAL,CAAmBG,OAAnB,CAA2BJ,KAA3B,CAAnB;;AACA,UAAIG,UAAU,GAAG,CAAC,CAAlB,EAAqB;AACnB,aAAKF,aAAL,CAAmBI,MAAnB,CAA0BF,UAA1B,EAAsC,CAAtC;AACD;;AACDH,MAAAA,KAAK,CAACM,OAAN;AACD;;;WAED,sBAAoB;AAClB,WAAKL,aAAL,CAAmBM,OAAnB,CAA2B,UAACP,KAAD,EAAgB;AACzCA,QAAAA,KAAK,CAACM,OAAN;AACD,OAFD;AAIA,WAAKL,aAAL,GAAqB,EAArB;AACD;;;WAED,kBAAgBD,KAAhB,EAA+B;AAC7B,aAAO,KAAKC,aAAL,CAAmBO,QAAnB,CAA4BR,KAA5B,CAAP;AACD;;;;EA1BOF,S;;SADWC,U","sourcesContent":["import { ILayer, ILayerGroup } from '@antv/l7-core';\nimport BaseLayer from './BaseLayer';\n\n// 定义 LayerGroup 继承 Baselayer\n\nexport default class LayerGroup<ChildLayerStyleOptions = {}>\n extends BaseLayer<ChildLayerStyleOptions>\n implements ILayerGroup {\n public isLayerGroup: boolean = true;\n\n public addChild(layer: ILayer) {\n this.layerChildren.push(layer);\n }\n\n public removeChild(layer: ILayer) {\n const layerIndex = this.layerChildren.indexOf(layer);\n if (layerIndex > -1) {\n this.layerChildren.splice(layerIndex, 1);\n }\n layer.destroy();\n }\n\n public clearChild() {\n this.layerChildren.forEach((layer: any) => {\n layer.destroy();\n });\n\n this.layerChildren = [];\n }\n\n public hasChild(layer: ILayer) {\n return this.layerChildren.includes(layer);\n }\n}\n"],"file":"LayerGroup.js"}
@@ -1,5 +1,5 @@
1
1
  import { IAnimateOption, IMapService } from '@antv/l7-core';
2
- import { IColorRamp, IImagedata } from '@antv/l7-utils';
2
+ import { IColorRamp } 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,8 +13,6 @@ interface ILineArrow {
13
13
  tailWidth: number;
14
14
  }
15
15
  export interface ILineLayerStyleOptions {
16
- tileOrigin?: number[];
17
- coord?: string;
18
16
  opacity: styleSingle;
19
17
  lineType?: keyof typeof lineStyleType;
20
18
  dashArray?: [number, number];
@@ -38,12 +36,8 @@ export interface ILineLayerStyleOptions {
38
36
  maskInside?: boolean;
39
37
  arrow?: ILineArrow;
40
38
  rampColors?: IColorRamp;
41
- featureId?: string;
42
- sourceLayer?: string;
43
39
  }
44
40
  export interface IPointLayerStyleOptions {
45
- tileOrigin?: number[];
46
- coord?: string;
47
41
  opacity: number;
48
42
  strokeOpacity: number;
49
43
  strokeWidth: number;
@@ -76,12 +70,8 @@ export interface IPointLayerStyleOptions {
76
70
  maskInside?: boolean;
77
71
  rotation?: number;
78
72
  speed?: number;
79
- featureId?: string;
80
- sourceLayer?: string;
81
73
  }
82
74
  export interface IPolygonLayerStyleOptions {
83
- tileOrigin?: number[];
84
- coord?: string;
85
75
  opacity?: number;
86
76
  opacityLinear?: {
87
77
  enable: boolean;
@@ -101,8 +91,6 @@ export interface IPolygonLayerStyleOptions {
101
91
  speed?: number;
102
92
  watercolor?: string;
103
93
  watercolor2?: string;
104
- featureId?: string;
105
- sourceLayer?: string;
106
94
  }
107
95
  export interface IRasterTileLayerStyleOptions {
108
96
  zIndex?: number;
@@ -193,6 +181,5 @@ export interface IRasterLayerStyleOptions {
193
181
  rampColors: IColorRamp;
194
182
  mask?: boolean;
195
183
  maskInside?: boolean;
196
- rampColorsData?: ImageData | IImagedata;
197
184
  }
198
185
  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;;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
+ {"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 +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(\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"}
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"}
@@ -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,11 +79,7 @@ var LineLayer = function (_BaseLayer) {
79
79
  },
80
80
  greatcircle: {
81
81
  blend: 'additive'
82
- },
83
- vectorline: {},
84
- tileLine: {},
85
- halfLine: {},
86
- earthArc3d: {}
82
+ }
87
83
  };
88
84
  return defaultConfig[type];
89
85
  }
@@ -92,14 +88,6 @@ var LineLayer = function (_BaseLayer) {
92
88
  value: function getModelType() {
93
89
  var _shapeAttribute$scale;
94
90
 
95
- if (this.layerType) {
96
- return this.layerType;
97
- }
98
-
99
- if (this.layerSource.parser.type === 'mvt') {
100
- return 'vectorline';
101
- }
102
-
103
91
  var shapeAttribute = this.styleAttributeService.getLayerStyleAttribute('shape');
104
92
  var shape = shapeAttribute === null || shapeAttribute === void 0 ? void 0 : (_shapeAttribute$scale = shapeAttribute.scale) === null || _shapeAttribute$scale === void 0 ? void 0 : _shapeAttribute$scale.field;
105
93
  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","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"}
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,4 +1,4 @@
1
- export declare type LineModelType = 'arc' | 'arcmini' | 'arc3d' | 'greatcircle' | 'wall' | 'simple' | 'line' | 'halfLine' | 'linearline' | 'vectorline' | 'tileLine' | 'earthArc3d';
1
+ export declare type LineModelType = 'arc' | 'arcmini' | 'arc3d' | 'greatcircle' | 'wall' | 'simple' | 'line' | 'linearline';
2
2
  declare const LineModels: {
3
3
  [key in LineModelType]: any;
4
4
  };
@@ -1,14 +1,10 @@
1
- import LineTileModel from '../../tile/models/tileModel';
2
1
  import ArcModel from './arc';
3
2
  import Arc3DModel from './arc_3d';
4
3
  import ArcMiniModel from './arcmini';
5
- import EarthArc3DModel from './earthArc_3d';
6
4
  import GreatCircleModel from './great_circle';
7
- import LineHalfModel from './half';
8
5
  import LineModel from './line';
9
6
  import LinearLine from './linearline';
10
7
  import SimpleLineModel from './simpleLine';
11
- import TileLineModel from './tile';
12
8
  import LineWallModel from './wall';
13
9
  var LineModels = {
14
10
  arc: ArcModel,
@@ -17,12 +13,8 @@ var LineModels = {
17
13
  greatcircle: GreatCircleModel,
18
14
  wall: LineWallModel,
19
15
  line: LineModel,
20
- halfLine: LineHalfModel,
21
16
  simple: SimpleLineModel,
22
- linearline: LinearLine,
23
- vectorline: LineTileModel,
24
- tileLine: TileLineModel,
25
- earthArc3d: EarthArc3DModel
17
+ linearline: LinearLine
26
18
  };
27
19
  export default LineModels;
28
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/line/models/index.ts"],"names":["LineTileModel","ArcModel","Arc3DModel","ArcMiniModel","EarthArc3DModel","GreatCircleModel","LineHalfModel","LineModel","LinearLine","SimpleLineModel","TileLineModel","LineWallModel","LineModels","arc","arcmini","arc3d","greatcircle","wall","line","halfLine","simple","linearline","vectorline","tileLine","earthArc3d"],"mappings":"AAAA,OAAOA,aAAP,MAA0B,6BAA1B;AACA,OAAOC,QAAP,MAAqB,OAArB;AACA,OAAOC,UAAP,MAAuB,UAAvB;AACA,OAAOC,YAAP,MAAyB,WAAzB;AACA,OAAOC,eAAP,MAA4B,eAA5B;AACA,OAAOC,gBAAP,MAA6B,gBAA7B;AACA,OAAOC,aAAP,MAA0B,QAA1B;AACA,OAAOC,SAAP,MAAsB,QAAtB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,OAAOC,eAAP,MAA4B,cAA5B;AACA,OAAOC,aAAP,MAA0B,QAA1B;AACA,OAAOC,aAAP,MAA0B,QAA1B;AAgBA,IAAMC,UAA2C,GAAG;AAClDC,EAAAA,GAAG,EAAEZ,QAD6C;AAElDa,EAAAA,OAAO,EAAEX,YAFyC;AAGlDY,EAAAA,KAAK,EAAEb,UAH2C;AAIlDc,EAAAA,WAAW,EAAEX,gBAJqC;AAKlDY,EAAAA,IAAI,EAAEN,aAL4C;AAMlDO,EAAAA,IAAI,EAAEX,SAN4C;AAOlDY,EAAAA,QAAQ,EAAEb,aAPwC;AAQlDc,EAAAA,MAAM,EAAEX,eAR0C;AASlDY,EAAAA,UAAU,EAAEb,UATsC;AAUlDc,EAAAA,UAAU,EAAEtB,aAVsC;AAWlDuB,EAAAA,QAAQ,EAAEb,aAXwC;AAYlDc,EAAAA,UAAU,EAAEpB;AAZsC,CAApD;AAeA,eAAeQ,UAAf","sourcesContent":["import LineTileModel from '../../tile/models/tileModel';\nimport ArcModel from './arc';\nimport Arc3DModel from './arc_3d';\nimport ArcMiniModel from './arcmini';\nimport EarthArc3DModel from './earthArc_3d';\nimport GreatCircleModel from './great_circle';\nimport LineHalfModel from './half';\nimport LineModel from './line';\nimport LinearLine from './linearline';\nimport SimpleLineModel from './simpleLine';\nimport TileLineModel from './tile';\nimport LineWallModel from './wall';\n\nexport type LineModelType =\n | 'arc'\n | 'arcmini'\n | 'arc3d'\n | 'greatcircle'\n | 'wall'\n | 'simple'\n | 'line'\n | 'halfLine'\n | 'linearline'\n | 'vectorline'\n | 'tileLine'\n | 'earthArc3d';\n\nconst LineModels: { [key in LineModelType]: any } = {\n arc: ArcModel,\n arcmini: ArcMiniModel,\n arc3d: Arc3DModel,\n greatcircle: GreatCircleModel,\n wall: LineWallModel,\n line: LineModel,\n halfLine: LineHalfModel,\n simple: SimpleLineModel,\n linearline: LinearLine,\n vectorline: LineTileModel,\n tileLine: TileLineModel,\n earthArc3d: EarthArc3DModel,\n};\n\nexport default LineModels;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/line/models/index.ts"],"names":["ArcModel","Arc3DModel","ArcMiniModel","GreatCircleModel","LineModel","LinearLine","SimpleLineModel","LineWallModel","LineModels","arc","arcmini","arc3d","greatcircle","wall","line","simple","linearline"],"mappings":"AAAA,OAAOA,QAAP,MAAqB,OAArB;AACA,OAAOC,UAAP,MAAuB,UAAvB;AACA,OAAOC,YAAP,MAAyB,WAAzB;AACA,OAAOC,gBAAP,MAA6B,gBAA7B;AACA,OAAOC,SAAP,MAAsB,QAAtB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AACA,OAAOC,eAAP,MAA4B,cAA5B;AACA,OAAOC,aAAP,MAA0B,QAA1B;AAYA,IAAMC,UAA2C,GAAG;AAClDC,EAAAA,GAAG,EAAET,QAD6C;AAElDU,EAAAA,OAAO,EAAER,YAFyC;AAGlDS,EAAAA,KAAK,EAAEV,UAH2C;AAIlDW,EAAAA,WAAW,EAAET,gBAJqC;AAKlDU,EAAAA,IAAI,EAAEN,aAL4C;AAMlDO,EAAAA,IAAI,EAAEV,SAN4C;AAOlDW,EAAAA,MAAM,EAAET,eAP0C;AAQlDU,EAAAA,UAAU,EAAEX;AARsC,CAApD;AAWA,eAAeG,UAAf","sourcesContent":["import ArcModel from './arc';\nimport Arc3DModel from './arc_3d';\nimport ArcMiniModel from './arcmini';\nimport GreatCircleModel from './great_circle';\nimport LineModel from './line';\nimport LinearLine from './linearline';\nimport SimpleLineModel from './simpleLine';\nimport LineWallModel from './wall';\n\nexport type LineModelType =\n | 'arc'\n | 'arcmini'\n | 'arc3d'\n | 'greatcircle'\n | 'wall'\n | 'simple'\n | 'line'\n | 'linearline';\n\nconst LineModels: { [key in LineModelType]: any } = {\n arc: ArcModel,\n arcmini: ArcMiniModel,\n arc3d: Arc3DModel,\n greatcircle: GreatCircleModel,\n wall: LineWallModel,\n line: LineModel,\n simple: SimpleLineModel,\n linearline: LinearLine,\n};\n\nexport default LineModels;\n"],"file":"index.js"}
@@ -148,7 +148,7 @@ var DataMappingPlugin = (_dec = injectable(), _dec2 = inject(TYPES.IGlobalConfig
148
148
  }
149
149
  });
150
150
 
151
- if (arrow.enable && (encodeRecord.shape === 'line' || encodeRecord.shape === 'halfLine')) {
151
+ if (encodeRecord.shape === 'line' && arrow.enable) {
152
152
  var coords = encodeRecord.coordinates;
153
153
 
154
154
  var arrowPoint = _this3.getArrowPoints(coords[0], coords[1]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/plugins/DataMappingPlugin.ts"],"names":["TYPES","Version","isColor","normalize","rgb2arr","inject","injectable","DataMappingPlugin","IGlobalConfigService","IMapService","IFontService","layer","styleAttributeService","hooks","init","tap","generateMaping","beforeRenderData","dataState","dataMappingNeedUpdate","beforeRender","layerModelNeedUpdate","bottomColor","getBottomColor","attributes","getLayerStyleAttributes","filter","getLayerStyleAttribute","dataArray","getSource","data","attributesToRemapping","attribute","needRemapping","filterData","scale","record","applyAttributeMapping","length","setEncodedData","mapping","undefined","getEncodedData","emit","p1","p2","dir","normalizeDir","arrowPoint","predata","minimumColor","getLayerConfig","arrow","enable","mappedData","map","i","preRecord","encodeRecord","id","_id","coordinates","forEach","values","name","c","Array","isArray","shape","fontService","getIconFontKey","coords","getArrowPoints","splice","adjustData2Amap2Coordinates","adjustData2SimpleCoordinates","mapService","version","layerCenter","getLayerCenter","d","originCoordinates","lngLatToCoordByLayer","lngLatToCoordsByLayer","source","center","SIMPLE","simpleCoordinate","unProjectCoordinates","simpleMapCoord","unproject","coord","c1","co","push","scalers","params","field","hasOwnProperty","type","mappingResult"],"mappings":"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","sourcesContent":["import {\n IEncodeFeature,\n IFontService,\n IGlobalConfigService,\n ILayer,\n ILayerPlugin,\n ILngLat,\n IMapService,\n IParseDataItem,\n IStyleAttribute,\n IStyleAttributeService,\n Position,\n TYPES,\n} from '@antv/l7-core';\nimport { Version } from '@antv/l7-maps';\nimport { isColor, normalize, rgb2arr, unProjectFlat } from '@antv/l7-utils';\nimport { inject, injectable } from 'inversify';\nimport { cloneDeep } from 'lodash';\nimport 'reflect-metadata';\nimport { ILineLayerStyleOptions } from '../core/interface';\n\n@injectable()\nexport default class DataMappingPlugin implements ILayerPlugin {\n @inject(TYPES.IGlobalConfigService)\n private readonly configService: IGlobalConfigService;\n\n @inject(TYPES.IMapService)\n private readonly mapService: IMapService;\n\n @inject(TYPES.IFontService)\n private readonly fontService: IFontService;\n\n public apply(\n layer: ILayer,\n {\n styleAttributeService,\n }: { styleAttributeService: IStyleAttributeService },\n ) {\n layer.hooks.init.tap('DataMappingPlugin', () => {\n // 初始化重新生成 map\n this.generateMaping(layer, { styleAttributeService });\n });\n\n layer.hooks.beforeRenderData.tap('DataMappingPlugin', () => {\n layer.dataState.dataMappingNeedUpdate = false;\n this.generateMaping(layer, { styleAttributeService });\n return true;\n });\n\n // remapping before render\n layer.hooks.beforeRender.tap('DataMappingPlugin', () => {\n if (layer.layerModelNeedUpdate) {\n return;\n }\n const bottomColor = layer.getBottomColor();\n const attributes = styleAttributeService.getLayerStyleAttributes() || [];\n const filter = styleAttributeService.getLayerStyleAttribute('filter');\n const { dataArray } = layer.getSource().data;\n\n const attributesToRemapping = attributes.filter(\n (attribute) => attribute.needRemapping, // 如果filter变化\n );\n let filterData = dataArray;\n\n // 数据过滤完 再执行数据映射\n if (filter?.needRemapping && filter?.scale) {\n filterData = dataArray.filter((record: IParseDataItem) => {\n return this.applyAttributeMapping(filter, record, bottomColor)[0];\n });\n }\n\n if (attributesToRemapping.length) {\n // 过滤数据\n if (filter?.needRemapping) {\n layer.setEncodedData(\n this.mapping(layer, attributes, filterData, undefined, bottomColor),\n );\n filter.needRemapping = false;\n } else {\n layer.setEncodedData(\n this.mapping(\n layer,\n attributesToRemapping,\n filterData,\n layer.getEncodedData(),\n bottomColor,\n ),\n );\n }\n // 处理文本更新\n layer.emit('remapping', null);\n }\n });\n }\n private generateMaping(\n layer: ILayer,\n {\n styleAttributeService,\n }: { styleAttributeService: IStyleAttributeService },\n ) {\n const bottomColor = layer.getBottomColor();\n const attributes = styleAttributeService.getLayerStyleAttributes() || [];\n const filter = styleAttributeService.getLayerStyleAttribute('filter');\n const { dataArray } = layer.getSource().data;\n let filterData = dataArray;\n // 数据过滤完 再执行数据映射\n if (filter?.scale) {\n filterData = dataArray.filter((record: IParseDataItem) => {\n return this.applyAttributeMapping(filter, record, bottomColor)[0];\n });\n }\n layer.setEncodedData(\n this.mapping(layer, attributes, filterData, undefined, bottomColor),\n );\n // 对外暴露事件\n layer.emit('dataUpdate', null);\n }\n\n private 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\n private mapping(\n layer: ILayer,\n attributes: IStyleAttribute[],\n data: IParseDataItem[],\n predata?: IEncodeFeature[],\n minimumColor?: string,\n ): IEncodeFeature[] {\n const {\n arrow = {\n enable: false,\n },\n } = layer.getLayerConfig() as ILineLayerStyleOptions;\n const mappedData = data.map((record: IParseDataItem, i) => {\n const preRecord = predata ? predata[i] : {};\n const encodeRecord: IEncodeFeature = {\n id: record._id,\n coordinates: record.coordinates,\n ...preRecord,\n };\n attributes\n .filter((attribute) => attribute.scale !== undefined)\n .forEach((attribute: IStyleAttribute) => {\n // console.log('record', record)\n let values = this.applyAttributeMapping(\n attribute,\n record,\n minimumColor,\n );\n // console.log('values', values)\n attribute.needRemapping = false;\n\n // TODO: 支持每个属性配置 postprocess\n if (attribute.name === 'color') {\n // console.log('attribute', attribute)\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 = this.fontService.getIconFontKey(\n encodeRecord[attribute.name] as string,\n );\n }\n });\n\n if (\n arrow.enable &&\n (encodeRecord.shape === 'line' || encodeRecord.shape === 'halfLine')\n ) {\n // 只有在线图层且支持配置箭头的时候进行插入顶点的处理\n const coords = encodeRecord.coordinates as Position[];\n const arrowPoint = this.getArrowPoints(coords[0], coords[1]);\n encodeRecord.coordinates.splice(1, 0, arrowPoint, arrowPoint);\n }\n return encodeRecord;\n }) as IEncodeFeature[];\n // console.log('mappedData', mappedData)\n\n // 调整数据兼容 Amap2.0\n this.adjustData2Amap2Coordinates(mappedData, layer);\n\n // 调整数据兼容 SimpleCoordinates\n this.adjustData2SimpleCoordinates(mappedData);\n\n return mappedData;\n }\n\n private adjustData2Amap2Coordinates(\n mappedData: IEncodeFeature[],\n layer: ILayer,\n ) {\n // 根据地图的类型判断是否需要对点位数据进行处理, 若是高德2.0则需要对坐标进行相对偏移\n if (\n mappedData.length > 0 &&\n this.mapService.version === Version['GAODE2.x']\n ) {\n const layerCenter = this.getLayerCenter(layer);\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 d.coordinates = this.mapService.lngLatToCoordByLayer(\n d.coordinates,\n layerCenter,\n );\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 d.coordinates = this.mapService.lngLatToCoordsByLayer(\n d.coordinates,\n layerCenter,\n );\n });\n }\n }\n }\n\n private getLayerCenter(layer: ILayer) {\n const source = layer.getSource();\n return source.center;\n }\n\n private adjustData2SimpleCoordinates(mappedData: IEncodeFeature[]) {\n if (mappedData.length > 0 && this.mapService.version === Version.SIMPLE) {\n mappedData.map((d) => {\n if (!d.simpleCoordinate) {\n d.coordinates = this.unProjectCoordinates(d.coordinates);\n d.simpleCoordinate = true;\n }\n });\n }\n }\n\n private unProjectCoordinates(coordinates: any) {\n if (typeof coordinates[0] === 'number') {\n return this.mapService.simpleMapCoord.unproject(\n coordinates as [number, number],\n );\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(\n this.mapService.simpleMapCoord.unproject(co as [number, number]),\n );\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 this.mapService.simpleMapCoord.unproject(coord as [number, number]),\n );\n });\n // @ts-ignore\n return coords;\n }\n }\n\n private 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 (\n record.hasOwnProperty(field) ||\n attribute.scale?.type === 'variable'\n ) {\n // TODO:多字段,常量\n params.push(record[field]);\n }\n });\n // console.log('params', params)\n // console.log('attribute', attribute)\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 // return attribute.mapping ? attribute.mapping(params) : [];\n }\n}\n"],"file":"DataMappingPlugin.js"}
1
+ {"version":3,"sources":["../../src/plugins/DataMappingPlugin.ts"],"names":["TYPES","Version","isColor","normalize","rgb2arr","inject","injectable","DataMappingPlugin","IGlobalConfigService","IMapService","IFontService","layer","styleAttributeService","hooks","init","tap","generateMaping","beforeRenderData","dataState","dataMappingNeedUpdate","beforeRender","layerModelNeedUpdate","bottomColor","getBottomColor","attributes","getLayerStyleAttributes","filter","getLayerStyleAttribute","dataArray","getSource","data","attributesToRemapping","attribute","needRemapping","filterData","scale","record","applyAttributeMapping","length","setEncodedData","mapping","undefined","getEncodedData","emit","p1","p2","dir","normalizeDir","arrowPoint","predata","minimumColor","getLayerConfig","arrow","enable","mappedData","map","i","preRecord","encodeRecord","id","_id","coordinates","forEach","values","name","c","Array","isArray","shape","fontService","getIconFontKey","coords","getArrowPoints","splice","adjustData2Amap2Coordinates","adjustData2SimpleCoordinates","mapService","version","layerCenter","getLayerCenter","d","originCoordinates","lngLatToCoordByLayer","lngLatToCoordsByLayer","source","center","SIMPLE","simpleCoordinate","unProjectCoordinates","simpleMapCoord","unproject","coord","c1","co","push","scalers","params","field","hasOwnProperty","type","mappingResult"],"mappings":"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","sourcesContent":["import {\n IEncodeFeature,\n IFontService,\n IGlobalConfigService,\n ILayer,\n ILayerPlugin,\n ILngLat,\n IMapService,\n IParseDataItem,\n IStyleAttribute,\n IStyleAttributeService,\n Position,\n TYPES,\n} from '@antv/l7-core';\nimport { Version } from '@antv/l7-maps';\nimport { isColor, normalize, rgb2arr, unProjectFlat } from '@antv/l7-utils';\nimport { inject, injectable } from 'inversify';\nimport { cloneDeep } from 'lodash';\nimport 'reflect-metadata';\nimport { ILineLayerStyleOptions } from '../core/interface';\n\n@injectable()\nexport default class DataMappingPlugin implements ILayerPlugin {\n @inject(TYPES.IGlobalConfigService)\n private readonly configService: IGlobalConfigService;\n\n @inject(TYPES.IMapService)\n private readonly mapService: IMapService;\n\n @inject(TYPES.IFontService)\n private readonly fontService: IFontService;\n\n public apply(\n layer: ILayer,\n {\n styleAttributeService,\n }: { styleAttributeService: IStyleAttributeService },\n ) {\n layer.hooks.init.tap('DataMappingPlugin', () => {\n // 初始化重新生成 map\n this.generateMaping(layer, { styleAttributeService });\n });\n\n layer.hooks.beforeRenderData.tap('DataMappingPlugin', () => {\n layer.dataState.dataMappingNeedUpdate = false;\n this.generateMaping(layer, { styleAttributeService });\n return true;\n });\n\n // remapping before render\n layer.hooks.beforeRender.tap('DataMappingPlugin', () => {\n if (layer.layerModelNeedUpdate) {\n return;\n }\n const bottomColor = layer.getBottomColor();\n const attributes = styleAttributeService.getLayerStyleAttributes() || [];\n const filter = styleAttributeService.getLayerStyleAttribute('filter');\n const { dataArray } = layer.getSource().data;\n\n const attributesToRemapping = attributes.filter(\n (attribute) => attribute.needRemapping, // 如果filter变化\n );\n let filterData = dataArray;\n\n // 数据过滤完 再执行数据映射\n if (filter?.needRemapping && filter?.scale) {\n filterData = dataArray.filter((record: IParseDataItem) => {\n return this.applyAttributeMapping(filter, record, bottomColor)[0];\n });\n }\n\n if (attributesToRemapping.length) {\n // 过滤数据\n if (filter?.needRemapping) {\n layer.setEncodedData(\n this.mapping(layer, attributes, filterData, undefined, bottomColor),\n );\n filter.needRemapping = false;\n } else {\n layer.setEncodedData(\n this.mapping(\n layer,\n attributesToRemapping,\n filterData,\n layer.getEncodedData(),\n bottomColor,\n ),\n );\n }\n // 处理文本更新\n layer.emit('remapping', null);\n }\n });\n }\n private generateMaping(\n layer: ILayer,\n {\n styleAttributeService,\n }: { styleAttributeService: IStyleAttributeService },\n ) {\n const bottomColor = layer.getBottomColor();\n const attributes = styleAttributeService.getLayerStyleAttributes() || [];\n const filter = styleAttributeService.getLayerStyleAttribute('filter');\n const { dataArray } = layer.getSource().data;\n let filterData = dataArray;\n // 数据过滤完 再执行数据映射\n if (filter?.scale) {\n filterData = dataArray.filter((record: IParseDataItem) => {\n return this.applyAttributeMapping(filter, record, bottomColor)[0];\n });\n }\n layer.setEncodedData(\n this.mapping(layer, attributes, filterData, undefined, bottomColor),\n );\n // 对外暴露事件\n layer.emit('dataUpdate', null);\n }\n\n private 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\n private mapping(\n layer: ILayer,\n attributes: IStyleAttribute[],\n data: IParseDataItem[],\n predata?: IEncodeFeature[],\n minimumColor?: string,\n ): IEncodeFeature[] {\n const {\n arrow = {\n enable: false,\n },\n } = layer.getLayerConfig() as ILineLayerStyleOptions;\n const mappedData = data.map((record: IParseDataItem, i) => {\n const preRecord = predata ? predata[i] : {};\n const encodeRecord: IEncodeFeature = {\n id: record._id,\n coordinates: record.coordinates,\n ...preRecord,\n };\n attributes\n .filter((attribute) => attribute.scale !== undefined)\n .forEach((attribute: IStyleAttribute) => {\n // console.log('record', record)\n let values = this.applyAttributeMapping(\n attribute,\n record,\n minimumColor,\n );\n // console.log('values', values)\n attribute.needRemapping = false;\n\n // TODO: 支持每个属性配置 postprocess\n if (attribute.name === 'color') {\n // console.log('attribute', attribute)\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 = this.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 = this.getArrowPoints(coords[0], coords[1]);\n encodeRecord.coordinates.splice(1, 0, arrowPoint, arrowPoint);\n }\n return encodeRecord;\n }) as IEncodeFeature[];\n // console.log('mappedData', mappedData)\n\n // 调整数据兼容 Amap2.0\n this.adjustData2Amap2Coordinates(mappedData, layer);\n\n // 调整数据兼容 SimpleCoordinates\n this.adjustData2SimpleCoordinates(mappedData);\n\n return mappedData;\n }\n\n private adjustData2Amap2Coordinates(\n mappedData: IEncodeFeature[],\n layer: ILayer,\n ) {\n // 根据地图的类型判断是否需要对点位数据进行处理, 若是高德2.0则需要对坐标进行相对偏移\n if (\n mappedData.length > 0 &&\n this.mapService.version === Version['GAODE2.x']\n ) {\n const layerCenter = this.getLayerCenter(layer);\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 d.coordinates = this.mapService.lngLatToCoordByLayer(\n d.coordinates,\n layerCenter,\n );\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 d.coordinates = this.mapService.lngLatToCoordsByLayer(\n d.coordinates,\n layerCenter,\n );\n });\n }\n }\n }\n\n private getLayerCenter(layer: ILayer) {\n const source = layer.getSource();\n return source.center;\n }\n\n private adjustData2SimpleCoordinates(mappedData: IEncodeFeature[]) {\n if (mappedData.length > 0 && this.mapService.version === Version.SIMPLE) {\n mappedData.map((d) => {\n if (!d.simpleCoordinate) {\n d.coordinates = this.unProjectCoordinates(d.coordinates);\n d.simpleCoordinate = true;\n }\n });\n }\n }\n\n private unProjectCoordinates(coordinates: any) {\n if (typeof coordinates[0] === 'number') {\n return this.mapService.simpleMapCoord.unproject(\n coordinates as [number, number],\n );\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(\n this.mapService.simpleMapCoord.unproject(co as [number, number]),\n );\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 this.mapService.simpleMapCoord.unproject(coord as [number, number]),\n );\n });\n // @ts-ignore\n return coords;\n }\n }\n\n private 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 (\n record.hasOwnProperty(field) ||\n attribute.scale?.type === 'variable'\n ) {\n // TODO:多字段,常量\n params.push(record[field]);\n }\n });\n // console.log('params', params)\n // console.log('attribute', attribute)\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 // return attribute.mapping ? attribute.mapping(params) : [];\n }\n}\n"],"file":"DataMappingPlugin.js"}