@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.
- package/LICENSE.md +1 -1
- package/es/core/BaseLayer.d.ts +2 -4
- package/es/core/BaseLayer.js +21 -47
- package/es/core/BaseLayer.js.map +1 -1
- package/es/core/BaseModel.d.ts +1 -2
- package/es/core/BaseModel.js +0 -3
- package/es/core/BaseModel.js.map +1 -1
- package/es/core/LayerGroup.d.ts +9 -0
- package/es/{tile/tileFactory/rasterDataLayer.js → core/LayerGroup.js} +32 -39
- package/es/core/LayerGroup.js.map +1 -0
- package/es/core/interface.d.ts +1 -14
- package/es/core/interface.js.map +1 -1
- package/es/image/models/image.js.map +1 -1
- package/es/line/index.d.ts +1 -1
- package/es/line/index.js +1 -13
- package/es/line/index.js.map +1 -1
- package/es/line/models/index.d.ts +1 -1
- package/es/line/models/index.js +1 -9
- package/es/line/models/index.js.map +1 -1
- package/es/plugins/DataMappingPlugin.js +1 -1
- package/es/plugins/DataMappingPlugin.js.map +1 -1
- package/es/plugins/DataSourcePlugin.js +6 -7
- package/es/plugins/DataSourcePlugin.js.map +1 -1
- package/es/plugins/FeatureScalePlugin.js +9 -35
- package/es/plugins/FeatureScalePlugin.js.map +1 -1
- package/es/plugins/ShaderUniformPlugin.js +1 -3
- package/es/plugins/ShaderUniformPlugin.js.map +1 -1
- package/es/point/index.d.ts +1 -1
- package/es/point/index.js +2 -10
- package/es/point/index.js.map +1 -1
- package/es/point/models/extrude.d.ts +1 -0
- package/es/point/models/extrude.js +10 -2
- package/es/point/models/extrude.js.map +1 -1
- package/es/point/models/fill.d.ts +1 -8
- package/es/point/models/fill.js +75 -55
- package/es/point/models/fill.js.map +1 -1
- package/es/point/models/index.d.ts +1 -1
- package/es/point/models/index.js +1 -9
- package/es/point/models/index.js.map +1 -1
- package/es/point/models/radar.js +6 -2
- package/es/point/models/radar.js.map +1 -1
- package/es/polygon/index.js +0 -6
- package/es/polygon/index.js.map +1 -1
- package/es/polygon/models/index.d.ts +1 -1
- package/es/polygon/models/index.js +1 -5
- package/es/polygon/models/index.js.map +1 -1
- package/es/raster/index.d.ts +2 -2
- package/es/raster/index.js +4 -4
- package/es/raster/index.js.map +1 -1
- package/es/raster/models/index.js +1 -1
- package/es/raster/models/index.js.map +1 -1
- package/es/raster/models/raste-tile.d.ts +23 -0
- package/es/raster/models/raste-tile.js +285 -0
- package/es/raster/models/raste-tile.js.map +1 -0
- package/es/raster/models/raster.d.ts +0 -2
- package/es/raster/models/raster.js +12 -24
- package/es/raster/models/raster.js.map +1 -1
- package/lib/core/BaseLayer.js +20 -45
- package/lib/core/BaseLayer.js.map +1 -1
- package/lib/core/BaseModel.js +0 -2
- package/lib/core/BaseModel.js.map +1 -1
- package/lib/{tile/tileFactory/rasterDataLayer.js → core/LayerGroup.js} +32 -40
- package/lib/core/LayerGroup.js.map +1 -0
- package/lib/core/interface.js.map +1 -1
- package/lib/image/models/image.js.map +1 -1
- package/lib/line/index.js +1 -13
- package/lib/line/index.js.map +1 -1
- package/lib/line/models/index.js +1 -13
- package/lib/line/models/index.js.map +1 -1
- package/lib/plugins/DataMappingPlugin.js +1 -1
- package/lib/plugins/DataMappingPlugin.js.map +1 -1
- package/lib/plugins/DataSourcePlugin.js +6 -7
- package/lib/plugins/DataSourcePlugin.js.map +1 -1
- package/lib/plugins/FeatureScalePlugin.js +9 -35
- package/lib/plugins/FeatureScalePlugin.js.map +1 -1
- package/lib/plugins/ShaderUniformPlugin.js +1 -3
- package/lib/plugins/ShaderUniformPlugin.js.map +1 -1
- package/lib/point/index.js +2 -10
- package/lib/point/index.js.map +1 -1
- package/lib/point/models/extrude.js +11 -2
- package/lib/point/models/extrude.js.map +1 -1
- package/lib/point/models/fill.js +93 -51
- package/lib/point/models/fill.js.map +1 -1
- package/lib/point/models/index.js +1 -13
- package/lib/point/models/index.js.map +1 -1
- package/lib/point/models/radar.js +5 -1
- package/lib/point/models/radar.js.map +1 -1
- package/lib/polygon/index.js +0 -6
- package/lib/polygon/index.js.map +1 -1
- package/lib/polygon/models/index.js +1 -7
- package/lib/polygon/models/index.js.map +1 -1
- package/lib/raster/index.js +4 -4
- package/lib/raster/index.js.map +1 -1
- package/lib/raster/models/index.js +2 -2
- package/lib/raster/models/index.js.map +1 -1
- package/lib/raster/models/raste-tile.js +294 -0
- package/lib/raster/models/raste-tile.js.map +1 -0
- package/lib/raster/models/raster.js +12 -24
- package/lib/raster/models/raster.js.map +1 -1
- package/package.json +7 -9
- package/es/line/models/earthArc_3d.d.ts +0 -17
- package/es/line/models/earthArc_3d.js +0 -311
- package/es/line/models/earthArc_3d.js.map +0 -1
- package/es/line/models/half.d.ts +0 -18
- package/es/line/models/half.js +0 -244
- package/es/line/models/half.js.map +0 -1
- package/es/line/models/tile.d.ts +0 -20
- package/es/line/models/tile.js +0 -327
- package/es/line/models/tile.js.map +0 -1
- package/es/point/models/earthExtrude.d.ts +0 -24
- package/es/point/models/earthExtrude.js +0 -259
- package/es/point/models/earthExtrude.js.map +0 -1
- package/es/point/models/earthFill.d.ts +0 -20
- package/es/point/models/earthFill.js +0 -255
- package/es/point/models/earthFill.js.map +0 -1
- package/es/point/models/tile.d.ts +0 -31
- package/es/point/models/tile.js +0 -291
- package/es/point/models/tile.js.map +0 -1
- package/es/polygon/models/tile.d.ts +0 -16
- package/es/polygon/models/tile.js +0 -137
- package/es/polygon/models/tile.js.map +0 -1
- package/es/tile/interface.d.ts +0 -28
- package/es/tile/interface.js +0 -2
- package/es/tile/interface.js.map +0 -1
- package/es/tile/manager/tileConfigManager.d.ts +0 -17
- package/es/tile/manager/tileConfigManager.js +0 -123
- package/es/tile/manager/tileConfigManager.js.map +0 -1
- package/es/tile/manager/tileLayerManager.d.ts +0 -35
- package/es/tile/manager/tileLayerManager.js +0 -297
- package/es/tile/manager/tileLayerManager.js.map +0 -1
- package/es/tile/manager/tilePickerManager.d.ts +0 -21
- package/es/tile/manager/tilePickerManager.js +0 -189
- package/es/tile/manager/tilePickerManager.js.map +0 -1
- package/es/tile/models/tileModel.d.ts +0 -8
- package/es/tile/models/tileModel.js +0 -61
- package/es/tile/models/tileModel.js.map +0 -1
- package/es/tile/tileFactory/base.d.ts +0 -44
- package/es/tile/tileFactory/base.js +0 -423
- package/es/tile/tileFactory/base.js.map +0 -1
- package/es/tile/tileFactory/index.d.ts +0 -5
- package/es/tile/tileFactory/index.js +0 -30
- package/es/tile/tileFactory/index.js.map +0 -1
- package/es/tile/tileFactory/line.d.ts +0 -12
- package/es/tile/tileFactory/line.js +0 -65
- package/es/tile/tileFactory/line.js.map +0 -1
- package/es/tile/tileFactory/point.d.ts +0 -12
- package/es/tile/tileFactory/point.js +0 -65
- package/es/tile/tileFactory/point.js.map +0 -1
- package/es/tile/tileFactory/polygon.d.ts +0 -12
- package/es/tile/tileFactory/polygon.js +0 -65
- package/es/tile/tileFactory/polygon.js.map +0 -1
- package/es/tile/tileFactory/raster.d.ts +0 -12
- package/es/tile/tileFactory/raster.js +0 -61
- package/es/tile/tileFactory/raster.js.map +0 -1
- package/es/tile/tileFactory/rasterData.d.ts +0 -12
- package/es/tile/tileFactory/rasterData.js +0 -86
- package/es/tile/tileFactory/rasterData.js.map +0 -1
- package/es/tile/tileFactory/rasterDataLayer.d.ts +0 -19
- package/es/tile/tileFactory/rasterDataLayer.js.map +0 -1
- package/es/tile/tileFactory/vectorLayer.d.ts +0 -27
- package/es/tile/tileFactory/vectorLayer.js +0 -131
- package/es/tile/tileFactory/vectorLayer.js.map +0 -1
- package/es/tile/tileLayer/baseTileLayer.d.ts +0 -47
- package/es/tile/tileLayer/baseTileLayer.js +0 -409
- package/es/tile/tileLayer/baseTileLayer.js.map +0 -1
- package/es/tile/tmsTileLayer.d.ts +0 -7
- package/es/tile/tmsTileLayer.js +0 -100
- package/es/tile/tmsTileLayer.js.map +0 -1
- package/es/tile/utils.d.ts +0 -11
- package/es/tile/utils.js +0 -125
- package/es/tile/utils.js.map +0 -1
- package/lib/line/models/earthArc_3d.js +0 -328
- package/lib/line/models/earthArc_3d.js.map +0 -1
- package/lib/line/models/half.js +0 -260
- package/lib/line/models/half.js.map +0 -1
- package/lib/line/models/tile.js +0 -342
- package/lib/line/models/tile.js.map +0 -1
- package/lib/point/models/earthExtrude.js +0 -277
- package/lib/point/models/earthExtrude.js.map +0 -1
- package/lib/point/models/earthFill.js +0 -291
- package/lib/point/models/earthFill.js.map +0 -1
- package/lib/point/models/tile.js +0 -308
- package/lib/point/models/tile.js.map +0 -1
- package/lib/polygon/models/tile.js +0 -152
- package/lib/polygon/models/tile.js.map +0 -1
- package/lib/tile/interface.js +0 -2
- package/lib/tile/interface.js.map +0 -1
- package/lib/tile/manager/tileConfigManager.js +0 -134
- package/lib/tile/manager/tileConfigManager.js.map +0 -1
- package/lib/tile/manager/tileLayerManager.js +0 -305
- package/lib/tile/manager/tileLayerManager.js.map +0 -1
- package/lib/tile/manager/tilePickerManager.js +0 -195
- package/lib/tile/manager/tilePickerManager.js.map +0 -1
- package/lib/tile/models/tileModel.js +0 -73
- package/lib/tile/models/tileModel.js.map +0 -1
- package/lib/tile/tileFactory/base.js +0 -436
- package/lib/tile/tileFactory/base.js.map +0 -1
- package/lib/tile/tileFactory/index.js +0 -60
- package/lib/tile/tileFactory/index.js.map +0 -1
- package/lib/tile/tileFactory/line.js +0 -76
- package/lib/tile/tileFactory/line.js.map +0 -1
- package/lib/tile/tileFactory/point.js +0 -76
- package/lib/tile/tileFactory/point.js.map +0 -1
- package/lib/tile/tileFactory/polygon.js +0 -76
- package/lib/tile/tileFactory/polygon.js.map +0 -1
- package/lib/tile/tileFactory/raster.js +0 -74
- package/lib/tile/tileFactory/raster.js.map +0 -1
- package/lib/tile/tileFactory/rasterData.js +0 -99
- package/lib/tile/tileFactory/rasterData.js.map +0 -1
- package/lib/tile/tileFactory/rasterDataLayer.js.map +0 -1
- package/lib/tile/tileFactory/vectorLayer.js +0 -145
- package/lib/tile/tileFactory/vectorLayer.js.map +0 -1
- package/lib/tile/tileLayer/baseTileLayer.js +0 -407
- package/lib/tile/tileLayer/baseTileLayer.js.map +0 -1
- package/lib/tile/tmsTileLayer.js +0 -116
- package/lib/tile/tmsTileLayer.js.map +0 -1
- package/lib/tile/utils.js +0 -147
- package/lib/tile/utils.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/BaseModel.ts"],"names":["BaseModel","TYPES","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","gl","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","BlendTypes","BlendType","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":["BaseModel","TYPES","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","gl","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","BlendTypes","BlendType","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"}
|
|
@@ -21,71 +21,63 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
|
|
|
21
21
|
|
|
22
22
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
23
|
|
|
24
|
-
var _BaseLayer2 = _interopRequireDefault(require("
|
|
25
|
-
|
|
26
|
-
var _raster = _interopRequireDefault(require("../../raster/models/raster"));
|
|
24
|
+
var _BaseLayer2 = _interopRequireDefault(require("./BaseLayer"));
|
|
27
25
|
|
|
28
26
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
29
27
|
|
|
30
28
|
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; } }
|
|
31
29
|
|
|
32
|
-
var
|
|
33
|
-
(0, _inherits2.default)(
|
|
30
|
+
var LayerGroup = function (_BaseLayer) {
|
|
31
|
+
(0, _inherits2.default)(LayerGroup, _BaseLayer);
|
|
34
32
|
|
|
35
|
-
var _super = _createSuper(
|
|
33
|
+
var _super = _createSuper(LayerGroup);
|
|
36
34
|
|
|
37
|
-
function
|
|
35
|
+
function LayerGroup() {
|
|
38
36
|
var _this;
|
|
39
37
|
|
|
40
|
-
(0, _classCallCheck2.default)(this,
|
|
38
|
+
(0, _classCallCheck2.default)(this, LayerGroup);
|
|
41
39
|
|
|
42
40
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
43
41
|
args[_key] = arguments[_key];
|
|
44
42
|
}
|
|
45
43
|
|
|
46
44
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
47
|
-
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "
|
|
45
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isLayerGroup", true);
|
|
48
46
|
return _this;
|
|
49
47
|
}
|
|
50
48
|
|
|
51
|
-
(0, _createClass2.default)(
|
|
52
|
-
key: "
|
|
53
|
-
value: function
|
|
54
|
-
|
|
55
|
-
this.layerModel = new model(this);
|
|
56
|
-
this.models = this.layerModel.initModels();
|
|
57
|
-
}
|
|
58
|
-
}, {
|
|
59
|
-
key: "rebuildModels",
|
|
60
|
-
value: function rebuildModels() {
|
|
61
|
-
this.models = this.layerModel.buildModels();
|
|
49
|
+
(0, _createClass2.default)(LayerGroup, [{
|
|
50
|
+
key: "addChild",
|
|
51
|
+
value: function addChild(layer) {
|
|
52
|
+
this.layerChildren.push(layer);
|
|
62
53
|
}
|
|
63
54
|
}, {
|
|
64
|
-
key: "
|
|
65
|
-
value: function
|
|
66
|
-
|
|
55
|
+
key: "removeChild",
|
|
56
|
+
value: function removeChild(layer) {
|
|
57
|
+
var layerIndex = this.layerChildren.indexOf(layer);
|
|
58
|
+
|
|
59
|
+
if (layerIndex > -1) {
|
|
60
|
+
this.layerChildren.splice(layerIndex, 1);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
layer.destroy();
|
|
67
64
|
}
|
|
68
65
|
}, {
|
|
69
|
-
key: "
|
|
70
|
-
value: function
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
minimum: 0,
|
|
76
|
-
maximum: 1
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
};
|
|
66
|
+
key: "clearChild",
|
|
67
|
+
value: function clearChild() {
|
|
68
|
+
this.layerChildren.forEach(function (layer) {
|
|
69
|
+
layer.destroy();
|
|
70
|
+
});
|
|
71
|
+
this.layerChildren = [];
|
|
80
72
|
}
|
|
81
73
|
}, {
|
|
82
|
-
key: "
|
|
83
|
-
value: function
|
|
84
|
-
return
|
|
74
|
+
key: "hasChild",
|
|
75
|
+
value: function hasChild(layer) {
|
|
76
|
+
return this.layerChildren.includes(layer);
|
|
85
77
|
}
|
|
86
78
|
}]);
|
|
87
|
-
return
|
|
79
|
+
return LayerGroup;
|
|
88
80
|
}(_BaseLayer2.default);
|
|
89
81
|
|
|
90
|
-
exports.default =
|
|
91
|
-
//# sourceMappingURL=
|
|
82
|
+
exports.default = LayerGroup;
|
|
83
|
+
//# sourceMappingURL=LayerGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/core/LayerGroup.ts"],"names":["LayerGroup","layer","layerChildren","push","layerIndex","indexOf","splice","destroy","forEach","includes","BaseLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;;;;;;IAIqBA,U;;;;;;;;;;;;;;;+FAGY,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;;;EA1BOS,mB","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 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/interface.ts"],"names":["lineStyleType","CanvasUpdateType"],"mappings":";;;;;;IAIYA,a;;;WAAAA,a;AAAAA,EAAAA,a,CAAAA,a;AAAAA,EAAAA,a,CAAAA,a;GAAAA,a,6BAAAA,a;;
|
|
1
|
+
{"version":3,"sources":["../../src/core/interface.ts"],"names":["lineStyleType","CanvasUpdateType"],"mappings":";;;;;;IAIYA,a;;;WAAAA,a;AAAAA,EAAAA,a,CAAAA,a;AAAAA,EAAAA,a,CAAAA,a;GAAAA,a,6BAAAA,a;;IA4LAC,gB;;;WAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;GAAAA,gB,gCAAAA,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":["ImageModel","layer","getLayerConfig","opacity","u_opacity","u_texture","texture","mask","maskInside","source","getSource","createTexture2D","rendererService","height","width","isMini","canvas","layerService","sceneService","getSceneConfig","img","createImage","crossOrigin","src","data","originData","onload","updateLayerRenderList","renderLayers","images","then","imageData","buildLayerModel","moduleName","vertexShader","ImageVert","fragmentShader","ImageFrag","triangulation","RasterImageTriangulation","primitive","gl","TRIANGLES","depth","enable","blend","getBlend","stencil","initModels","properties","type","minimum","maximum","styleAttributeService","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","BaseModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAOA;;AACA;;AAEA;;;;;;;;;IAIqBA,U;;;;;;;;;;;;;;;;;;;;;WAEnB,wBAAqC;AACnC,iBAAoB,KAAKC,KAAL,CAAWC,cAAX,EAApB;AAAA,UAAQC,OAAR,QAAQA,OAAR;;AACA,aAAO;AACLC,QAAAA,SAAS,EAAED,OAAO,IAAI,CADjB;AAELE,QAAAA,SAAS,EAAE,KAAKC;AAFX,OAAP;AAID;;;WACD,sBAAoB;AAAA;;AAClB,kBAGI,KAAKL,KAAL,CAAWC,cAAX,EAHJ;AAAA,6BACEK,IADF;AAAA,UACEA,IADF,2BACS,KADT;AAAA,mCAEEC,UAFF;AAAA,UAEEA,UAFF,iCAEe,IAFf;;AAKA,UAAMC,MAAM,GAAG,KAAKR,KAAL,CAAWS,SAAX,EAAf;AACA,UAAQC,eAAR,GAA4B,KAAKC,eAAjC,CAAQD,eAAR;AACA,WAAKL,OAAL,GAAeK,eAAe,CAAC;AAC7BE,QAAAA,MAAM,EAAE,CADqB;AAE7BC,QAAAA,KAAK,EAAE;AAFsB,OAAD,CAA9B;;AAKA,UAAIC,eAAJ,EAAY;AAEV,YAAMC,MAAM,GAAG,KAAKC,YAAL,CAAkBC,YAAlB,CAA+BC,cAA/B,GAAgDH,MAA/D;AACA,YAAMI,GAAG,GAAGJ,MAAM,CAACK,WAAP,EAAZ;AACAD,QAAAA,GAAG,CAACE,WAAJ,GAAkB,WAAlB;AACAF,QAAAA,GAAG,CAACG,GAAJ,GAAUd,MAAM,CAACe,IAAP,CAAYC,UAAtB;;AAEAL,QAAAA,GAAG,CAACM,MAAJ,GAAa,YAAM;AACjB,UAAA,MAAI,CAACpB,OAAL,GAAeK,eAAe,CAAC;AAC7Ba,YAAAA,IAAI,EAAEJ,GADuB;AAE7BN,YAAAA,KAAK,EAAEM,GAAG,CAACN,KAFkB;AAG7BD,YAAAA,MAAM,EAAEO,GAAG,CAACP;AAHiB,WAAD,CAA9B;;AAKA,UAAA,MAAI,CAACI,YAAL,CAAkBU,qBAAlB;;AACA,UAAA,MAAI,CAACV,YAAL,CAAkBW,YAAlB;AACD,SARD;AASD,OAhBD,MAgBO;AACLnB,QAAAA,MAAM,CAACe,IAAP,CAAYK,MAAZ,CAAmBC,IAAnB,
|
|
1
|
+
{"version":3,"sources":["../../../src/image/models/image.ts"],"names":["ImageModel","layer","getLayerConfig","opacity","u_opacity","u_texture","texture","mask","maskInside","source","getSource","createTexture2D","rendererService","height","width","isMini","canvas","layerService","sceneService","getSceneConfig","img","createImage","crossOrigin","src","data","originData","onload","updateLayerRenderList","renderLayers","images","then","imageData","buildLayerModel","moduleName","vertexShader","ImageVert","fragmentShader","ImageFrag","triangulation","RasterImageTriangulation","primitive","gl","TRIANGLES","depth","enable","blend","getBlend","stencil","initModels","properties","type","minimum","maximum","styleAttributeService","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","BaseModel"],"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"}
|
package/lib/line/index.js
CHANGED
|
@@ -93,11 +93,7 @@ var LineLayer = function (_BaseLayer) {
|
|
|
93
93
|
},
|
|
94
94
|
greatcircle: {
|
|
95
95
|
blend: 'additive'
|
|
96
|
-
}
|
|
97
|
-
vectorline: {},
|
|
98
|
-
tileLine: {},
|
|
99
|
-
halfLine: {},
|
|
100
|
-
earthArc3d: {}
|
|
96
|
+
}
|
|
101
97
|
};
|
|
102
98
|
return defaultConfig[type];
|
|
103
99
|
}
|
|
@@ -106,14 +102,6 @@ var LineLayer = function (_BaseLayer) {
|
|
|
106
102
|
value: function getModelType() {
|
|
107
103
|
var _shapeAttribute$scale;
|
|
108
104
|
|
|
109
|
-
if (this.layerType) {
|
|
110
|
-
return this.layerType;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
if (this.layerSource.parser.type === 'mvt') {
|
|
114
|
-
return 'vectorline';
|
|
115
|
-
}
|
|
116
|
-
|
|
117
105
|
var shapeAttribute = this.styleAttributeService.getLayerStyleAttribute('shape');
|
|
118
106
|
var shape = shapeAttribute === null || shapeAttribute === void 0 ? void 0 : (_shapeAttribute$scale = shapeAttribute.scale) === null || _shapeAttribute$scale === void 0 ? void 0 : _shapeAttribute$scale.field;
|
|
119
107
|
return shape || 'line';
|
package/lib/line/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/line/index.ts"],"names":["LineLayer","shape","getModelType","layerModel","LineModels","models","initModels","buildModels","properties","opacity","type","minimum","maximum","defaultConfig","line","linearline","simple","wall","arc3d","blend","arc","arcmini","greatcircle","
|
|
1
|
+
{"version":3,"sources":["../../src/line/index.ts"],"names":["LineLayer","shape","getModelType","layerModel","LineModels","models","initModels","buildModels","properties","opacity","type","minimum","maximum","defaultConfig","line","linearline","simple","wall","arc3d","blend","arc","arcmini","greatcircle","shapeAttribute","styleAttributeService","getLayerStyleAttribute","scale","field","BaseLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;;;;;IAEqBA,S;;;;;;;;;;;;;;;uFACG,W;;;;;;WAEtB,uBAAqB;AACnB,UAAMC,KAAK,GAAG,KAAKC,YAAL,EAAd;AACA,WAAKC,UAAL,GAAkB,IAAIC,gBAAWH,KAAX,CAAJ,CAAsB,IAAtB,CAAlB;AACA,WAAKI,MAAL,GAAc,KAAKF,UAAL,CAAgBG,UAAhB,EAAd;AACD;;;WACD,yBAAuB;AACrB,WAAKD,MAAL,GAAc,KAAKF,UAAL,CAAgBI,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,KAAKR,YAAL,EAAb;AACA,UAAMW,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,UAAMxB,KAAK,GAAGsB,cAAH,aAAGA,cAAH,gDAAGA,cAAc,CAAEG,KAAnB,0DAAG,sBAAuBC,KAArC;AACA,aAAO1B,KAAK,IAAI,MAAhB;AACD;;;EA3CoC2B,mB","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"}
|
package/lib/line/models/index.js
CHANGED
|
@@ -7,28 +7,20 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
|
|
10
|
-
var _tileModel = _interopRequireDefault(require("../../tile/models/tileModel"));
|
|
11
|
-
|
|
12
10
|
var _arc = _interopRequireDefault(require("./arc"));
|
|
13
11
|
|
|
14
12
|
var _arc_3d = _interopRequireDefault(require("./arc_3d"));
|
|
15
13
|
|
|
16
14
|
var _arcmini = _interopRequireDefault(require("./arcmini"));
|
|
17
15
|
|
|
18
|
-
var _earthArc_3d = _interopRequireDefault(require("./earthArc_3d"));
|
|
19
|
-
|
|
20
16
|
var _great_circle = _interopRequireDefault(require("./great_circle"));
|
|
21
17
|
|
|
22
|
-
var _half = _interopRequireDefault(require("./half"));
|
|
23
|
-
|
|
24
18
|
var _line = _interopRequireDefault(require("./line"));
|
|
25
19
|
|
|
26
20
|
var _linearline = _interopRequireDefault(require("./linearline"));
|
|
27
21
|
|
|
28
22
|
var _simpleLine = _interopRequireDefault(require("./simpleLine"));
|
|
29
23
|
|
|
30
|
-
var _tile = _interopRequireDefault(require("./tile"));
|
|
31
|
-
|
|
32
24
|
var _wall = _interopRequireDefault(require("./wall"));
|
|
33
25
|
|
|
34
26
|
var LineModels = {
|
|
@@ -38,12 +30,8 @@ var LineModels = {
|
|
|
38
30
|
greatcircle: _great_circle.default,
|
|
39
31
|
wall: _wall.default,
|
|
40
32
|
line: _line.default,
|
|
41
|
-
halfLine: _half.default,
|
|
42
33
|
simple: _simpleLine.default,
|
|
43
|
-
linearline: _linearline.default
|
|
44
|
-
vectorline: _tileModel.default,
|
|
45
|
-
tileLine: _tile.default,
|
|
46
|
-
earthArc3d: _earthArc_3d.default
|
|
34
|
+
linearline: _linearline.default
|
|
47
35
|
};
|
|
48
36
|
var _default = LineModels;
|
|
49
37
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/line/models/index.ts"],"names":["LineModels","arc","ArcModel","arcmini","ArcMiniModel","arc3d","Arc3DModel","greatcircle","GreatCircleModel","wall","LineWallModel","line","LineModel","
|
|
1
|
+
{"version":3,"sources":["../../../src/line/models/index.ts"],"names":["LineModels","arc","ArcModel","arcmini","ArcMiniModel","arc3d","Arc3DModel","greatcircle","GreatCircleModel","wall","LineWallModel","line","LineModel","simple","SimpleLineModel","linearline","LinearLine"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAYA,IAAMA,UAA2C,GAAG;AAClDC,EAAAA,GAAG,EAAEC,YAD6C;AAElDC,EAAAA,OAAO,EAAEC,gBAFyC;AAGlDC,EAAAA,KAAK,EAAEC,eAH2C;AAIlDC,EAAAA,WAAW,EAAEC,qBAJqC;AAKlDC,EAAAA,IAAI,EAAEC,aAL4C;AAMlDC,EAAAA,IAAI,EAAEC,aAN4C;AAOlDC,EAAAA,MAAM,EAAEC,mBAP0C;AAQlDC,EAAAA,UAAU,EAAEC;AARsC,CAApD;eAWehB,U","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"}
|
|
@@ -165,7 +165,7 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
|
|
|
165
165
|
}
|
|
166
166
|
});
|
|
167
167
|
|
|
168
|
-
if (
|
|
168
|
+
if (encodeRecord.shape === 'line' && arrow.enable) {
|
|
169
169
|
var coords = encodeRecord.coordinates;
|
|
170
170
|
|
|
171
171
|
var arrowPoint = _this3.getArrowPoints(coords[0], coords[1]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/DataMappingPlugin.ts"],"names":["DataMappingPlugin","TYPES","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","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":["DataMappingPlugin","TYPES","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","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"}
|
|
@@ -70,16 +70,15 @@ var DataSourcePlugin = (_dec = (0, _inversify.injectable)(), _dec(_class = funct
|
|
|
70
70
|
value: function updateClusterData(layer) {
|
|
71
71
|
var source = layer.getSource();
|
|
72
72
|
var cluster = source.cluster;
|
|
73
|
-
var _source$clusterOption = source.clusterOptions
|
|
74
|
-
|
|
73
|
+
var _source$clusterOption = source.clusterOptions,
|
|
74
|
+
_source$clusterOption2 = _source$clusterOption.zoom,
|
|
75
|
+
zoom = _source$clusterOption2 === void 0 ? 0 : _source$clusterOption2,
|
|
76
|
+
_source$clusterOption3 = _source$clusterOption.maxZoom,
|
|
77
|
+
maxZoom = _source$clusterOption3 === void 0 ? 16 : _source$clusterOption3;
|
|
75
78
|
var newZoom = this.mapService.getZoom() - 1;
|
|
76
79
|
var dataSourceNeedUpdate = layer.dataState.dataSourceNeedUpdate;
|
|
77
80
|
|
|
78
|
-
if (cluster && dataSourceNeedUpdate) {
|
|
79
|
-
source.updateClusterData(Math.floor(newZoom));
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
if (cluster && Math.abs(layer.clusterZoom - newZoom) >= 1) {
|
|
81
|
+
if (cluster && (dataSourceNeedUpdate || Math.abs(layer.clusterZoom - newZoom) >= 1)) {
|
|
83
82
|
if (zoom !== Math.floor(newZoom)) {
|
|
84
83
|
source.updateClusterData(Math.floor(newZoom));
|
|
85
84
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/plugins/DataSourcePlugin.ts"],"names":["DataSourcePlugin","layer","mapService","getContainer","get","TYPES","IMapService","hooks","init","tap","source","getSource","sourceOption","data","DEFAULT_DATA","options","DEFAULT_PARSER","setSource","Source","updateClusterData","beforeRenderData","neeUpdateCluster","dataSourceNeedUpdate","dataState","cluster","clusterOptions","zoom","newZoom","getZoom","Math","
|
|
1
|
+
{"version":3,"sources":["../../src/plugins/DataSourcePlugin.ts"],"names":["DataSourcePlugin","layer","mapService","getContainer","get","TYPES","IMapService","hooks","init","tap","source","getSource","sourceOption","data","DEFAULT_DATA","options","DEFAULT_PARSER","setSource","Source","updateClusterData","beforeRenderData","neeUpdateCluster","dataSourceNeedUpdate","dataState","cluster","clusterOptions","zoom","maxZoom","newZoom","getZoom","Math","abs","clusterZoom","floor"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AAOA;;AACA;;AACA;;;;;;;;IAGqBA,gB,WADpB,4B;;;;;;;;WAGC,eAAaC,KAAb,EAA4B;AAAA;;AAC1B,WAAKC,UAAL,GAAkBD,KAAK,CAACE,YAAN,GAAqBC,GAArB,CAAsCC,cAAMC,WAA5C,CAAlB;AACAL,MAAAA,KAAK,CAACM,KAAN,CAAYC,IAAZ,CAAiBC,GAAjB,CAAqB,kBAArB,EAAyC,YAAM;AAC7C,YAAMC,MAAM,GAAGT,KAAK,CAACU,SAAN,EAAf;;AACA,YAAI,CAACD,MAAL,EAAa;AAEX,qBAA0BT,KAAK,CAACW,YAAN,IAAsB;AAC9CC,YAAAA,IAAI,EAAEC,sBADwC;AAE9CC,YAAAA,OAAO,EAAEC;AAFqC,WAAhD;AAAA,cAAQH,IAAR,QAAQA,IAAR;AAAA,cAAcE,OAAd,QAAcA,OAAd;;AAIAd,UAAAA,KAAK,CAACgB,SAAN,CAAgB,IAAIC,iBAAJ,CAAWL,IAAX,EAAiBE,OAAjB,CAAhB;AACD;;AAED,QAAA,KAAI,CAACI,iBAAL,CAAuBlB,KAAvB;AACD,OAZD;AAeAA,MAAAA,KAAK,CAACM,KAAN,CAAYa,gBAAZ,CAA6BX,GAA7B,CAAiC,kBAAjC,EAAqD,YAAM;AACzD,YAAMY,gBAAgB,GAAG,KAAI,CAACF,iBAAL,CAAuBlB,KAAvB,CAAzB;;AACA,YAAMqB,oBAAoB,GAAGrB,KAAK,CAACsB,SAAN,CAAgBD,oBAA7C;AACArB,QAAAA,KAAK,CAACsB,SAAN,CAAgBD,oBAAhB,GAAuC,KAAvC;AACA,eAAOD,gBAAgB,IAAIC,oBAA3B;AACD,OALD;AAMD;;;WAED,2BAA0BrB,KAA1B,EAAkD;AAChD,UAAMS,MAAM,GAAGT,KAAK,CAACU,SAAN,EAAf;AACA,UAAMa,OAAO,GAAGd,MAAM,CAACc,OAAvB;AACA,kCAAmCd,MAAM,CAACe,cAA1C;AAAA,yDAAQC,IAAR;AAAA,UAAQA,IAAR,uCAAe,CAAf;AAAA,yDAAkBC,OAAlB;AAAA,UAAkBA,OAAlB,uCAA4B,EAA5B;AACA,UAAMC,OAAO,GAAG,KAAK1B,UAAL,CAAgB2B,OAAhB,KAA4B,CAA5C;AACA,UAAMP,oBAAoB,GAAGrB,KAAK,CAACsB,SAAN,CAAgBD,oBAA7C;;AAEA,UACEE,OAAO,KACNF,oBAAoB,IAAIQ,IAAI,CAACC,GAAL,CAAS9B,KAAK,CAAC+B,WAAN,GAAoBJ,OAA7B,KAAyC,CAD3D,CADT,EAGE;AAEA,YAAIF,IAAI,KAAKI,IAAI,CAACG,KAAL,CAAWL,OAAX,CAAb,EAAkC;AAChClB,UAAAA,MAAM,CAACS,iBAAP,CAAyBW,IAAI,CAACG,KAAL,CAAWL,OAAX,CAAzB;AACD;;AACD3B,QAAAA,KAAK,CAAC+B,WAAN,GAAoBJ,OAApB;AACA,eAAO,IAAP;AACD;;AACD,aAAO,KAAP;AACD","sourcesContent":["import {\n ILayer,\n ILayerPlugin,\n ILngLat,\n IMapService,\n TYPES,\n} from '@antv/l7-core';\nimport Source, { DEFAULT_DATA, DEFAULT_PARSER } from '@antv/l7-source';\nimport { injectable } from 'inversify';\nimport 'reflect-metadata';\n\n@injectable()\nexport default class DataSourcePlugin implements ILayerPlugin {\n protected mapService: IMapService;\n public apply(layer: ILayer) {\n this.mapService = layer.getContainer().get<IMapService>(TYPES.IMapService);\n layer.hooks.init.tap('DataSourcePlugin', () => {\n const source = layer.getSource();\n if (!source) {\n // TODO: 允许用户不使用 layer 的 source 方法,在这里传入一个默认的替换的默认数据\n const { data, options } = layer.sourceOption || {\n data: DEFAULT_DATA,\n options: DEFAULT_PARSER,\n };\n layer.setSource(new Source(data, options));\n }\n\n this.updateClusterData(layer);\n });\n\n // 检测数据是否需要更新\n layer.hooks.beforeRenderData.tap('DataSourcePlugin', () => {\n const neeUpdateCluster = this.updateClusterData(layer);\n const dataSourceNeedUpdate = layer.dataState.dataSourceNeedUpdate;\n layer.dataState.dataSourceNeedUpdate = false;\n return neeUpdateCluster || dataSourceNeedUpdate;\n });\n }\n\n private updateClusterData(layer: ILayer): boolean {\n const source = layer.getSource();\n const cluster = source.cluster;\n const { zoom = 0, maxZoom = 16 } = source.clusterOptions;\n const newZoom = this.mapService.getZoom() - 1;\n const dataSourceNeedUpdate = layer.dataState.dataSourceNeedUpdate;\n // 如果 dataSource 有更新,跳过 zoom 的判断,直接更新一次\n if (\n cluster &&\n (dataSourceNeedUpdate || Math.abs(layer.clusterZoom - newZoom) >= 1)\n ) {\n // TODO 判断数据是否更新\n if (zoom !== Math.floor(newZoom)) {\n source.updateClusterData(Math.floor(newZoom));\n }\n layer.clusterZoom = newZoom;\n return true;\n }\n return false;\n }\n}\n"],"file":"DataSourcePlugin.js"}
|