@antv/l7-layers 2.5.36 → 2.5.37-mini4

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 (262) hide show
  1. package/lib/core/BaseLayer.js +4 -1
  2. package/lib/core/BaseLayer.js.map +1 -1
  3. package/lib/core/BaseModel.js +1 -1
  4. package/lib/core/BaseModel.js.map +1 -1
  5. package/lib/heatmap/models/heatmap.js +12 -17
  6. package/lib/heatmap/models/heatmap.js.map +1 -1
  7. package/lib/image/models/image.js +28 -7
  8. package/lib/image/models/image.js.map +1 -1
  9. package/lib/imagetile/index.js +95 -0
  10. package/lib/imagetile/index.js.map +1 -0
  11. package/lib/imagetile/models/imagetile.js +177 -0
  12. package/lib/imagetile/models/imagetile.js.map +1 -0
  13. package/lib/imagetile/models/index.js +17 -0
  14. package/lib/imagetile/models/index.js.map +1 -0
  15. package/lib/imagetile/utils/ImageTile.js +99 -0
  16. package/lib/imagetile/utils/ImageTile.js.map +1 -0
  17. package/lib/imagetile/utils/Tile.js +324 -0
  18. package/lib/imagetile/utils/Tile.js.map +1 -0
  19. package/lib/imagetile/utils/lruCache.js +109 -0
  20. package/lib/imagetile/utils/lruCache.js.map +1 -0
  21. package/lib/imagetile/utils/tileCache.js +58 -0
  22. package/lib/imagetile/utils/tileCache.js.map +1 -0
  23. package/lib/index.js +8 -0
  24. package/lib/index.js.map +1 -1
  25. package/lib/line/index.js +3 -0
  26. package/lib/line/index.js.map +1 -1
  27. package/lib/line/models/arc.js +2 -2
  28. package/lib/line/models/arc_3d.js +2 -2
  29. package/lib/line/models/arcmini.js +160 -0
  30. package/lib/line/models/arcmini.js.map +1 -0
  31. package/lib/line/models/great_circle.js +2 -2
  32. package/lib/line/models/index.js +3 -0
  33. package/lib/line/models/index.js.map +1 -1
  34. package/lib/line/models/line.js +2 -2
  35. package/lib/plugins/LayerStylePlugin.js.map +1 -1
  36. package/lib/plugins/ShaderUniformPlugin.js +3 -1
  37. package/lib/plugins/ShaderUniformPlugin.js.map +1 -1
  38. package/lib/point/models/image.js.map +1 -1
  39. package/package.json +6 -5
  40. package/CHANGELOG.md +0 -492
  41. package/LICENSE.md +0 -21
  42. package/es/citybuliding/building.d.ts +0 -17
  43. package/es/citybuliding/building.js +0 -79
  44. package/es/citybuliding/building.js.map +0 -1
  45. package/es/citybuliding/models/build.d.ts +0 -13
  46. package/es/citybuliding/models/build.js +0 -124
  47. package/es/citybuliding/models/build.js.map +0 -1
  48. package/es/core/BaseLayer.d.ts +0 -174
  49. package/es/core/BaseLayer.js +0 -974
  50. package/es/core/BaseLayer.js.map +0 -1
  51. package/es/core/BaseModel.d.ts +0 -135
  52. package/es/core/BaseModel.js +0 -412
  53. package/es/core/BaseModel.js.map +0 -1
  54. package/es/core/interface.d.ts +0 -19
  55. package/es/core/interface.js +0 -7
  56. package/es/core/interface.js.map +0 -1
  57. package/es/core/schema.d.ts +0 -27
  58. package/es/core/schema.js +0 -23
  59. package/es/core/schema.js.map +0 -1
  60. package/es/core/shape/Path.d.ts +0 -39
  61. package/es/core/shape/Path.js +0 -57
  62. package/es/core/shape/Path.js.map +0 -1
  63. package/es/core/shape/extrude.d.ts +0 -17
  64. package/es/core/shape/extrude.js +0 -143
  65. package/es/core/shape/extrude.js.map +0 -1
  66. package/es/core/triangulation.d.ts +0 -109
  67. package/es/core/triangulation.js +0 -328
  68. package/es/core/triangulation.js.map +0 -1
  69. package/es/earth/index.d.ts +0 -17
  70. package/es/earth/index.js +0 -81
  71. package/es/earth/index.js.map +0 -1
  72. package/es/earth/models/atmosphere.d.ts +0 -9
  73. package/es/earth/models/atmosphere.js +0 -125
  74. package/es/earth/models/atmosphere.js.map +0 -1
  75. package/es/earth/models/base.d.ts +0 -16
  76. package/es/earth/models/base.js +0 -193
  77. package/es/earth/models/base.js.map +0 -1
  78. package/es/earth/models/bloomsphere.d.ts +0 -9
  79. package/es/earth/models/bloomsphere.js +0 -125
  80. package/es/earth/models/bloomsphere.js.map +0 -1
  81. package/es/earth/utils.d.ts +0 -26
  82. package/es/earth/utils.js +0 -81
  83. package/es/earth/utils.js.map +0 -1
  84. package/es/glsl.d.js +0 -2
  85. package/es/glsl.d.js.map +0 -1
  86. package/es/heatmap/index.d.ts +0 -22
  87. package/es/heatmap/index.js +0 -123
  88. package/es/heatmap/index.js.map +0 -1
  89. package/es/heatmap/models/grid.d.ts +0 -8
  90. package/es/heatmap/models/grid.js +0 -90
  91. package/es/heatmap/models/grid.js.map +0 -1
  92. package/es/heatmap/models/grid3d.d.ts +0 -8
  93. package/es/heatmap/models/grid3d.js +0 -122
  94. package/es/heatmap/models/grid3d.js.map +0 -1
  95. package/es/heatmap/models/heatmap.d.ts +0 -24
  96. package/es/heatmap/models/heatmap.js +0 -399
  97. package/es/heatmap/models/heatmap.js.map +0 -1
  98. package/es/heatmap/models/hexagon.d.ts +0 -8
  99. package/es/heatmap/models/hexagon.js +0 -90
  100. package/es/heatmap/models/hexagon.js.map +0 -1
  101. package/es/heatmap/models/index.d.ts +0 -5
  102. package/es/heatmap/models/index.js +0 -13
  103. package/es/heatmap/models/index.js.map +0 -1
  104. package/es/heatmap/triangulation.d.ts +0 -5
  105. package/es/heatmap/triangulation.js +0 -38
  106. package/es/heatmap/triangulation.js.map +0 -1
  107. package/es/image/index.d.ts +0 -22
  108. package/es/image/index.js +0 -82
  109. package/es/image/index.js.map +0 -1
  110. package/es/image/models/image.d.ts +0 -18
  111. package/es/image/models/image.js +0 -127
  112. package/es/image/models/image.js.map +0 -1
  113. package/es/image/models/index.d.ts +0 -5
  114. package/es/image/models/index.js +0 -6
  115. package/es/image/models/index.js.map +0 -1
  116. package/es/index.d.ts +0 -11
  117. package/es/index.js +0 -39
  118. package/es/index.js.map +0 -1
  119. package/es/line/index.d.ts +0 -25
  120. package/es/line/index.js +0 -95
  121. package/es/line/index.js.map +0 -1
  122. package/es/line/models/arc.d.ts +0 -12
  123. package/es/line/models/arc.js +0 -281
  124. package/es/line/models/arc.js.map +0 -1
  125. package/es/line/models/arc_3d.d.ts +0 -12
  126. package/es/line/models/arc_3d.js +0 -277
  127. package/es/line/models/arc_3d.js.map +0 -1
  128. package/es/line/models/great_circle.d.ts +0 -12
  129. package/es/line/models/great_circle.js +0 -269
  130. package/es/line/models/great_circle.js.map +0 -1
  131. package/es/line/models/index.d.ts +0 -5
  132. package/es/line/models/index.js +0 -12
  133. package/es/line/models/index.js.map +0 -1
  134. package/es/line/models/line.d.ts +0 -13
  135. package/es/line/models/line.js +0 -342
  136. package/es/line/models/line.js.map +0 -1
  137. package/es/plugins/DataMappingPlugin.d.ts +0 -13
  138. package/es/plugins/DataMappingPlugin.js +0 -199
  139. package/es/plugins/DataMappingPlugin.js.map +0 -1
  140. package/es/plugins/DataSourcePlugin.d.ts +0 -7
  141. package/es/plugins/DataSourcePlugin.js +0 -73
  142. package/es/plugins/DataSourcePlugin.js.map +0 -1
  143. package/es/plugins/FeatureScalePlugin.d.ts +0 -26
  144. package/es/plugins/FeatureScalePlugin.js +0 -270
  145. package/es/plugins/FeatureScalePlugin.js.map +0 -1
  146. package/es/plugins/LayerAnimateStylePlugin.d.ts +0 -7
  147. package/es/plugins/LayerAnimateStylePlugin.js +0 -50
  148. package/es/plugins/LayerAnimateStylePlugin.js.map +0 -1
  149. package/es/plugins/LayerModelPlugin.d.ts +0 -8
  150. package/es/plugins/LayerModelPlugin.js +0 -34
  151. package/es/plugins/LayerModelPlugin.js.map +0 -1
  152. package/es/plugins/LayerStylePlugin.d.ts +0 -8
  153. package/es/plugins/LayerStylePlugin.js +0 -35
  154. package/es/plugins/LayerStylePlugin.js.map +0 -1
  155. package/es/plugins/LightingPlugin.d.ts +0 -36
  156. package/es/plugins/LightingPlugin.js +0 -100
  157. package/es/plugins/LightingPlugin.js.map +0 -1
  158. package/es/plugins/MultiPassRendererPlugin.d.ts +0 -37
  159. package/es/plugins/MultiPassRendererPlugin.js +0 -79
  160. package/es/plugins/MultiPassRendererPlugin.js.map +0 -1
  161. package/es/plugins/PixelPickingPlugin.d.ts +0 -8
  162. package/es/plugins/PixelPickingPlugin.js +0 -112
  163. package/es/plugins/PixelPickingPlugin.js.map +0 -1
  164. package/es/plugins/RegisterStyleAttributePlugin.d.ts +0 -11
  165. package/es/plugins/RegisterStyleAttributePlugin.js +0 -98
  166. package/es/plugins/RegisterStyleAttributePlugin.js.map +0 -1
  167. package/es/plugins/ShaderUniformPlugin.d.ts +0 -16
  168. package/es/plugins/ShaderUniformPlugin.js +0 -78
  169. package/es/plugins/ShaderUniformPlugin.js.map +0 -1
  170. package/es/plugins/UpdateModelPlugin.d.ts +0 -8
  171. package/es/plugins/UpdateModelPlugin.js +0 -27
  172. package/es/plugins/UpdateModelPlugin.js.map +0 -1
  173. package/es/plugins/UpdateStyleAttributePlugin.d.ts +0 -12
  174. package/es/plugins/UpdateStyleAttributePlugin.js +0 -74
  175. package/es/plugins/UpdateStyleAttributePlugin.js.map +0 -1
  176. package/es/point/index.d.ts +0 -30
  177. package/es/point/index.js +0 -130
  178. package/es/point/index.js.map +0 -1
  179. package/es/point/models/extrude.d.ts +0 -14
  180. package/es/point/models/extrude.js +0 -180
  181. package/es/point/models/extrude.js.map +0 -1
  182. package/es/point/models/fill.d.ts +0 -17
  183. package/es/point/models/fill.js +0 -247
  184. package/es/point/models/fill.js.map +0 -1
  185. package/es/point/models/icon-font.d.ts +0 -11
  186. package/es/point/models/icon-font.js +0 -181
  187. package/es/point/models/icon-font.js.map +0 -1
  188. package/es/point/models/image.d.ts +0 -11
  189. package/es/point/models/image.js +0 -207
  190. package/es/point/models/image.js.map +0 -1
  191. package/es/point/models/index.d.ts +0 -5
  192. package/es/point/models/index.js +0 -16
  193. package/es/point/models/index.js.map +0 -1
  194. package/es/point/models/normal.d.ts +0 -21
  195. package/es/point/models/normal.js +0 -155
  196. package/es/point/models/normal.js.map +0 -1
  197. package/es/point/models/text.d.ts +0 -56
  198. package/es/point/models/text.js +0 -522
  199. package/es/point/models/text.js.map +0 -1
  200. package/es/point/shape/Path.d.ts +0 -40
  201. package/es/point/shape/Path.js +0 -57
  202. package/es/point/shape/Path.js.map +0 -1
  203. package/es/point/shape/extrude.d.ts +0 -15
  204. package/es/point/shape/extrude.js +0 -58
  205. package/es/point/shape/extrude.js.map +0 -1
  206. package/es/polygon/index.d.ts +0 -22
  207. package/es/polygon/index.js +0 -124
  208. package/es/polygon/index.js.map +0 -1
  209. package/es/polygon/models/extrude.d.ts +0 -13
  210. package/es/polygon/models/extrude.js +0 -139
  211. package/es/polygon/models/extrude.js.map +0 -1
  212. package/es/polygon/models/fill.d.ts +0 -13
  213. package/es/polygon/models/fill.js +0 -108
  214. package/es/polygon/models/fill.js.map +0 -1
  215. package/es/polygon/models/index.d.ts +0 -5
  216. package/es/polygon/models/index.js +0 -20
  217. package/es/polygon/models/index.js.map +0 -1
  218. package/es/raster/buffers/triangulation.d.ts +0 -6
  219. package/es/raster/buffers/triangulation.js +0 -28
  220. package/es/raster/buffers/triangulation.js.map +0 -1
  221. package/es/raster/image.d.ts +0 -0
  222. package/es/raster/image.js +0 -2
  223. package/es/raster/image.js.map +0 -1
  224. package/es/raster/index.d.ts +0 -28
  225. package/es/raster/index.js +0 -83
  226. package/es/raster/index.js.map +0 -1
  227. package/es/raster/models/index.d.ts +0 -5
  228. package/es/raster/models/index.js +0 -7
  229. package/es/raster/models/index.js.map +0 -1
  230. package/es/raster/models/raster.d.ts +0 -19
  231. package/es/raster/models/raster.js +0 -152
  232. package/es/raster/models/raster.js.map +0 -1
  233. package/es/raster/raster.d.ts +0 -30
  234. package/es/raster/raster.js +0 -178
  235. package/es/raster/raster.js.map +0 -1
  236. package/es/raster/raster2d.d.ts +0 -27
  237. package/es/raster/raster2d.js +0 -158
  238. package/es/raster/raster2d.js.map +0 -1
  239. package/es/utils/blend.d.ts +0 -2
  240. package/es/utils/blend.js +0 -55
  241. package/es/utils/blend.js.map +0 -1
  242. package/es/utils/collision-index.d.ts +0 -47
  243. package/es/utils/collision-index.js +0 -87
  244. package/es/utils/collision-index.js.map +0 -1
  245. package/es/utils/dataMappingStyle.d.ts +0 -30
  246. package/es/utils/dataMappingStyle.js +0 -88
  247. package/es/utils/dataMappingStyle.js.map +0 -1
  248. package/es/utils/extrude_polyline.d.ts +0 -48
  249. package/es/utils/extrude_polyline.js +0 -405
  250. package/es/utils/extrude_polyline.js.map +0 -1
  251. package/es/utils/geo.d.ts +0 -3
  252. package/es/utils/geo.js +0 -24
  253. package/es/utils/geo.js.map +0 -1
  254. package/es/utils/grid-index.d.ts +0 -28
  255. package/es/utils/grid-index.js +0 -193
  256. package/es/utils/grid-index.js.map +0 -1
  257. package/es/utils/polylineNormal.d.ts +0 -9
  258. package/es/utils/polylineNormal.js +0 -171
  259. package/es/utils/polylineNormal.js.map +0 -1
  260. package/es/utils/symbol-layout.d.ts +0 -43
  261. package/es/utils/symbol-layout.js +0 -260
  262. package/es/utils/symbol-layout.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/core/BaseLayer.ts"],"names":["SyncBailHook","SyncHook","SyncWaterfallHook","BlendType","lazyInject","TYPES","encodePickingColor","EventEmitter","normalizePasses","BlendTypes","handleStyleDataMapping","layerIdCounter","BaseLayer","IGlobalConfigService","IShaderModuleService","config","dataSourceNeedUpdate","dataMappingNeedUpdate","filterNeedUpdate","featureScaleNeedUpdate","StyleAttrNeedUpdate","init","afterInit","beforeRender","beforeRenderData","afterRender","beforePickingEncode","afterPickingEncode","beforeHighlight","afterHighlight","beforeSelect","afterSelect","beforeDestroy","afterDestroy","enable","dataState","getLayerConfig","autoFit","fitBoundsOptions","fitBounds","emit","reRender","name","id","zIndex","rawConfig","configService","configToUpdate","inited","needUpdateConfig","sceneId","container","get","SceneID","setLayerConfig","plugin","plugins","push","enableMultiPassRenderer","iconService","IIconService","fontService","IFontService","rendererService","IRendererService","layerService","ILayerService","interactionService","IInteractionService","pickingService","IPickingService","mapService","IMapService","cameraService","ICameraService","coordinateService","ICoordinateSystemService","postProcessingPassFactory","IFactoryPostProcessingPass","normalPassFactory","IFactoryNormalPass","styleAttributeService","IStyleAttributeService","multiPassRenderer","IMultiPassRenderer","setLayer","pendingStyleAttributes","forEach","attributeName","attributeField","attributeValues","updateOptions","updateStyleAttribute","scale","field","splitValuesAndCallbackInAttribute","getAll","ILayerPlugin","apply","hooks","call","target","type","updateLayerConfig","getDefaultConfig","animateOption","startAnimate","aniamateStatus","values","options","rawAnimate","data","setSource","sourceOption","layerSource","setData","on","passes","rest","pass","postProcessingPass","getPostProcessor","getPostProcessingPassByName","styleNeedUpdate","cfg","scaleOptions","rendering","renderLayers","getEncodedData","length","renderModels","activeOption","enableHighlight","color","highlightColor","x","y","pick","pickedFeatureID","then","setTimeout","option","enableSelect","selectColor","blend","layerModelNeedUpdate","visible","index","updateRenderOrder","currentPickId","selectedFeatureID","zoom","getZoom","minZoom","Infinity","maxZoom","source","getSource","extent","isValid","some","v","Math","abs","off","sourceEvent","destroy","clearAllAttributes","removeAllListeners","models","model","layerModel","clearModels","getLayerStyleAttributes","filter","attribute","needRescale","needRemapping","needRegenerateVertices","cluster","updateClusterData","encodedData","getLayerAttributeScale","ticks","items","map","item","value","invertExtent","range","triggerHover","box","cb","boxPickLayer","moduleName","vertexShader","fragmentShader","triangulation","segmentNumber","shaderModuleService","registerModule","vs","fs","getModule","uniforms","createModel","createAttributesAndIndices","attributes","elements","normal","clock","getDelta","animateStartTime","getElapsedTime","stopAnimate","isPick","eventNames","indexOf","isVisible","Error","buildModels","draw","getUninforms","time","console","warn","valuesOrCallback","defaultValues","undefined","callback"],"mappings":"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","sourcesContent":["// @ts-ignore\nimport { SyncBailHook, SyncHook, SyncWaterfallHook } from '@antv/async-hook';\nimport {\n BlendType,\n gl,\n IActiveOption,\n IAnimateOption,\n ICameraService,\n ICoordinateSystemService,\n IDataState,\n IEncodeFeature,\n IFontService,\n IGlobalConfigService,\n IIconService,\n IInteractionService,\n ILayer,\n ILayerConfig,\n ILayerModel,\n ILayerModelInitializationOptions,\n ILayerPlugin,\n ILayerService,\n IMapService,\n IModel,\n IModelInitializationOptions,\n IMultiPassRenderer,\n IPass,\n IPickingService,\n IPostProcessingPass,\n IRendererService,\n IScale,\n IScaleOptions,\n IShaderModuleService,\n ISource,\n ISourceCFG,\n IStyleAttributeInitializationOptions,\n IStyleAttributeService,\n IStyleAttributeUpdateOptions,\n lazyInject,\n ScaleAttributeType,\n ScaleTypeName,\n ScaleTypes,\n StyleAttributeField,\n StyleAttributeOption,\n TYPES,\n} from '@antv/l7-core';\nimport Source from '@antv/l7-source';\nimport { encodePickingColor } from '@antv/l7-utils';\nimport { EventEmitter } from 'eventemitter3';\nimport { Container } from 'inversify';\nimport { isFunction, isObject } from 'lodash';\nimport { normalizePasses } from '../plugins/MultiPassRendererPlugin';\nimport { BlendTypes } from '../utils/blend';\nimport { handleStyleDataMapping } from '../utils/dataMappingStyle';\nimport baseLayerSchema from './schema';\n/**\n * 分配 layer id\n */\nlet layerIdCounter = 0;\n\nexport default class BaseLayer<ChildLayerStyleOptions = {}> extends EventEmitter\n implements ILayer {\n public id: string = `${layerIdCounter++}`;\n public name: string = `${layerIdCounter}`;\n public type: string;\n public visible: boolean = true;\n public zIndex: number = 0;\n public minZoom: number;\n public maxZoom: number;\n public inited: boolean = false;\n public layerModelNeedUpdate: boolean = false;\n public pickedFeatureID: number | null = null;\n public selectedFeatureID: number | null = null;\n public styleNeedUpdate: boolean = false;\n public rendering: boolean;\n\n public dataState: IDataState = {\n dataSourceNeedUpdate: false,\n dataMappingNeedUpdate: false,\n filterNeedUpdate: false,\n featureScaleNeedUpdate: false,\n StyleAttrNeedUpdate: false,\n };\n // 生命周期钩子\n public hooks = {\n init: new SyncBailHook(),\n afterInit: new SyncBailHook(),\n beforeRender: new SyncBailHook(),\n beforeRenderData: new SyncWaterfallHook(),\n afterRender: new SyncHook(),\n beforePickingEncode: new SyncHook(),\n afterPickingEncode: new SyncHook(),\n beforeHighlight: new SyncHook(['pickedColor']),\n afterHighlight: new SyncHook(),\n beforeSelect: new SyncHook(['pickedColor']),\n afterSelect: new SyncHook(),\n beforeDestroy: new SyncHook(),\n afterDestroy: new SyncHook(),\n };\n\n // 待渲染 model 列表\n public models: IModel[] = [];\n\n // 每个 Layer 都有一个\n public multiPassRenderer: IMultiPassRenderer;\n\n // 注入插件集\n public plugins: ILayerPlugin[];\n\n public sourceOption: {\n data: any;\n options?: ISourceCFG;\n };\n\n public layerModel: ILayerModel;\n\n @lazyInject(TYPES.IGlobalConfigService)\n protected readonly configService: IGlobalConfigService;\n\n @lazyInject(TYPES.IShaderModuleService)\n protected readonly shaderModuleService: IShaderModuleService;\n\n protected cameraService: ICameraService;\n\n protected coordinateService: ICoordinateSystemService;\n\n protected iconService: IIconService;\n\n protected fontService: IFontService;\n\n protected pickingService: IPickingService;\n\n protected rendererService: IRendererService;\n\n protected layerService: ILayerService;\n\n protected interactionService: IInteractionService;\n\n protected mapService: IMapService;\n\n protected styleAttributeService: IStyleAttributeService;\n\n protected layerSource: Source;\n\n protected postProcessingPassFactory: (\n name: string,\n ) => IPostProcessingPass<unknown>;\n protected normalPassFactory: (name: string) => IPass<unknown>;\n\n protected animateOptions: IAnimateOption = { enable: false };\n\n /**\n * 图层容器\n */\n private container: Container;\n\n private encodedData: IEncodeFeature[];\n\n private configSchema: object;\n\n private currentPickId: number | null = null;\n\n private rawConfig: Partial<ILayerConfig & ChildLayerStyleOptions>;\n\n private needUpdateConfig: Partial<ILayerConfig & ChildLayerStyleOptions>;\n\n /**\n * 待更新样式属性,在初始化阶段完成注册\n */\n private pendingStyleAttributes: Array<{\n attributeName: string;\n attributeField: StyleAttributeField;\n attributeValues?: StyleAttributeOption;\n defaultName?: string;\n updateOptions?: Partial<IStyleAttributeUpdateOptions>;\n }> = [];\n\n private scaleOptions: IScaleOptions = {};\n\n private animateStartTime: number;\n\n private aniamateStatus: boolean = false;\n\n // private pickingPassRender: IPass<'pixelPicking'>;\n\n constructor(config: Partial<ILayerConfig & ChildLayerStyleOptions> = {}) {\n super();\n this.name = config.name || this.id;\n this.zIndex = config.zIndex || 0;\n this.rawConfig = config;\n }\n\n public getLayerConfig() {\n return this.configService.getLayerConfig<ChildLayerStyleOptions>(this.id);\n }\n\n public updateLayerConfig(\n configToUpdate: Partial<ILayerConfig | ChildLayerStyleOptions>,\n ) {\n if (!this.inited) {\n this.needUpdateConfig = {\n ...this.needUpdateConfig,\n ...configToUpdate,\n };\n } else {\n const sceneId = this.container.get<string>(TYPES.SceneID);\n\n // @ts-ignore\n handleStyleDataMapping(configToUpdate, this); // 处理 style 中进行数据映射的属性字段\n\n this.configService.setLayerConfig(sceneId, this.id, {\n ...this.configService.getLayerConfig(this.id),\n ...this.needUpdateConfig,\n ...configToUpdate,\n });\n this.needUpdateConfig = {};\n }\n }\n\n /**\n * 注入图层容器,父容器为场景容器\n * RootContainer 1\n * -> SceneContainer 1.*\n * -> LayerContainer 1.*\n */\n public setContainer(container: Container) {\n this.container = container;\n }\n\n public getContainer() {\n return this.container;\n }\n\n public addPlugin(plugin: ILayerPlugin): ILayer {\n // TODO: 控制插件注册顺序\n // @example:\n // pointLayer.addPlugin(new MyCustomPlugin(), {\n // before: 'L7BuiltinPlugin'\n // });\n this.plugins.push(plugin);\n return this;\n }\n\n public init() {\n // 设置配置项\n const sceneId = this.container.get<string>(TYPES.SceneID);\n // 初始化图层配置项\n const { enableMultiPassRenderer = false } = this.rawConfig;\n this.configService.setLayerConfig(sceneId, this.id, {\n enableMultiPassRenderer,\n });\n\n // 全局容器服务\n\n // 场景容器服务\n this.iconService = this.container.get<IIconService>(TYPES.IIconService);\n this.fontService = this.container.get<IFontService>(TYPES.IFontService);\n\n this.rendererService = this.container.get<IRendererService>(\n TYPES.IRendererService,\n );\n this.layerService = this.container.get<ILayerService>(TYPES.ILayerService);\n this.interactionService = this.container.get<IInteractionService>(\n TYPES.IInteractionService,\n );\n\n this.pickingService = this.container.get<IPickingService>(\n TYPES.IPickingService,\n );\n this.mapService = this.container.get<IMapService>(TYPES.IMapService);\n this.cameraService = this.container.get<ICameraService>(\n TYPES.ICameraService,\n );\n this.coordinateService = this.container.get<ICoordinateSystemService>(\n TYPES.ICoordinateSystemService,\n );\n this.postProcessingPassFactory = this.container.get(\n TYPES.IFactoryPostProcessingPass,\n );\n this.normalPassFactory = this.container.get(TYPES.IFactoryNormalPass);\n\n // 图层容器服务\n this.styleAttributeService = this.container.get<IStyleAttributeService>(\n TYPES.IStyleAttributeService,\n );\n this.multiPassRenderer = this.container.get<IMultiPassRenderer>(\n TYPES.IMultiPassRenderer,\n );\n this.multiPassRenderer.setLayer(this);\n\n // 完成样式服务注册完成前添加的属性\n this.pendingStyleAttributes.forEach(\n ({ attributeName, attributeField, attributeValues, updateOptions }) => {\n this.styleAttributeService.updateStyleAttribute(\n attributeName,\n {\n // @ts-ignore\n scale: {\n field: attributeField,\n ...this.splitValuesAndCallbackInAttribute(\n // @ts-ignore\n attributeValues,\n // @ts-ignore\n this.getLayerConfig()[attributeName],\n ),\n },\n },\n // @ts-ignore\n updateOptions,\n );\n },\n );\n this.pendingStyleAttributes = [];\n\n // 获取插件集\n this.plugins = this.container.getAll<ILayerPlugin>(TYPES.ILayerPlugin);\n // 完成插件注册,传入场景和图层容器内的服务\n for (const plugin of this.plugins) {\n plugin.apply(this, {\n rendererService: this.rendererService,\n mapService: this.mapService,\n styleAttributeService: this.styleAttributeService,\n normalPassFactory: this.normalPassFactory,\n postProcessingPassFactory: this.postProcessingPassFactory,\n });\n }\n\n // 触发 init 生命周期插件\n this.hooks.init.call();\n // this.pickingPassRender = this.normalPassFactory('pixelPicking');\n // this.pickingPassRender.init(this);\n this.hooks.afterInit.call();\n\n // 触发初始化完成事件;\n this.emit('inited', {\n target: this,\n type: 'inited',\n });\n this.emit('add', {\n target: this,\n type: 'add',\n });\n return this;\n }\n /**\n * Model初始化前需要更新Model样式\n */\n public prepareBuildModel() {\n this.inited = true;\n this.updateLayerConfig({\n ...(this.getDefaultConfig() as object),\n ...this.rawConfig,\n });\n\n // 启动动画\n const { animateOption } = this.getLayerConfig();\n if (animateOption?.enable) {\n this.layerService.startAnimate();\n this.aniamateStatus = true;\n }\n }\n public color(\n field: StyleAttributeField,\n values?: StyleAttributeOption,\n updateOptions?: Partial<IStyleAttributeUpdateOptions>,\n ) {\n // 设置 color、size、shape、style 时由于场景服务尚未完成(并没有调用 scene.addLayer),因此暂时加入待更新属性列表\n this.updateStyleAttribute('color', field, values, updateOptions);\n\n // this.pendingStyleAttributes.push({\n // attributeName: 'color',\n // attributeField: field,\n // attributeValues: values,\n // defaultName: 'colors',\n // updateOptions,\n // });\n return this;\n }\n\n // 为对应的图层传入纹理的编号名称(point/image 在 shape 方法中传入纹理名称的方法并不通用)\n public texture(\n field: StyleAttributeField,\n values?: StyleAttributeOption,\n updateOptions?: Partial<IStyleAttributeUpdateOptions>,\n ) {\n this.updateStyleAttribute('texture', field, values, updateOptions);\n return this;\n }\n\n public rotate(\n field: StyleAttributeField,\n values?: StyleAttributeOption,\n updateOptions?: Partial<IStyleAttributeUpdateOptions>,\n ) {\n this.updateStyleAttribute('rotate', field, values, updateOptions);\n return this;\n }\n public size(\n field: StyleAttributeField,\n values?: StyleAttributeOption,\n updateOptions?: Partial<IStyleAttributeUpdateOptions>,\n ) {\n this.updateStyleAttribute('size', field, values, updateOptions);\n return this;\n }\n // 对mapping后的数据过滤,scale保持不变\n public filter(\n field: StyleAttributeField,\n values?: StyleAttributeOption,\n updateOptions?: Partial<IStyleAttributeUpdateOptions>,\n ) {\n this.updateStyleAttribute('filter', field, values, updateOptions);\n return this;\n }\n\n public shape(\n field: StyleAttributeField,\n values?: StyleAttributeOption,\n updateOptions?: Partial<IStyleAttributeUpdateOptions>,\n ) {\n this.updateStyleAttribute('shape', field, values, updateOptions);\n return this;\n }\n public label(\n field: StyleAttributeField,\n values?: StyleAttributeOption,\n updateOptions?: Partial<IStyleAttributeUpdateOptions>,\n ) {\n this.pendingStyleAttributes.push({\n attributeName: 'label',\n attributeField: field,\n attributeValues: values,\n updateOptions,\n });\n return this;\n }\n public animate(options: IAnimateOption | boolean) {\n let rawAnimate: Partial<IAnimateOption> = {};\n if (isObject(options)) {\n rawAnimate.enable = true;\n rawAnimate = {\n ...rawAnimate,\n ...options,\n };\n } else {\n rawAnimate.enable = options;\n }\n this.updateLayerConfig({\n animateOption: rawAnimate,\n });\n // this.animateOptions = options;\n return this;\n }\n\n public source(data: any, options?: ISourceCFG): ILayer {\n if (data?.data) {\n // 判断是否为source\n this.setSource(data);\n return this;\n }\n this.sourceOption = {\n data,\n options,\n };\n return this;\n }\n public setData(data: any, options?: ISourceCFG) {\n if (this.inited) {\n this.layerSource.setData(data, options);\n } else {\n this.on('inited', () => {\n this.layerSource.setData(data, options);\n });\n }\n\n return this;\n }\n public style(\n options: Partial<ChildLayerStyleOptions> & Partial<ILayerConfig>,\n ): ILayer {\n const { passes, ...rest } = options;\n\n // passes 特殊处理\n if (passes) {\n normalizePasses(passes).forEach(\n (pass: [string, { [key: string]: unknown }]) => {\n const postProcessingPass = this.multiPassRenderer\n .getPostProcessor()\n .getPostProcessingPassByName(pass[0]);\n if (postProcessingPass) {\n postProcessingPass.updateOptions(pass[1]);\n }\n },\n );\n }\n\n this.rawConfig = {\n ...this.rawConfig,\n ...rest,\n };\n if (this.container) {\n this.updateLayerConfig(this.rawConfig);\n this.styleNeedUpdate = true;\n }\n return this;\n }\n public scale(field: string | number | IScaleOptions, cfg?: IScale) {\n if (isObject(field)) {\n this.scaleOptions = {\n ...this.scaleOptions,\n ...field,\n };\n } else {\n this.scaleOptions[field] = cfg;\n }\n return this;\n }\n\n /**\n * 渲染所有的图层\n */\n public renderLayers(): void {\n this.rendering = true;\n\n this.layerService.renderLayers();\n\n this.rendering = false;\n }\n\n public render(): ILayer {\n // if (\n // this.needPick() &&\n // this.multiPassRenderer &&\n // this.multiPassRenderer.getRenderFlag()\n // ) {\n // this.multiPassRenderer.render();\n // } else if (this.needPick() && this.multiPassRenderer) {\n // this.renderModels();\n // } else {\n // this.renderModels();\n // }\n // TODO: this.getEncodedData().length !== 0 这个判断是为了解决在 2.5.x 引入数据纹理后产生的 空数据渲染导致 texture 超出上限问题\n if (this.getEncodedData().length !== 0) {\n this.renderModels();\n }\n // this.renderModels();\n\n // this.multiPassRenderer.render();\n // this.renderModels();\n return this;\n }\n\n public active(options: IActiveOption | boolean) {\n const activeOption: Partial<ILayerConfig> = {};\n activeOption.enableHighlight = isObject(options) ? true : options;\n if (isObject(options)) {\n activeOption.enableHighlight = true;\n if (options.color) {\n activeOption.highlightColor = options.color;\n }\n } else {\n activeOption.enableHighlight = !!options;\n }\n this.updateLayerConfig(activeOption);\n return this;\n }\n public setActive(\n id: number | { x: number; y: number },\n options?: IActiveOption,\n ): void {\n if (isObject(id)) {\n const { x = 0, y = 0 } = id;\n this.updateLayerConfig({\n highlightColor: isObject(options)\n ? options.color\n : this.getLayerConfig().highlightColor,\n });\n this.pick({ x, y });\n } else {\n this.updateLayerConfig({\n pickedFeatureID: id,\n highlightColor: isObject(options)\n ? options.color\n : this.getLayerConfig().highlightColor,\n });\n this.hooks.beforeSelect\n .call(encodePickingColor(id as number) as number[])\n // @ts-ignore\n .then(() => {\n setTimeout(() => {\n this.reRender();\n }, 1);\n });\n }\n }\n\n public select(option: IActiveOption | boolean): ILayer {\n const activeOption: Partial<ILayerConfig> = {};\n activeOption.enableSelect = isObject(option) ? true : option;\n if (isObject(option)) {\n activeOption.enableSelect = true;\n if (option.color) {\n activeOption.selectColor = option.color;\n }\n } else {\n activeOption.enableSelect = !!option;\n }\n this.updateLayerConfig(activeOption);\n return this;\n }\n\n public setSelect(\n id: number | { x: number; y: number },\n options?: IActiveOption,\n ): void {\n if (isObject(id)) {\n const { x = 0, y = 0 } = id;\n this.updateLayerConfig({\n selectColor: isObject(options)\n ? options.color\n : this.getLayerConfig().selectColor,\n });\n this.pick({ x, y });\n } else {\n this.updateLayerConfig({\n pickedFeatureID: id,\n selectColor: isObject(options)\n ? options.color\n : this.getLayerConfig().selectColor,\n });\n this.hooks.beforeSelect\n .call(encodePickingColor(id as number) as number[])\n // @ts-ignore\n .then(() => {\n setTimeout(() => {\n this.reRender();\n }, 1);\n });\n }\n }\n public setBlend(type: keyof typeof BlendType): void {\n this.updateLayerConfig({\n blend: type,\n });\n this.layerModelNeedUpdate = true;\n this.reRender();\n }\n public show(): ILayer {\n this.updateLayerConfig({\n visible: true,\n });\n this.reRender();\n return this;\n }\n\n public hide(): ILayer {\n this.updateLayerConfig({\n visible: false,\n });\n this.reRender();\n return this;\n }\n public setIndex(index: number): ILayer {\n this.zIndex = index;\n this.layerService.updateRenderOrder();\n return this;\n }\n\n public setCurrentPickId(id: number) {\n this.currentPickId = id;\n }\n\n public getCurrentPickId(): number | null {\n return this.currentPickId;\n }\n\n public setCurrentSelectedId(id: number) {\n this.selectedFeatureID = id;\n }\n\n public getCurrentSelectedId(): number | null {\n return this.selectedFeatureID;\n }\n public isVisible(): boolean {\n const zoom = this.mapService.getZoom();\n const {\n visible,\n minZoom = -Infinity,\n maxZoom = Infinity,\n } = this.getLayerConfig();\n return !!visible && zoom >= minZoom && zoom <= maxZoom;\n }\n\n public setMinZoom(minZoom: number): ILayer {\n this.updateLayerConfig({\n minZoom,\n });\n return this;\n }\n\n public getMinZoom(): number {\n const { minZoom } = this.getLayerConfig();\n return minZoom as number;\n }\n\n public getMaxZoom(): number {\n const { maxZoom } = this.getLayerConfig();\n return maxZoom as number;\n }\n\n public get(name: string) {\n const cfg = this.getLayerConfig();\n // @ts-ignore\n return cfg[name];\n }\n\n public setMaxZoom(maxZoom: number): ILayer {\n this.updateLayerConfig({\n maxZoom,\n });\n return this;\n }\n /**\n * zoom to layer Bounds\n */\n public fitBounds(fitBoundsOptions?: unknown): ILayer {\n if (!this.inited) {\n this.updateLayerConfig({\n autoFit: true,\n });\n return this;\n }\n const source = this.getSource();\n const extent = source.extent;\n const isValid = extent.some((v) => Math.abs(v) === Infinity);\n if (isValid) {\n return this;\n }\n this.mapService.fitBounds(\n [\n [extent[0], extent[1]],\n [extent[2], extent[3]],\n ],\n fitBoundsOptions,\n );\n return this;\n }\n\n public destroy() {\n this.hooks.beforeDestroy.call();\n // 清除sources事件\n this.layerSource.off('update', this.sourceEvent);\n\n this.multiPassRenderer.destroy();\n\n // 清除所有属性以及关联的 vao\n this.styleAttributeService.clearAllAttributes();\n // 销毁所有 model\n // this.models.forEach((model) => model.destroy());\n\n this.hooks.afterDestroy.call();\n\n this.emit('remove', {\n target: this,\n type: 'remove',\n });\n\n this.removeAllListeners();\n\n // 解绑图层容器中的服务\n // this.container.unbind(TYPES.IStyleAttributeService);\n }\n public clear() {\n this.styleAttributeService.clearAllAttributes();\n // 销毁所有 model\n }\n public clearModels() {\n this.models.forEach((model) => model.destroy());\n this.layerModel.clearModels();\n }\n\n public isDirty() {\n return !!(\n this.styleAttributeService.getLayerStyleAttributes() || []\n ).filter(\n (attribute) =>\n attribute.needRescale ||\n attribute.needRemapping ||\n attribute.needRegenerateVertices,\n ).length;\n }\n\n public setSource(source: Source) {\n // 清除旧 sources 事件\n if (this.layerSource) {\n this.layerSource.off('update', this.sourceEvent);\n }\n\n this.layerSource = source;\n\n // 已 inited 且启用聚合进行更新聚合数据\n if (this.inited && this.layerSource.cluster) {\n const zoom = this.mapService.getZoom();\n this.layerSource.updateClusterData(zoom);\n }\n // source 可能会复用,会在其它layer被修改\n this.layerSource.on('update', this.sourceEvent);\n }\n public getSource() {\n return this.layerSource;\n }\n\n public getScaleOptions() {\n return this.scaleOptions;\n }\n\n public setEncodedData(encodedData: IEncodeFeature[]) {\n this.encodedData = encodedData;\n }\n public getEncodedData() {\n return this.encodedData;\n }\n public getLegendItems(name: string): any {\n const scale = this.styleAttributeService.getLayerAttributeScale(name);\n if (scale) {\n if (scale.ticks) {\n const items = scale.ticks().map((item: any) => {\n return {\n value: item,\n [name]: scale(item),\n };\n });\n return items;\n } else if (scale.invertExtent) {\n const items = scale.range().map((item: any) => {\n return {\n value: scale.invertExtent(item),\n [name]: item,\n };\n });\n return items;\n }\n } else {\n return [];\n }\n }\n\n public pick({ x, y }: { x: number; y: number }) {\n this.interactionService.triggerHover({ x, y });\n }\n\n public boxSelect(\n box: [number, number, number, number],\n cb: (...args: any[]) => void,\n ) {\n this.pickingService.boxPickLayer(this, box, cb);\n }\n\n public buildLayerModel(\n options: ILayerModelInitializationOptions &\n Partial<IModelInitializationOptions>,\n ): IModel {\n const {\n moduleName,\n vertexShader,\n fragmentShader,\n triangulation,\n segmentNumber,\n ...rest\n } = options;\n this.shaderModuleService.registerModule(moduleName, {\n vs: vertexShader,\n fs: fragmentShader,\n });\n const { vs, fs, uniforms } = this.shaderModuleService.getModule(moduleName);\n const { createModel } = this.rendererService;\n const {\n attributes,\n elements,\n } = this.styleAttributeService.createAttributesAndIndices(\n this.encodedData,\n triangulation,\n segmentNumber,\n );\n return createModel({\n attributes,\n uniforms,\n fs,\n vs,\n elements,\n blend: BlendTypes[BlendType.normal],\n ...rest,\n });\n }\n\n public getTime() {\n return this.layerService.clock.getDelta();\n }\n public setAnimateStartTime() {\n this.animateStartTime = this.layerService.clock.getElapsedTime();\n }\n public stopAnimate() {\n if (this.aniamateStatus) {\n this.layerService.stopAnimate();\n this.aniamateStatus = false;\n this.updateLayerConfig({\n animateOption: {\n enable: false,\n },\n });\n }\n }\n public getLayerAnimateTime(): number {\n return this.layerService.clock.getElapsedTime() - this.animateStartTime;\n }\n\n public needPick(type: string): boolean {\n const {\n enableHighlight = true,\n enableSelect = true,\n } = this.getLayerConfig();\n // 判断layer是否监听事件;\n let isPick =\n this.eventNames().indexOf(type) !== -1 ||\n this.eventNames().indexOf('un' + type) !== -1;\n if ((type === 'click' || type === 'dblclick') && enableSelect) {\n isPick = true;\n }\n if (\n type === 'mousemove' &&\n (enableHighlight ||\n this.eventNames().indexOf('mouseenter') !== -1 ||\n this.eventNames().indexOf('unmousemove') !== -1 ||\n this.eventNames().indexOf('mouseout') !== -1)\n ) {\n isPick = true;\n }\n return this.isVisible() && isPick;\n }\n\n public buildModels() {\n throw new Error('Method not implemented.');\n }\n public rebuildModels() {\n throw new Error('Method not implemented.');\n }\n\n public renderModels() {\n // TODO: this.getEncodedData().length > 0 这个判断是为了解决在 2.5.x 引入数据纹理后产生的 空数据渲染导致 texture 超出上限问题\n if (this.getEncodedData().length > 0) {\n if (this.layerModelNeedUpdate && this.layerModel) {\n this.models = this.layerModel.buildModels();\n this.hooks.beforeRender.call();\n this.layerModelNeedUpdate = false;\n }\n this.models.forEach((model) => {\n model.draw({\n uniforms: this.layerModel.getUninforms(),\n });\n });\n }\n return this;\n }\n\n public updateStyleAttribute(\n type: string,\n field: StyleAttributeField,\n values?: StyleAttributeOption,\n updateOptions?: Partial<IStyleAttributeUpdateOptions>,\n ) {\n if (!this.inited) {\n this.pendingStyleAttributes.push({\n attributeName: type,\n attributeField: field,\n attributeValues: values,\n updateOptions,\n });\n } else {\n this.styleAttributeService.updateStyleAttribute(\n type,\n {\n // @ts-ignore\n scale: {\n field,\n ...this.splitValuesAndCallbackInAttribute(\n // @ts-ignore\n values,\n // @ts-ignore\n this.getLayerConfig()[field],\n ),\n },\n },\n // @ts-ignore\n updateOptions,\n );\n }\n }\n\n /**\n * 继承空方法\n * @param time\n */\n public setEarthTime(time: number) {\n console.warn('empty fn');\n }\n\n protected getConfigSchema() {\n throw new Error('Method not implemented.');\n }\n\n protected getModelType(): unknown {\n throw new Error('Method not implemented.');\n }\n protected getDefaultConfig() {\n return {};\n }\n\n private sourceEvent = () => {\n this.dataState.dataSourceNeedUpdate = true;\n const { autoFit, fitBoundsOptions } = this.getLayerConfig();\n if (autoFit) {\n this.fitBounds(fitBoundsOptions);\n }\n\n this.emit('dataUpdate');\n this.reRender();\n };\n\n private reRender() {\n if (this.inited) {\n this.layerService.renderLayers();\n }\n }\n private splitValuesAndCallbackInAttribute(\n valuesOrCallback?: unknown[],\n defaultValues?: unknown[],\n ) {\n return {\n values: isFunction(valuesOrCallback)\n ? undefined\n : valuesOrCallback || defaultValues,\n callback: isFunction(valuesOrCallback) ? valuesOrCallback : undefined,\n };\n }\n}\n"],"file":"BaseLayer.js"}
@@ -1,135 +0,0 @@
1
- import { IAnimateOption, IAttribute, IBlendOptions, ICameraService, IElements, IEncodeFeature, IFontService, IGlobalConfigService, IIconService, ILayer, ILayerModel, ILayerService, IMapService, IModel, IModelUniform, IRendererService, IShaderModuleService, IStyleAttributeService, ITexture2D, ITexture2DInitializationOptions, Triangulation } from '@antv/l7-core';
2
- export declare type styleSingle = number | string | [string, (single: any) => number] | [string, [number, number]];
3
- export declare type styleOffset = string | [number, number] | [string, (single: any) => number];
4
- export declare type styleColor = string | [string, (single: any) => string] | [string, [string, string]];
5
- export interface IDataTextureFrame {
6
- data: number[];
7
- width: number;
8
- height: number;
9
- }
10
- export interface ICellProperty {
11
- attr: string;
12
- count: number;
13
- }
14
- export default class BaseModel<ChildLayerStyleOptions = {}> implements ILayerModel {
15
- triangulation: Triangulation;
16
- createTexture2D: (options: ITexture2DInitializationOptions) => ITexture2D;
17
- protected layer: ILayer;
18
- protected dataTexture: ITexture2D;
19
- protected DATA_TEXTURE_WIDTH: number;
20
- protected rowCount: number;
21
- protected cacheStyleProperties: {
22
- opacity: styleSingle | undefined;
23
- strokeOpacity: styleSingle | undefined;
24
- strokeWidth: styleSingle | undefined;
25
- stroke: styleColor | undefined;
26
- offsets: styleOffset | undefined;
27
- };
28
- protected cellLength: number;
29
- protected cellProperties: ICellProperty[];
30
- protected cellTypeLayout: number[];
31
- protected stylePropertyesExist: {
32
- hasOpacity: number;
33
- hasStrokeOpacity: number;
34
- hasStrokeWidth: number;
35
- hasStroke: number;
36
- hasOffsets: number;
37
- };
38
- protected dataTextureTest: boolean;
39
- protected readonly configService: IGlobalConfigService;
40
- protected readonly shaderModuleService: IShaderModuleService;
41
- protected rendererService: IRendererService;
42
- protected iconService: IIconService;
43
- protected fontService: IFontService;
44
- protected styleAttributeService: IStyleAttributeService;
45
- protected mapService: IMapService;
46
- protected cameraService: ICameraService;
47
- protected layerService: ILayerService;
48
- constructor(layer: ILayer);
49
- /**
50
- * 清除上一次的计算结果 - 全量清除
51
- */
52
- clearLastCalRes(): void;
53
- getCellTypeLayout(): number[];
54
- /**
55
- * 判断数据纹理是否需要重新计算 - 根据传入的值进行判断
56
- * @param options
57
- * @returns
58
- */
59
- dataTextureNeedUpdate(options: {
60
- opacity?: styleSingle;
61
- strokeOpacity?: styleSingle;
62
- strokeWidth?: styleSingle;
63
- stroke?: styleColor;
64
- offsets?: styleOffset;
65
- textOffset?: styleOffset;
66
- }): boolean;
67
- /**
68
- * 判断当前的样式中哪些是需要进行数据映射的,哪些是常量,同时计算用于构建数据纹理的一些中间变量
69
- * @param options
70
- */
71
- judgeStyleAttributes(options: {
72
- opacity?: styleSingle;
73
- strokeOpacity?: styleSingle;
74
- strokeWidth?: styleSingle;
75
- stroke?: styleColor;
76
- offsets?: styleOffset;
77
- }): void;
78
- /**
79
- * 判断变量 stroke 是否是常量值
80
- * @param stroke
81
- * @returns
82
- */
83
- isStaticColor(stroke: styleColor): boolean;
84
- /**
85
- * 获取 stroke 颜色并做兼容处理
86
- * @param stroke
87
- * @returns
88
- */
89
- getStrokeColor(stroke: styleColor): number[];
90
- /**
91
- * 判断 offsets 是否是常量
92
- * @param offsets
93
- * @returns
94
- */
95
- isOffsetStatic(offsets: styleOffset): boolean;
96
- /**
97
- * 补空位
98
- * @param d
99
- * @param count
100
- */
101
- patchMod(d: number[], count: number): void;
102
- /**
103
- * 根据映射的数据字段往推入数据
104
- * @param d
105
- * @param cellData
106
- * @param cellPropertiesLayouts
107
- */
108
- patchData(d: number[], cellData: IEncodeFeature, cellPropertiesLayouts: ICellProperty[]): void;
109
- /**
110
- * 计算推入数据纹理的数据
111
- * @param cellLength
112
- * @param encodeData
113
- * @param cellPropertiesLayouts
114
- * @returns
115
- */
116
- calDataFrame(cellLength: number, encodeData: IEncodeFeature[], cellPropertiesLayouts: ICellProperty[]): IDataTextureFrame;
117
- getBlend(): IBlendOptions;
118
- getDefaultStyle(): unknown;
119
- getUninforms(): IModelUniform;
120
- getAnimateUniforms(): IModelUniform;
121
- needUpdate(): boolean;
122
- buildModels(): IModel[];
123
- initModels(): IModel[];
124
- clearModels(): void;
125
- getAttribute(): {
126
- attributes: {
127
- [attributeName: string]: IAttribute;
128
- };
129
- elements: IElements;
130
- };
131
- render(): void;
132
- protected registerBuiltinAttributes(): void;
133
- protected animateOption2Array(option: IAnimateOption): number[];
134
- protected startModelAnimate(): void;
135
- }
@@ -1,412 +0,0 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
- import _initializerDefineProperty from "@babel/runtime/helpers/initializerDefineProperty";
3
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
4
- import _createClass from "@babel/runtime/helpers/createClass";
5
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
6
- import _applyDecoratedDescriptor from "@babel/runtime/helpers/applyDecoratedDescriptor";
7
- import _initializerWarningHelper from "@babel/runtime/helpers/initializerWarningHelper";
8
- import _isString from "lodash/isString";
9
- import _isNumber from "lodash/isNumber";
10
- import _isEqual from "lodash/isEqual";
11
- import _isArray from "lodash/isArray";
12
-
13
- var _dec, _dec2, _class, _descriptor, _descriptor2;
14
-
15
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
16
-
17
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
18
-
19
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
20
-
21
- import { BlendType, gl, lazyInject, TYPES } from '@antv/l7-core';
22
- import { rgb2arr } from '@antv/l7-utils';
23
- import { color } from 'd3-color';
24
- import { BlendTypes } from '../utils/blend';
25
- var BaseModel = (_dec = lazyInject(TYPES.IGlobalConfigService), _dec2 = lazyInject(TYPES.IShaderModuleService), (_class = function () {
26
- function BaseModel(layer) {
27
- _classCallCheck(this, BaseModel);
28
-
29
- _defineProperty(this, "triangulation", void 0);
30
-
31
- _defineProperty(this, "createTexture2D", void 0);
32
-
33
- _defineProperty(this, "layer", void 0);
34
-
35
- _defineProperty(this, "dataTexture", void 0);
36
-
37
- _defineProperty(this, "DATA_TEXTURE_WIDTH", void 0);
38
-
39
- _defineProperty(this, "rowCount", void 0);
40
-
41
- _defineProperty(this, "cacheStyleProperties", void 0);
42
-
43
- _defineProperty(this, "cellLength", void 0);
44
-
45
- _defineProperty(this, "cellProperties", void 0);
46
-
47
- _defineProperty(this, "cellTypeLayout", void 0);
48
-
49
- _defineProperty(this, "stylePropertyesExist", void 0);
50
-
51
- _defineProperty(this, "dataTextureTest", void 0);
52
-
53
- _initializerDefineProperty(this, "configService", _descriptor, this);
54
-
55
- _initializerDefineProperty(this, "shaderModuleService", _descriptor2, this);
56
-
57
- _defineProperty(this, "rendererService", void 0);
58
-
59
- _defineProperty(this, "iconService", void 0);
60
-
61
- _defineProperty(this, "fontService", void 0);
62
-
63
- _defineProperty(this, "styleAttributeService", void 0);
64
-
65
- _defineProperty(this, "mapService", void 0);
66
-
67
- _defineProperty(this, "cameraService", void 0);
68
-
69
- _defineProperty(this, "layerService", void 0);
70
-
71
- this.layer = layer;
72
- this.rendererService = layer.getContainer().get(TYPES.IRendererService);
73
- this.styleAttributeService = layer.getContainer().get(TYPES.IStyleAttributeService);
74
- this.mapService = layer.getContainer().get(TYPES.IMapService);
75
- this.iconService = layer.getContainer().get(TYPES.IIconService);
76
- this.fontService = layer.getContainer().get(TYPES.IFontService);
77
- this.cameraService = layer.getContainer().get(TYPES.ICameraService);
78
- this.layerService = layer.getContainer().get(TYPES.ILayerService);
79
- this.registerBuiltinAttributes();
80
- this.startModelAnimate();
81
- var createTexture2D = this.rendererService.createTexture2D;
82
- this.createTexture2D = createTexture2D;
83
- this.DATA_TEXTURE_WIDTH = 1024;
84
- this.rowCount = 1;
85
- this.cellLength = 0;
86
- this.cellProperties = [];
87
- this.cacheStyleProperties = {
88
- opacity: undefined,
89
- strokeOpacity: undefined,
90
- strokeWidth: undefined,
91
- stroke: undefined,
92
- offsets: undefined
93
- };
94
- this.stylePropertyesExist = {
95
- hasOpacity: 0,
96
- hasStrokeOpacity: 0,
97
- hasStrokeWidth: 0,
98
- hasStroke: 0,
99
- hasOffsets: 0
100
- };
101
- this.dataTextureTest = this.layerService.getOESTextureFloat();
102
-
103
- if (!this.dataTextureTest) {
104
- this.dataTexture = this.createTexture2D({
105
- data: new ImageData(1, 1).data,
106
- mag: gl.NEAREST,
107
- min: gl.NEAREST,
108
- width: 1,
109
- height: 1
110
- });
111
- }
112
- }
113
-
114
- _createClass(BaseModel, [{
115
- key: "clearLastCalRes",
116
- value: function clearLastCalRes() {
117
- this.cellProperties = [];
118
- this.cellLength = 0;
119
- this.stylePropertyesExist = {
120
- hasOpacity: 0,
121
- hasStrokeOpacity: 0,
122
- hasStrokeWidth: 0,
123
- hasStroke: 0,
124
- hasOffsets: 0
125
- };
126
- }
127
- }, {
128
- key: "getCellTypeLayout",
129
- value: function getCellTypeLayout() {
130
- if (this.dataTextureTest) {
131
- return [this.rowCount, this.DATA_TEXTURE_WIDTH, 0.0, 0.0, this.stylePropertyesExist.hasOpacity, this.stylePropertyesExist.hasStrokeOpacity, this.stylePropertyesExist.hasStrokeWidth, this.stylePropertyesExist.hasStroke, this.stylePropertyesExist.hasOffsets, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0];
132
- } else {
133
- return [1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -1.0];
134
- }
135
- }
136
- }, {
137
- key: "dataTextureNeedUpdate",
138
- value: function dataTextureNeedUpdate(options) {
139
- var isUpdate = false;
140
-
141
- if (!_isEqual(options.opacity, this.cacheStyleProperties.opacity)) {
142
- isUpdate = true;
143
- this.cacheStyleProperties.opacity = options.opacity;
144
- }
145
-
146
- if (!_isEqual(options.strokeOpacity, this.cacheStyleProperties.strokeOpacity)) {
147
- isUpdate = true;
148
- this.cacheStyleProperties.strokeOpacity = options.strokeOpacity;
149
- }
150
-
151
- if (!_isEqual(options.strokeWidth, this.cacheStyleProperties.strokeWidth)) {
152
- isUpdate = true;
153
- this.cacheStyleProperties.strokeWidth = options.strokeWidth;
154
- }
155
-
156
- if (!_isEqual(options.stroke, this.cacheStyleProperties.stroke)) {
157
- isUpdate = true;
158
- this.cacheStyleProperties.stroke = options.stroke;
159
- }
160
-
161
- if (!_isEqual(options.offsets, this.cacheStyleProperties.offsets)) {
162
- isUpdate = true;
163
- this.cacheStyleProperties.offsets = options.offsets;
164
- }
165
-
166
- if (this.dataTexture === undefined) {
167
- isUpdate = true;
168
- }
169
-
170
- return isUpdate;
171
- }
172
- }, {
173
- key: "judgeStyleAttributes",
174
- value: function judgeStyleAttributes(options) {
175
- this.clearLastCalRes();
176
-
177
- if (options.opacity !== undefined && !_isNumber(options.opacity)) {
178
- this.cellProperties.push({
179
- attr: 'opacity',
180
- count: 1
181
- });
182
- this.stylePropertyesExist.hasOpacity = 1;
183
- this.cellLength += 1;
184
- }
185
-
186
- if (options.strokeOpacity !== undefined && !_isNumber(options.strokeOpacity)) {
187
- this.cellProperties.push({
188
- attr: 'strokeOpacity',
189
- count: 1
190
- });
191
- this.stylePropertyesExist.hasStrokeOpacity = 1;
192
- this.cellLength += 1;
193
- }
194
-
195
- if (options.strokeWidth !== undefined && !_isNumber(options.strokeWidth)) {
196
- this.cellProperties.push({
197
- attr: 'strokeWidth',
198
- count: 1
199
- });
200
- this.stylePropertyesExist.hasStrokeWidth = 1;
201
- this.cellLength += 1;
202
- }
203
-
204
- if (options.stroke !== undefined && !this.isStaticColor(options.stroke)) {
205
- this.cellProperties.push({
206
- attr: 'stroke',
207
- count: 4
208
- });
209
- this.stylePropertyesExist.hasStroke = 1;
210
- this.cellLength += 4;
211
- }
212
-
213
- if (options.offsets !== undefined && !this.isOffsetStatic(options.offsets)) {
214
- this.cellProperties.push({
215
- attr: 'offsets',
216
- count: 2
217
- });
218
- this.stylePropertyesExist.hasOffsets = 1;
219
- this.cellLength += 2;
220
- }
221
- }
222
- }, {
223
- key: "isStaticColor",
224
- value: function isStaticColor(stroke) {
225
- if (_isString(stroke)) {
226
- if (color(stroke)) {
227
- return true;
228
- } else {
229
- return false;
230
- }
231
- }
232
-
233
- return false;
234
- }
235
- }, {
236
- key: "getStrokeColor",
237
- value: function getStrokeColor(stroke) {
238
- if (this.isStaticColor(stroke)) {
239
- var strokeColor = rgb2arr(stroke);
240
- strokeColor[0] = strokeColor[0] ? strokeColor[0] : 0;
241
- strokeColor[1] = strokeColor[1] ? strokeColor[1] : 0;
242
- strokeColor[2] = strokeColor[2] ? strokeColor[2] : 0;
243
- strokeColor[3] = strokeColor[3] ? strokeColor[3] : 0;
244
- return strokeColor;
245
- } else {
246
- return [0, 0, 0, 0];
247
- }
248
- }
249
- }, {
250
- key: "isOffsetStatic",
251
- value: function isOffsetStatic(offsets) {
252
- if (_isArray(offsets) && offsets.length === 2 && _isNumber(offsets[0]) && _isNumber(offsets[1])) {
253
- return true;
254
- } else {
255
- return false;
256
- }
257
- }
258
- }, {
259
- key: "patchMod",
260
- value: function patchMod(d, count) {
261
- for (var i = 0; i < count; i++) {
262
- d.push(-1);
263
- }
264
- }
265
- }, {
266
- key: "patchData",
267
- value: function patchData(d, cellData, cellPropertiesLayouts) {
268
- var _iterator = _createForOfIteratorHelper(cellPropertiesLayouts),
269
- _step;
270
-
271
- try {
272
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
273
- var layout = _step.value;
274
- var attr = layout.attr,
275
- count = layout.count;
276
- var value = cellData[attr];
277
-
278
- if (value) {
279
- if (attr === 'stroke') {
280
- d.push.apply(d, _toConsumableArray(rgb2arr(value)));
281
- } else if (attr === 'offsets') {
282
- if (this.isOffsetStatic(value)) {
283
- d.push(-value[0], value[1]);
284
- } else {
285
- d.push(0, 0);
286
- }
287
- } else {
288
- d.push(_isNumber(value) ? value : 1.0);
289
- }
290
- } else {
291
- this.patchMod(d, count);
292
- }
293
- }
294
- } catch (err) {
295
- _iterator.e(err);
296
- } finally {
297
- _iterator.f();
298
- }
299
- }
300
- }, {
301
- key: "calDataFrame",
302
- value: function calDataFrame(cellLength, encodeData, cellPropertiesLayouts) {
303
- var encodeDatalength = encodeData.length;
304
- var rowCount = Math.ceil(encodeDatalength * cellLength / this.DATA_TEXTURE_WIDTH);
305
- var totalLength = rowCount * this.DATA_TEXTURE_WIDTH;
306
- var d = [];
307
-
308
- for (var i = 0; i < encodeDatalength; i++) {
309
- var cellData = encodeData[i];
310
- this.patchData(d, cellData, cellPropertiesLayouts);
311
- }
312
-
313
- for (var _i = d.length; _i < totalLength; _i++) {
314
- d.push(-1);
315
- }
316
-
317
- return {
318
- data: d,
319
- width: this.DATA_TEXTURE_WIDTH,
320
- height: rowCount
321
- };
322
- }
323
- }, {
324
- key: "getBlend",
325
- value: function getBlend() {
326
- var _this$layer$getLayerC = this.layer.getLayerConfig(),
327
- _this$layer$getLayerC2 = _this$layer$getLayerC.blend,
328
- blend = _this$layer$getLayerC2 === void 0 ? 'normal' : _this$layer$getLayerC2;
329
-
330
- return BlendTypes[BlendType[blend]];
331
- }
332
- }, {
333
- key: "getDefaultStyle",
334
- value: function getDefaultStyle() {
335
- return {};
336
- }
337
- }, {
338
- key: "getUninforms",
339
- value: function getUninforms() {
340
- throw new Error('Method not implemented.');
341
- }
342
- }, {
343
- key: "getAnimateUniforms",
344
- value: function getAnimateUniforms() {
345
- return {};
346
- }
347
- }, {
348
- key: "needUpdate",
349
- value: function needUpdate() {
350
- return false;
351
- }
352
- }, {
353
- key: "buildModels",
354
- value: function buildModels() {
355
- throw new Error('Method not implemented.');
356
- }
357
- }, {
358
- key: "initModels",
359
- value: function initModels() {
360
- throw new Error('Method not implemented.');
361
- }
362
- }, {
363
- key: "clearModels",
364
- value: function clearModels() {
365
- return;
366
- }
367
- }, {
368
- key: "getAttribute",
369
- value: function getAttribute() {
370
- throw new Error('Method not implemented.');
371
- }
372
- }, {
373
- key: "render",
374
- value: function render() {
375
- throw new Error('Method not implemented.');
376
- }
377
- }, {
378
- key: "registerBuiltinAttributes",
379
- value: function registerBuiltinAttributes() {
380
- throw new Error('Method not implemented.');
381
- }
382
- }, {
383
- key: "animateOption2Array",
384
- value: function animateOption2Array(option) {
385
- return [option.enable ? 0 : 1.0, option.duration || 4.0, option.interval || 0.2, option.trailLength || 0.1];
386
- }
387
- }, {
388
- key: "startModelAnimate",
389
- value: function startModelAnimate() {
390
- var _ref = this.layer.getLayerConfig(),
391
- animateOption = _ref.animateOption;
392
-
393
- if (animateOption.enable) {
394
- this.layer.setAnimateStartTime();
395
- }
396
- }
397
- }]);
398
-
399
- return BaseModel;
400
- }(), (_descriptor = _applyDecoratedDescriptor(_class.prototype, "configService", [_dec], {
401
- configurable: true,
402
- enumerable: true,
403
- writable: true,
404
- initializer: null
405
- }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "shaderModuleService", [_dec2], {
406
- configurable: true,
407
- enumerable: true,
408
- writable: true,
409
- initializer: null
410
- })), _class));
411
- export { BaseModel as default };
412
- //# sourceMappingURL=BaseModel.js.map