@antv/l7-layers 2.8.33 → 2.8.36
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/es/Geometry/index.d.ts +1 -1
- package/es/Geometry/index.js +4 -1
- package/es/Geometry/index.js.map +1 -1
- package/es/Geometry/models/billboard.d.ts +26 -0
- package/es/Geometry/models/billboard.js +213 -0
- package/es/Geometry/models/billboard.js.map +1 -0
- package/es/Geometry/models/index.d.ts +1 -1
- package/es/Geometry/models/index.js +3 -1
- package/es/Geometry/models/index.js.map +1 -1
- package/es/Geometry/models/sprite.js +2 -2
- package/es/core/BaseLayer.d.ts +2 -2
- package/es/core/BaseLayer.js.map +1 -1
- package/es/core/LayerGroup.d.ts +2 -1
- package/es/core/LayerGroup.js +5 -0
- package/es/core/LayerGroup.js.map +1 -1
- package/es/core/interface.d.ts +30 -2
- package/es/core/interface.js.map +1 -1
- package/es/heatmap/index.d.ts +2 -0
- package/es/heatmap/index.js +9 -0
- package/es/heatmap/index.js.map +1 -1
- package/es/heatmap/models/heatmap.js +1 -0
- package/es/heatmap/models/heatmap.js.map +1 -1
- package/es/image/models/image.js.map +1 -1
- package/es/index.d.ts +2 -2
- package/es/index.js +2 -2
- package/es/index.js.map +1 -1
- package/es/line/index.d.ts +1 -1
- package/es/line/index.js +1 -0
- package/es/line/index.js.map +1 -1
- package/es/line/models/arc.js +4 -4
- package/es/line/models/arc.js.map +1 -1
- package/es/line/models/arc_3d.js +4 -5
- package/es/line/models/arc_3d.js.map +1 -1
- package/es/line/models/arcmini.js +5 -5
- package/es/line/models/arcmini.js.map +1 -1
- package/es/line/models/great_circle.js +3 -3
- package/es/line/models/great_circle.js.map +1 -1
- package/es/line/models/index.d.ts +1 -1
- package/es/line/models/index.js +3 -1
- package/es/line/models/index.js.map +1 -1
- package/es/line/models/line.js +3 -3
- package/es/line/models/line.js.map +1 -1
- package/es/line/models/linearline.d.ts +20 -0
- package/es/line/models/linearline.js +267 -0
- package/es/line/models/linearline.js.map +1 -0
- package/es/line/models/simpleLine.js +8 -8
- package/es/line/models/simpleLine.js.map +1 -1
- package/es/line/models/wall.js +5 -5
- package/es/line/models/wall.js.map +1 -1
- package/es/mask/index.d.ts +1 -4
- package/es/mask/index.js.map +1 -1
- package/es/mask/models/fill.js.map +1 -1
- package/es/plugins/FeatureScalePlugin.js.map +1 -1
- package/es/point/models/extrude.js +3 -4
- package/es/point/models/extrude.js.map +1 -1
- package/es/point/models/fill.js +3 -4
- package/es/point/models/fill.js.map +1 -1
- package/es/point/models/fillmage.d.ts +1 -1
- package/es/point/models/fillmage.js +6 -21
- package/es/point/models/fillmage.js.map +1 -1
- package/es/point/models/icon-font.js +1 -1
- package/es/point/models/image.js +4 -4
- package/es/point/models/image.js.map +1 -1
- package/es/point/models/normal.js +2 -2
- package/es/point/models/normal.js.map +1 -1
- package/es/point/models/radar.js +5 -18
- package/es/point/models/radar.js.map +1 -1
- package/es/point/models/simplePoint.js +5 -6
- package/es/point/models/simplePoint.js.map +1 -1
- package/es/point/models/text.js +4 -4
- package/es/point/models/text.js.map +1 -1
- package/es/polygon/models/extrude.js +2 -3
- package/es/polygon/models/extrude.js.map +1 -1
- package/es/polygon/models/fill.d.ts +1 -0
- package/es/polygon/models/fill.js +37 -12
- package/es/polygon/models/fill.js.map +1 -1
- package/es/polygon/models/ocean.js +3 -4
- package/es/polygon/models/ocean.js.map +1 -1
- package/es/polygon/models/water.js +3 -4
- package/es/polygon/models/water.js.map +1 -1
- package/es/raster/index.d.ts +3 -3
- package/es/raster/index.js +16 -6
- package/es/raster/index.js.map +1 -1
- package/es/raster/models/index.d.ts +1 -1
- package/es/raster/models/index.js +3 -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.js +2 -0
- package/es/raster/models/raster.js.map +1 -1
- package/es/wind/index.d.ts +1 -17
- package/es/wind/index.js.map +1 -1
- package/es/wind/models/utils.d.ts +12 -12
- package/es/wind/models/utils.js +6 -5
- package/es/wind/models/utils.js.map +1 -1
- package/es/wind/models/wind.js.map +1 -1
- package/es/wind/models/windRender.js.map +1 -1
- package/lib/Geometry/index.js +4 -1
- package/lib/Geometry/index.js.map +1 -1
- package/lib/Geometry/models/billboard.js +227 -0
- package/lib/Geometry/models/billboard.js.map +1 -0
- package/lib/Geometry/models/index.js +4 -1
- package/lib/Geometry/models/index.js.map +1 -1
- package/lib/Geometry/models/sprite.js +2 -2
- package/lib/core/BaseLayer.js.map +1 -1
- package/lib/core/LayerGroup.js +5 -0
- package/lib/core/LayerGroup.js.map +1 -1
- package/lib/core/interface.js.map +1 -1
- package/lib/heatmap/index.js +9 -0
- package/lib/heatmap/index.js.map +1 -1
- package/lib/heatmap/models/heatmap.js +1 -0
- package/lib/heatmap/models/heatmap.js.map +1 -1
- package/lib/image/models/image.js.map +1 -1
- package/lib/index.js +29 -8
- package/lib/index.js.map +1 -1
- package/lib/line/index.js +1 -0
- package/lib/line/index.js.map +1 -1
- package/lib/line/models/arc.js +4 -5
- package/lib/line/models/arc.js.map +1 -1
- package/lib/line/models/arc_3d.js +4 -6
- package/lib/line/models/arc_3d.js.map +1 -1
- package/lib/line/models/arcmini.js +5 -6
- package/lib/line/models/arcmini.js.map +1 -1
- package/lib/line/models/great_circle.js +3 -4
- package/lib/line/models/great_circle.js.map +1 -1
- package/lib/line/models/index.js +4 -1
- package/lib/line/models/index.js.map +1 -1
- package/lib/line/models/line.js +3 -4
- package/lib/line/models/line.js.map +1 -1
- package/lib/line/models/linearline.js +282 -0
- package/lib/line/models/linearline.js.map +1 -0
- package/lib/line/models/simpleLine.js +8 -9
- package/lib/line/models/simpleLine.js.map +1 -1
- package/lib/line/models/wall.js +5 -6
- package/lib/line/models/wall.js.map +1 -1
- package/lib/mask/index.js.map +1 -1
- package/lib/mask/models/fill.js.map +1 -1
- package/lib/plugins/FeatureScalePlugin.js.map +1 -1
- package/lib/point/models/extrude.js +3 -5
- package/lib/point/models/extrude.js.map +1 -1
- package/lib/point/models/fill.js +3 -5
- package/lib/point/models/fill.js.map +1 -1
- package/lib/point/models/fillmage.js +7 -23
- package/lib/point/models/fillmage.js.map +1 -1
- package/lib/point/models/icon-font.js +1 -1
- package/lib/point/models/image.js +4 -5
- package/lib/point/models/image.js.map +1 -1
- package/lib/point/models/normal.js +2 -3
- package/lib/point/models/normal.js.map +1 -1
- package/lib/point/models/radar.js +5 -19
- package/lib/point/models/radar.js.map +1 -1
- package/lib/point/models/simplePoint.js +5 -7
- package/lib/point/models/simplePoint.js.map +1 -1
- package/lib/point/models/text.js +4 -5
- package/lib/point/models/text.js.map +1 -1
- package/lib/polygon/models/extrude.js +2 -4
- package/lib/polygon/models/extrude.js.map +1 -1
- package/lib/polygon/models/fill.js +37 -13
- package/lib/polygon/models/fill.js.map +1 -1
- package/lib/polygon/models/ocean.js +3 -5
- package/lib/polygon/models/ocean.js.map +1 -1
- package/lib/polygon/models/water.js +3 -5
- package/lib/polygon/models/water.js.map +1 -1
- package/lib/raster/index.js +16 -6
- package/lib/raster/index.js.map +1 -1
- package/lib/raster/models/index.js +4 -1
- 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 +2 -0
- package/lib/raster/models/raster.js.map +1 -1
- package/lib/wind/index.js.map +1 -1
- package/lib/wind/models/utils.js +6 -5
- package/lib/wind/models/utils.js.map +1 -1
- package/lib/wind/models/wind.js.map +1 -1
- package/lib/wind/models/windRender.js.map +1 -1
- package/package.json +5 -6
- package/es/imagetile/index.d.ts +0 -22
- package/es/imagetile/index.js +0 -82
- package/es/imagetile/index.js.map +0 -1
- package/es/imagetile/models/imagetile.d.ts +0 -12
- package/es/imagetile/models/imagetile.js +0 -133
- package/es/imagetile/models/imagetile.js.map +0 -1
- package/es/imagetile/models/index.d.ts +0 -5
- package/es/imagetile/models/index.js +0 -6
- package/es/imagetile/models/index.js.map +0 -1
- package/es/imagetile/utils/ImageTile.d.ts +0 -20
- package/es/imagetile/utils/ImageTile.js +0 -92
- package/es/imagetile/utils/ImageTile.js.map +0 -1
- package/es/imagetile/utils/Tile.d.ts +0 -27
- package/es/imagetile/utils/Tile.js +0 -313
- package/es/imagetile/utils/Tile.js.map +0 -1
- package/es/imagetile/utils/lruCache.d.ts +0 -20
- package/es/imagetile/utils/lruCache.js +0 -105
- package/es/imagetile/utils/lruCache.js.map +0 -1
- package/es/imagetile/utils/tileCache.d.ts +0 -8
- package/es/imagetile/utils/tileCache.js +0 -50
- package/es/imagetile/utils/tileCache.js.map +0 -1
- package/lib/imagetile/index.js +0 -95
- package/lib/imagetile/index.js.map +0 -1
- package/lib/imagetile/models/imagetile.js +0 -146
- package/lib/imagetile/models/imagetile.js.map +0 -1
- package/lib/imagetile/models/index.js +0 -17
- package/lib/imagetile/models/index.js.map +0 -1
- package/lib/imagetile/utils/ImageTile.js +0 -101
- package/lib/imagetile/utils/ImageTile.js.map +0 -1
- package/lib/imagetile/utils/Tile.js +0 -316
- package/lib/imagetile/utils/Tile.js.map +0 -1
- package/lib/imagetile/utils/lruCache.js +0 -109
- package/lib/imagetile/utils/lruCache.js.map +0 -1
- package/lib/imagetile/utils/tileCache.js +0 -58
- package/lib/imagetile/utils/tileCache.js.map +0 -1
package/lib/core/LayerGroup.js
CHANGED
|
@@ -70,6 +70,11 @@ var LayerGroup = function (_BaseLayer) {
|
|
|
70
70
|
});
|
|
71
71
|
this.layerChildren = [];
|
|
72
72
|
}
|
|
73
|
+
}, {
|
|
74
|
+
key: "hasChild",
|
|
75
|
+
value: function hasChild(layer) {
|
|
76
|
+
return this.layerChildren.includes(layer);
|
|
77
|
+
}
|
|
73
78
|
}]);
|
|
74
79
|
return LayerGroup;
|
|
75
80
|
}(_BaseLayer2.default);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/core/LayerGroup.ts"],"names":["LayerGroup","layer","layerChildren","push","layerIndex","indexOf","splice","destroy","forEach","BaseLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;;;;;;IAIqBA,U;;;;;;;;;;;;;;;+
|
|
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;;IA2LAC,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 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"}
|
package/lib/heatmap/index.js
CHANGED
|
@@ -87,6 +87,15 @@ var HeatMapLayer = function (_BaseLayer) {
|
|
|
87
87
|
});
|
|
88
88
|
return this;
|
|
89
89
|
}
|
|
90
|
+
}, {
|
|
91
|
+
key: "updateModelData",
|
|
92
|
+
value: function updateModelData(data) {
|
|
93
|
+
if (data.attributes && data.elements) {
|
|
94
|
+
this.models[0].updateAttributesAndElements(data.attributes, data.elements);
|
|
95
|
+
} else {
|
|
96
|
+
console.warn('data error');
|
|
97
|
+
}
|
|
98
|
+
}
|
|
90
99
|
}, {
|
|
91
100
|
key: "getConfigSchema",
|
|
92
101
|
value: function getConfigSchema() {
|
package/lib/heatmap/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/heatmap/index.ts"],"names":["HeatMapLayer","shape","getModelType","layerModel","HeatMapModels","models","initModels","buildModels","render","layerModelNeedUpdate","forEach","model","draw","uniforms","getUninforms","properties","opacity","type","minimum","maximum","shapeAttribute","styleAttributeService","getLayerStyleAttribute","getLayerConfig","shape3d","source","getSource","sourceType","
|
|
1
|
+
{"version":3,"sources":["../../src/heatmap/index.ts"],"names":["HeatMapLayer","shape","getModelType","layerModel","HeatMapModels","models","initModels","buildModels","render","layerModelNeedUpdate","forEach","model","draw","uniforms","getUninforms","data","attributes","elements","updateAttributesAndElements","console","warn","properties","opacity","type","minimum","maximum","shapeAttribute","styleAttributeService","getLayerStyleAttribute","getLayerConfig","shape3d","source","getSource","sourceType","scale","field","indexOf","BaseLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AACA;;AAEA;;;;;;IACqBA,Y;;;;;;;;;;;;;;;uFACG,c;;;;;;WAEtB,uBAAqB;AACnB,UAAMC,KAAK,GAAG,KAAKC,YAAL,EAAd;AACA,WAAKC,UAAL,GAAkB,IAAIC,gBAAcH,KAAd,CAAJ,CAAyB,IAAzB,CAAlB;AACA,WAAKI,MAAL,GAAc,KAAKF,UAAL,CAAgBG,UAAhB,EAAd;AACD;;;WACD,yBAAuB;AACrB,WAAKD,MAAL,GAAc,KAAKF,UAAL,CAAgBI,WAAhB,EAAd;AACD;;;WACD,wBAAsB;AAAA;;AACpB,UAAMN,KAAK,GAAG,KAAKC,YAAL,EAAd;;AACA,UAAID,KAAK,KAAK,SAAd,EAAyB;AACvB,YAAI,KAAKE,UAAT,EAAqB;AACnB,eAAKA,UAAL,CAAgBK,MAAhB;AACD;;AAED,eAAO,IAAP;AACD;;AACD,UAAI,KAAKC,oBAAT,EAA+B;AAC7B,aAAKJ,MAAL,GAAc,KAAKF,UAAL,CAAgBI,WAAhB,EAAd;AACA,aAAKE,oBAAL,GAA4B,KAA5B;AACD;;AACD,WAAKJ,MAAL,CAAYK,OAAZ,CAAoB,UAACC,KAAD;AAAA,eAClBA,KAAK,CAACC,IAAN,CAAW;AACTC,UAAAA,QAAQ,EAAE,MAAI,CAACV,UAAL,CAAgBW,YAAhB;AADD,SAAX,CADkB;AAAA,OAApB;AAKA,aAAO,IAAP;AACD;;;WAED,yBAAuBC,IAAvB,EAAoD;AAClD,UAAIA,IAAI,CAACC,UAAL,IAAmBD,IAAI,CAACE,QAA5B,EAAsC;AACpC,aAAKZ,MAAL,CAAY,CAAZ,EAAea,2BAAf,CACEH,IAAI,CAACC,UADP,EAEED,IAAI,CAACE,QAFP;AAID,OALD,MAKO;AACLE,QAAAA,OAAO,CAACC,IAAR,CAAa,YAAb;AACD;AACF;;;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;;;WAED,wBAA2C;AAAA;;AACzC,UAAMC,cAAc,GAAG,KAAKC,qBAAL,CAA2BC,sBAA3B,CACrB,OADqB,CAAvB;;AAGA,iCAAoB,KAAKC,cAAL,EAApB;AAAA,UAAQC,OAAR,wBAAQA,OAAR;;AACA,UAAMC,MAAM,GAAG,KAAKC,SAAL,EAAf;AACA,UAAMC,UAAU,GAAGF,MAAM,CAAChB,IAAP,CAAYQ,IAA/B;AACA,UAAMtB,KAAK,GACT,CAACyB,cAAD,aAACA,cAAD,gDAACA,cAAc,CAAEQ,KAAjB,0DAAC,sBAAuBC,KAAxB,KAAsD,SADxD;;AAEA,UAAIlC,KAAK,KAAK,SAAV,IAAuBA,KAAK,KAAK,WAArC,EAAkD;AAChD,eAAO,SAAP;AACD;;AACD,UAAIgC,UAAU,KAAK,SAAnB,EAA8B;AAC5B,eAAO,CAAAH,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEM,OAAT,CAAiBnC,KAAjB,OAA4B,CAAC,CAA7B,GAAiC,SAAjC,GAA6C,QAApD;AACD;;AACD,UAAIgC,UAAU,KAAK,MAAnB,EAA2B;AACzB,eAAO,CAAAH,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEM,OAAT,CAAiBnC,KAAjB,OAA4B,CAAC,CAA7B,GAAiC,MAAjC,GAA0C,QAAjD;AACD;;AACD,aAAO,SAAP;AACD;;;EA1EuCoC,mB","sourcesContent":["import { IAttrubuteAndElements } from '@antv/l7-core';\nimport BaseLayer from '../core/BaseLayer';\nimport { IHeatMapLayerStyleOptions } from '../core/interface';\nimport HeatMapModels, { HeatMapModelType } from './models';\nexport default class HeatMapLayer extends BaseLayer<IHeatMapLayerStyleOptions> {\n public type: string = 'HeatMapLayer';\n\n public buildModels() {\n const shape = this.getModelType();\n this.layerModel = new HeatMapModels[shape](this);\n this.models = this.layerModel.initModels();\n }\n public rebuildModels() {\n this.models = this.layerModel.buildModels();\n }\n public renderModels() {\n const shape = this.getModelType();\n if (shape === 'heatmap') {\n if (this.layerModel) {\n this.layerModel.render(); // 独立的渲染流程\n }\n\n return this;\n }\n if (this.layerModelNeedUpdate) {\n this.models = this.layerModel.buildModels();\n this.layerModelNeedUpdate = false;\n }\n this.models.forEach((model) =>\n model.draw({\n uniforms: this.layerModel.getUninforms(),\n }),\n );\n return this;\n }\n\n public updateModelData(data: IAttrubuteAndElements) {\n if (data.attributes && data.elements) {\n this.models[0].updateAttributesAndElements(\n data.attributes,\n data.elements,\n );\n } else {\n console.warn('data error');\n }\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 getModelType(): HeatMapModelType {\n const shapeAttribute = this.styleAttributeService.getLayerStyleAttribute(\n 'shape',\n );\n const { shape3d } = this.getLayerConfig();\n const source = this.getSource();\n const sourceType = source.data.type;\n const shape =\n (shapeAttribute?.scale?.field as HeatMapModelType) || 'heatmap';\n if (shape === 'heatmap' || shape === 'heatmap3d') {\n return 'heatmap';\n }\n if (sourceType === 'hexagon') {\n return shape3d?.indexOf(shape) === -1 ? 'hexagon' : 'grid3d';\n }\n if (sourceType === 'grid') {\n return shape3d?.indexOf(shape) === -1 ? 'grid' : 'grid3d';\n }\n return 'heatmap';\n }\n}\n"],"file":"index.js"}
|
|
@@ -190,6 +190,7 @@ var HeatMapModel = (_dec = (0, _inversify.injectable)(), _dec(_class = function
|
|
|
190
190
|
}, {
|
|
191
191
|
key: "buildHeatMapIntensity",
|
|
192
192
|
value: function buildHeatMapIntensity() {
|
|
193
|
+
this.layer.triangulation = _triangulation.HeatmapTriangulation;
|
|
193
194
|
return this.layer.buildLayerModel({
|
|
194
195
|
moduleName: 'heatmapintensity',
|
|
195
196
|
vertexShader: heatmapFramebufferVert,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/heatmap/models/heatmap.ts"],"names":["HeatMapModel","rendererService","clear","useFramebuffer","heatmapFramerBuffer","color","depth","stencil","framebuffer","drawIntensityMode","layer","styleNeedUpdate","updateColorTexture","shapeType","drawColorMode","draw3DHeatMap","Error","createFramebuffer","getViewportSize","createTexture2D","shapeAttr","styleAttributeService","getLayerStyleAttribute","scale","field","intensityModel","buildHeatMapIntensity","colorModel","buildHeatmapColor","build3dHeatMap","width","height","Math","floor","wrapS","gl","CLAMP_TO_EDGE","wrapT","min","LINEAR","mag","initModels","registerStyleAttribute","name","type","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","data","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","buildLayerModel","moduleName","vertexShader","heatmapFramebufferVert","fragmentShader","heatmapFramebufferFrag","triangulation","HeatmapTriangulation","enable","cull","face","mapService","version","blend","func","srcRGB","ONE","srcAlpha","dstRGB","dstAlpha","getLayerConfig","mask","maskInside","shaderModuleService","registerModule","vs","heatmapColorVert","fs","heatmapColorFrag","getModule","uniforms","createAttribute","createElements","createBuffer","createModel","attributes","a_Position","a_Uv","getBlend","count","elements","UNSIGNED_INT","opacity","intensity","radius","draw","u_opacity","u_radius","u_intensity","u_colorTexture","colorTexture","u_texture","invert","mat4","create","cameraService","getViewProjectionMatrixUncentered","u_ViewProjectionMatrixUncentered","u_InverseViewProjectionMatrix","heatmap3DVert","heatmap3DFrag","vertices","uvs","primitive","TRIANGLES","SRC_ALPHA","ONE_MINUS_SRC_ALPHA","indices","length","texture","destroy","rampColors","imageData","Uint8Array","NEAREST","flipY","BaseModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AASA;;AAMA;;AACA;;AACA;;AACA;;AAEA;;AAWA;;;;;;;;;;;;;;;;;;IAEqBA,Y,WADpB,4B;;;;;;;;;;;;;;;;;;;;;;;;;;WASC,kBAAgB;AAAA;;AACd,kCAAkC,KAAKC,eAAvC;AAAA,UAAQC,KAAR,yBAAQA,KAAR;AAAA,UAAeC,cAAf,yBAAeA,cAAf;AACAA,MAAAA,cAAc,CAAC,KAAKC,mBAAN,EAA2B,YAAM;AAC7CF,QAAAA,KAAK,CAAC;AACJG,UAAAA,KAAK,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CADH;AAEJC,UAAAA,KAAK,EAAE,CAFH;AAGJC,UAAAA,OAAO,EAAE,CAHL;AAIJC,UAAAA,WAAW,EAAE,MAAI,CAACJ;AAJd,SAAD,CAAL;;AAMA,QAAA,MAAI,CAACK,iBAAL;AACD,OARa,CAAd;;AASA,UAAI,KAAKC,KAAL,CAAWC,eAAf,EAAgC;AAC9B,aAAKC,kBAAL;AACD;;AACD,WAAKC,SAAL,KAAmB,SAAnB,GAA+B,KAAKC,aAAL,EAA/B,GAAsD,KAAKC,aAAL,EAAtD;AACD;;;WAED,wBAAqC;AACnC,YAAM,IAAIC,KAAJ,CAAU,yBAAV,CAAN;AACD;;;WAED,sBAA8B;AAAA;;AAC5B,mCAMI,KAAKf,eANT;AAAA,UACEgB,iBADF,0BACEA,iBADF;AAAA,UAEEf,KAFF,0BAEEA,KAFF;AAAA,UAGEgB,eAHF,0BAGEA,eAHF;AAAA,UAIEC,eAJF,0BAIEA,eAJF;AAAA,UAKEhB,cALF,0BAKEA,cALF;AAOA,UAAMiB,SAAS,GAAG,KAAKC,qBAAL,CAA2BC,sBAA3B,CAChB,OADgB,CAAlB;AAGA,UAAMT,SAAS,GAAG,CAAAO,SAAS,SAAT,IAAAA,SAAS,WAAT,gCAAAA,SAAS,CAAEG,KAAX,sEAAkBC,KAAlB,KAA2B,SAA7C;AACA,WAAKX,SAAL,GAAiBA,SAAjB;AAEA,WAAKY,cAAL,GAAsB,KAAKC,qBAAL,EAAtB;AAEA,WAAKC,UAAL,GACEd,SAAS,KAAK,SAAd,GACI,KAAKe,iBAAL,EADJ,GAEI,KAAKC,cAAL,EAHN;;AAKA,6BAA0BX,eAAe,EAAzC;AAAA,UAAQY,KAAR,oBAAQA,KAAR;AAAA,UAAeC,MAAf,oBAAeA,MAAf;;AAGA,WAAK3B,mBAAL,GAA2Ba,iBAAiB,CAAC;AAC3CZ,QAAAA,KAAK,EAAEc,eAAe,CAAC;AACrBW,UAAAA,KAAK,EAAEE,IAAI,CAACC,KAAL,CAAWH,KAAK,GAAG,CAAnB,CADc;AAErBC,UAAAA,MAAM,EAAEC,IAAI,CAACC,KAAL,CAAWF,MAAM,GAAG,CAApB,CAFa;AAGrBG,UAAAA,KAAK,EAAEC,WAAGC,aAHW;AAIrBC,UAAAA,KAAK,EAAEF,WAAGC,aAJW;AAKrBE,UAAAA,GAAG,EAAEH,WAAGI,MALa;AAMrBC,UAAAA,GAAG,EAAEL,WAAGI;AANa,SAAD,CADqB;AAS3CjC,QAAAA,KAAK,EAAE;AAToC,OAAD,CAA5C;AAYA,WAAKM,kBAAL;AAEA,aAAO,CAAC,KAAKa,cAAN,EAAsB,KAAKE,UAA3B,CAAP;AACD;;;WAED,uBAA+B;AAC7B,aAAO,KAAKc,UAAL,EAAP;AACD;;;WAED,qCAAsC;AACpC,WAAKpB,qBAAL,CAA2BqB,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,KAD0C;AAEhDC,QAAAA,IAAI,EAAEC,sBAAcC,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVJ,UAAAA,IAAI,EAAE,OADI;AAEVK,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAEd,WAAGe,YAFJ;AAGNC,YAAAA,IAAI,EAAE,EAHA;AAINP,YAAAA,IAAI,EAAET,WAAGiB;AAJH,WAFE;AAQVC,UAAAA,IAAI,EAAE,CARI;AASVC,UAAAA,MAAM,EAAE,gBACNC,OADM,EAENC,UAFM,EAGNC,MAHM,EAINC,YAJM,EAKH;AACH,mBAAO,CAACD,MAAM,CAAC,CAAD,CAAP,EAAYA,MAAM,CAAC,CAAD,CAAlB,CAAP;AACD;AAhBS;AAHoC,OAAlD;AAwBA,WAAKpC,qBAAL,CAA2BqB,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,MAD0C;AAEhDC,QAAAA,IAAI,EAAEC,sBAAcC,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVJ,UAAAA,IAAI,EAAE,QADI;AAEVK,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAEd,WAAGe,YAFJ;AAGNC,YAAAA,IAAI,EAAE,EAHA;AAINP,YAAAA,IAAI,EAAET,WAAGiB;AAJH,WAFE;AAQVC,UAAAA,IAAI,EAAE,CARI;AASVC,UAAAA,MAAM,EAAE,gBACNC,OADM,EAENC,UAFM,EAGNC,MAHM,EAINC,YAJM,EAKH;AACH,gCAAqBH,OAArB,CAAQF,IAAR;AAAA,gBAAQA,IAAR,8BAAe,CAAf;AACA,mBAAO,CAACA,IAAD,CAAP;AACD;AAjBS;AAHoC,OAAlD;AAuBD;;;WACD,iCAAwC;AACtC,aAAO,KAAK3C,KAAL,CAAWiD,eAAX,CAA2B;AAChCC,QAAAA,UAAU,EAAE,kBADoB;AAEhCC,QAAAA,YAAY,EAAEC,sBAFkB;AAGhCC,QAAAA,cAAc,EAAEC,sBAHgB;AAIhCC,QAAAA,aAAa,EAAEC,mCAJiB;AAKhC5D,QAAAA,KAAK,EAAE;AACL6D,UAAAA,MAAM,EAAE;AADH,SALyB;AAQhCC,QAAAA,IAAI,EAAE;AACJD,UAAAA,MAAM,EAAE,IADJ;AAEJE,UAAAA,IAAI,EAAE,0BAAY,KAAKC,UAAL,CAAgBC,OAA5B;AAFF,SAR0B;AAYhCC,QAAAA,KAAK,EAAE;AACLL,UAAAA,MAAM,EAAE,IADH;AAELM,UAAAA,IAAI,EAAE;AACJC,YAAAA,MAAM,EAAEvC,WAAGwC,GADP;AAEJC,YAAAA,QAAQ,EAAE,CAFN;AAGJC,YAAAA,MAAM,EAAE1C,WAAGwC,GAHP;AAIJG,YAAAA,QAAQ,EAAE;AAJN;AAFD;AAZyB,OAA3B,CAAP;AAsBD;;;WAED,6BAAoC;AAClC,iBAGI,KAAKpE,KAAL,CAAWqE,cAAX,EAHJ;AAAA,2BACEC,IADF;AAAA,UACEA,IADF,0BACS,KADT;AAAA,iCAEEC,UAFF;AAAA,UAEEA,UAFF,gCAEe,IAFf;;AAIA,WAAKC,mBAAL,CAAyBC,cAAzB,CAAwC,cAAxC,EAAwD;AACtDC,QAAAA,EAAE,EAAEC,gBADkD;AAEtDC,QAAAA,EAAE,EAAEC;AAFkD,OAAxD;;AAKA,kCAA6B,KAAKL,mBAAL,CAAyBM,SAAzB,CAC3B,cAD2B,CAA7B;AAAA,UAAQJ,EAAR,yBAAQA,EAAR;AAAA,UAAYE,EAAZ,yBAAYA,EAAZ;AAAA,UAAgBG,QAAhB,yBAAgBA,QAAhB;;AAGA,mCAKI,KAAKxF,eALT;AAAA,UACEyF,eADF,0BACEA,eADF;AAAA,UAEEC,cAFF,0BAEEA,cAFF;AAAA,UAGEC,YAHF,0BAGEA,YAHF;AAAA,UAIEC,WAJF,0BAIEA,WAJF;AAMA,aAAOA,WAAW,CAAC;AACjBT,QAAAA,EAAE,EAAFA,EADiB;AAEjBE,QAAAA,EAAE,EAAFA,EAFiB;AAGjBQ,QAAAA,UAAU,EAAE;AACVC,UAAAA,UAAU,EAAEL,eAAe,CAAC;AAC1B1C,YAAAA,MAAM,EAAE4C,YAAY,CAAC;AACnBzC,cAAAA,IAAI,EAAE,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,CAAX,EAAc,CAAd,EAAiB,CAAjB,EAAoB,CAAC,CAArB,EAAwB,CAAC,CAAzB,EAA4B,CAA5B,EAA+B,CAA/B,EAAkC,CAAC,CAAnC,EAAsC,CAAtC,CADa;AAEnBP,cAAAA,IAAI,EAAET,WAAGiB;AAFU,aAAD,CADM;AAK1BC,YAAAA,IAAI,EAAE;AALoB,WAAD,CADjB;AAQV2C,UAAAA,IAAI,EAAEN,eAAe,CAAC;AACpB1C,YAAAA,MAAM,EAAE4C,YAAY,CAAC;AACnBzC,cAAAA,IAAI,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,EAAsB,CAAtB,CADa;AAEnBP,cAAAA,IAAI,EAAET,WAAGiB;AAFU,aAAD,CADA;AAKpBC,YAAAA,IAAI,EAAE;AALc,WAAD;AARX,SAHK;AAmBjBoC,QAAAA,QAAQ,oBACHA,QADG,CAnBS;AAsBjBnF,QAAAA,KAAK,EAAE;AACL6D,UAAAA,MAAM,EAAE;AADH,SAtBU;AAyBjBK,QAAAA,KAAK,EAAE,KAAKyB,QAAL,EAzBU;AA0BjBC,QAAAA,KAAK,EAAE,CA1BU;AA2BjBC,QAAAA,QAAQ,EAAER,cAAc,CAAC;AACvBxC,UAAAA,IAAI,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,CADiB;AAEvBP,UAAAA,IAAI,EAAET,WAAGiE,YAFc;AAGvBF,UAAAA,KAAK,EAAE;AAHgB,SAAD,CA3BP;AAgCjB3F,QAAAA,OAAO,EAAE,sBAAQyE,IAAR,EAAcC,UAAd;AAhCQ,OAAD,CAAlB;AAkCD;;;WAED,6BAA4B;AAC1B,kBAII,KAAKvE,KAAL,CAAWqE,cAAX,EAJJ;AAAA,UACEsB,OADF,SACEA,OADF;AAAA,kCAEEC,SAFF;AAAA,UAEEA,SAFF,gCAEc,EAFd;AAAA,+BAGEC,MAHF;AAAA,UAGEA,MAHF,6BAGW,CAHX;;AAKA,WAAK9E,cAAL,CAAoB+E,IAApB,CAAyB;AACvBf,QAAAA,QAAQ,EAAE;AACRgB,UAAAA,SAAS,EAAEJ,OAAO,IAAI,GADd;AAERK,UAAAA,QAAQ,EAAEH,MAFF;AAGRI,UAAAA,WAAW,EAAEL;AAHL;AADa,OAAzB;AAOD;;;WAED,yBAAwB;AACtB,kBAEI,KAAK5F,KAAL,CAAWqE,cAAX,EAFJ;AAAA,UACEsB,OADF,SACEA,OADF;;AAGA,WAAK1E,UAAL,CAAgB6E,IAAhB,CAAqB;AACnBf,QAAAA,QAAQ,EAAE;AACRgB,UAAAA,SAAS,EAAEJ,OAAO,IAAI,GADd;AAERO,UAAAA,cAAc,EAAE,KAAKC,YAFb;AAGRC,UAAAA,SAAS,EAAE,KAAK1G;AAHR;AADS,OAArB;AAOD;;;WAED,yBAAwB;AACtB,kBAEI,KAAKM,KAAL,CAAWqE,cAAX,EAFJ;AAAA,UACEsB,OADF,SACEA,OADF;;AAWA,UAAMU,MAAM,GAAGC,eAAKC,MAAL,EAAf;;AACAD,qBAAKD,MAAL,CACEA,MADF,EAEE,KAAKG,aAAL,CAAmBC,iCAAnB,EAFF;;AAKA,WAAKxF,UAAL,CAAgB6E,IAAhB,CAAqB;AACnBf,QAAAA,QAAQ,EAAE;AACRgB,UAAAA,SAAS,EAAEJ,OAAO,IAAI,GADd;AAERO,UAAAA,cAAc,EAAE,KAAKC,YAFb;AAGRC,UAAAA,SAAS,EAAE,KAAK1G,mBAHR;AAIRgH,UAAAA,gCAAgC,EAAE,KAAKF,aAAL,CAAmBC,iCAAnB,EAJ1B;AAKRE,UAAAA,6BAA6B,mCAAMN,MAAN;AALrB;AADS,OAArB;AASD;;;WACD,0BAAyB;AACvB,kBAGI,KAAKrG,KAAL,CAAWqE,cAAX,EAHJ;AAAA,6BACEC,IADF;AAAA,UACEA,IADF,2BACS,KADT;AAAA,mCAEEC,UAFF;AAAA,UAEEA,UAFF,iCAEe,IAFf;;AAIA,UAAQ/D,eAAR,GAA4B,KAAKjB,eAAjC,CAAQiB,eAAR;;AACA,8BAA0BA,eAAe,EAAzC;AAAA,UAAQY,KAAR,qBAAQA,KAAR;AAAA,UAAeC,MAAf,qBAAeA,MAAf;;AACA,UAAMkC,aAAa,GAAG,4CAAuBnC,KAAK,GAAG,GAA/B,EAAoCC,MAAM,GAAG,GAA7C,CAAtB;AACA,WAAKmD,mBAAL,CAAyBC,cAAzB,CAAwC,gBAAxC,EAA0D;AACxDC,QAAAA,EAAE,EAAEkC,aADoD;AAExDhC,QAAAA,EAAE,EAAEiC;AAFoD,OAA1D;;AAKA,mCAA6B,KAAKrC,mBAAL,CAAyBM,SAAzB,CAC3B,gBAD2B,CAA7B;AAAA,UAAQJ,EAAR,0BAAQA,EAAR;AAAA,UAAYE,EAAZ,0BAAYA,EAAZ;AAAA,UAAgBG,QAAhB,0BAAgBA,QAAhB;;AAGA,mCAKI,KAAKxF,eALT;AAAA,UACEyF,eADF,0BACEA,eADF;AAAA,UAEEC,cAFF,0BAEEA,cAFF;AAAA,UAGEC,YAHF,0BAGEA,YAHF;AAAA,UAIEC,WAJF,0BAIEA,WAJF;AAMA,aAAOA,WAAW,CAAC;AACjBT,QAAAA,EAAE,EAAFA,EADiB;AAEjBE,QAAAA,EAAE,EAAFA,EAFiB;AAGjBQ,QAAAA,UAAU,EAAE;AACVC,UAAAA,UAAU,EAAEL,eAAe,CAAC;AAC1B1C,YAAAA,MAAM,EAAE4C,YAAY,CAAC;AACnBzC,cAAAA,IAAI,EAAEc,aAAa,CAACuD,QADD;AAEnB5E,cAAAA,IAAI,EAAET,WAAGiB;AAFU,aAAD,CADM;AAK1BC,YAAAA,IAAI,EAAE;AALoB,WAAD,CADjB;AAQV2C,UAAAA,IAAI,EAAEN,eAAe,CAAC;AACpB1C,YAAAA,MAAM,EAAE4C,YAAY,CAAC;AACnBzC,cAAAA,IAAI,EAAEc,aAAa,CAACwD,GADD;AAEnB7E,cAAAA,IAAI,EAAET,WAAGiB;AAFU,aAAD,CADA;AAKpBC,YAAAA,IAAI,EAAE;AALc,WAAD;AARX,SAHK;AAmBjBqE,QAAAA,SAAS,EAAEvF,WAAGwF,SAnBG;AAoBjBlC,QAAAA,QAAQ,oBACHA,QADG,CApBS;AAuBjBnF,QAAAA,KAAK,EAAE;AACL6D,UAAAA,MAAM,EAAE;AADH,SAvBU;AA0BjBK,QAAAA,KAAK,EAAE;AACLL,UAAAA,MAAM,EAAE,IADH;AAELM,UAAAA,IAAI,EAAE;AACJC,YAAAA,MAAM,EAAEvC,WAAGyF,SADP;AAEJhD,YAAAA,QAAQ,EAAE,CAFN;AAGJC,YAAAA,MAAM,EAAE1C,WAAG0F,mBAHP;AAIJ/C,YAAAA,QAAQ,EAAE;AAJN;AAFD,SA1BU;AAmCjBqB,QAAAA,QAAQ,EAAER,cAAc,CAAC;AACvBxC,UAAAA,IAAI,EAAEc,aAAa,CAAC6D,OADG;AAEvBlF,UAAAA,IAAI,EAAET,WAAGiE,YAFc;AAGvBF,UAAAA,KAAK,EAAEjC,aAAa,CAAC6D,OAAd,CAAsBC;AAHN,SAAD,CAnCP;AAwCjBxH,QAAAA,OAAO,EAAE,sBAAQyE,IAAR,EAAcC,UAAd;AAxCQ,OAAD,CAAlB;AA0CD;;;WACD,uBAAsB;AACpB,WAAKrE,kBAAL;AACD;;;WAED,8BAA6B;AAC3B,UAAQO,eAAR,GAA4B,KAAKlB,eAAjC,CAAQkB,eAAR;;AACA,UAAI,KAAK6G,OAAT,EAAkB;AAChB,aAAKA,OAAL,CAAaC,OAAb;AACD;;AAED,kBAEI,KAAKvH,KAAL,CAAWqE,cAAX,EAFJ;AAAA,UACEmD,UADF,SACEA,UADF;;AAGA,UAAMC,SAAS,GAAG,gCAAkBD,UAAlB,CAAlB;AACA,WAAKrB,YAAL,GAAoB1F,eAAe,CAAC;AAClCgC,QAAAA,IAAI,EAAE,IAAIiF,UAAJ,CAAeD,SAAS,CAAChF,IAAzB,CAD4B;AAElCrB,QAAAA,KAAK,EAAEqG,SAAS,CAACrG,KAFiB;AAGlCC,QAAAA,MAAM,EAAEoG,SAAS,CAACpG,MAHgB;AAIlCG,QAAAA,KAAK,EAAEC,WAAGC,aAJwB;AAKlCC,QAAAA,KAAK,EAAEF,WAAGC,aALwB;AAMlCE,QAAAA,GAAG,EAAEH,WAAGkG,OAN0B;AAOlC7F,QAAAA,GAAG,EAAEL,WAAGkG,OAP0B;AAQlCC,QAAAA,KAAK,EAAE;AAR2B,OAAD,CAAnC;AAUD;;;EA5VuCC,mB","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IFramebuffer,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport {\n generateColorRamp,\n getCullFace,\n getMask,\n IColorRamp,\n} from '@antv/l7-utils';\nimport { mat4 } from 'gl-matrix';\nimport { inject, injectable } from 'inversify';\nimport 'reflect-metadata';\nimport BaseModel from '../../core/BaseModel';\nimport { IHeatMapLayerStyleOptions } from '../../core/interface';\nimport { HeatmapTriangulation } from '../../core/triangulation';\nimport heatmap3DFrag from '../shaders/heatmap_3d_frag.glsl';\nimport heatmap3DVert from '../shaders/heatmap_3d_vert.glsl';\n\n// 绘制平面热力的 shader\nimport heatmapColorFrag from '../shaders/heatmap_frag.glsl';\nimport heatmapColorVert from '../shaders/heatmap_vert.glsl';\n\nimport heatmapFramebufferFrag from '../shaders/heatmap_framebuffer_frag.glsl';\nimport heatmapFramebufferVert from '../shaders/heatmap_framebuffer_vert.glsl';\n\nimport { heatMap3DTriangulation } from '../triangulation';\n@injectable()\nexport default class HeatMapModel extends BaseModel {\n protected texture: ITexture2D;\n protected colorTexture: ITexture2D;\n protected heatmapFramerBuffer: IFramebuffer;\n private intensityModel: IModel;\n private colorModel: IModel;\n private shapeType: string;\n\n public render() {\n const { clear, useFramebuffer } = this.rendererService;\n useFramebuffer(this.heatmapFramerBuffer, () => {\n clear({\n color: [0, 0, 0, 0],\n depth: 1,\n stencil: 0,\n framebuffer: this.heatmapFramerBuffer,\n });\n this.drawIntensityMode();\n });\n if (this.layer.styleNeedUpdate) {\n this.updateColorTexture();\n }\n this.shapeType === 'heatmap' ? this.drawColorMode() : this.draw3DHeatMap();\n }\n\n public getUninforms(): IModelUniform {\n throw new Error('Method not implemented.');\n }\n\n public initModels(): IModel[] {\n const {\n createFramebuffer,\n clear,\n getViewportSize,\n createTexture2D,\n useFramebuffer,\n } = this.rendererService;\n const shapeAttr = this.styleAttributeService.getLayerStyleAttribute(\n 'shape',\n );\n const shapeType = shapeAttr?.scale?.field || 'heatmap';\n this.shapeType = shapeType as string;\n // 生成热力图密度图\n this.intensityModel = this.buildHeatMapIntensity();\n // 渲染到屏幕\n this.colorModel =\n shapeType === 'heatmap'\n ? this.buildHeatmapColor() // 2D\n : this.build3dHeatMap(); // 3D\n\n const { width, height } = getViewportSize();\n\n // 初始化密度图纹理\n this.heatmapFramerBuffer = createFramebuffer({\n color: createTexture2D({\n width: Math.floor(width / 4),\n height: Math.floor(height / 4),\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n min: gl.LINEAR,\n mag: gl.LINEAR,\n }),\n depth: false,\n });\n\n this.updateColorTexture();\n\n return [this.intensityModel, this.colorModel];\n }\n\n public buildModels(): IModel[] {\n return this.initModels();\n }\n\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'dir',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Dir',\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 // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\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: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return [size as number];\n },\n },\n });\n }\n private buildHeatMapIntensity(): IModel {\n return this.layer.buildLayerModel({\n moduleName: 'heatmapintensity',\n vertexShader: heatmapFramebufferVert,\n fragmentShader: heatmapFramebufferFrag,\n triangulation: HeatmapTriangulation,\n depth: {\n enable: false,\n },\n cull: {\n enable: true,\n face: getCullFace(this.mapService.version),\n },\n blend: {\n enable: true,\n func: {\n srcRGB: gl.ONE,\n srcAlpha: 1,\n dstRGB: gl.ONE,\n dstAlpha: 1,\n },\n },\n });\n }\n\n private buildHeatmapColor(): IModel {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n this.shaderModuleService.registerModule('heatmapColor', {\n vs: heatmapColorVert,\n fs: heatmapColorFrag,\n });\n\n const { vs, fs, uniforms } = this.shaderModuleService.getModule(\n 'heatmapColor',\n );\n const {\n createAttribute,\n createElements,\n createBuffer,\n createModel,\n } = this.rendererService;\n return createModel({\n vs,\n fs,\n attributes: {\n a_Position: createAttribute({\n buffer: createBuffer({\n data: [-1, 1, 0, 1, 1, 0, -1, -1, 0, 1, -1, 0],\n type: gl.FLOAT,\n }),\n size: 3,\n }),\n a_Uv: createAttribute({\n buffer: createBuffer({\n data: [0, 1, 1, 1, 0, 0, 1, 0],\n type: gl.FLOAT,\n }),\n size: 2,\n }),\n },\n uniforms: {\n ...uniforms,\n },\n depth: {\n enable: false,\n },\n blend: this.getBlend(),\n count: 6,\n elements: createElements({\n data: [0, 2, 1, 2, 3, 1],\n type: gl.UNSIGNED_INT,\n count: 6,\n }),\n stencil: getMask(mask, maskInside),\n });\n }\n\n private drawIntensityMode() {\n const {\n opacity,\n intensity = 10,\n radius = 5,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n this.intensityModel.draw({\n uniforms: {\n u_opacity: opacity || 1.0,\n u_radius: radius,\n u_intensity: intensity,\n },\n });\n }\n\n private drawColorMode() {\n const {\n opacity,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n this.colorModel.draw({\n uniforms: {\n u_opacity: opacity || 1.0,\n u_colorTexture: this.colorTexture,\n u_texture: this.heatmapFramerBuffer,\n },\n });\n }\n\n private draw3DHeatMap() {\n const {\n opacity,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n\n // const invert = mat4.invert(\n // mat4.create(),\n // mat4.fromValues(\n // // @ts-ignore\n // ...this.cameraService.getViewProjectionMatrixUncentered(),\n // ),\n // ) as mat4;\n const invert = mat4.create();\n mat4.invert(\n invert,\n this.cameraService.getViewProjectionMatrixUncentered() as mat4,\n );\n\n this.colorModel.draw({\n uniforms: {\n u_opacity: opacity || 1.0,\n u_colorTexture: this.colorTexture,\n u_texture: this.heatmapFramerBuffer,\n u_ViewProjectionMatrixUncentered: this.cameraService.getViewProjectionMatrixUncentered(),\n u_InverseViewProjectionMatrix: [...invert],\n },\n });\n }\n private build3dHeatMap() {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n const { getViewportSize } = this.rendererService;\n const { width, height } = getViewportSize();\n const triangulation = heatMap3DTriangulation(width / 4.0, height / 4.0);\n this.shaderModuleService.registerModule('heatmap3dColor', {\n vs: heatmap3DVert,\n fs: heatmap3DFrag,\n });\n\n const { vs, fs, uniforms } = this.shaderModuleService.getModule(\n 'heatmap3dColor',\n );\n const {\n createAttribute,\n createElements,\n createBuffer,\n createModel,\n } = this.rendererService;\n return createModel({\n vs,\n fs,\n attributes: {\n a_Position: createAttribute({\n buffer: createBuffer({\n data: triangulation.vertices,\n type: gl.FLOAT,\n }),\n size: 3,\n }),\n a_Uv: createAttribute({\n buffer: createBuffer({\n data: triangulation.uvs,\n type: gl.FLOAT,\n }),\n size: 2,\n }),\n },\n primitive: gl.TRIANGLES,\n uniforms: {\n ...uniforms,\n },\n depth: {\n enable: true,\n },\n blend: {\n enable: true,\n func: {\n srcRGB: gl.SRC_ALPHA,\n srcAlpha: 1,\n dstRGB: gl.ONE_MINUS_SRC_ALPHA,\n dstAlpha: 1,\n },\n },\n elements: createElements({\n data: triangulation.indices,\n type: gl.UNSIGNED_INT,\n count: triangulation.indices.length,\n }),\n stencil: getMask(mask, maskInside),\n });\n }\n private updateStyle() {\n this.updateColorTexture();\n }\n\n private updateColorTexture() {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.destroy();\n }\n\n const {\n rampColors,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n const imageData = generateColorRamp(rampColors as IColorRamp);\n this.colorTexture = createTexture2D({\n data: new Uint8Array(imageData.data),\n width: imageData.width,\n height: imageData.height,\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n min: gl.NEAREST,\n mag: gl.NEAREST,\n flipY: false,\n });\n }\n}\n"],"file":"heatmap.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/heatmap/models/heatmap.ts"],"names":["HeatMapModel","rendererService","clear","useFramebuffer","heatmapFramerBuffer","color","depth","stencil","framebuffer","drawIntensityMode","layer","styleNeedUpdate","updateColorTexture","shapeType","drawColorMode","draw3DHeatMap","Error","createFramebuffer","getViewportSize","createTexture2D","shapeAttr","styleAttributeService","getLayerStyleAttribute","scale","field","intensityModel","buildHeatMapIntensity","colorModel","buildHeatmapColor","build3dHeatMap","width","height","Math","floor","wrapS","gl","CLAMP_TO_EDGE","wrapT","min","LINEAR","mag","initModels","registerStyleAttribute","name","type","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","data","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","triangulation","HeatmapTriangulation","buildLayerModel","moduleName","vertexShader","heatmapFramebufferVert","fragmentShader","heatmapFramebufferFrag","enable","cull","face","mapService","version","blend","func","srcRGB","ONE","srcAlpha","dstRGB","dstAlpha","getLayerConfig","mask","maskInside","shaderModuleService","registerModule","vs","heatmapColorVert","fs","heatmapColorFrag","getModule","uniforms","createAttribute","createElements","createBuffer","createModel","attributes","a_Position","a_Uv","getBlend","count","elements","UNSIGNED_INT","opacity","intensity","radius","draw","u_opacity","u_radius","u_intensity","u_colorTexture","colorTexture","u_texture","invert","mat4","create","cameraService","getViewProjectionMatrixUncentered","u_ViewProjectionMatrixUncentered","u_InverseViewProjectionMatrix","heatmap3DVert","heatmap3DFrag","vertices","uvs","primitive","TRIANGLES","SRC_ALPHA","ONE_MINUS_SRC_ALPHA","indices","length","texture","destroy","rampColors","imageData","Uint8Array","NEAREST","flipY","BaseModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AASA;;AAMA;;AACA;;AACA;;AACA;;AAEA;;AAWA;;;;;;;;;;;;;;;;;;IAEqBA,Y,WADpB,4B;;;;;;;;;;;;;;;;;;;;;;;;;;WASC,kBAAgB;AAAA;;AACd,kCAAkC,KAAKC,eAAvC;AAAA,UAAQC,KAAR,yBAAQA,KAAR;AAAA,UAAeC,cAAf,yBAAeA,cAAf;AACAA,MAAAA,cAAc,CAAC,KAAKC,mBAAN,EAA2B,YAAM;AAC7CF,QAAAA,KAAK,CAAC;AACJG,UAAAA,KAAK,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CADH;AAEJC,UAAAA,KAAK,EAAE,CAFH;AAGJC,UAAAA,OAAO,EAAE,CAHL;AAIJC,UAAAA,WAAW,EAAE,MAAI,CAACJ;AAJd,SAAD,CAAL;;AAMA,QAAA,MAAI,CAACK,iBAAL;AACD,OARa,CAAd;;AASA,UAAI,KAAKC,KAAL,CAAWC,eAAf,EAAgC;AAC9B,aAAKC,kBAAL;AACD;;AACD,WAAKC,SAAL,KAAmB,SAAnB,GAA+B,KAAKC,aAAL,EAA/B,GAAsD,KAAKC,aAAL,EAAtD;AACD;;;WAED,wBAAqC;AACnC,YAAM,IAAIC,KAAJ,CAAU,yBAAV,CAAN;AACD;;;WAED,sBAA8B;AAAA;;AAC5B,mCAMI,KAAKf,eANT;AAAA,UACEgB,iBADF,0BACEA,iBADF;AAAA,UAEEf,KAFF,0BAEEA,KAFF;AAAA,UAGEgB,eAHF,0BAGEA,eAHF;AAAA,UAIEC,eAJF,0BAIEA,eAJF;AAAA,UAKEhB,cALF,0BAKEA,cALF;AAOA,UAAMiB,SAAS,GAAG,KAAKC,qBAAL,CAA2BC,sBAA3B,CAChB,OADgB,CAAlB;AAGA,UAAMT,SAAS,GAAG,CAAAO,SAAS,SAAT,IAAAA,SAAS,WAAT,gCAAAA,SAAS,CAAEG,KAAX,sEAAkBC,KAAlB,KAA2B,SAA7C;AACA,WAAKX,SAAL,GAAiBA,SAAjB;AAEA,WAAKY,cAAL,GAAsB,KAAKC,qBAAL,EAAtB;AAEA,WAAKC,UAAL,GACEd,SAAS,KAAK,SAAd,GACI,KAAKe,iBAAL,EADJ,GAEI,KAAKC,cAAL,EAHN;;AAKA,6BAA0BX,eAAe,EAAzC;AAAA,UAAQY,KAAR,oBAAQA,KAAR;AAAA,UAAeC,MAAf,oBAAeA,MAAf;;AAGA,WAAK3B,mBAAL,GAA2Ba,iBAAiB,CAAC;AAC3CZ,QAAAA,KAAK,EAAEc,eAAe,CAAC;AACrBW,UAAAA,KAAK,EAAEE,IAAI,CAACC,KAAL,CAAWH,KAAK,GAAG,CAAnB,CADc;AAErBC,UAAAA,MAAM,EAAEC,IAAI,CAACC,KAAL,CAAWF,MAAM,GAAG,CAApB,CAFa;AAGrBG,UAAAA,KAAK,EAAEC,WAAGC,aAHW;AAIrBC,UAAAA,KAAK,EAAEF,WAAGC,aAJW;AAKrBE,UAAAA,GAAG,EAAEH,WAAGI,MALa;AAMrBC,UAAAA,GAAG,EAAEL,WAAGI;AANa,SAAD,CADqB;AAS3CjC,QAAAA,KAAK,EAAE;AAToC,OAAD,CAA5C;AAYA,WAAKM,kBAAL;AAEA,aAAO,CAAC,KAAKa,cAAN,EAAsB,KAAKE,UAA3B,CAAP;AACD;;;WAED,uBAA+B;AAC7B,aAAO,KAAKc,UAAL,EAAP;AACD;;;WAED,qCAAsC;AACpC,WAAKpB,qBAAL,CAA2BqB,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,KAD0C;AAEhDC,QAAAA,IAAI,EAAEC,sBAAcC,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVJ,UAAAA,IAAI,EAAE,OADI;AAEVK,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAEd,WAAGe,YAFJ;AAGNC,YAAAA,IAAI,EAAE,EAHA;AAINP,YAAAA,IAAI,EAAET,WAAGiB;AAJH,WAFE;AAQVC,UAAAA,IAAI,EAAE,CARI;AASVC,UAAAA,MAAM,EAAE,gBACNC,OADM,EAENC,UAFM,EAGNC,MAHM,EAINC,YAJM,EAKH;AACH,mBAAO,CAACD,MAAM,CAAC,CAAD,CAAP,EAAYA,MAAM,CAAC,CAAD,CAAlB,CAAP;AACD;AAhBS;AAHoC,OAAlD;AAwBA,WAAKpC,qBAAL,CAA2BqB,sBAA3B,CAAkD;AAChDC,QAAAA,IAAI,EAAE,MAD0C;AAEhDC,QAAAA,IAAI,EAAEC,sBAAcC,SAF4B;AAGhDC,QAAAA,UAAU,EAAE;AACVJ,UAAAA,IAAI,EAAE,QADI;AAEVK,UAAAA,MAAM,EAAE;AAENC,YAAAA,KAAK,EAAEd,WAAGe,YAFJ;AAGNC,YAAAA,IAAI,EAAE,EAHA;AAINP,YAAAA,IAAI,EAAET,WAAGiB;AAJH,WAFE;AAQVC,UAAAA,IAAI,EAAE,CARI;AASVC,UAAAA,MAAM,EAAE,gBACNC,OADM,EAENC,UAFM,EAGNC,MAHM,EAINC,YAJM,EAKH;AACH,gCAAqBH,OAArB,CAAQF,IAAR;AAAA,gBAAQA,IAAR,8BAAe,CAAf;AACA,mBAAO,CAACA,IAAD,CAAP;AACD;AAjBS;AAHoC,OAAlD;AAuBD;;;WACD,iCAAwC;AACtC,WAAK3C,KAAL,CAAWiD,aAAX,GAA2BC,mCAA3B;AACA,aAAO,KAAKlD,KAAL,CAAWmD,eAAX,CAA2B;AAChCC,QAAAA,UAAU,EAAE,kBADoB;AAEhCC,QAAAA,YAAY,EAAEC,sBAFkB;AAGhCC,QAAAA,cAAc,EAAEC,sBAHgB;AAIhCP,QAAAA,aAAa,EAAEC,mCAJiB;AAKhCtD,QAAAA,KAAK,EAAE;AACL6D,UAAAA,MAAM,EAAE;AADH,SALyB;AAQhCC,QAAAA,IAAI,EAAE;AACJD,UAAAA,MAAM,EAAE,IADJ;AAEJE,UAAAA,IAAI,EAAE,0BAAY,KAAKC,UAAL,CAAgBC,OAA5B;AAFF,SAR0B;AAYhCC,QAAAA,KAAK,EAAE;AACLL,UAAAA,MAAM,EAAE,IADH;AAELM,UAAAA,IAAI,EAAE;AACJC,YAAAA,MAAM,EAAEvC,WAAGwC,GADP;AAEJC,YAAAA,QAAQ,EAAE,CAFN;AAGJC,YAAAA,MAAM,EAAE1C,WAAGwC,GAHP;AAIJG,YAAAA,QAAQ,EAAE;AAJN;AAFD;AAZyB,OAA3B,CAAP;AAsBD;;;WAED,6BAAoC;AAClC,iBAGI,KAAKpE,KAAL,CAAWqE,cAAX,EAHJ;AAAA,2BACEC,IADF;AAAA,UACEA,IADF,0BACS,KADT;AAAA,iCAEEC,UAFF;AAAA,UAEEA,UAFF,gCAEe,IAFf;;AAIA,WAAKC,mBAAL,CAAyBC,cAAzB,CAAwC,cAAxC,EAAwD;AACtDC,QAAAA,EAAE,EAAEC,gBADkD;AAEtDC,QAAAA,EAAE,EAAEC;AAFkD,OAAxD;;AAKA,kCAA6B,KAAKL,mBAAL,CAAyBM,SAAzB,CAC3B,cAD2B,CAA7B;AAAA,UAAQJ,EAAR,yBAAQA,EAAR;AAAA,UAAYE,EAAZ,yBAAYA,EAAZ;AAAA,UAAgBG,QAAhB,yBAAgBA,QAAhB;;AAGA,mCAKI,KAAKxF,eALT;AAAA,UACEyF,eADF,0BACEA,eADF;AAAA,UAEEC,cAFF,0BAEEA,cAFF;AAAA,UAGEC,YAHF,0BAGEA,YAHF;AAAA,UAIEC,WAJF,0BAIEA,WAJF;AAMA,aAAOA,WAAW,CAAC;AACjBT,QAAAA,EAAE,EAAFA,EADiB;AAEjBE,QAAAA,EAAE,EAAFA,EAFiB;AAGjBQ,QAAAA,UAAU,EAAE;AACVC,UAAAA,UAAU,EAAEL,eAAe,CAAC;AAC1B1C,YAAAA,MAAM,EAAE4C,YAAY,CAAC;AACnBzC,cAAAA,IAAI,EAAE,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,CAAX,EAAc,CAAd,EAAiB,CAAjB,EAAoB,CAAC,CAArB,EAAwB,CAAC,CAAzB,EAA4B,CAA5B,EAA+B,CAA/B,EAAkC,CAAC,CAAnC,EAAsC,CAAtC,CADa;AAEnBP,cAAAA,IAAI,EAAET,WAAGiB;AAFU,aAAD,CADM;AAK1BC,YAAAA,IAAI,EAAE;AALoB,WAAD,CADjB;AAQV2C,UAAAA,IAAI,EAAEN,eAAe,CAAC;AACpB1C,YAAAA,MAAM,EAAE4C,YAAY,CAAC;AACnBzC,cAAAA,IAAI,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmB,CAAnB,EAAsB,CAAtB,CADa;AAEnBP,cAAAA,IAAI,EAAET,WAAGiB;AAFU,aAAD,CADA;AAKpBC,YAAAA,IAAI,EAAE;AALc,WAAD;AARX,SAHK;AAmBjBoC,QAAAA,QAAQ,oBACHA,QADG,CAnBS;AAsBjBnF,QAAAA,KAAK,EAAE;AACL6D,UAAAA,MAAM,EAAE;AADH,SAtBU;AAyBjBK,QAAAA,KAAK,EAAE,KAAKyB,QAAL,EAzBU;AA0BjBC,QAAAA,KAAK,EAAE,CA1BU;AA2BjBC,QAAAA,QAAQ,EAAER,cAAc,CAAC;AACvBxC,UAAAA,IAAI,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,CADiB;AAEvBP,UAAAA,IAAI,EAAET,WAAGiE,YAFc;AAGvBF,UAAAA,KAAK,EAAE;AAHgB,SAAD,CA3BP;AAgCjB3F,QAAAA,OAAO,EAAE,sBAAQyE,IAAR,EAAcC,UAAd;AAhCQ,OAAD,CAAlB;AAkCD;;;WAED,6BAA4B;AAC1B,kBAII,KAAKvE,KAAL,CAAWqE,cAAX,EAJJ;AAAA,UACEsB,OADF,SACEA,OADF;AAAA,kCAEEC,SAFF;AAAA,UAEEA,SAFF,gCAEc,EAFd;AAAA,+BAGEC,MAHF;AAAA,UAGEA,MAHF,6BAGW,CAHX;;AAKA,WAAK9E,cAAL,CAAoB+E,IAApB,CAAyB;AACvBf,QAAAA,QAAQ,EAAE;AACRgB,UAAAA,SAAS,EAAEJ,OAAO,IAAI,GADd;AAERK,UAAAA,QAAQ,EAAEH,MAFF;AAGRI,UAAAA,WAAW,EAAEL;AAHL;AADa,OAAzB;AAOD;;;WAED,yBAAwB;AACtB,kBAEI,KAAK5F,KAAL,CAAWqE,cAAX,EAFJ;AAAA,UACEsB,OADF,SACEA,OADF;;AAGA,WAAK1E,UAAL,CAAgB6E,IAAhB,CAAqB;AACnBf,QAAAA,QAAQ,EAAE;AACRgB,UAAAA,SAAS,EAAEJ,OAAO,IAAI,GADd;AAERO,UAAAA,cAAc,EAAE,KAAKC,YAFb;AAGRC,UAAAA,SAAS,EAAE,KAAK1G;AAHR;AADS,OAArB;AAOD;;;WAED,yBAAwB;AACtB,kBAEI,KAAKM,KAAL,CAAWqE,cAAX,EAFJ;AAAA,UACEsB,OADF,SACEA,OADF;;AAWA,UAAMU,MAAM,GAAGC,eAAKC,MAAL,EAAf;;AACAD,qBAAKD,MAAL,CACEA,MADF,EAEE,KAAKG,aAAL,CAAmBC,iCAAnB,EAFF;;AAKA,WAAKxF,UAAL,CAAgB6E,IAAhB,CAAqB;AACnBf,QAAAA,QAAQ,EAAE;AACRgB,UAAAA,SAAS,EAAEJ,OAAO,IAAI,GADd;AAERO,UAAAA,cAAc,EAAE,KAAKC,YAFb;AAGRC,UAAAA,SAAS,EAAE,KAAK1G,mBAHR;AAIRgH,UAAAA,gCAAgC,EAAE,KAAKF,aAAL,CAAmBC,iCAAnB,EAJ1B;AAKRE,UAAAA,6BAA6B,mCAAMN,MAAN;AALrB;AADS,OAArB;AASD;;;WACD,0BAAyB;AACvB,kBAGI,KAAKrG,KAAL,CAAWqE,cAAX,EAHJ;AAAA,6BACEC,IADF;AAAA,UACEA,IADF,2BACS,KADT;AAAA,mCAEEC,UAFF;AAAA,UAEEA,UAFF,iCAEe,IAFf;;AAIA,UAAQ/D,eAAR,GAA4B,KAAKjB,eAAjC,CAAQiB,eAAR;;AACA,8BAA0BA,eAAe,EAAzC;AAAA,UAAQY,KAAR,qBAAQA,KAAR;AAAA,UAAeC,MAAf,qBAAeA,MAAf;;AACA,UAAM4B,aAAa,GAAG,4CAAuB7B,KAAK,GAAG,GAA/B,EAAoCC,MAAM,GAAG,GAA7C,CAAtB;AACA,WAAKmD,mBAAL,CAAyBC,cAAzB,CAAwC,gBAAxC,EAA0D;AACxDC,QAAAA,EAAE,EAAEkC,aADoD;AAExDhC,QAAAA,EAAE,EAAEiC;AAFoD,OAA1D;;AAKA,mCAA6B,KAAKrC,mBAAL,CAAyBM,SAAzB,CAC3B,gBAD2B,CAA7B;AAAA,UAAQJ,EAAR,0BAAQA,EAAR;AAAA,UAAYE,EAAZ,0BAAYA,EAAZ;AAAA,UAAgBG,QAAhB,0BAAgBA,QAAhB;;AAGA,mCAKI,KAAKxF,eALT;AAAA,UACEyF,eADF,0BACEA,eADF;AAAA,UAEEC,cAFF,0BAEEA,cAFF;AAAA,UAGEC,YAHF,0BAGEA,YAHF;AAAA,UAIEC,WAJF,0BAIEA,WAJF;AAMA,aAAOA,WAAW,CAAC;AACjBT,QAAAA,EAAE,EAAFA,EADiB;AAEjBE,QAAAA,EAAE,EAAFA,EAFiB;AAGjBQ,QAAAA,UAAU,EAAE;AACVC,UAAAA,UAAU,EAAEL,eAAe,CAAC;AAC1B1C,YAAAA,MAAM,EAAE4C,YAAY,CAAC;AACnBzC,cAAAA,IAAI,EAAEQ,aAAa,CAAC6D,QADD;AAEnB5E,cAAAA,IAAI,EAAET,WAAGiB;AAFU,aAAD,CADM;AAK1BC,YAAAA,IAAI,EAAE;AALoB,WAAD,CADjB;AAQV2C,UAAAA,IAAI,EAAEN,eAAe,CAAC;AACpB1C,YAAAA,MAAM,EAAE4C,YAAY,CAAC;AACnBzC,cAAAA,IAAI,EAAEQ,aAAa,CAAC8D,GADD;AAEnB7E,cAAAA,IAAI,EAAET,WAAGiB;AAFU,aAAD,CADA;AAKpBC,YAAAA,IAAI,EAAE;AALc,WAAD;AARX,SAHK;AAmBjBqE,QAAAA,SAAS,EAAEvF,WAAGwF,SAnBG;AAoBjBlC,QAAAA,QAAQ,oBACHA,QADG,CApBS;AAuBjBnF,QAAAA,KAAK,EAAE;AACL6D,UAAAA,MAAM,EAAE;AADH,SAvBU;AA0BjBK,QAAAA,KAAK,EAAE;AACLL,UAAAA,MAAM,EAAE,IADH;AAELM,UAAAA,IAAI,EAAE;AACJC,YAAAA,MAAM,EAAEvC,WAAGyF,SADP;AAEJhD,YAAAA,QAAQ,EAAE,CAFN;AAGJC,YAAAA,MAAM,EAAE1C,WAAG0F,mBAHP;AAIJ/C,YAAAA,QAAQ,EAAE;AAJN;AAFD,SA1BU;AAmCjBqB,QAAAA,QAAQ,EAAER,cAAc,CAAC;AACvBxC,UAAAA,IAAI,EAAEQ,aAAa,CAACmE,OADG;AAEvBlF,UAAAA,IAAI,EAAET,WAAGiE,YAFc;AAGvBF,UAAAA,KAAK,EAAEvC,aAAa,CAACmE,OAAd,CAAsBC;AAHN,SAAD,CAnCP;AAwCjBxH,QAAAA,OAAO,EAAE,sBAAQyE,IAAR,EAAcC,UAAd;AAxCQ,OAAD,CAAlB;AA0CD;;;WACD,uBAAsB;AACpB,WAAKrE,kBAAL;AACD;;;WAED,8BAA6B;AAC3B,UAAQO,eAAR,GAA4B,KAAKlB,eAAjC,CAAQkB,eAAR;;AACA,UAAI,KAAK6G,OAAT,EAAkB;AAChB,aAAKA,OAAL,CAAaC,OAAb;AACD;;AAED,kBAEI,KAAKvH,KAAL,CAAWqE,cAAX,EAFJ;AAAA,UACEmD,UADF,SACEA,UADF;;AAGA,UAAMC,SAAS,GAAG,gCAAkBD,UAAlB,CAAlB;AACA,WAAKrB,YAAL,GAAoB1F,eAAe,CAAC;AAClCgC,QAAAA,IAAI,EAAE,IAAIiF,UAAJ,CAAeD,SAAS,CAAChF,IAAzB,CAD4B;AAElCrB,QAAAA,KAAK,EAAEqG,SAAS,CAACrG,KAFiB;AAGlCC,QAAAA,MAAM,EAAEoG,SAAS,CAACpG,MAHgB;AAIlCG,QAAAA,KAAK,EAAEC,WAAGC,aAJwB;AAKlCC,QAAAA,KAAK,EAAEF,WAAGC,aALwB;AAMlCE,QAAAA,GAAG,EAAEH,WAAGkG,OAN0B;AAOlC7F,QAAAA,GAAG,EAAEL,WAAGkG,OAP0B;AAQlCC,QAAAA,KAAK,EAAE;AAR2B,OAAD,CAAnC;AAUD;;;EA7VuCC,mB","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IFramebuffer,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport {\n generateColorRamp,\n getCullFace,\n getMask,\n IColorRamp,\n} from '@antv/l7-utils';\nimport { mat4 } from 'gl-matrix';\nimport { inject, injectable } from 'inversify';\nimport 'reflect-metadata';\nimport BaseModel from '../../core/BaseModel';\nimport { IHeatMapLayerStyleOptions } from '../../core/interface';\nimport { HeatmapTriangulation } from '../../core/triangulation';\nimport heatmap3DFrag from '../shaders/heatmap_3d_frag.glsl';\nimport heatmap3DVert from '../shaders/heatmap_3d_vert.glsl';\n\n// 绘制平面热力的 shader\nimport heatmapColorFrag from '../shaders/heatmap_frag.glsl';\nimport heatmapColorVert from '../shaders/heatmap_vert.glsl';\n\nimport heatmapFramebufferFrag from '../shaders/heatmap_framebuffer_frag.glsl';\nimport heatmapFramebufferVert from '../shaders/heatmap_framebuffer_vert.glsl';\n\nimport { heatMap3DTriangulation } from '../triangulation';\n@injectable()\nexport default class HeatMapModel extends BaseModel {\n protected texture: ITexture2D;\n protected colorTexture: ITexture2D;\n protected heatmapFramerBuffer: IFramebuffer;\n private intensityModel: IModel;\n private colorModel: IModel;\n private shapeType: string;\n\n public render() {\n const { clear, useFramebuffer } = this.rendererService;\n useFramebuffer(this.heatmapFramerBuffer, () => {\n clear({\n color: [0, 0, 0, 0],\n depth: 1,\n stencil: 0,\n framebuffer: this.heatmapFramerBuffer,\n });\n this.drawIntensityMode();\n });\n if (this.layer.styleNeedUpdate) {\n this.updateColorTexture();\n }\n this.shapeType === 'heatmap' ? this.drawColorMode() : this.draw3DHeatMap();\n }\n\n public getUninforms(): IModelUniform {\n throw new Error('Method not implemented.');\n }\n\n public initModels(): IModel[] {\n const {\n createFramebuffer,\n clear,\n getViewportSize,\n createTexture2D,\n useFramebuffer,\n } = this.rendererService;\n const shapeAttr = this.styleAttributeService.getLayerStyleAttribute(\n 'shape',\n );\n const shapeType = shapeAttr?.scale?.field || 'heatmap';\n this.shapeType = shapeType as string;\n // 生成热力图密度图\n this.intensityModel = this.buildHeatMapIntensity();\n // 渲染到屏幕\n this.colorModel =\n shapeType === 'heatmap'\n ? this.buildHeatmapColor() // 2D\n : this.build3dHeatMap(); // 3D\n\n const { width, height } = getViewportSize();\n\n // 初始化密度图纹理\n this.heatmapFramerBuffer = createFramebuffer({\n color: createTexture2D({\n width: Math.floor(width / 4),\n height: Math.floor(height / 4),\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n min: gl.LINEAR,\n mag: gl.LINEAR,\n }),\n depth: false,\n });\n\n this.updateColorTexture();\n\n return [this.intensityModel, this.colorModel];\n }\n\n public buildModels(): IModel[] {\n return this.initModels();\n }\n\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'dir',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Dir',\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 // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\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: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return [size as number];\n },\n },\n });\n }\n private buildHeatMapIntensity(): IModel {\n this.layer.triangulation = HeatmapTriangulation;\n return this.layer.buildLayerModel({\n moduleName: 'heatmapintensity',\n vertexShader: heatmapFramebufferVert,\n fragmentShader: heatmapFramebufferFrag,\n triangulation: HeatmapTriangulation,\n depth: {\n enable: false,\n },\n cull: {\n enable: true,\n face: getCullFace(this.mapService.version),\n },\n blend: {\n enable: true,\n func: {\n srcRGB: gl.ONE,\n srcAlpha: 1,\n dstRGB: gl.ONE,\n dstAlpha: 1,\n },\n },\n });\n }\n\n private buildHeatmapColor(): IModel {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n this.shaderModuleService.registerModule('heatmapColor', {\n vs: heatmapColorVert,\n fs: heatmapColorFrag,\n });\n\n const { vs, fs, uniforms } = this.shaderModuleService.getModule(\n 'heatmapColor',\n );\n const {\n createAttribute,\n createElements,\n createBuffer,\n createModel,\n } = this.rendererService;\n return createModel({\n vs,\n fs,\n attributes: {\n a_Position: createAttribute({\n buffer: createBuffer({\n data: [-1, 1, 0, 1, 1, 0, -1, -1, 0, 1, -1, 0],\n type: gl.FLOAT,\n }),\n size: 3,\n }),\n a_Uv: createAttribute({\n buffer: createBuffer({\n data: [0, 1, 1, 1, 0, 0, 1, 0],\n type: gl.FLOAT,\n }),\n size: 2,\n }),\n },\n uniforms: {\n ...uniforms,\n },\n depth: {\n enable: false,\n },\n blend: this.getBlend(),\n count: 6,\n elements: createElements({\n data: [0, 2, 1, 2, 3, 1],\n type: gl.UNSIGNED_INT,\n count: 6,\n }),\n stencil: getMask(mask, maskInside),\n });\n }\n\n private drawIntensityMode() {\n const {\n opacity,\n intensity = 10,\n radius = 5,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n this.intensityModel.draw({\n uniforms: {\n u_opacity: opacity || 1.0,\n u_radius: radius,\n u_intensity: intensity,\n },\n });\n }\n\n private drawColorMode() {\n const {\n opacity,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n this.colorModel.draw({\n uniforms: {\n u_opacity: opacity || 1.0,\n u_colorTexture: this.colorTexture,\n u_texture: this.heatmapFramerBuffer,\n },\n });\n }\n\n private draw3DHeatMap() {\n const {\n opacity,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n\n // const invert = mat4.invert(\n // mat4.create(),\n // mat4.fromValues(\n // // @ts-ignore\n // ...this.cameraService.getViewProjectionMatrixUncentered(),\n // ),\n // ) as mat4;\n const invert = mat4.create();\n mat4.invert(\n invert,\n this.cameraService.getViewProjectionMatrixUncentered() as mat4,\n );\n\n this.colorModel.draw({\n uniforms: {\n u_opacity: opacity || 1.0,\n u_colorTexture: this.colorTexture,\n u_texture: this.heatmapFramerBuffer,\n u_ViewProjectionMatrixUncentered: this.cameraService.getViewProjectionMatrixUncentered(),\n u_InverseViewProjectionMatrix: [...invert],\n },\n });\n }\n private build3dHeatMap() {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n const { getViewportSize } = this.rendererService;\n const { width, height } = getViewportSize();\n const triangulation = heatMap3DTriangulation(width / 4.0, height / 4.0);\n this.shaderModuleService.registerModule('heatmap3dColor', {\n vs: heatmap3DVert,\n fs: heatmap3DFrag,\n });\n\n const { vs, fs, uniforms } = this.shaderModuleService.getModule(\n 'heatmap3dColor',\n );\n const {\n createAttribute,\n createElements,\n createBuffer,\n createModel,\n } = this.rendererService;\n return createModel({\n vs,\n fs,\n attributes: {\n a_Position: createAttribute({\n buffer: createBuffer({\n data: triangulation.vertices,\n type: gl.FLOAT,\n }),\n size: 3,\n }),\n a_Uv: createAttribute({\n buffer: createBuffer({\n data: triangulation.uvs,\n type: gl.FLOAT,\n }),\n size: 2,\n }),\n },\n primitive: gl.TRIANGLES,\n uniforms: {\n ...uniforms,\n },\n depth: {\n enable: true,\n },\n blend: {\n enable: true,\n func: {\n srcRGB: gl.SRC_ALPHA,\n srcAlpha: 1,\n dstRGB: gl.ONE_MINUS_SRC_ALPHA,\n dstAlpha: 1,\n },\n },\n elements: createElements({\n data: triangulation.indices,\n type: gl.UNSIGNED_INT,\n count: triangulation.indices.length,\n }),\n stencil: getMask(mask, maskInside),\n });\n }\n private updateStyle() {\n this.updateColorTexture();\n }\n\n private updateColorTexture() {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.destroy();\n }\n\n const {\n rampColors,\n } = this.layer.getLayerConfig() as IHeatMapLayerStyleOptions;\n const imageData = generateColorRamp(rampColors as IColorRamp);\n this.colorTexture = createTexture2D({\n data: new Uint8Array(imageData.data),\n width: imageData.width,\n height: imageData.height,\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n min: gl.NEAREST,\n mag: gl.NEAREST,\n flipY: false,\n });\n }\n}\n"],"file":"heatmap.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;
|
|
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/index.js
CHANGED
|
@@ -5,6 +5,21 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
+
var _exportNames = {
|
|
9
|
+
CanvasLayer: true,
|
|
10
|
+
CityBuildingLayer: true,
|
|
11
|
+
BaseLayer: true,
|
|
12
|
+
GeometryLayer: true,
|
|
13
|
+
HeatmapLayer: true,
|
|
14
|
+
ImageLayer: true,
|
|
15
|
+
LineLayer: true,
|
|
16
|
+
PointLayer: true,
|
|
17
|
+
PolygonLayer: true,
|
|
18
|
+
RasterLayer: true,
|
|
19
|
+
EarthLayer: true,
|
|
20
|
+
MaskLayer: true,
|
|
21
|
+
WindLayer: true
|
|
22
|
+
};
|
|
8
23
|
Object.defineProperty(exports, "BaseLayer", {
|
|
9
24
|
enumerable: true,
|
|
10
25
|
get: function get() {
|
|
@@ -47,12 +62,6 @@ Object.defineProperty(exports, "ImageLayer", {
|
|
|
47
62
|
return _image.default;
|
|
48
63
|
}
|
|
49
64
|
});
|
|
50
|
-
Object.defineProperty(exports, "ImageTileLayer", {
|
|
51
|
-
enumerable: true,
|
|
52
|
-
get: function get() {
|
|
53
|
-
return _imagetile.default;
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
65
|
Object.defineProperty(exports, "LineLayer", {
|
|
57
66
|
enumerable: true,
|
|
58
67
|
get: function get() {
|
|
@@ -106,8 +115,6 @@ var _heatmap = _interopRequireDefault(require("./heatmap"));
|
|
|
106
115
|
|
|
107
116
|
var _image = _interopRequireDefault(require("./image"));
|
|
108
117
|
|
|
109
|
-
var _imagetile = _interopRequireDefault(require("./imagetile"));
|
|
110
|
-
|
|
111
118
|
var _index = _interopRequireDefault(require("./line/index"));
|
|
112
119
|
|
|
113
120
|
var _point = _interopRequireDefault(require("./point"));
|
|
@@ -148,6 +155,20 @@ var _UpdateModelPlugin = _interopRequireDefault(require("./plugins/UpdateModelPl
|
|
|
148
155
|
|
|
149
156
|
var _UpdateStyleAttributePlugin = _interopRequireDefault(require("./plugins/UpdateStyleAttributePlugin"));
|
|
150
157
|
|
|
158
|
+
var _interface = require("./core/interface");
|
|
159
|
+
|
|
160
|
+
Object.keys(_interface).forEach(function (key) {
|
|
161
|
+
if (key === "default" || key === "__esModule") return;
|
|
162
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
163
|
+
if (key in exports && exports[key] === _interface[key]) return;
|
|
164
|
+
Object.defineProperty(exports, key, {
|
|
165
|
+
enumerable: true,
|
|
166
|
+
get: function get() {
|
|
167
|
+
return _interface[key];
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
|
|
151
172
|
_l7Core.container.bind(_l7Core.TYPES.ILayerPlugin).to(_DataSourcePlugin.default).inRequestScope();
|
|
152
173
|
|
|
153
174
|
_l7Core.container.bind(_l7Core.TYPES.ILayerPlugin).to(_RegisterStyleAttributePlugin.default).inRequestScope();
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":["container","bind","TYPES","ILayerPlugin","to","DataSourcePlugin","inRequestScope","RegisterStyleAttributePlugin","FeatureScalePlugin","DataMappingPlugin","LayerStylePlugin","UpdateStyleAttributePlugin","UpdateModelPlugin","MultiPassRendererPlugin","ShaderUniformPlugin","LayerAnimateStylePlugin","LightingPlugin","PixelPickingPlugin","LayerModelPlugin"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":["container","bind","TYPES","ILayerPlugin","to","DataSourcePlugin","inRequestScope","RegisterStyleAttributePlugin","FeatureScalePlugin","DataMappingPlugin","LayerStylePlugin","UpdateStyleAttributePlugin","UpdateModelPlugin","MultiPassRendererPlugin","ShaderUniformPlugin","LayerAnimateStylePlugin","LightingPlugin","PixelPickingPlugin","LayerModelPlugin"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AAEA;;AACA;;AAGA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AA2HA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AA9GAA,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMC,yBAFN,EAGGC,cAHH;;AAOAN,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMG,qCAFN,EAGGD,cAHH;;AAOAN,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMI,2BAFN,EAGGF,cAHH;;AAOAN,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMK,0BAFN,EAGGH,cAHH;;AAQAN,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMM,yBAFN,EAGGJ,cAHH;;AAQAN,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMO,mCAFN,EAGGL,cAHH;;AAQAN,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMQ,0BAFN,EAGGN,cAHH;;AAQAN,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMS,gCAFN,EAGGP,cAHH;;AAOAN,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMU,4BAFN,EAGGR,cAHH;;AAQAN,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMW,gCAFN,EAGGT,cAHH;;AAOAN,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMY,uBAFN,EAGGV,cAHH;;AAOAN,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMa,2BAFN,EAGGX,cAHH;;AAOAN,kBACGC,IADH,CACsBC,cAAMC,YAD5B,EAEGC,EAFH,CAEMc,yBAFN,EAGGZ,cAHH","sourcesContent":["import { container, ILayerPlugin, TYPES } from '@antv/l7-core';\nimport CanvasLayer from './canvas';\nimport CityBuildingLayer from './citybuliding/building';\nimport BaseLayer from './core/BaseLayer';\nimport GeometryLayer from './Geometry'; // 逐步替换为 Geometry\nimport './glsl.d';\nimport HeatmapLayer from './heatmap';\nimport ImageLayer from './image';\nimport LineLayer from './line/index';\nimport PointLayer from './point';\nimport PolygonLayer from './polygon';\nimport RasterLayer from './raster';\n\nimport EarthLayer from './earth';\n\nimport MaskLayer from './mask';\nimport WindLayer from './wind';\n\n// import ConfigSchemaValidationPlugin from './plugins/ConfigSchemaValidationPlugin';\nimport DataMappingPlugin from './plugins/DataMappingPlugin';\nimport DataSourcePlugin from './plugins/DataSourcePlugin';\nimport FeatureScalePlugin from './plugins/FeatureScalePlugin';\nimport LayerAnimateStylePlugin from './plugins/LayerAnimateStylePlugin';\nimport LayerModelPlugin from './plugins/LayerModelPlugin';\nimport LayerStylePlugin from './plugins/LayerStylePlugin';\nimport LightingPlugin from './plugins/LightingPlugin';\nimport MultiPassRendererPlugin from './plugins/MultiPassRendererPlugin';\nimport PixelPickingPlugin from './plugins/PixelPickingPlugin';\nimport RegisterStyleAttributePlugin from './plugins/RegisterStyleAttributePlugin';\nimport ShaderUniformPlugin from './plugins/ShaderUniformPlugin';\nimport UpdateModelPlugin from './plugins/UpdateModelPlugin';\nimport UpdateStyleAttributePlugin from './plugins/UpdateStyleAttributePlugin';\n\n/**\n * 校验传入参数配置项的正确性\n * @see /dev-docs/ConfigSchemaValidation.md\n */\n// container\n// .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n// .to(ConfigSchemaValidationPlugin)\n// .inRequestScope();\n/**\n * 获取 Source\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(DataSourcePlugin)\n .inRequestScope();\n/**\n * 根据 StyleAttribute 创建 VertexAttribute\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(RegisterStyleAttributePlugin)\n .inRequestScope();\n/**\n * 根据 Source 创建 Scale\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(FeatureScalePlugin)\n .inRequestScope();\n/**\n * 使用 Scale 进行数据映射\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(DataMappingPlugin)\n .inRequestScope();\n\n/**\n * 更新地图样式配置项 如active, show, hide\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(LayerStylePlugin)\n .inRequestScope();\n\n/**\n * 负责属性更新\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(UpdateStyleAttributePlugin)\n .inRequestScope();\n\n/**\n * 负责Model更新\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(UpdateModelPlugin)\n .inRequestScope();\n\n/**\n * Multi Pass 自定义渲染管线\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(MultiPassRendererPlugin)\n .inRequestScope();\n/**\n * 传入相机坐标系参数\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(ShaderUniformPlugin)\n .inRequestScope();\n\n/**\n * 传入动画参数\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(LayerAnimateStylePlugin)\n .inRequestScope();\n/**\n * 传入光照相关参数\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(LightingPlugin)\n .inRequestScope();\n/**\n * 负责拾取过程中 Encode 以及 Highlight 阶段及结束后恢复\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(PixelPickingPlugin)\n .inRequestScope();\n/**\n * 初始化Model\n */\ncontainer\n .bind<ILayerPlugin>(TYPES.ILayerPlugin)\n .to(LayerModelPlugin)\n .inRequestScope();\n\nexport {\n BaseLayer,\n PointLayer,\n PolygonLayer,\n LineLayer,\n CityBuildingLayer,\n GeometryLayer,\n CanvasLayer,\n ImageLayer,\n RasterLayer,\n HeatmapLayer,\n EarthLayer,\n WindLayer,\n MaskLayer,\n};\n\nexport * from './core/interface';\n"],"file":"index.js"}
|
package/lib/line/index.js
CHANGED
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","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,
|
|
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/arc.js
CHANGED
|
@@ -21,8 +21,6 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
|
|
|
21
21
|
|
|
22
22
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
23
|
|
|
24
|
-
var _isNumber2 = _interopRequireDefault(require("lodash/isNumber"));
|
|
25
|
-
|
|
26
24
|
var _l7Core = require("@antv/l7-core");
|
|
27
25
|
|
|
28
26
|
var _l7Utils = require("@antv/l7-utils");
|
|
@@ -91,7 +89,8 @@ var ArcModel = function (_BaseModel) {
|
|
|
91
89
|
key: "getUninforms",
|
|
92
90
|
value: function getUninforms() {
|
|
93
91
|
var _ref = this.layer.getLayerConfig(),
|
|
94
|
-
opacity = _ref.opacity,
|
|
92
|
+
_ref$opacity = _ref.opacity,
|
|
93
|
+
opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
|
|
95
94
|
sourceColor = _ref.sourceColor,
|
|
96
95
|
targetColor = _ref.targetColor,
|
|
97
96
|
_ref$textureBlend = _ref.textureBlend,
|
|
@@ -165,8 +164,8 @@ var ArcModel = function (_BaseModel) {
|
|
|
165
164
|
return {
|
|
166
165
|
u_dataTexture: this.dataTexture,
|
|
167
166
|
u_cellTypeLayout: this.getCellTypeLayout(),
|
|
168
|
-
u_thetaOffset: (
|
|
169
|
-
u_opacity: (
|
|
167
|
+
u_thetaOffset: Number(thetaOffset),
|
|
168
|
+
u_opacity: Number(opacity),
|
|
170
169
|
u_textureBlend: textureBlend === 'normal' ? 0.0 : 1.0,
|
|
171
170
|
segmentNumber: segmentNumber,
|
|
172
171
|
u_line_type: lineStyleObj[lineType || 'solid'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/line/models/arc.ts"],"names":["lineStyleObj","solid","dash","ArcModel","createTexture2D","rendererService","texture","update","data","iconService","getCanvas","layer","render","mag","gl","NEAREST","min","premultiplyAlpha","width","height","canvasHeight","getLayerConfig","opacity","sourceColor","targetColor","textureBlend","lineType","dashArray","forward","lineTexture","iconStep","segmentNumber","thetaOffset","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","length","flipY","format","LUMINANCE","type","FLOAT","push","useLinearColor","sourceColorArr","targetColorArr","getDirty","bind","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_thetaOffset","u_opacity","u_textureBlend","u_line_type","u_dash_array","u_blur","u_lineDir","u_texture","u_line_texture","u_icon_step","u_textSize","u_linearColor","u_sourceColor","u_targetColor","animateOption","u_aimate","animateOption2Array","u_time","getLayerAnimateTime","updateTexture","on","buildModels","destroy","off","frag","arc_dash_frag","vert","arc_dash_vert","arc_linear_frag","arc_linear_vert","arc_line_frag","arc_line_vert","mask","maskInside","getShaders","buildLayerModel","moduleName","vertexShader","fragmentShader","triangulation","LineArcTriangulation","depth","enable","blend","getBlend","stencil","styleAttributeService","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","feature","featureIdx","vertex","attributeIdx","Array","isArray","STATIC_DRAW","iconMap","getIconMap","x","y","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAnimateOption,\n IEncodeFeature,\n ILayerConfig,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\n\nimport { getMask, rgb2arr } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { ILineLayerStyleOptions, lineStyleType } from '../../core/interface';\nimport { LineArcTriangulation } from '../../core/triangulation';\n// arc dash line\nimport arc_dash_frag from '../shaders/dash/arc_dash_frag.glsl';\nimport arc_dash_vert from '../shaders/dash/arc_dash_vert.glsl';\n// arc normal line\nimport arc_line_frag from '../shaders/line_arc_frag.glsl';\nimport arc_line_vert from '../shaders/line_arc_vert.glsl';\n// arc linear line\nimport arc_linear_frag from '../shaders/linear/arc_linear_frag.glsl';\nimport arc_linear_vert from '../shaders/linear/arc_linear_vert.glsl';\nconst lineStyleObj: { [key: string]: number } = {\n solid: 0.0,\n dash: 1.0,\n};\nexport default class ArcModel extends BaseModel {\n protected texture: ITexture2D;\n public getUninforms(): IModelUniform {\n const {\n opacity,\n sourceColor,\n targetColor,\n textureBlend = 'normal',\n lineType = 'solid',\n dashArray = [10, 5],\n forward = true,\n lineTexture = false,\n iconStep = 100,\n segmentNumber = 30,\n thetaOffset = 0.314,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n if (\n this.dataTextureTest &&\n this.dataTextureNeedUpdate({ opacity, thetaOffset })\n ) {\n this.judgeStyleAttributes({ opacity, thetaOffset });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n\n if (dashArray.length === 2) {\n dashArray.push(0, 0);\n }\n\n // 转化渐变色\n let useLinearColor = 0; // 默认不生效\n let sourceColorArr = [0, 0, 0, 0];\n let targetColorArr = [0, 0, 0, 0];\n if (sourceColor && targetColor) {\n sourceColorArr = rgb2arr(sourceColor);\n targetColorArr = rgb2arr(targetColor);\n useLinearColor = 1;\n }\n\n if (this.rendererService.getDirty()) {\n this.texture.bind();\n }\n\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_thetaOffset: isNumber(thetaOffset) ? thetaOffset : 0.0,\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_textureBlend: textureBlend === 'normal' ? 0.0 : 1.0,\n segmentNumber,\n u_line_type: lineStyleObj[lineType || 'solid'],\n u_dash_array: dashArray,\n u_blur: 0.9,\n u_lineDir: forward ? 1 : -1,\n\n // 纹理支持参数\n u_texture: this.texture, // 贴图\n u_line_texture: lineTexture ? 1.0 : 0.0, // 传入线的标识\n u_icon_step: iconStep,\n u_textSize: [1024, this.iconService.canvasHeight || 128],\n\n // 渐变色支持参数\n u_linearColor: useLinearColor,\n u_sourceColor: sourceColorArr,\n u_targetColor: targetColorArr,\n };\n }\n\n public getAnimateUniforms(): IModelUniform {\n const { animateOption } = this.layer.getLayerConfig() as ILayerConfig;\n return {\n u_aimate: this.animateOption2Array(animateOption as IAnimateOption),\n u_time: this.layer.getLayerAnimateTime(),\n };\n }\n\n public initModels(): IModel[] {\n this.updateTexture();\n this.iconService.on('imageUpdate', this.updateTexture);\n\n return this.buildModels();\n }\n\n public clearModels() {\n this.texture?.destroy();\n this.dataTexture?.destroy();\n this.iconService.off('imageUpdate', this.updateTexture);\n }\n\n public getShaders(): { frag: string; vert: string; type: string } {\n const {\n sourceColor,\n targetColor,\n lineType,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n if (lineType === 'dash') {\n return {\n frag: arc_dash_frag,\n vert: arc_dash_vert,\n type: 'dash',\n };\n }\n\n if (sourceColor && targetColor) {\n // 分离 linear 功能\n return {\n frag: arc_linear_frag,\n vert: arc_linear_vert,\n type: 'linear',\n };\n } else {\n return {\n frag: arc_line_frag,\n vert: arc_line_vert,\n type: 'normal',\n };\n }\n }\n\n public buildModels(): IModel[] {\n const {\n segmentNumber = 30,\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n const { frag, vert, type } = this.getShaders();\n return [\n this.layer.buildLayerModel({\n moduleName: 'arc2dline' + type,\n vertexShader: vert,\n fragmentShader: frag,\n triangulation: LineArcTriangulation,\n depth: { enable: false },\n blend: this.getBlend(),\n segmentNumber,\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\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: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'instance', // 弧线起始点信息\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Instance',\n buffer: {\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 4,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3], vertex[4], vertex[5], vertex[6]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_iconMapUV',\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 const iconMap = this.iconService.getIconMap();\n const { texture } = feature;\n const { x, y } = iconMap[texture as string] || { x: 0, y: 0 };\n return [x, y];\n },\n },\n });\n }\n\n private updateTexture = () => {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.update({\n data: this.iconService.getCanvas(),\n });\n this.layer.render();\n return;\n }\n this.texture = createTexture2D({\n data: this.iconService.getCanvas(),\n mag: gl.NEAREST,\n min: gl.NEAREST,\n premultiplyAlpha: false,\n width: 1024,\n height: this.iconService.canvasHeight || 128,\n });\n };\n}\n"],"file":"arc.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/line/models/arc.ts"],"names":["lineStyleObj","solid","dash","ArcModel","createTexture2D","rendererService","texture","update","data","iconService","getCanvas","layer","render","mag","gl","NEAREST","min","premultiplyAlpha","width","height","canvasHeight","getLayerConfig","opacity","sourceColor","targetColor","textureBlend","lineType","dashArray","forward","lineTexture","iconStep","segmentNumber","thetaOffset","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","rowCount","dataTexture","length","flipY","format","LUMINANCE","type","FLOAT","push","useLinearColor","sourceColorArr","targetColorArr","getDirty","bind","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_thetaOffset","Number","u_opacity","u_textureBlend","u_line_type","u_dash_array","u_blur","u_lineDir","u_texture","u_line_texture","u_icon_step","u_textSize","u_linearColor","u_sourceColor","u_targetColor","animateOption","u_aimate","animateOption2Array","u_time","getLayerAnimateTime","updateTexture","on","buildModels","destroy","off","frag","arc_dash_frag","vert","arc_dash_vert","arc_linear_frag","arc_linear_vert","arc_line_frag","arc_line_vert","mask","maskInside","getShaders","buildLayerModel","moduleName","vertexShader","fragmentShader","triangulation","LineArcTriangulation","depth","enable","blend","getBlend","stencil","styleAttributeService","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","feature","featureIdx","vertex","attributeIdx","Array","isArray","STATIC_DRAW","iconMap","getIconMap","x","y","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAnimateOption,\n IEncodeFeature,\n ILayerConfig,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\n\nimport { getMask, rgb2arr } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { ILineLayerStyleOptions } from '../../core/interface';\nimport { LineArcTriangulation } from '../../core/triangulation';\n// arc dash line\nimport arc_dash_frag from '../shaders/dash/arc_dash_frag.glsl';\nimport arc_dash_vert from '../shaders/dash/arc_dash_vert.glsl';\n// arc normal line\nimport arc_line_frag from '../shaders/line_arc_frag.glsl';\nimport arc_line_vert from '../shaders/line_arc_vert.glsl';\n// arc linear line\nimport arc_linear_frag from '../shaders/linear/arc_linear_frag.glsl';\nimport arc_linear_vert from '../shaders/linear/arc_linear_vert.glsl';\nconst lineStyleObj: { [key: string]: number } = {\n solid: 0.0,\n dash: 1.0,\n};\nexport default class ArcModel extends BaseModel {\n protected texture: ITexture2D;\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n sourceColor,\n targetColor,\n textureBlend = 'normal',\n lineType = 'solid',\n dashArray = [10, 5],\n forward = true,\n lineTexture = false,\n iconStep = 100,\n segmentNumber = 30,\n thetaOffset = 0.314,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n\n if (\n this.dataTextureTest &&\n this.dataTextureNeedUpdate({ opacity, thetaOffset })\n ) {\n this.judgeStyleAttributes({ opacity, thetaOffset });\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n\n if (dashArray.length === 2) {\n dashArray.push(0, 0);\n }\n\n // 转化渐变色\n let useLinearColor = 0; // 默认不生效\n let sourceColorArr = [0, 0, 0, 0];\n let targetColorArr = [0, 0, 0, 0];\n if (sourceColor && targetColor) {\n sourceColorArr = rgb2arr(sourceColor);\n targetColorArr = rgb2arr(targetColor);\n useLinearColor = 1;\n }\n\n if (this.rendererService.getDirty()) {\n this.texture.bind();\n }\n\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n\n u_thetaOffset: Number(thetaOffset),\n u_opacity: Number(opacity),\n u_textureBlend: textureBlend === 'normal' ? 0.0 : 1.0,\n segmentNumber,\n u_line_type: lineStyleObj[lineType || 'solid'],\n u_dash_array: dashArray,\n u_blur: 0.9,\n u_lineDir: forward ? 1 : -1,\n\n // 纹理支持参数\n u_texture: this.texture, // 贴图\n u_line_texture: lineTexture ? 1.0 : 0.0, // 传入线的标识\n u_icon_step: iconStep,\n u_textSize: [1024, this.iconService.canvasHeight || 128],\n\n // 渐变色支持参数\n u_linearColor: useLinearColor,\n u_sourceColor: sourceColorArr,\n u_targetColor: targetColorArr,\n };\n }\n\n public getAnimateUniforms(): IModelUniform {\n const { animateOption } = this.layer.getLayerConfig() as ILayerConfig;\n return {\n u_aimate: this.animateOption2Array(animateOption as IAnimateOption),\n u_time: this.layer.getLayerAnimateTime(),\n };\n }\n\n public initModels(): IModel[] {\n this.updateTexture();\n this.iconService.on('imageUpdate', this.updateTexture);\n\n return this.buildModels();\n }\n\n public clearModels() {\n this.texture?.destroy();\n this.dataTexture?.destroy();\n this.iconService.off('imageUpdate', this.updateTexture);\n }\n\n public getShaders(): { frag: string; vert: string; type: string } {\n const {\n sourceColor,\n targetColor,\n lineType,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n if (lineType === 'dash') {\n return {\n frag: arc_dash_frag,\n vert: arc_dash_vert,\n type: 'dash',\n };\n }\n\n if (sourceColor && targetColor) {\n // 分离 linear 功能\n return {\n frag: arc_linear_frag,\n vert: arc_linear_vert,\n type: 'linear',\n };\n } else {\n return {\n frag: arc_line_frag,\n vert: arc_line_vert,\n type: 'normal',\n };\n }\n }\n\n public buildModels(): IModel[] {\n const {\n segmentNumber = 30,\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as ILineLayerStyleOptions;\n const { frag, vert, type } = this.getShaders();\n return [\n this.layer.buildLayerModel({\n moduleName: 'arc2dline' + type,\n vertexShader: vert,\n fragmentShader: frag,\n triangulation: LineArcTriangulation,\n depth: { enable: false },\n blend: this.getBlend(),\n segmentNumber,\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\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: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'instance', // 弧线起始点信息\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Instance',\n buffer: {\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 4,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3], vertex[4], vertex[5], vertex[6]];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_iconMapUV',\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 const iconMap = this.iconService.getIconMap();\n const { texture } = feature;\n const { x, y } = iconMap[texture as string] || { x: 0, y: 0 };\n return [x, y];\n },\n },\n });\n }\n\n private updateTexture = () => {\n const { createTexture2D } = this.rendererService;\n if (this.texture) {\n this.texture.update({\n data: this.iconService.getCanvas(),\n });\n this.layer.render();\n return;\n }\n this.texture = createTexture2D({\n data: this.iconService.getCanvas(),\n mag: gl.NEAREST,\n min: gl.NEAREST,\n premultiplyAlpha: false,\n width: 1024,\n height: this.iconService.canvasHeight || 128,\n });\n };\n}\n"],"file":"arc.js"}
|
|
@@ -21,8 +21,6 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
|
|
|
21
21
|
|
|
22
22
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
23
|
|
|
24
|
-
var _isNumber2 = _interopRequireDefault(require("lodash/isNumber"));
|
|
25
|
-
|
|
26
24
|
var _l7Core = require("@antv/l7-core");
|
|
27
25
|
|
|
28
26
|
var _l7Utils = require("@antv/l7-utils");
|
|
@@ -91,7 +89,8 @@ var Arc3DModel = function (_BaseModel) {
|
|
|
91
89
|
key: "getUninforms",
|
|
92
90
|
value: function getUninforms() {
|
|
93
91
|
var _ref = this.layer.getLayerConfig(),
|
|
94
|
-
opacity = _ref.opacity,
|
|
92
|
+
_ref$opacity = _ref.opacity,
|
|
93
|
+
opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
|
|
95
94
|
sourceColor = _ref.sourceColor,
|
|
96
95
|
targetColor = _ref.targetColor,
|
|
97
96
|
_ref$textureBlend = _ref.textureBlend,
|
|
@@ -164,7 +163,7 @@ var Arc3DModel = function (_BaseModel) {
|
|
|
164
163
|
u_global_height: globalArcHeight,
|
|
165
164
|
u_dataTexture: this.dataTexture,
|
|
166
165
|
u_cellTypeLayout: this.getCellTypeLayout(),
|
|
167
|
-
u_opacity: (
|
|
166
|
+
u_opacity: Number(opacity),
|
|
168
167
|
u_textureBlend: textureBlend === 'normal' ? 0.0 : 1.0,
|
|
169
168
|
segmentNumber: segmentNumber,
|
|
170
169
|
u_line_type: lineStyleObj[lineType] || 0.0,
|
|
@@ -210,8 +209,7 @@ var Arc3DModel = function (_BaseModel) {
|
|
|
210
209
|
value: function getShaders() {
|
|
211
210
|
var _ref3 = this.layer.getLayerConfig(),
|
|
212
211
|
sourceColor = _ref3.sourceColor,
|
|
213
|
-
targetColor = _ref3.targetColor
|
|
214
|
-
lineType = _ref3.lineType;
|
|
212
|
+
targetColor = _ref3.targetColor;
|
|
215
213
|
|
|
216
214
|
if (sourceColor && targetColor) {
|
|
217
215
|
return {
|