@antv/l7-layers 2.5.35 → 2.5.37-mini11
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/lib/core/BaseLayer.js +10 -4
- package/lib/core/BaseLayer.js.map +1 -1
- package/lib/core/shape/Path.js +5 -4
- package/lib/core/shape/Path.js.map +1 -1
- package/lib/core/shape/extrude.js +1 -1
- package/lib/core/triangulation.js +13 -9
- package/lib/core/triangulation.js.map +1 -1
- package/lib/earth/utils.js +1 -1
- package/lib/heatmap/models/heatmap.js +1 -1
- package/lib/imagetile/index.js +95 -0
- package/lib/imagetile/index.js.map +1 -0
- package/lib/imagetile/models/imagetile.js +177 -0
- package/lib/imagetile/models/imagetile.js.map +1 -0
- package/lib/imagetile/models/index.js +17 -0
- package/lib/imagetile/models/index.js.map +1 -0
- package/lib/imagetile/utils/ImageTile.js +99 -0
- package/lib/imagetile/utils/ImageTile.js.map +1 -0
- package/lib/imagetile/utils/Tile.js +324 -0
- package/lib/imagetile/utils/Tile.js.map +1 -0
- package/lib/imagetile/utils/lruCache.js +109 -0
- package/lib/imagetile/utils/lruCache.js.map +1 -0
- package/lib/imagetile/utils/tileCache.js +58 -0
- package/lib/imagetile/utils/tileCache.js.map +1 -0
- package/lib/index.js +16 -8
- package/lib/index.js.map +1 -1
- package/lib/line/index.js +3 -0
- package/lib/line/index.js.map +1 -1
- package/lib/line/models/arc.js +2 -2
- package/lib/line/models/arc_3d.js +2 -2
- package/lib/line/models/arcmini.js +160 -0
- package/lib/line/models/arcmini.js.map +1 -0
- package/lib/line/models/great_circle.js +2 -2
- package/lib/line/models/index.js +3 -0
- package/lib/line/models/index.js.map +1 -1
- package/lib/line/models/line.js +2 -2
- package/lib/plugins/DataMappingPlugin.js +1 -1
- package/lib/plugins/DataSourcePlugin.js +5 -1
- package/lib/plugins/DataSourcePlugin.js.map +1 -1
- package/lib/plugins/FeatureScalePlugin.js +5 -1
- package/lib/plugins/FeatureScalePlugin.js.map +1 -1
- package/lib/plugins/LayerAnimateStylePlugin.js +1 -1
- package/lib/plugins/LightingPlugin.js +5 -3
- package/lib/plugins/LightingPlugin.js.map +1 -1
- package/lib/plugins/MultiPassRendererPlugin.js +1 -1
- package/lib/plugins/ShaderUniformPlugin.js +1 -1
- package/lib/plugins/ShaderUniformPlugin.js.map +1 -1
- package/lib/plugins/UpdateStyleAttributePlugin.js +6 -6
- package/lib/plugins/UpdateStyleAttributePlugin.js.map +1 -1
- package/lib/point/shape/Path.js +5 -4
- package/lib/point/shape/Path.js.map +1 -1
- package/lib/raster/raster.js +1 -1
- package/lib/utils/dataMappingStyle.js +1 -1
- package/lib/utils/extrude_polyline.js +1 -1
- package/lib/utils/polylineNormal.js +1 -1
- package/lib/utils/symbol-layout.js +1 -1
- package/package.json +6 -5
- package/CHANGELOG.md +0 -492
- package/LICENSE.md +0 -21
- package/es/citybuliding/building.d.ts +0 -17
- package/es/citybuliding/building.js +0 -79
- package/es/citybuliding/building.js.map +0 -1
- package/es/citybuliding/models/build.d.ts +0 -13
- package/es/citybuliding/models/build.js +0 -124
- package/es/citybuliding/models/build.js.map +0 -1
- package/es/core/BaseLayer.d.ts +0 -174
- package/es/core/BaseLayer.js +0 -974
- package/es/core/BaseLayer.js.map +0 -1
- package/es/core/BaseModel.d.ts +0 -135
- package/es/core/BaseModel.js +0 -412
- package/es/core/BaseModel.js.map +0 -1
- package/es/core/interface.d.ts +0 -19
- package/es/core/interface.js +0 -7
- package/es/core/interface.js.map +0 -1
- package/es/core/schema.d.ts +0 -27
- package/es/core/schema.js +0 -23
- package/es/core/schema.js.map +0 -1
- package/es/core/shape/Path.d.ts +0 -39
- package/es/core/shape/Path.js +0 -57
- package/es/core/shape/Path.js.map +0 -1
- package/es/core/shape/extrude.d.ts +0 -17
- package/es/core/shape/extrude.js +0 -143
- package/es/core/shape/extrude.js.map +0 -1
- package/es/core/triangulation.d.ts +0 -109
- package/es/core/triangulation.js +0 -328
- package/es/core/triangulation.js.map +0 -1
- package/es/earth/index.d.ts +0 -17
- package/es/earth/index.js +0 -81
- package/es/earth/index.js.map +0 -1
- package/es/earth/models/atmosphere.d.ts +0 -9
- package/es/earth/models/atmosphere.js +0 -125
- package/es/earth/models/atmosphere.js.map +0 -1
- package/es/earth/models/base.d.ts +0 -16
- package/es/earth/models/base.js +0 -193
- package/es/earth/models/base.js.map +0 -1
- package/es/earth/models/bloomsphere.d.ts +0 -9
- package/es/earth/models/bloomsphere.js +0 -125
- package/es/earth/models/bloomsphere.js.map +0 -1
- package/es/earth/utils.d.ts +0 -26
- package/es/earth/utils.js +0 -81
- package/es/earth/utils.js.map +0 -1
- package/es/glsl.d.js +0 -2
- package/es/glsl.d.js.map +0 -1
- package/es/heatmap/index.d.ts +0 -22
- package/es/heatmap/index.js +0 -123
- package/es/heatmap/index.js.map +0 -1
- package/es/heatmap/models/grid.d.ts +0 -8
- package/es/heatmap/models/grid.js +0 -90
- package/es/heatmap/models/grid.js.map +0 -1
- package/es/heatmap/models/grid3d.d.ts +0 -8
- package/es/heatmap/models/grid3d.js +0 -122
- package/es/heatmap/models/grid3d.js.map +0 -1
- package/es/heatmap/models/heatmap.d.ts +0 -24
- package/es/heatmap/models/heatmap.js +0 -399
- package/es/heatmap/models/heatmap.js.map +0 -1
- package/es/heatmap/models/hexagon.d.ts +0 -8
- package/es/heatmap/models/hexagon.js +0 -90
- package/es/heatmap/models/hexagon.js.map +0 -1
- package/es/heatmap/models/index.d.ts +0 -5
- package/es/heatmap/models/index.js +0 -13
- package/es/heatmap/models/index.js.map +0 -1
- package/es/heatmap/triangulation.d.ts +0 -5
- package/es/heatmap/triangulation.js +0 -38
- package/es/heatmap/triangulation.js.map +0 -1
- package/es/image/index.d.ts +0 -22
- package/es/image/index.js +0 -82
- package/es/image/index.js.map +0 -1
- package/es/image/models/image.d.ts +0 -18
- package/es/image/models/image.js +0 -127
- package/es/image/models/image.js.map +0 -1
- package/es/image/models/index.d.ts +0 -5
- package/es/image/models/index.js +0 -6
- package/es/image/models/index.js.map +0 -1
- package/es/index.d.ts +0 -11
- package/es/index.js +0 -39
- package/es/index.js.map +0 -1
- package/es/line/index.d.ts +0 -25
- package/es/line/index.js +0 -95
- package/es/line/index.js.map +0 -1
- package/es/line/models/arc.d.ts +0 -12
- package/es/line/models/arc.js +0 -281
- package/es/line/models/arc.js.map +0 -1
- package/es/line/models/arc_3d.d.ts +0 -12
- package/es/line/models/arc_3d.js +0 -277
- package/es/line/models/arc_3d.js.map +0 -1
- package/es/line/models/great_circle.d.ts +0 -12
- package/es/line/models/great_circle.js +0 -269
- package/es/line/models/great_circle.js.map +0 -1
- package/es/line/models/index.d.ts +0 -5
- package/es/line/models/index.js +0 -12
- package/es/line/models/index.js.map +0 -1
- package/es/line/models/line.d.ts +0 -13
- package/es/line/models/line.js +0 -342
- package/es/line/models/line.js.map +0 -1
- package/es/plugins/DataMappingPlugin.d.ts +0 -13
- package/es/plugins/DataMappingPlugin.js +0 -199
- package/es/plugins/DataMappingPlugin.js.map +0 -1
- package/es/plugins/DataSourcePlugin.d.ts +0 -7
- package/es/plugins/DataSourcePlugin.js +0 -73
- package/es/plugins/DataSourcePlugin.js.map +0 -1
- package/es/plugins/FeatureScalePlugin.d.ts +0 -26
- package/es/plugins/FeatureScalePlugin.js +0 -270
- package/es/plugins/FeatureScalePlugin.js.map +0 -1
- package/es/plugins/LayerAnimateStylePlugin.d.ts +0 -7
- package/es/plugins/LayerAnimateStylePlugin.js +0 -50
- package/es/plugins/LayerAnimateStylePlugin.js.map +0 -1
- package/es/plugins/LayerModelPlugin.d.ts +0 -8
- package/es/plugins/LayerModelPlugin.js +0 -34
- package/es/plugins/LayerModelPlugin.js.map +0 -1
- package/es/plugins/LayerStylePlugin.d.ts +0 -8
- package/es/plugins/LayerStylePlugin.js +0 -35
- package/es/plugins/LayerStylePlugin.js.map +0 -1
- package/es/plugins/LightingPlugin.d.ts +0 -36
- package/es/plugins/LightingPlugin.js +0 -100
- package/es/plugins/LightingPlugin.js.map +0 -1
- package/es/plugins/MultiPassRendererPlugin.d.ts +0 -37
- package/es/plugins/MultiPassRendererPlugin.js +0 -79
- package/es/plugins/MultiPassRendererPlugin.js.map +0 -1
- package/es/plugins/PixelPickingPlugin.d.ts +0 -8
- package/es/plugins/PixelPickingPlugin.js +0 -112
- package/es/plugins/PixelPickingPlugin.js.map +0 -1
- package/es/plugins/RegisterStyleAttributePlugin.d.ts +0 -11
- package/es/plugins/RegisterStyleAttributePlugin.js +0 -98
- package/es/plugins/RegisterStyleAttributePlugin.js.map +0 -1
- package/es/plugins/ShaderUniformPlugin.d.ts +0 -16
- package/es/plugins/ShaderUniformPlugin.js +0 -78
- package/es/plugins/ShaderUniformPlugin.js.map +0 -1
- package/es/plugins/UpdateModelPlugin.d.ts +0 -8
- package/es/plugins/UpdateModelPlugin.js +0 -27
- package/es/plugins/UpdateModelPlugin.js.map +0 -1
- package/es/plugins/UpdateStyleAttributePlugin.d.ts +0 -12
- package/es/plugins/UpdateStyleAttributePlugin.js +0 -74
- package/es/plugins/UpdateStyleAttributePlugin.js.map +0 -1
- package/es/point/index.d.ts +0 -30
- package/es/point/index.js +0 -130
- package/es/point/index.js.map +0 -1
- package/es/point/models/extrude.d.ts +0 -14
- package/es/point/models/extrude.js +0 -180
- package/es/point/models/extrude.js.map +0 -1
- package/es/point/models/fill.d.ts +0 -17
- package/es/point/models/fill.js +0 -247
- package/es/point/models/fill.js.map +0 -1
- package/es/point/models/icon-font.d.ts +0 -11
- package/es/point/models/icon-font.js +0 -181
- package/es/point/models/icon-font.js.map +0 -1
- package/es/point/models/image.d.ts +0 -11
- package/es/point/models/image.js +0 -207
- package/es/point/models/image.js.map +0 -1
- package/es/point/models/index.d.ts +0 -5
- package/es/point/models/index.js +0 -16
- package/es/point/models/index.js.map +0 -1
- package/es/point/models/normal.d.ts +0 -21
- package/es/point/models/normal.js +0 -155
- package/es/point/models/normal.js.map +0 -1
- package/es/point/models/text.d.ts +0 -56
- package/es/point/models/text.js +0 -522
- package/es/point/models/text.js.map +0 -1
- package/es/point/shape/Path.d.ts +0 -40
- package/es/point/shape/Path.js +0 -57
- package/es/point/shape/Path.js.map +0 -1
- package/es/point/shape/extrude.d.ts +0 -15
- package/es/point/shape/extrude.js +0 -58
- package/es/point/shape/extrude.js.map +0 -1
- package/es/polygon/index.d.ts +0 -22
- package/es/polygon/index.js +0 -124
- package/es/polygon/index.js.map +0 -1
- package/es/polygon/models/extrude.d.ts +0 -13
- package/es/polygon/models/extrude.js +0 -139
- package/es/polygon/models/extrude.js.map +0 -1
- package/es/polygon/models/fill.d.ts +0 -13
- package/es/polygon/models/fill.js +0 -108
- package/es/polygon/models/fill.js.map +0 -1
- package/es/polygon/models/index.d.ts +0 -5
- package/es/polygon/models/index.js +0 -20
- package/es/polygon/models/index.js.map +0 -1
- package/es/raster/buffers/triangulation.d.ts +0 -6
- package/es/raster/buffers/triangulation.js +0 -28
- package/es/raster/buffers/triangulation.js.map +0 -1
- package/es/raster/image.d.ts +0 -0
- package/es/raster/image.js +0 -2
- package/es/raster/image.js.map +0 -1
- package/es/raster/index.d.ts +0 -28
- package/es/raster/index.js +0 -83
- package/es/raster/index.js.map +0 -1
- package/es/raster/models/index.d.ts +0 -5
- package/es/raster/models/index.js +0 -7
- package/es/raster/models/index.js.map +0 -1
- package/es/raster/models/raster.d.ts +0 -19
- package/es/raster/models/raster.js +0 -152
- package/es/raster/models/raster.js.map +0 -1
- package/es/raster/raster.d.ts +0 -30
- package/es/raster/raster.js +0 -178
- package/es/raster/raster.js.map +0 -1
- package/es/raster/raster2d.d.ts +0 -27
- package/es/raster/raster2d.js +0 -158
- package/es/raster/raster2d.js.map +0 -1
- package/es/utils/blend.d.ts +0 -2
- package/es/utils/blend.js +0 -55
- package/es/utils/blend.js.map +0 -1
- package/es/utils/collision-index.d.ts +0 -47
- package/es/utils/collision-index.js +0 -87
- package/es/utils/collision-index.js.map +0 -1
- package/es/utils/dataMappingStyle.d.ts +0 -30
- package/es/utils/dataMappingStyle.js +0 -88
- package/es/utils/dataMappingStyle.js.map +0 -1
- package/es/utils/extrude_polyline.d.ts +0 -48
- package/es/utils/extrude_polyline.js +0 -405
- package/es/utils/extrude_polyline.js.map +0 -1
- package/es/utils/geo.d.ts +0 -3
- package/es/utils/geo.js +0 -24
- package/es/utils/geo.js.map +0 -1
- package/es/utils/grid-index.d.ts +0 -28
- package/es/utils/grid-index.js +0 -193
- package/es/utils/grid-index.js.map +0 -1
- package/es/utils/polylineNormal.d.ts +0 -9
- package/es/utils/polylineNormal.js +0 -171
- package/es/utils/polylineNormal.js.map +0 -1
- package/es/utils/symbol-layout.d.ts +0 -43
- package/es/utils/symbol-layout.js +0 -260
- package/es/utils/symbol-layout.js.map +0 -1
package/es/core/BaseModel.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/BaseModel.ts"],"names":["BlendType","gl","lazyInject","TYPES","rgb2arr","color","BlendTypes","BaseModel","IGlobalConfigService","IShaderModuleService","layer","rendererService","getContainer","get","IRendererService","styleAttributeService","IStyleAttributeService","mapService","IMapService","iconService","IIconService","fontService","IFontService","cameraService","ICameraService","layerService","ILayerService","registerBuiltinAttributes","startModelAnimate","createTexture2D","DATA_TEXTURE_WIDTH","rowCount","cellLength","cellProperties","cacheStyleProperties","opacity","undefined","strokeOpacity","strokeWidth","stroke","offsets","stylePropertyesExist","hasOpacity","hasStrokeOpacity","hasStrokeWidth","hasStroke","hasOffsets","dataTextureTest","getOESTextureFloat","dataTexture","data","ImageData","mag","NEAREST","min","width","height","options","isUpdate","clearLastCalRes","push","attr","count","isStaticColor","isOffsetStatic","strokeColor","length","d","i","cellData","cellPropertiesLayouts","layout","value","patchMod","encodeData","encodeDatalength","Math","ceil","totalLength","patchData","getLayerConfig","blend","Error","option","enable","duration","interval","trailLength","animateOption","setAnimateStartTime"],"mappings":"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","sourcesContent":["import {\n BlendType,\n gl,\n IAnimateOption,\n IAttribute,\n IBlendOptions,\n ICameraService,\n IElements,\n IEncodeFeature,\n IFontService,\n IGlobalConfigService,\n IIconService,\n ILayer,\n ILayerConfig,\n ILayerModel,\n ILayerService,\n IMapService,\n IModel,\n IModelUniform,\n IRendererService,\n IShaderModuleService,\n IStyleAttributeService,\n ITexture2D,\n ITexture2DInitializationOptions,\n lazyInject,\n Triangulation,\n TYPES,\n} from '@antv/l7-core';\nimport { rgb2arr } from '@antv/l7-utils';\nimport { color } from 'd3-color';\nimport { isArray, 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 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 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 readonly 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.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 opacity: undefined,\n strokeOpacity: undefined,\n strokeWidth: undefined,\n stroke: undefined,\n offsets: undefined,\n };\n this.stylePropertyesExist = {\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 ImageData(1, 1).data,\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 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 this.rowCount, // 数据纹理有几行\n this.DATA_TEXTURE_WIDTH, // 数据纹理有几列\n 0.0,\n 0.0,\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 this.stylePropertyesExist.hasOffsets, // 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 } 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 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.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 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 // 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 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) {\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"}
|
package/es/core/interface.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { styleSingle } from '../core/BaseModel';
|
|
2
|
-
export declare enum lineStyleType {
|
|
3
|
-
'solid' = 0,
|
|
4
|
-
'dash' = 1
|
|
5
|
-
}
|
|
6
|
-
export interface ILineLayerStyleOptions {
|
|
7
|
-
opacity: styleSingle;
|
|
8
|
-
lineType?: keyof typeof lineStyleType;
|
|
9
|
-
dashArray?: [number, number];
|
|
10
|
-
segmentNumber?: number;
|
|
11
|
-
forward?: boolean;
|
|
12
|
-
lineTexture?: boolean;
|
|
13
|
-
iconStep?: number;
|
|
14
|
-
textureBlend?: string;
|
|
15
|
-
sourceColor?: string;
|
|
16
|
-
targetColor?: string;
|
|
17
|
-
thetaOffset?: number;
|
|
18
|
-
globalArcHeight?: number;
|
|
19
|
-
}
|
package/es/core/interface.js
DELETED
package/es/core/interface.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/interface.ts"],"names":["lineStyleType"],"mappings":"AACA,WAAYA,aAAZ;;WAAYA,a;AAAAA,EAAAA,a,CAAAA,a;AAAAA,EAAAA,a,CAAAA,a;GAAAA,a,KAAAA,a","sourcesContent":["import { styleSingle } from '../core/BaseModel';\nexport enum lineStyleType {\n 'solid' = 0.0,\n 'dash' = 1.0,\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 forward?: boolean; // 可选参数、是否反向(arcLine)\n lineTexture?: boolean; // 可选参数、是否开启纹理贴图功能(all)\n iconStep?: number; // 可选参数、纹理贴图步长(all)\n textureBlend?: string; // 可选参数、供给纹理贴图使用(all)\n sourceColor?: string; // 可选参数、设置渐变色的起始颜色(all)\n targetColor?: string; // 可选参数、设置渐变色的终点颜色(all)\n thetaOffset?: number; // 可选参数、设置弧线的偏移量\n\n globalArcHeight?: number; // 可选参数、地球模式下 3D 弧线的高度\n}\n"],"file":"interface.js"}
|
package/es/core/schema.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
declare const _default: {
|
|
2
|
-
properties: {
|
|
3
|
-
enablePicking: {
|
|
4
|
-
type: string;
|
|
5
|
-
};
|
|
6
|
-
enableHighlight: {
|
|
7
|
-
type: string;
|
|
8
|
-
};
|
|
9
|
-
highlightColor: {
|
|
10
|
-
oneOf: ({
|
|
11
|
-
type: string;
|
|
12
|
-
items: {
|
|
13
|
-
type: string;
|
|
14
|
-
minimum: number;
|
|
15
|
-
maximum: number;
|
|
16
|
-
};
|
|
17
|
-
} | {
|
|
18
|
-
type: string;
|
|
19
|
-
items?: undefined;
|
|
20
|
-
})[];
|
|
21
|
-
};
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
/**
|
|
25
|
-
* BaseLayer Schema
|
|
26
|
-
*/
|
|
27
|
-
export default _default;
|
package/es/core/schema.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
export default {
|
|
2
|
-
properties: {
|
|
3
|
-
enablePicking: {
|
|
4
|
-
type: 'boolean'
|
|
5
|
-
},
|
|
6
|
-
enableHighlight: {
|
|
7
|
-
type: 'boolean'
|
|
8
|
-
},
|
|
9
|
-
highlightColor: {
|
|
10
|
-
oneOf: [{
|
|
11
|
-
type: 'array',
|
|
12
|
-
items: {
|
|
13
|
-
type: 'number',
|
|
14
|
-
minimum: 0,
|
|
15
|
-
maximum: 1
|
|
16
|
-
}
|
|
17
|
-
}, {
|
|
18
|
-
type: 'string'
|
|
19
|
-
}]
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=schema.js.map
|
package/es/core/schema.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/schema.ts"],"names":["properties","enablePicking","type","enableHighlight","highlightColor","oneOf","items","minimum","maximum"],"mappings":"AAGA,eAAe;AACbA,EAAAA,UAAU,EAAE;AACVC,IAAAA,aAAa,EAAE;AACbC,MAAAA,IAAI,EAAE;AADO,KADL;AAIVC,IAAAA,eAAe,EAAE;AACfD,MAAAA,IAAI,EAAE;AADS,KAJP;AAOVE,IAAAA,cAAc,EAAE;AACdC,MAAAA,KAAK,EAAE,CACL;AACEH,QAAAA,IAAI,EAAE,OADR;AAEEI,QAAAA,KAAK,EAAE;AACLJ,UAAAA,IAAI,EAAE,QADD;AAELK,UAAAA,OAAO,EAAE,CAFJ;AAGLC,UAAAA,OAAO,EAAE;AAHJ;AAFT,OADK,EASL;AACEN,QAAAA,IAAI,EAAE;AADR,OATK;AADO;AAPN;AADC,CAAf","sourcesContent":["/**\n * BaseLayer Schema\n */\nexport default {\n properties: {\n enablePicking: {\n type: 'boolean',\n },\n enableHighlight: {\n type: 'boolean',\n },\n highlightColor: {\n oneOf: [\n {\n type: 'array',\n items: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n {\n type: 'string',\n },\n ],\n },\n },\n};\n"],"file":"schema.js"}
|
package/es/core/shape/Path.d.ts
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
export declare type IPosition = [number, number, number] | [number, number];
|
|
2
|
-
export declare type IPath = IPosition[];
|
|
3
|
-
export declare enum ShapeType3D {
|
|
4
|
-
CYLINDER = "cylinder",
|
|
5
|
-
SQUARECOLUMN = "squareColumn",
|
|
6
|
-
TRIANGLECOLUMN = "triangleColumn",
|
|
7
|
-
HEXAGONCOLUMN = "hexagonColumn",
|
|
8
|
-
PENTAGONCOLUMN = "pentagonColumn"
|
|
9
|
-
}
|
|
10
|
-
export declare enum ShapeType2D {
|
|
11
|
-
CIRCLE = "circle",
|
|
12
|
-
SQUARE = "square",
|
|
13
|
-
TRIANGLE = "triangle",
|
|
14
|
-
HEXAGON = "hexagon",
|
|
15
|
-
PENTAGON = "pentagon"
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* 生成规则多边形顶点个数
|
|
19
|
-
* @param pointCount 顶点个数 3 => 三角形
|
|
20
|
-
* @param start 顶点起始角度 调整图形的方向
|
|
21
|
-
*/
|
|
22
|
-
export declare function polygonPath(pointCount: number, start?: number): IPath;
|
|
23
|
-
export declare function circle(): IPath;
|
|
24
|
-
export declare function square(): IPath;
|
|
25
|
-
export declare function triangle(): IPath;
|
|
26
|
-
export declare function hexagon(): IPath;
|
|
27
|
-
export declare function pentagon(): IPath;
|
|
28
|
-
export declare const geometryShape: {
|
|
29
|
-
circle: typeof circle;
|
|
30
|
-
hexagon: typeof hexagon;
|
|
31
|
-
triangle: typeof triangle;
|
|
32
|
-
square: typeof square;
|
|
33
|
-
pentagon: typeof pentagon;
|
|
34
|
-
cylinder: typeof circle;
|
|
35
|
-
hexagonColumn: typeof hexagon;
|
|
36
|
-
triangleColumn: typeof triangle;
|
|
37
|
-
squareColumn: typeof square;
|
|
38
|
-
pentagonColumn: typeof pentagon;
|
|
39
|
-
};
|
package/es/core/shape/Path.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
|
|
3
|
-
var _geometryShape;
|
|
4
|
-
|
|
5
|
-
export var ShapeType3D;
|
|
6
|
-
|
|
7
|
-
(function (ShapeType3D) {
|
|
8
|
-
ShapeType3D["CYLINDER"] = "cylinder";
|
|
9
|
-
ShapeType3D["SQUARECOLUMN"] = "squareColumn";
|
|
10
|
-
ShapeType3D["TRIANGLECOLUMN"] = "triangleColumn";
|
|
11
|
-
ShapeType3D["HEXAGONCOLUMN"] = "hexagonColumn";
|
|
12
|
-
ShapeType3D["PENTAGONCOLUMN"] = "pentagonColumn";
|
|
13
|
-
})(ShapeType3D || (ShapeType3D = {}));
|
|
14
|
-
|
|
15
|
-
export var ShapeType2D;
|
|
16
|
-
|
|
17
|
-
(function (ShapeType2D) {
|
|
18
|
-
ShapeType2D["CIRCLE"] = "circle";
|
|
19
|
-
ShapeType2D["SQUARE"] = "square";
|
|
20
|
-
ShapeType2D["TRIANGLE"] = "triangle";
|
|
21
|
-
ShapeType2D["HEXAGON"] = "hexagon";
|
|
22
|
-
ShapeType2D["PENTAGON"] = "pentagon";
|
|
23
|
-
})(ShapeType2D || (ShapeType2D = {}));
|
|
24
|
-
|
|
25
|
-
export function polygonPath(pointCount) {
|
|
26
|
-
var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
27
|
-
var step = Math.PI * 2 / pointCount;
|
|
28
|
-
var line = [];
|
|
29
|
-
|
|
30
|
-
for (var i = 0; i < pointCount; i++) {
|
|
31
|
-
line.push(step * i + start * Math.PI / 12);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
var path = line.map(function (t) {
|
|
35
|
-
var x = Math.sin(t + Math.PI / 4);
|
|
36
|
-
var y = Math.cos(t + Math.PI / 4);
|
|
37
|
-
return [x, y, 0];
|
|
38
|
-
});
|
|
39
|
-
return path;
|
|
40
|
-
}
|
|
41
|
-
export function circle() {
|
|
42
|
-
return polygonPath(30);
|
|
43
|
-
}
|
|
44
|
-
export function square() {
|
|
45
|
-
return polygonPath(4);
|
|
46
|
-
}
|
|
47
|
-
export function triangle() {
|
|
48
|
-
return polygonPath(3);
|
|
49
|
-
}
|
|
50
|
-
export function hexagon() {
|
|
51
|
-
return polygonPath(6, 1);
|
|
52
|
-
}
|
|
53
|
-
export function pentagon() {
|
|
54
|
-
return polygonPath(5);
|
|
55
|
-
}
|
|
56
|
-
export var geometryShape = (_geometryShape = {}, _defineProperty(_geometryShape, ShapeType2D.CIRCLE, circle), _defineProperty(_geometryShape, ShapeType2D.HEXAGON, hexagon), _defineProperty(_geometryShape, ShapeType2D.TRIANGLE, triangle), _defineProperty(_geometryShape, ShapeType2D.SQUARE, square), _defineProperty(_geometryShape, ShapeType2D.PENTAGON, pentagon), _defineProperty(_geometryShape, ShapeType3D.CYLINDER, circle), _defineProperty(_geometryShape, ShapeType3D.HEXAGONCOLUMN, hexagon), _defineProperty(_geometryShape, ShapeType3D.TRIANGLECOLUMN, triangle), _defineProperty(_geometryShape, ShapeType3D.SQUARECOLUMN, square), _defineProperty(_geometryShape, ShapeType3D.PENTAGONCOLUMN, pentagon), _geometryShape);
|
|
57
|
-
//# sourceMappingURL=Path.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/core/shape/Path.ts"],"names":["ShapeType3D","ShapeType2D","polygonPath","pointCount","start","step","Math","PI","line","i","push","path","map","t","x","sin","y","cos","circle","square","triangle","hexagon","pentagon","geometryShape","CIRCLE","HEXAGON","TRIANGLE","SQUARE","PENTAGON","CYLINDER","HEXAGONCOLUMN","TRIANGLECOLUMN","SQUARECOLUMN","PENTAGONCOLUMN"],"mappings":";;;;AAEA,WAAYA,WAAZ;;WAAYA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,KAAAA,W;;AAOZ,WAAYC,WAAZ;;WAAYA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;AAAAA,EAAAA,W;GAAAA,W,KAAAA,W;;AAaZ,OAAO,SAASC,WAAT,CAAqBC,UAArB,EAAmE;AAAA,MAA1BC,KAA0B,uEAAV,CAAU;AACxE,MAAMC,IAAI,GAAIC,IAAI,CAACC,EAAL,GAAU,CAAX,GAAgBJ,UAA7B;AACA,MAAMK,IAAI,GAAG,EAAb;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGN,UAApB,EAAgCM,CAAC,EAAjC,EAAqC;AACnCD,IAAAA,IAAI,CAACE,IAAL,CAAUL,IAAI,GAAGI,CAAP,GAAYL,KAAK,GAAGE,IAAI,CAACC,EAAd,GAAoB,EAAzC;AACD;;AACD,MAAMI,IAAW,GAAGH,IAAI,CAACI,GAAL,CAAS,UAACC,CAAD,EAAO;AAClC,QAAMC,CAAC,GAAGR,IAAI,CAACS,GAAL,CAASF,CAAC,GAAGP,IAAI,CAACC,EAAL,GAAU,CAAvB,CAAV;AACA,QAAMS,CAAC,GAAGV,IAAI,CAACW,GAAL,CAASJ,CAAC,GAAGP,IAAI,CAACC,EAAL,GAAU,CAAvB,CAAV;AACA,WAAO,CAACO,CAAD,EAAIE,CAAJ,EAAO,CAAP,CAAP;AACD,GAJmB,CAApB;AAMA,SAAOL,IAAP;AACD;AAED,OAAO,SAASO,MAAT,GAAyB;AAC9B,SAAOhB,WAAW,CAAC,EAAD,CAAlB;AACD;AACD,OAAO,SAASiB,MAAT,GAAyB;AAC9B,SAAOjB,WAAW,CAAC,CAAD,CAAlB;AACD;AACD,OAAO,SAASkB,QAAT,GAA2B;AAChC,SAAOlB,WAAW,CAAC,CAAD,CAAlB;AACD;AACD,OAAO,SAASmB,OAAT,GAA0B;AAC/B,SAAOnB,WAAW,CAAC,CAAD,EAAI,CAAJ,CAAlB;AACD;AACD,OAAO,SAASoB,QAAT,GAA2B;AAChC,SAAOpB,WAAW,CAAC,CAAD,CAAlB;AACD;AAED,OAAO,IAAMqB,aAAa,yDACvBtB,WAAW,CAACuB,MADW,EACFN,MADE,mCAEvBjB,WAAW,CAACwB,OAFW,EAEDJ,OAFC,mCAGvBpB,WAAW,CAACyB,QAHW,EAGAN,QAHA,mCAIvBnB,WAAW,CAAC0B,MAJW,EAIFR,MAJE,mCAKvBlB,WAAW,CAAC2B,QALW,EAKAN,QALA,mCAMvBtB,WAAW,CAAC6B,QANW,EAMAX,MANA,mCAOvBlB,WAAW,CAAC8B,aAPW,EAOKT,OAPL,mCAQvBrB,WAAW,CAAC+B,cARW,EAQMX,QARN,mCASvBpB,WAAW,CAACgC,YATW,EASIb,MATJ,mCAUvBnB,WAAW,CAACiC,cAVW,EAUMX,QAVN,kBAAnB","sourcesContent":["export type IPosition = [number, number, number] | [number, number];\nexport type IPath = IPosition[];\nexport enum ShapeType3D {\n CYLINDER = 'cylinder',\n SQUARECOLUMN = 'squareColumn',\n TRIANGLECOLUMN = 'triangleColumn',\n HEXAGONCOLUMN = 'hexagonColumn',\n PENTAGONCOLUMN = 'pentagonColumn',\n}\nexport enum ShapeType2D {\n CIRCLE = 'circle',\n SQUARE = 'square',\n TRIANGLE = 'triangle',\n HEXAGON = 'hexagon',\n PENTAGON = 'pentagon',\n}\n\n/**\n * 生成规则多边形顶点个数\n * @param pointCount 顶点个数 3 => 三角形\n * @param start 顶点起始角度 调整图形的方向\n */\nexport function polygonPath(pointCount: number, start: number = 0): IPath {\n const step = (Math.PI * 2) / pointCount;\n const line = [];\n for (let i = 0; i < pointCount; i++) {\n line.push(step * i + (start * Math.PI) / 12);\n }\n const path: IPath = line.map((t) => {\n const x = Math.sin(t + Math.PI / 4);\n const y = Math.cos(t + Math.PI / 4);\n return [x, y, 0];\n });\n // path.push(path[0]);\n return path;\n}\n\nexport function circle(): IPath {\n return polygonPath(30);\n}\nexport function square(): IPath {\n return polygonPath(4);\n}\nexport function triangle(): IPath {\n return polygonPath(3);\n}\nexport function hexagon(): IPath {\n return polygonPath(6, 1);\n}\nexport function pentagon(): IPath {\n return polygonPath(5);\n}\n\nexport const geometryShape = {\n [ShapeType2D.CIRCLE]: circle,\n [ShapeType2D.HEXAGON]: hexagon,\n [ShapeType2D.TRIANGLE]: triangle,\n [ShapeType2D.SQUARE]: square,\n [ShapeType2D.PENTAGON]: pentagon,\n [ShapeType3D.CYLINDER]: circle,\n [ShapeType3D.HEXAGONCOLUMN]: hexagon,\n [ShapeType3D.TRIANGLECOLUMN]: triangle,\n [ShapeType3D.SQUARECOLUMN]: square,\n [ShapeType3D.PENTAGONCOLUMN]: pentagon,\n};\n"],"file":"Path.js"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { IPath } from './Path';
|
|
2
|
-
export interface IExtrudeGeomety {
|
|
3
|
-
positions: number[];
|
|
4
|
-
index: number[];
|
|
5
|
-
normals?: number[];
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* 拉伸多边形顶点,返回拉伸后的顶点信息
|
|
9
|
-
* @param paths 路径数据组
|
|
10
|
-
* @param extrude 是否拉伸
|
|
11
|
-
*/
|
|
12
|
-
export default function extrudePolygon(path: IPath[]): IExtrudeGeomety;
|
|
13
|
-
export declare function fillPolygon(points: IPath[]): {
|
|
14
|
-
positions: number[];
|
|
15
|
-
index: number[];
|
|
16
|
-
};
|
|
17
|
-
export declare function extrude_PolygonNormal(path: IPath[], needFlat?: boolean): IExtrudeGeomety;
|
package/es/core/shape/extrude.js
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
2
|
-
import { lngLatToMeters } from '@antv/l7-utils';
|
|
3
|
-
import earcut from 'earcut';
|
|
4
|
-
import { vec3 } from 'gl-matrix';
|
|
5
|
-
export default function extrudePolygon(path) {
|
|
6
|
-
var p1 = path[0][0];
|
|
7
|
-
var p2 = path[0][path[0].length - 1];
|
|
8
|
-
|
|
9
|
-
if (p1[0] === p2[0] && p1[1] === p2[1]) {
|
|
10
|
-
path[0] = path[0].slice(0, path[0].length - 1);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
var n = path[0].length;
|
|
14
|
-
var flattengeo = earcut.flatten(path);
|
|
15
|
-
var vertices = flattengeo.vertices,
|
|
16
|
-
dimensions = flattengeo.dimensions;
|
|
17
|
-
var positions = [];
|
|
18
|
-
var indexArray = [];
|
|
19
|
-
|
|
20
|
-
for (var j = 0; j < vertices.length / dimensions; j++) {
|
|
21
|
-
if (dimensions === 2) {
|
|
22
|
-
positions.push(vertices[j * 2], vertices[j * 2 + 1], 1);
|
|
23
|
-
} else {
|
|
24
|
-
positions.push(vertices[j * 3], vertices[j * 3 + 1], 1);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
var triangles = earcut(flattengeo.vertices, flattengeo.holes, flattengeo.dimensions);
|
|
29
|
-
indexArray.push.apply(indexArray, _toConsumableArray(triangles));
|
|
30
|
-
|
|
31
|
-
var _loop = function _loop(i) {
|
|
32
|
-
var prePoint = flattengeo.vertices.slice(i * dimensions, (i + 1) * dimensions);
|
|
33
|
-
var nextPoint = flattengeo.vertices.slice((i + 1) * dimensions, (i + 2) * dimensions);
|
|
34
|
-
|
|
35
|
-
if (nextPoint.length === 0) {
|
|
36
|
-
nextPoint = flattengeo.vertices.slice(0, dimensions);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
var indexOffset = positions.length / 3;
|
|
40
|
-
positions.push(prePoint[0], prePoint[1], 1, nextPoint[0], nextPoint[1], 1, prePoint[0], prePoint[1], 0, nextPoint[0], nextPoint[1], 0);
|
|
41
|
-
indexArray.push.apply(indexArray, _toConsumableArray([0, 2, 1, 2, 3, 1].map(function (v) {
|
|
42
|
-
return v + indexOffset;
|
|
43
|
-
})));
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
for (var i = 0; i < n; i++) {
|
|
47
|
-
_loop(i);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return {
|
|
51
|
-
positions: positions,
|
|
52
|
-
index: indexArray
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
export function fillPolygon(points) {
|
|
56
|
-
var flattengeo = earcut.flatten(points);
|
|
57
|
-
var triangles = earcut(flattengeo.vertices, flattengeo.holes, flattengeo.dimensions);
|
|
58
|
-
return {
|
|
59
|
-
positions: flattengeo.vertices,
|
|
60
|
-
index: triangles
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
export function extrude_PolygonNormal(path) {
|
|
64
|
-
var needFlat = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
65
|
-
var p1 = path[0][0];
|
|
66
|
-
var p2 = path[0][path[0].length - 1];
|
|
67
|
-
|
|
68
|
-
if (p1[0] === p2[0] && p1[1] === p2[1]) {
|
|
69
|
-
path[0] = path[0].slice(0, path[0].length - 1);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
var n = path[0].length;
|
|
73
|
-
var flattengeo = earcut.flatten(path);
|
|
74
|
-
var vertices = flattengeo.vertices,
|
|
75
|
-
dimensions = flattengeo.dimensions;
|
|
76
|
-
var positions = [];
|
|
77
|
-
var indexArray = [];
|
|
78
|
-
var normals = [];
|
|
79
|
-
|
|
80
|
-
for (var j = 0; j < vertices.length / dimensions; j++) {
|
|
81
|
-
if (dimensions === 2) {
|
|
82
|
-
positions.push(vertices[j * 2], vertices[j * 2 + 1], 1, -1, -1);
|
|
83
|
-
} else {
|
|
84
|
-
positions.push(vertices[j * 3], vertices[j * 3 + 1], 1, -1, -1);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
normals.push(0, 0, 1);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
var triangles = earcut(flattengeo.vertices, flattengeo.holes, flattengeo.dimensions);
|
|
91
|
-
indexArray.push.apply(indexArray, _toConsumableArray(triangles));
|
|
92
|
-
|
|
93
|
-
var _loop2 = function _loop2(i) {
|
|
94
|
-
var prePoint = flattengeo.vertices.slice(i * dimensions, (i + 1) * dimensions);
|
|
95
|
-
var nextPoint = flattengeo.vertices.slice((i + 1) * dimensions, (i + 2) * dimensions);
|
|
96
|
-
|
|
97
|
-
if (nextPoint.length === 0) {
|
|
98
|
-
nextPoint = flattengeo.vertices.slice(0, dimensions);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
var indexOffset = positions.length / 5;
|
|
102
|
-
positions.push(prePoint[0], prePoint[1], 1, 0, 0, nextPoint[0], nextPoint[1], 1, 0.1, 0, prePoint[0], prePoint[1], 0, 0, 0.8, nextPoint[0], nextPoint[1], 0, 0.1, 0.8);
|
|
103
|
-
var normal = computeVertexNormals([nextPoint[0], nextPoint[1], 1], [prePoint[0], prePoint[1], 0], [prePoint[0], prePoint[1], 1], needFlat);
|
|
104
|
-
normals.push.apply(normals, _toConsumableArray(normal).concat(_toConsumableArray(normal), _toConsumableArray(normal), _toConsumableArray(normal)));
|
|
105
|
-
indexArray.push.apply(indexArray, _toConsumableArray([1, 2, 0, 3, 2, 1].map(function (v) {
|
|
106
|
-
return v + indexOffset;
|
|
107
|
-
})));
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
for (var i = 0; i < n; i++) {
|
|
111
|
-
_loop2(i);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
return {
|
|
115
|
-
positions: positions,
|
|
116
|
-
index: indexArray,
|
|
117
|
-
normals: normals
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
function computeVertexNormals(p1, p2, p3) {
|
|
122
|
-
var needFlat = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
123
|
-
var cb = vec3.create();
|
|
124
|
-
var ab = vec3.create();
|
|
125
|
-
var normal = vec3.create();
|
|
126
|
-
|
|
127
|
-
if (needFlat) {
|
|
128
|
-
p1 = lngLatToMeters(p1);
|
|
129
|
-
p2 = lngLatToMeters(p2);
|
|
130
|
-
p3 = lngLatToMeters(p3);
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
var pA = vec3.fromValues.apply(vec3, _toConsumableArray(p1));
|
|
134
|
-
var pB = vec3.fromValues.apply(vec3, _toConsumableArray(p2));
|
|
135
|
-
var pC = vec3.fromValues.apply(vec3, _toConsumableArray(p3));
|
|
136
|
-
vec3.sub(cb, pC, pB);
|
|
137
|
-
vec3.sub(ab, pA, pB);
|
|
138
|
-
vec3.cross(normal, cb, ab);
|
|
139
|
-
var newNormal = vec3.create();
|
|
140
|
-
vec3.normalize(newNormal, normal);
|
|
141
|
-
return newNormal;
|
|
142
|
-
}
|
|
143
|
-
//# sourceMappingURL=extrude.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/core/shape/extrude.ts"],"names":["lngLatToMeters","earcut","vec3","extrudePolygon","path","p1","p2","length","slice","n","flattengeo","flatten","vertices","dimensions","positions","indexArray","j","push","triangles","holes","i","prePoint","nextPoint","indexOffset","map","v","index","fillPolygon","points","extrude_PolygonNormal","needFlat","normals","normal","computeVertexNormals","p3","cb","create","ab","pA","fromValues","pB","pC","sub","cross","newNormal","normalize"],"mappings":"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","sourcesContent":["import { lngLatToMeters } from '@antv/l7-utils';\nimport earcut from 'earcut';\nimport { vec3 } from 'gl-matrix';\nimport { IPath } from './Path';\nexport interface IExtrudeGeomety {\n positions: number[];\n index: number[];\n normals?: number[];\n}\n/**\n * 拉伸多边形顶点,返回拉伸后的顶点信息\n * @param paths 路径数据组\n * @param extrude 是否拉伸\n */\nexport default function extrudePolygon(path: IPath[]): IExtrudeGeomety {\n const p1 = path[0][0];\n const p2 = path[0][path[0].length - 1];\n if (p1[0] === p2[0] && p1[1] === p2[1]) {\n path[0] = path[0].slice(0, path[0].length - 1);\n }\n\n const n = path[0].length;\n const flattengeo = earcut.flatten(path);\n const { vertices, dimensions } = flattengeo;\n const positions = [];\n const indexArray = [];\n // 设置顶部z值\n for (let j = 0; j < vertices.length / dimensions; j++) {\n if (dimensions === 2) {\n positions.push(vertices[j * 2], vertices[j * 2 + 1], 1);\n } else {\n positions.push(vertices[j * 3], vertices[j * 3 + 1], 1);\n }\n }\n const triangles = earcut(\n flattengeo.vertices,\n flattengeo.holes,\n flattengeo.dimensions,\n );\n indexArray.push(...triangles);\n for (let i = 0; i < n; i++) {\n const prePoint = flattengeo.vertices.slice(\n i * dimensions,\n (i + 1) * dimensions,\n );\n let nextPoint = flattengeo.vertices.slice(\n (i + 1) * dimensions,\n (i + 2) * dimensions,\n );\n if (nextPoint.length === 0) {\n nextPoint = flattengeo.vertices.slice(0, dimensions);\n }\n const indexOffset = positions.length / 3;\n positions.push(\n prePoint[0],\n prePoint[1],\n 1,\n nextPoint[0],\n nextPoint[1],\n 1,\n prePoint[0],\n prePoint[1],\n 0,\n nextPoint[0],\n nextPoint[1],\n 0,\n );\n indexArray.push(...[0, 2, 1, 2, 3, 1].map((v) => v + indexOffset));\n }\n return {\n positions,\n index: indexArray,\n };\n}\nexport function fillPolygon(points: IPath[]) {\n const flattengeo = earcut.flatten(points);\n const triangles = earcut(\n flattengeo.vertices,\n flattengeo.holes,\n flattengeo.dimensions,\n );\n return {\n positions: flattengeo.vertices,\n index: triangles,\n };\n}\n\nexport function extrude_PolygonNormal(\n path: IPath[],\n needFlat = false, // 是否需要转成平面坐标\n): IExtrudeGeomety {\n const p1 = path[0][0];\n const p2 = path[0][path[0].length - 1];\n if (p1[0] === p2[0] && p1[1] === p2[1]) {\n path[0] = path[0].slice(0, path[0].length - 1);\n }\n const n = path[0].length;\n const flattengeo = earcut.flatten(path);\n const { vertices, dimensions } = flattengeo;\n const positions = [];\n const indexArray = [];\n const normals = [];\n // 设置顶部z值 position uv\n for (let j = 0; j < vertices.length / dimensions; j++) {\n if (dimensions === 2) {\n positions.push(vertices[j * 2], vertices[j * 2 + 1], 1, -1, -1);\n } else {\n positions.push(vertices[j * 3], vertices[j * 3 + 1], 1, -1, -1);\n }\n normals.push(0, 0, 1);\n }\n const triangles = earcut(\n flattengeo.vertices,\n flattengeo.holes,\n flattengeo.dimensions,\n );\n indexArray.push(...triangles);\n for (let i = 0; i < n; i++) {\n const prePoint = flattengeo.vertices.slice(\n i * dimensions,\n (i + 1) * dimensions,\n );\n let nextPoint = flattengeo.vertices.slice(\n (i + 1) * dimensions,\n (i + 2) * dimensions,\n );\n if (nextPoint.length === 0) {\n nextPoint = flattengeo.vertices.slice(0, dimensions);\n }\n const indexOffset = positions.length / 5;\n positions.push(\n prePoint[0],\n prePoint[1],\n 1,\n 0,\n 0,\n nextPoint[0],\n nextPoint[1],\n 1,\n 0.1,\n 0,\n prePoint[0],\n prePoint[1],\n 0,\n 0,\n 0.8,\n nextPoint[0],\n nextPoint[1],\n 0,\n 0.1,\n 0.8,\n );\n const normal = computeVertexNormals(\n [nextPoint[0], nextPoint[1], 1],\n [prePoint[0], prePoint[1], 0],\n [prePoint[0], prePoint[1], 1],\n needFlat,\n );\n normals.push(...normal, ...normal, ...normal, ...normal);\n indexArray.push(...[1, 2, 0, 3, 2, 1].map((v) => v + indexOffset));\n }\n return {\n positions,\n index: indexArray,\n normals,\n };\n}\nfunction computeVertexNormals(\n p1: [number, number, number],\n p2: [number, number, number],\n p3: [number, number, number],\n needFlat: boolean = false,\n) {\n const cb = vec3.create();\n const ab = vec3.create();\n const normal = vec3.create();\n\n if (needFlat) {\n p1 = lngLatToMeters(p1) as [number, number, number];\n p2 = lngLatToMeters(p2) as [number, number, number];\n p3 = lngLatToMeters(p3) as [number, number, number];\n }\n const pA = vec3.fromValues(...p1);\n const pB = vec3.fromValues(...p2);\n const pC = vec3.fromValues(...p3);\n vec3.sub(cb, pC, pB);\n vec3.sub(ab, pA, pB);\n vec3.cross(normal, cb, ab);\n const newNormal = vec3.create();\n vec3.normalize(newNormal, normal);\n\n return newNormal;\n}\n"],"file":"extrude.js"}
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { IEncodeFeature } from '@antv/l7-core';
|
|
2
|
-
/**
|
|
3
|
-
* 计算2D 填充点图顶点
|
|
4
|
-
* @param feature 映射feature
|
|
5
|
-
*/
|
|
6
|
-
export declare function PointFillTriangulation(feature: IEncodeFeature): {
|
|
7
|
-
vertices: number[];
|
|
8
|
-
indices: number[];
|
|
9
|
-
size: number;
|
|
10
|
-
};
|
|
11
|
-
/**
|
|
12
|
-
* 计算2D 填充点图顶点 (地球模式)
|
|
13
|
-
* @param feature 映射feature
|
|
14
|
-
*/
|
|
15
|
-
export declare function GlobelPointFillTriangulation(feature: IEncodeFeature): {
|
|
16
|
-
vertices: number[];
|
|
17
|
-
indices: number[];
|
|
18
|
-
size: number;
|
|
19
|
-
};
|
|
20
|
-
/**
|
|
21
|
-
* 计算3D 拉伸点图
|
|
22
|
-
* @param feature 映射feature
|
|
23
|
-
*/
|
|
24
|
-
export declare function PointExtrudeTriangulation(feature: IEncodeFeature): {
|
|
25
|
-
vertices: number[];
|
|
26
|
-
indices: number[];
|
|
27
|
-
normals: number[] | undefined;
|
|
28
|
-
size: number;
|
|
29
|
-
};
|
|
30
|
-
/**
|
|
31
|
-
* 计算图片标注
|
|
32
|
-
* @param feature 映射feature
|
|
33
|
-
*/
|
|
34
|
-
export declare function PointImageTriangulation(feature: IEncodeFeature): {
|
|
35
|
-
vertices: number[];
|
|
36
|
-
indices: number[];
|
|
37
|
-
size: number;
|
|
38
|
-
};
|
|
39
|
-
/**
|
|
40
|
-
* 线三角化
|
|
41
|
-
* @param feature 映射feature
|
|
42
|
-
*/
|
|
43
|
-
export declare function LineTriangulation(feature: IEncodeFeature): {
|
|
44
|
-
vertices: number[];
|
|
45
|
-
indices: number[];
|
|
46
|
-
normals: number[];
|
|
47
|
-
size: number;
|
|
48
|
-
};
|
|
49
|
-
export declare function polygonTriangulation(feature: IEncodeFeature): {
|
|
50
|
-
indices: number[];
|
|
51
|
-
vertices: number[];
|
|
52
|
-
size: number;
|
|
53
|
-
};
|
|
54
|
-
export declare function PolygonExtrudeTriangulation(feature: IEncodeFeature): {
|
|
55
|
-
vertices: number[];
|
|
56
|
-
indices: number[];
|
|
57
|
-
normals: number[] | undefined;
|
|
58
|
-
size: number;
|
|
59
|
-
};
|
|
60
|
-
export declare function HeatmapGridTriangulation(feature: IEncodeFeature): {
|
|
61
|
-
vertices: number[];
|
|
62
|
-
indices: number[];
|
|
63
|
-
size: number;
|
|
64
|
-
};
|
|
65
|
-
/**
|
|
66
|
-
* 图片图层顶点构造
|
|
67
|
-
* @param feature 数据
|
|
68
|
-
*/
|
|
69
|
-
export declare function RasterImageTriangulation(feature: IEncodeFeature): {
|
|
70
|
-
vertices: number[];
|
|
71
|
-
indices: number[];
|
|
72
|
-
size: number;
|
|
73
|
-
};
|
|
74
|
-
/**
|
|
75
|
-
* 计算3D弧线顶点
|
|
76
|
-
* @param feature 映射数据
|
|
77
|
-
* @param segNum 弧线线段数
|
|
78
|
-
*/
|
|
79
|
-
export declare function LineArcTriangulation(feature: IEncodeFeature, segmentNumber?: number): {
|
|
80
|
-
vertices: number[];
|
|
81
|
-
indices: number[];
|
|
82
|
-
size: number;
|
|
83
|
-
};
|
|
84
|
-
/**
|
|
85
|
-
* 构建热力图密度图的顶点
|
|
86
|
-
* @param feature
|
|
87
|
-
* @returns
|
|
88
|
-
*/
|
|
89
|
-
export declare function HeatmapTriangulation(feature: IEncodeFeature): {
|
|
90
|
-
vertices: number[];
|
|
91
|
-
indices: number[];
|
|
92
|
-
size: number;
|
|
93
|
-
};
|
|
94
|
-
/**
|
|
95
|
-
* 构建地球三角网格
|
|
96
|
-
* @returns
|
|
97
|
-
*/
|
|
98
|
-
export declare function earthTriangulation(): {
|
|
99
|
-
vertices: number[];
|
|
100
|
-
indices: number[];
|
|
101
|
-
size: number;
|
|
102
|
-
normals: number[];
|
|
103
|
-
};
|
|
104
|
-
export declare function earthOuterTriangulation(): {
|
|
105
|
-
vertices: number[];
|
|
106
|
-
indices: number[];
|
|
107
|
-
size: number;
|
|
108
|
-
normals: number[];
|
|
109
|
-
};
|