@antv/l7-layers 2.8.34 → 2.8.37
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 +29 -2
- package/es/core/interface.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/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/line.js +3 -3
- package/es/line/models/line.js.map +1 -1
- package/es/line/models/linearline.js +3 -3
- package/es/line/models/linearline.js.map +1 -1
- 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/DataMappingPlugin.d.ts +1 -0
- package/es/plugins/DataMappingPlugin.js +17 -9
- package/es/plugins/DataMappingPlugin.js.map +1 -1
- package/es/plugins/FeatureScalePlugin.d.ts +1 -2
- package/es/plugins/FeatureScalePlugin.js +42 -33
- package/es/plugins/FeatureScalePlugin.js.map +1 -1
- package/es/plugins/ShaderUniformPlugin.d.ts +1 -0
- package/es/plugins/ShaderUniformPlugin.js +12 -0
- package/es/plugins/ShaderUniformPlugin.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 +1 -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 +3 -4
- 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/image/models/image.js.map +1 -1
- package/lib/index.js +29 -8
- package/lib/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/line.js +3 -4
- package/lib/line/models/line.js.map +1 -1
- package/lib/line/models/linearline.js +3 -4
- package/lib/line/models/linearline.js.map +1 -1
- 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/DataMappingPlugin.js +17 -9
- package/lib/plugins/DataMappingPlugin.js.map +1 -1
- package/lib/plugins/FeatureScalePlugin.js +43 -33
- package/lib/plugins/FeatureScalePlugin.js.map +1 -1
- package/lib/plugins/ShaderUniformPlugin.js +12 -0
- package/lib/plugins/ShaderUniformPlugin.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 +1 -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 +3 -5
- 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 +7 -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/es/Geometry/index.d.ts
CHANGED
package/es/Geometry/index.js
CHANGED
|
@@ -65,7 +65,8 @@ var GeometryLayer = function (_BaseLayer) {
|
|
|
65
65
|
var type = this.getModelType();
|
|
66
66
|
var defaultConfig = {
|
|
67
67
|
plane: {},
|
|
68
|
-
sprite: {}
|
|
68
|
+
sprite: {},
|
|
69
|
+
billboard: {}
|
|
69
70
|
};
|
|
70
71
|
return defaultConfig[type];
|
|
71
72
|
}
|
|
@@ -81,6 +82,8 @@ var GeometryLayer = function (_BaseLayer) {
|
|
|
81
82
|
return 'plane';
|
|
82
83
|
} else if (shape === 'sprite') {
|
|
83
84
|
return 'sprite';
|
|
85
|
+
} else if (shape === 'billboard') {
|
|
86
|
+
return 'billboard';
|
|
84
87
|
} else {
|
|
85
88
|
return 'plane';
|
|
86
89
|
}
|
package/es/Geometry/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Geometry/index.ts"],"names":["BaseLayer","GeometryModels","GeometryLayer","modelType","getModelType","layerModel","models","initModels","buildModels","properties","opacity","type","minimum","maximum","defaultConfig","plane","sprite","shapeAttribute","styleAttributeService","getLayerStyleAttribute","shape","scale","field"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,SAAP,MAAsB,mBAAtB;AAEA,OAAOC,cAAP,MAAkD,UAAlD;;IAEqBC,a;;;;;;;;;;;;;;;;2DAGG,e;;;;;;;WACtB,uBAAqB;AACnB,UAAMC,SAAS,GAAG,KAAKC,YAAL,EAAlB;AACA,WAAKC,UAAL,GAAkB,IAAIJ,cAAc,CAACE,SAAD,CAAlB,CAA8B,IAA9B,CAAlB;AACA,WAAKG,MAAL,GAAc,KAAKD,UAAL,CAAgBE,UAAhB,EAAd;AACD;;;WACD,yBAAuB;AACrB,WAAKD,MAAL,GAAc,KAAKD,UAAL,CAAgBG,WAAhB,EAAd;AACD;;;WAED,2BAA4B;AAC1B,aAAO;AACLC,QAAAA,UAAU,EAAE;AACVC,UAAAA,OAAO,EAAE;AACPC,YAAAA,IAAI,EAAE,QADC;AAEPC,YAAAA,OAAO,EAAE,CAFF;AAGPC,YAAAA,OAAO,EAAE;AAHF;AADC;AADP,OAAP;AASD;;;WACD,4BAA6B;AAC3B,UAAMF,IAAI,GAAG,KAAKP,YAAL,EAAb;AACA,UAAMU,aAAa,GAAG;AACpBC,QAAAA,KAAK,EAAE,EADa;AAEpBC,QAAAA,MAAM,EAAE;
|
|
1
|
+
{"version":3,"sources":["../../src/Geometry/index.ts"],"names":["BaseLayer","GeometryModels","GeometryLayer","modelType","getModelType","layerModel","models","initModels","buildModels","properties","opacity","type","minimum","maximum","defaultConfig","plane","sprite","billboard","shapeAttribute","styleAttributeService","getLayerStyleAttribute","shape","scale","field"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,SAAP,MAAsB,mBAAtB;AAEA,OAAOC,cAAP,MAAkD,UAAlD;;IAEqBC,a;;;;;;;;;;;;;;;;2DAGG,e;;;;;;;WACtB,uBAAqB;AACnB,UAAMC,SAAS,GAAG,KAAKC,YAAL,EAAlB;AACA,WAAKC,UAAL,GAAkB,IAAIJ,cAAc,CAACE,SAAD,CAAlB,CAA8B,IAA9B,CAAlB;AACA,WAAKG,MAAL,GAAc,KAAKD,UAAL,CAAgBE,UAAhB,EAAd;AACD;;;WACD,yBAAuB;AACrB,WAAKD,MAAL,GAAc,KAAKD,UAAL,CAAgBG,WAAhB,EAAd;AACD;;;WAED,2BAA4B;AAC1B,aAAO;AACLC,QAAAA,UAAU,EAAE;AACVC,UAAAA,OAAO,EAAE;AACPC,YAAAA,IAAI,EAAE,QADC;AAEPC,YAAAA,OAAO,EAAE,CAFF;AAGPC,YAAAA,OAAO,EAAE;AAHF;AADC;AADP,OAAP;AASD;;;WACD,4BAA6B;AAC3B,UAAMF,IAAI,GAAG,KAAKP,YAAL,EAAb;AACA,UAAMU,aAAa,GAAG;AACpBC,QAAAA,KAAK,EAAE,EADa;AAEpBC,QAAAA,MAAM,EAAE,EAFY;AAGpBC,QAAAA,SAAS,EAAE;AAHS,OAAtB;AAKA,aAAOH,aAAa,CAACH,IAAD,CAApB;AACD;;;WAED,wBAA4C;AAAA;;AAC1C,UAAMO,cAAc,GAAG,KAAKC,qBAAL,CAA2BC,sBAA3B,CACrB,OADqB,CAAvB;AAGA,UAAMC,KAAK,GAAGH,cAAH,aAAGA,cAAH,gDAAGA,cAAc,CAAEI,KAAnB,0DAAG,sBAAuBC,KAArC;;AACA,UAAIF,KAAK,KAAK,OAAd,EAAuB;AACrB,eAAO,OAAP;AACD,OAFD,MAEO,IAAIA,KAAK,KAAK,QAAd,EAAwB;AAC7B,eAAO,QAAP;AACD,OAFM,MAEA,IAAIA,KAAK,KAAK,WAAd,EAA2B;AAChC,eAAO,WAAP;AACD,OAFM,MAEA;AACL,eAAO,OAAP;AACD;AACF;;;;EAhDwCrB,S;;SAAtBE,a","sourcesContent":["import BaseLayer from '../core/BaseLayer';\nimport { IGeometryLayerStyleOptions } from '../core/interface';\nimport GeometryModels, { GeometryModelType } from './models';\n\nexport default class GeometryLayer extends BaseLayer<\n IGeometryLayerStyleOptions\n> {\n public type: string = 'GeometryLayer';\n public buildModels() {\n const modelType = this.getModelType();\n this.layerModel = new GeometryModels[modelType](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 plane: {},\n sprite: {},\n billboard: {},\n };\n return defaultConfig[type];\n }\n\n protected getModelType(): GeometryModelType {\n const shapeAttribute = this.styleAttributeService.getLayerStyleAttribute(\n 'shape',\n );\n const shape = shapeAttribute?.scale?.field as GeometryModelType;\n if (shape === 'plane') {\n return 'plane';\n } else if (shape === 'sprite') {\n return 'sprite';\n } else if (shape === 'billboard') {\n return 'billboard';\n } else {\n return 'plane';\n }\n }\n}\n"],"file":"index.js"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { IModelUniform, ITexture2D } from '@antv/l7-core';
|
|
2
|
+
import BaseModel from '../../core/BaseModel';
|
|
3
|
+
export default class BillBoardModel extends BaseModel {
|
|
4
|
+
protected texture: ITexture2D;
|
|
5
|
+
private radian;
|
|
6
|
+
planeGeometryTriangulation: () => {
|
|
7
|
+
size: number;
|
|
8
|
+
indices: number[];
|
|
9
|
+
vertices: number[];
|
|
10
|
+
};
|
|
11
|
+
getUninforms(): IModelUniform;
|
|
12
|
+
clearModels(): void;
|
|
13
|
+
initModels(): import("@antv/l7-core").IModel[];
|
|
14
|
+
buildModels(): import("@antv/l7-core").IModel[];
|
|
15
|
+
updateTexture(drawCanvas: (canvas: HTMLCanvasElement) => void): void;
|
|
16
|
+
protected getConfigSchema(): {
|
|
17
|
+
properties: {
|
|
18
|
+
opacity: {
|
|
19
|
+
type: string;
|
|
20
|
+
minimum: number;
|
|
21
|
+
maximum: number;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
protected registerBuiltinAttributes(): void;
|
|
26
|
+
}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
2
|
+
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
3
|
+
import _createClass from "@babel/runtime/helpers/createClass";
|
|
4
|
+
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
|
|
5
|
+
import _inherits from "@babel/runtime/helpers/inherits";
|
|
6
|
+
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
7
|
+
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
8
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
9
|
+
|
|
10
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
11
|
+
|
|
12
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
13
|
+
|
|
14
|
+
import { AttributeType, gl } from '@antv/l7-core';
|
|
15
|
+
import { getMask } from '@antv/l7-utils';
|
|
16
|
+
import BaseModel from '../../core/BaseModel';
|
|
17
|
+
var planeFrag = "\nuniform sampler2D u_texture;\nuniform float u_opacity;\n\nvarying vec3 v_Color;\nvarying vec2 v_uv;\n\n#pragma include \"picking\"\nvoid main() {\n gl_FragColor = texture2D(u_texture, vec2(v_uv.x, 1.0 - v_uv.y));\n gl_FragColor.a *= u_opacity;\n gl_FragColor = filterColor(gl_FragColor);\n}\n";
|
|
18
|
+
var planeVert = "precision highp float;\nuniform mat4 u_ModelMatrix;\nuniform float u_raisingHeight: 0.0;\nuniform mat4 u_Mvp;\nuniform float u_opacity;\nuniform vec2 u_size: [1.0, 1.0];\nuniform mat2 u_RotateMatrix;\n\nattribute vec3 a_Extrude;\nattribute vec3 a_Position;\nattribute vec2 a_Uv;\nattribute vec3 a_Color;\n\nvarying vec3 v_Color;\nvarying vec2 v_uv;\n\n#pragma include \"projection\"\n#pragma include \"picking\"\nvoid main() {\n vec3 extrude = a_Extrude;\n v_Color = a_Color;\n v_uv = a_Uv;\n\n float raiseHeight = u_raisingHeight;\n if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {\n float mapboxZoomScale = 4.0/pow(2.0, 21.0 - u_Zoom);\n raiseHeight = u_raisingHeight * mapboxZoomScale;\n }\n\n // \u8BA1\u7B97\u7ECF\u7EAC\u5EA6\u70B9\u4F4D\u5750\u6807\n vec4 project_pos = project_position(vec4(a_Position.xy, 0.0, 1.0));\n\n // \u8BA1\u7B97\u7ED5 z \u8F74\u65CB\u8F6C\u540E\u7684\u504F\u79FB\n vec2 offsetXY = project_pixel(u_RotateMatrix * vec2(extrude.x * u_size.x, 0.0));\n // \u7ED5 z \u8F74\u65CB\u8F6C\n float x = project_pos.x + offsetXY.x;\n float y = project_pos.y + offsetXY.y;\n // z \u8F74\u4E0D\u53C2\u4E0E\u65CB\u8F6C\n float z = project_pixel(extrude.y * u_size.y + raiseHeight);\n\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n // gl_Position = u_Mvp * (vec4(project_pos.xy, a_Position.z, 1.0));\n gl_Position = u_Mvp * (vec4(x, y, z, 1.0));\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(x , y, z , 1.0));\n }\n\n setPickingColor(a_PickingColor);\n}\n";
|
|
19
|
+
|
|
20
|
+
var BillBoardModel = function (_BaseModel) {
|
|
21
|
+
_inherits(BillBoardModel, _BaseModel);
|
|
22
|
+
|
|
23
|
+
var _super = _createSuper(BillBoardModel);
|
|
24
|
+
|
|
25
|
+
function BillBoardModel() {
|
|
26
|
+
var _this;
|
|
27
|
+
|
|
28
|
+
_classCallCheck(this, BillBoardModel);
|
|
29
|
+
|
|
30
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
31
|
+
args[_key] = arguments[_key];
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
35
|
+
|
|
36
|
+
_defineProperty(_assertThisInitialized(_this), "texture", void 0);
|
|
37
|
+
|
|
38
|
+
_defineProperty(_assertThisInitialized(_this), "radian", 0);
|
|
39
|
+
|
|
40
|
+
_defineProperty(_assertThisInitialized(_this), "planeGeometryTriangulation", function () {
|
|
41
|
+
var _ref = _this.layer.getLayerConfig(),
|
|
42
|
+
_ref$center = _ref.center,
|
|
43
|
+
center = _ref$center === void 0 ? [120, 30] : _ref$center;
|
|
44
|
+
|
|
45
|
+
return {
|
|
46
|
+
size: 4,
|
|
47
|
+
indices: [0, 1, 2, 2, 3, 0],
|
|
48
|
+
vertices: [].concat(_toConsumableArray(center), [1, 1], _toConsumableArray(center), [0, 1], _toConsumableArray(center), [0, 0], _toConsumableArray(center), [1, 0])
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
return _this;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
_createClass(BillBoardModel, [{
|
|
56
|
+
key: "getUninforms",
|
|
57
|
+
value: function getUninforms() {
|
|
58
|
+
var _ref2 = this.layer.getLayerConfig(),
|
|
59
|
+
opacity = _ref2.opacity,
|
|
60
|
+
_ref2$width = _ref2.width,
|
|
61
|
+
width = _ref2$width === void 0 ? 1 : _ref2$width,
|
|
62
|
+
_ref2$height = _ref2.height,
|
|
63
|
+
height = _ref2$height === void 0 ? 1 : _ref2$height,
|
|
64
|
+
_ref2$raisingHeight = _ref2.raisingHeight,
|
|
65
|
+
raisingHeight = _ref2$raisingHeight === void 0 ? 0 : _ref2$raisingHeight;
|
|
66
|
+
|
|
67
|
+
var rotateFlag = 1;
|
|
68
|
+
|
|
69
|
+
if (this.mapService.version === 'GAODE2.x' || this.mapService.version === 'GAODE1.x') {
|
|
70
|
+
rotateFlag = -1;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
this.radian = rotateFlag * Math.PI * (this.mapService.getRotation() % 360) / 180;
|
|
74
|
+
return {
|
|
75
|
+
u_raisingHeight: Number(raisingHeight),
|
|
76
|
+
u_RotateMatrix: new Float32Array([Math.cos(this.radian), Math.sin(this.radian), -Math.sin(this.radian), Math.cos(this.radian)]),
|
|
77
|
+
u_opacity: opacity || 1,
|
|
78
|
+
u_texture: this.texture,
|
|
79
|
+
u_size: [width, height]
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
}, {
|
|
83
|
+
key: "clearModels",
|
|
84
|
+
value: function clearModels() {
|
|
85
|
+
var _this$texture;
|
|
86
|
+
|
|
87
|
+
(_this$texture = this.texture) === null || _this$texture === void 0 ? void 0 : _this$texture.destroy();
|
|
88
|
+
}
|
|
89
|
+
}, {
|
|
90
|
+
key: "initModels",
|
|
91
|
+
value: function initModels() {
|
|
92
|
+
var _ref3 = this.layer.getLayerConfig(),
|
|
93
|
+
_ref3$mask = _ref3.mask,
|
|
94
|
+
mask = _ref3$mask === void 0 ? false : _ref3$mask,
|
|
95
|
+
_ref3$maskInside = _ref3.maskInside,
|
|
96
|
+
maskInside = _ref3$maskInside === void 0 ? true : _ref3$maskInside,
|
|
97
|
+
drawCanvas = _ref3.drawCanvas;
|
|
98
|
+
|
|
99
|
+
var createTexture2D = this.rendererService.createTexture2D;
|
|
100
|
+
this.texture = createTexture2D({
|
|
101
|
+
height: 0,
|
|
102
|
+
width: 0
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
if (drawCanvas) {
|
|
106
|
+
this.updateTexture(drawCanvas);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return [this.layer.buildLayerModel({
|
|
110
|
+
moduleName: 'geometry_billboard',
|
|
111
|
+
vertexShader: planeVert,
|
|
112
|
+
fragmentShader: planeFrag,
|
|
113
|
+
triangulation: this.planeGeometryTriangulation,
|
|
114
|
+
primitive: gl.TRIANGLES,
|
|
115
|
+
depth: {
|
|
116
|
+
enable: true
|
|
117
|
+
},
|
|
118
|
+
blend: this.getBlend(),
|
|
119
|
+
stencil: getMask(mask, maskInside)
|
|
120
|
+
})];
|
|
121
|
+
}
|
|
122
|
+
}, {
|
|
123
|
+
key: "buildModels",
|
|
124
|
+
value: function buildModels() {
|
|
125
|
+
return this.initModels();
|
|
126
|
+
}
|
|
127
|
+
}, {
|
|
128
|
+
key: "updateTexture",
|
|
129
|
+
value: function updateTexture(drawCanvas) {
|
|
130
|
+
var createTexture2D = this.rendererService.createTexture2D;
|
|
131
|
+
|
|
132
|
+
var _ref4 = this.layer.getLayerConfig(),
|
|
133
|
+
_ref4$canvasWidth = _ref4.canvasWidth,
|
|
134
|
+
canvasWidth = _ref4$canvasWidth === void 0 ? 1 : _ref4$canvasWidth,
|
|
135
|
+
_ref4$canvasHeight = _ref4.canvasHeight,
|
|
136
|
+
canvasHeight = _ref4$canvasHeight === void 0 ? 1 : _ref4$canvasHeight;
|
|
137
|
+
|
|
138
|
+
var canvas = document.createElement('canvas');
|
|
139
|
+
canvas.width = canvasWidth;
|
|
140
|
+
canvas.height = canvasHeight;
|
|
141
|
+
var ctx = canvas.getContext('2d');
|
|
142
|
+
|
|
143
|
+
if (ctx) {
|
|
144
|
+
drawCanvas(canvas);
|
|
145
|
+
this.texture = createTexture2D({
|
|
146
|
+
data: canvas,
|
|
147
|
+
width: canvas.width,
|
|
148
|
+
height: canvas.height,
|
|
149
|
+
wrapS: gl.CLAMP_TO_EDGE,
|
|
150
|
+
wrapT: gl.CLAMP_TO_EDGE
|
|
151
|
+
});
|
|
152
|
+
this.layerService.updateLayerRenderList();
|
|
153
|
+
this.layerService.renderLayers();
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}, {
|
|
157
|
+
key: "getConfigSchema",
|
|
158
|
+
value: function getConfigSchema() {
|
|
159
|
+
return {
|
|
160
|
+
properties: {
|
|
161
|
+
opacity: {
|
|
162
|
+
type: 'number',
|
|
163
|
+
minimum: 0,
|
|
164
|
+
maximum: 1
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
}, {
|
|
170
|
+
key: "registerBuiltinAttributes",
|
|
171
|
+
value: function registerBuiltinAttributes() {
|
|
172
|
+
this.styleAttributeService.registerStyleAttribute({
|
|
173
|
+
name: 'extrude',
|
|
174
|
+
type: AttributeType.Attribute,
|
|
175
|
+
descriptor: {
|
|
176
|
+
name: 'a_Extrude',
|
|
177
|
+
buffer: {
|
|
178
|
+
usage: gl.DYNAMIC_DRAW,
|
|
179
|
+
data: [],
|
|
180
|
+
type: gl.FLOAT
|
|
181
|
+
},
|
|
182
|
+
size: 3,
|
|
183
|
+
update: function update(feature, featureIdx, vertex, attributeIdx) {
|
|
184
|
+
var extrude = [1, 1, 0, -1, 1, 0, -1, -1, 0, 1, -1, 0];
|
|
185
|
+
var extrudeIndex = attributeIdx % 4 * 3;
|
|
186
|
+
return [extrude[extrudeIndex], extrude[extrudeIndex + 1], extrude[extrudeIndex + 2]];
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
this.styleAttributeService.registerStyleAttribute({
|
|
191
|
+
name: 'uv',
|
|
192
|
+
type: AttributeType.Attribute,
|
|
193
|
+
descriptor: {
|
|
194
|
+
name: 'a_Uv',
|
|
195
|
+
buffer: {
|
|
196
|
+
usage: gl.DYNAMIC_DRAW,
|
|
197
|
+
data: [],
|
|
198
|
+
type: gl.FLOAT
|
|
199
|
+
},
|
|
200
|
+
size: 2,
|
|
201
|
+
update: function update(feature, featureIdx, vertex, attributeIdx) {
|
|
202
|
+
return [vertex[2], vertex[3]];
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
}]);
|
|
208
|
+
|
|
209
|
+
return BillBoardModel;
|
|
210
|
+
}(BaseModel);
|
|
211
|
+
|
|
212
|
+
export { BillBoardModel as default };
|
|
213
|
+
//# sourceMappingURL=billboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/Geometry/models/billboard.ts"],"names":["AttributeType","gl","getMask","BaseModel","BillBoardModel","layer","getLayerConfig","center","size","indices","vertices","opacity","width","height","raisingHeight","rotateFlag","mapService","version","radian","Math","PI","getRotation","u_raisingHeight","Number","u_RotateMatrix","Float32Array","cos","sin","u_opacity","u_texture","texture","u_size","destroy","mask","maskInside","drawCanvas","createTexture2D","rendererService","updateTexture","buildLayerModel","moduleName","vertexShader","planeVert","fragmentShader","planeFrag","triangulation","planeGeometryTriangulation","primitive","TRIANGLES","depth","enable","blend","getBlend","stencil","initModels","canvasWidth","canvasHeight","canvas","document","createElement","ctx","getContext","data","wrapS","CLAMP_TO_EDGE","wrapT","layerService","updateLayerRenderList","renderLayers","properties","type","minimum","maximum","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","update","feature","featureIdx","vertex","attributeIdx","extrude","extrudeIndex"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IAttrubuteAndElements,\n IEncodeFeature,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { getMask, isMini } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { IGeometryLayerStyleOptions } from '../../core/interface';\nimport planeFrag from '../shaders/billboard_frag.glsl';\nimport planeVert from '../shaders/billboard_vert.glsl';\n\nexport default class BillBoardModel extends BaseModel {\n protected texture: ITexture2D;\n private radian: number = 0; // 旋转的弧度\n\n public planeGeometryTriangulation = () => {\n const {\n center = [120, 30],\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n return {\n size: 4,\n indices: [0, 1, 2, 2, 3, 0],\n vertices: [\n ...center,\n ...[1, 1],\n ...center,\n ...[0, 1],\n ...center,\n ...[0, 0],\n ...center,\n ...[1, 0],\n ],\n };\n };\n\n public getUninforms(): IModelUniform {\n const {\n opacity,\n width = 1,\n height = 1,\n raisingHeight = 0,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n\n /**\n * rotateFlag\n * L7MAP 1\n * MAPBOX 1\n * GAODE2.x -1\n * GAODE1.x -1\n */\n let rotateFlag = 1;\n if (\n this.mapService.version === 'GAODE2.x' ||\n this.mapService.version === 'GAODE1.x'\n ) {\n rotateFlag = -1;\n }\n // 控制图标的旋转角度(绕 Z 轴旋转)\n this.radian =\n (rotateFlag * Math.PI * (this.mapService.getRotation() % 360)) / 180;\n\n return {\n u_raisingHeight: Number(raisingHeight),\n u_RotateMatrix: new Float32Array([\n // z\n Math.cos(this.radian),\n Math.sin(this.radian),\n -Math.sin(this.radian),\n Math.cos(this.radian),\n ]),\n u_opacity: opacity || 1,\n u_texture: this.texture,\n u_size: [width, height],\n };\n }\n\n public clearModels(): void {\n this.texture?.destroy();\n }\n\n public initModels() {\n const {\n mask = false,\n maskInside = true,\n drawCanvas,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n\n const { createTexture2D } = this.rendererService;\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n\n if (drawCanvas) {\n this.updateTexture(drawCanvas);\n }\n\n return [\n this.layer.buildLayerModel({\n moduleName: 'geometry_billboard',\n vertexShader: planeVert,\n fragmentShader: planeFrag,\n triangulation: this.planeGeometryTriangulation,\n primitive: gl.TRIANGLES,\n depth: { enable: true },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n\n public buildModels() {\n return this.initModels();\n }\n\n public updateTexture(drawCanvas: (canvas: HTMLCanvasElement) => void): void {\n const { createTexture2D } = this.rendererService;\n\n const {\n canvasWidth = 1,\n canvasHeight = 1,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n const canvas = document.createElement('canvas');\n canvas.width = canvasWidth;\n canvas.height = canvasHeight;\n const ctx = canvas.getContext('2d');\n if (ctx) {\n drawCanvas(canvas);\n this.texture = createTexture2D({\n data: canvas,\n width: canvas.width,\n height: canvas.height,\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\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 registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'extrude',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Extrude',\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: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const extrude = [1, 1, 0, -1, 1, 0, -1, -1, 0, 1, -1, 0];\n const extrudeIndex = (attributeIdx % 4) * 3;\n return [\n extrude[extrudeIndex],\n extrude[extrudeIndex + 1],\n extrude[extrudeIndex + 2],\n ];\n },\n },\n });\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[2], vertex[3]];\n },\n },\n });\n }\n}\n"],"file":"billboard.js"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import BillBoardModel from './billboard';
|
|
1
2
|
import PlaneModel from './plane';
|
|
2
3
|
import SpriteModel from './sprite';
|
|
3
4
|
var GeometryModels = {
|
|
4
5
|
plane: PlaneModel,
|
|
5
|
-
sprite: SpriteModel
|
|
6
|
+
sprite: SpriteModel,
|
|
7
|
+
billboard: BillBoardModel
|
|
6
8
|
};
|
|
7
9
|
export default GeometryModels;
|
|
8
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Geometry/models/index.ts"],"names":["PlaneModel","SpriteModel","GeometryModels","plane","sprite"],"mappings":"AAAA,OAAOA,UAAP,MAAuB,SAAvB;AACA,OAAOC,WAAP,MAAwB,UAAxB;AAGA,IAAMC,cAAmD,GAAG;AAC1DC,EAAAA,KAAK,EAAEH,UADmD;AAE1DI,EAAAA,MAAM,EAAEH;
|
|
1
|
+
{"version":3,"sources":["../../../src/Geometry/models/index.ts"],"names":["BillBoardModel","PlaneModel","SpriteModel","GeometryModels","plane","sprite","billboard"],"mappings":"AAAA,OAAOA,cAAP,MAA2B,aAA3B;AACA,OAAOC,UAAP,MAAuB,SAAvB;AACA,OAAOC,WAAP,MAAwB,UAAxB;AAGA,IAAMC,cAAmD,GAAG;AAC1DC,EAAAA,KAAK,EAAEH,UADmD;AAE1DI,EAAAA,MAAM,EAAEH,WAFkD;AAG1DI,EAAAA,SAAS,EAAEN;AAH+C,CAA5D;AAKA,eAAeG,cAAf","sourcesContent":["import BillBoardModel from './billboard';\nimport PlaneModel from './plane';\nimport SpriteModel from './sprite';\nexport type GeometryModelType = 'plane' | 'sprite' | 'billboard';\n\nconst GeometryModels: { [key in GeometryModelType]: any } = {\n plane: PlaneModel,\n sprite: SpriteModel,\n billboard: BillBoardModel,\n};\nexport default GeometryModels;\n"],"file":"index.js"}
|
|
@@ -15,8 +15,8 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
|
|
|
15
15
|
import { gl } from '@antv/l7-core';
|
|
16
16
|
import { Version } from '@antv/l7-maps';
|
|
17
17
|
import BaseModel from '../../core/BaseModel';
|
|
18
|
-
var spriteFrag = "\nuniform sampler2D u_texture;\nuniform float u_mapFlag;\nuniform float u_opacity;\n\nvarying vec3 v_Color;\nvarying float v_d;\n\
|
|
19
|
-
var spriteVert = "precision highp float;\n\nattribute vec3 a_Position;\nattribute vec3 a_Color;\n\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nuniform float u_opacity;\nuniform float u_Scale;\nvarying vec3 v_Color;\nvarying float v_d;\n\n#pragma include \"projection\"\
|
|
18
|
+
var spriteFrag = "\nuniform sampler2D u_texture;\nuniform float u_mapFlag;\nuniform float u_opacity;\n\nvarying vec3 v_Color;\nvarying float v_d;\n\nvoid main() {\n\n if(v_d < 0.0) {\n discard;\n }\n\n if(u_mapFlag > 0.0) {\n gl_FragColor = texture2D(u_texture, gl_PointCoord);\n gl_FragColor.a *= u_opacity;\n } else {\n gl_FragColor = vec4(v_Color, u_opacity);\n }\n}\n";
|
|
19
|
+
var spriteVert = "precision highp float;\n\nattribute vec3 a_Position;\nattribute vec3 a_Color;\n\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nuniform float u_opacity;\nuniform float u_Scale;\nvarying vec3 v_Color;\nvarying float v_d;\n\n#pragma include \"projection\"\nvoid main() {\n v_Color = a_Color;\n \n vec4 project_pos = project_position(vec4(a_Position, 1.0));\n\n v_d = a_Position.z;\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * (vec4(project_pos.xy, a_Position.z, 1.0));\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy, a_Position.z, 1.0));\n }\n\n gl_PointSize = pow((u_Zoom - 1.0), 2.0) * u_Scale;\n}\n";
|
|
20
20
|
var SPRITE_ANIMATE_DIR;
|
|
21
21
|
|
|
22
22
|
(function (SPRITE_ANIMATE_DIR) {
|
package/es/core/BaseLayer.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { SyncBailHook, SyncHook, SyncWaterfallHook } from '@antv/async-hook';
|
|
2
|
-
import { BlendType, IActiveOption, IAnimateOption, IAttrubuteAndElements, ICameraService, ICoordinateSystemService, IDataState, IEncodeFeature, IFontService, IGlobalConfigService, IIconService, IInteractionService, ILayer, ILayerConfig, ILayerModel, ILayerModelInitializationOptions, ILayerPlugin, ILayerService, IMapService, IModel, IModelInitializationOptions, IMultiPassRenderer, IPass, IPickingService, IPostProcessingPass, IRendererService, IScale, IScaleOptions, IShaderModuleService, ISourceCFG, IStyleAttributeService, IStyleAttributeUpdateOptions, LegendItems, StyleAttributeField, StyleAttributeOption, Triangulation } from '@antv/l7-core';
|
|
2
|
+
import { BlendType, IActiveOption, IAnimateOption, IAttrubuteAndElements, ICameraService, ICoordinateSystemService, IDataState, IEncodeFeature, IFontService, IGlobalConfigService, IIconService, IInteractionService, ILayer, ILayerConfig, ILayerModel, ILayerModelInitializationOptions, ILayerPlugin, ILayerService, IMapService, IModel, IModelInitializationOptions, IMultiPassRenderer, IPass, IPickingService, IPostProcessingPass, IRendererService, IScale, IScaleOptions, IShaderModuleService, ISourceCFG, IStyleAttributeService, IStyleAttributeUpdateOptions, LayerEventType, LegendItems, StyleAttributeField, StyleAttributeOption, Triangulation } from '@antv/l7-core';
|
|
3
3
|
import Source from '@antv/l7-source';
|
|
4
4
|
import { EventEmitter } from 'eventemitter3';
|
|
5
5
|
import { Container } from 'inversify';
|
|
6
|
-
export default class BaseLayer<ChildLayerStyleOptions = {}> extends EventEmitter implements ILayer {
|
|
6
|
+
export default class BaseLayer<ChildLayerStyleOptions = {}> extends EventEmitter<LayerEventType> implements ILayer {
|
|
7
7
|
id: string;
|
|
8
8
|
name: string;
|
|
9
9
|
type: string;
|