@antv/l7-layers 2.8.4 → 2.8.7
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 +19 -0
- package/es/Geometry/index.js +82 -0
- package/es/Geometry/index.js.map +1 -0
- package/es/Geometry/models/index.d.ts +5 -0
- package/es/Geometry/models/index.js +6 -0
- package/es/Geometry/models/index.js.map +1 -0
- package/es/Geometry/models/plane.d.ts +26 -0
- package/es/Geometry/models/plane.js +244 -0
- package/es/Geometry/models/plane.js.map +1 -0
- package/es/canvas/index.d.ts +19 -0
- package/es/canvas/index.js +82 -0
- package/es/canvas/index.js.map +1 -0
- package/es/canvas/models/canvas.d.ts +18 -0
- package/es/canvas/models/canvas.js +207 -0
- package/es/canvas/models/canvas.js.map +1 -0
- package/es/canvas/models/index.d.ts +5 -0
- package/es/canvas/models/index.js +6 -0
- package/es/canvas/models/index.js.map +1 -0
- package/es/core/BaseLayer.js +4 -0
- package/es/core/BaseLayer.js.map +1 -1
- package/es/core/interface.d.ts +27 -1
- package/es/core/interface.js +7 -0
- package/es/core/interface.js.map +1 -1
- package/es/core/triangulation.js.map +1 -1
- package/es/index.d.ts +3 -1
- package/es/index.js +3 -1
- package/es/index.js.map +1 -1
- package/lib/Geometry/index.js +95 -0
- package/lib/Geometry/index.js.map +1 -0
- package/lib/Geometry/models/index.js +17 -0
- package/lib/Geometry/models/index.js.map +1 -0
- package/lib/Geometry/models/plane.js +258 -0
- package/lib/Geometry/models/plane.js.map +1 -0
- package/lib/canvas/index.js +95 -0
- package/lib/canvas/index.js.map +1 -0
- package/lib/canvas/models/canvas.js +213 -0
- package/lib/canvas/models/canvas.js.map +1 -0
- package/lib/canvas/models/index.js +17 -0
- package/lib/canvas/models/index.js.map +1 -0
- package/lib/core/BaseLayer.js +4 -0
- package/lib/core/BaseLayer.js.map +1 -1
- package/lib/core/interface.js +9 -1
- package/lib/core/interface.js.map +1 -1
- package/lib/core/triangulation.js.map +1 -1
- package/lib/index.js +16 -0
- package/lib/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/Geometry/models/plane.ts"],"names":["initPlane","width","height","widthSegments","heightSegments","lng","lat","widthHalf","heightHalf","gridX","Math","floor","gridY","gridX1","gridY1","segmentWidth","segmentHeight","indices","positions","iy","y","ix","x","push","a","b","c","d","PlaneModel","layer","getLayerConfig","center","vertices","size","opacity","mapTexture","texture","destroy","updateTexture","u_opacity","u_mapFlag","u_texture","mask","maskInside","createTexture2D","rendererService","buildLayerModel","moduleName","vertexShader","planeVert","fragmentShader","planeFrag","triangulation","planeGeometryTriangulation","primitive","gl","TRIANGLES","depth","enable","blend","getBlend","stencil","initModels","img","Image","crossOrigin","onload","data","wrapS","CLAMP_TO_EDGE","wrapT","layerService","updateLayerRenderList","renderLayers","src","properties","type","minimum","maximum","styleAttributeService","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","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';\n// import { mat4, vec3 } from 'gl-matrix';\nimport BaseModel from '../../core/BaseModel';\nimport { IGeometryLayerStyleOptions } from '../../core/interface';\nimport planeFrag from '../shaders/plane_frag.glsl';\nimport planeVert from '../shaders/plane_vert.glsl';\n\nfunction initPlane(\n width = 1,\n height = 1,\n widthSegments = 1,\n heightSegments = 1,\n lng = 120,\n lat = 30,\n) {\n // https://github.com/mrdoob/three.js/blob/dev/src/geometries/PlaneGeometry.js\n const widthHalf = width / 2;\n const heightHalf = height / 2;\n\n const gridX = Math.floor(widthSegments);\n const gridY = Math.floor(heightSegments);\n\n const gridX1 = gridX + 1;\n const gridY1 = gridY + 1;\n\n const segmentWidth = width / gridX;\n const segmentHeight = height / gridY;\n\n const indices = [];\n const positions = [];\n\n for (let iy = 0; iy < gridY1; iy++) {\n const y = iy * segmentHeight - heightHalf;\n\n for (let ix = 0; ix < gridX1; ix++) {\n const x = ix * segmentWidth - widthHalf;\n\n positions.push(x + lng, -y + lat, 0);\n\n positions.push(ix / gridX);\n positions.push(1 - iy / gridY);\n }\n }\n\n for (let iy = 0; iy < gridY; iy++) {\n for (let ix = 0; ix < gridX; ix++) {\n const a = ix + gridX1 * iy;\n const b = ix + gridX1 * (iy + 1);\n const c = ix + 1 + gridX1 * (iy + 1);\n const d = ix + 1 + gridX1 * iy;\n\n indices.push(a, b, d);\n indices.push(b, c, d);\n }\n }\n\n return { indices, positions };\n}\n\nexport default class PlaneModel extends BaseModel {\n protected texture: ITexture2D;\n protected mapTexture: string | undefined;\n public planeGeometryTriangulation = () => {\n const {\n width = 1,\n height = 1,\n widthSegments = 1,\n heightSegments = 1,\n center = [120, 30],\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n const { indices, positions } = initPlane(\n width,\n height,\n widthSegments,\n heightSegments,\n ...center,\n );\n return {\n vertices: positions,\n indices,\n size: 5,\n };\n };\n\n public getUninforms(): IModelUniform {\n const {\n opacity,\n mapTexture,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n if (this.mapTexture !== mapTexture) {\n this.mapTexture = mapTexture;\n this.texture.destroy();\n this.updateTexture(mapTexture);\n }\n return {\n u_opacity: opacity || 1,\n u_mapFlag: mapTexture ? 1 : 0,\n\n u_texture: this.texture,\n // u_ModelMatrix: mat4.translate(mat4.create(), mat4.create(), [1, 0, 0])\n // u_ModelMatrix: mat4.rotateZ(mat4.create(), mat4.create(), 10)\n // u_ModelMatrix: mat4.rotateZ(mat4.create(), mat4.create(), 10)\n // u_ModelMatrix: this.rotateZ()\n };\n }\n\n // public rotateZ(): mat4 {\n // const res = mat4.create()\n // const roZero = mat4.translate(mat4.create(), mat4.create(), [-120, 0, -30])\n // const rotate = mat4.rotateZ(mat4.create(), mat4.create(), 10)\n // const roOrigin = mat4.translate(mat4.create(), mat4.create(), [120, 0, 30])\n // mat4.multiply(res, res, roZero)\n // mat4.multiply(res, res, rotate)\n // mat4.multiply(res, res, roOrigin)\n // return res\n // }\n\n public clearModels(): void {\n this.texture.destroy();\n }\n\n public initModels() {\n const {\n mask = false,\n maskInside = true,\n mapTexture,\n } = this.layer.getLayerConfig() as IGeometryLayerStyleOptions;\n this.mapTexture = mapTexture;\n\n const { createTexture2D } = this.rendererService;\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n\n this.updateTexture(mapTexture);\n\n return [\n this.layer.buildLayerModel({\n moduleName: 'geometry_plane',\n vertexShader: planeVert,\n fragmentShader: planeFrag,\n triangulation: this.planeGeometryTriangulation,\n primitive: gl.TRIANGLES,\n // primitive: gl.POINTS,\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 public updateTexture(mapTexture: string | undefined): void {\n const { createTexture2D } = this.rendererService;\n\n if (mapTexture) {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => {\n this.texture = createTexture2D({\n data: img,\n width: img.width,\n height: img.height,\n wrapS: gl.CLAMP_TO_EDGE,\n wrapT: gl.CLAMP_TO_EDGE,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n };\n img.src = mapTexture;\n } else {\n this.texture = createTexture2D({\n width: 0,\n height: 0,\n });\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 // 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":"plane.js"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
+
|
|
16
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
+
|
|
18
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
+
|
|
20
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
+
|
|
22
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
+
|
|
24
|
+
var _BaseLayer2 = _interopRequireDefault(require("../core/BaseLayer"));
|
|
25
|
+
|
|
26
|
+
var _index = _interopRequireDefault(require("./models/index"));
|
|
27
|
+
|
|
28
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
29
|
+
|
|
30
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
31
|
+
|
|
32
|
+
var CanvasLayer = function (_BaseLayer) {
|
|
33
|
+
(0, _inherits2.default)(CanvasLayer, _BaseLayer);
|
|
34
|
+
|
|
35
|
+
var _super = _createSuper(CanvasLayer);
|
|
36
|
+
|
|
37
|
+
function CanvasLayer() {
|
|
38
|
+
var _this;
|
|
39
|
+
|
|
40
|
+
(0, _classCallCheck2.default)(this, CanvasLayer);
|
|
41
|
+
|
|
42
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
43
|
+
args[_key] = arguments[_key];
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
47
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "type", 'CanvasLayer');
|
|
48
|
+
return _this;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
(0, _createClass2.default)(CanvasLayer, [{
|
|
52
|
+
key: "buildModels",
|
|
53
|
+
value: function buildModels() {
|
|
54
|
+
var modelType = this.getModelType();
|
|
55
|
+
this.layerModel = new _index.default[modelType](this);
|
|
56
|
+
this.models = this.layerModel.initModels();
|
|
57
|
+
}
|
|
58
|
+
}, {
|
|
59
|
+
key: "rebuildModels",
|
|
60
|
+
value: function rebuildModels() {
|
|
61
|
+
this.models = this.layerModel.buildModels();
|
|
62
|
+
}
|
|
63
|
+
}, {
|
|
64
|
+
key: "getConfigSchema",
|
|
65
|
+
value: function getConfigSchema() {
|
|
66
|
+
return {
|
|
67
|
+
properties: {
|
|
68
|
+
opacity: {
|
|
69
|
+
type: 'number',
|
|
70
|
+
minimum: 0,
|
|
71
|
+
maximum: 1
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
}, {
|
|
77
|
+
key: "getDefaultConfig",
|
|
78
|
+
value: function getDefaultConfig() {
|
|
79
|
+
var type = this.getModelType();
|
|
80
|
+
var defaultConfig = {
|
|
81
|
+
canvas: {}
|
|
82
|
+
};
|
|
83
|
+
return defaultConfig[type];
|
|
84
|
+
}
|
|
85
|
+
}, {
|
|
86
|
+
key: "getModelType",
|
|
87
|
+
value: function getModelType() {
|
|
88
|
+
return 'canvas';
|
|
89
|
+
}
|
|
90
|
+
}]);
|
|
91
|
+
return CanvasLayer;
|
|
92
|
+
}(_BaseLayer2.default);
|
|
93
|
+
|
|
94
|
+
exports.default = CanvasLayer;
|
|
95
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/canvas/index.ts"],"names":["CanvasLayer","modelType","getModelType","layerModel","CanvasModels","models","initModels","buildModels","properties","opacity","type","minimum","maximum","defaultConfig","canvas","BaseLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;;;;;IACqBA,W;;;;;;;;;;;;;;;uFACG,a;;;;;;WACtB,uBAAqB;AACnB,UAAMC,SAAS,GAAG,KAAKC,YAAL,EAAlB;AACA,WAAKC,UAAL,GAAkB,IAAIC,eAAaH,SAAb,CAAJ,CAA4B,IAA5B,CAAlB;AACA,WAAKI,MAAL,GAAc,KAAKF,UAAL,CAAgBG,UAAhB,EAAd;AACD;;;WACD,yBAAuB;AACrB,WAAKD,MAAL,GAAc,KAAKF,UAAL,CAAgBI,WAAhB,EAAd;AACD;;;WACD,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,MAAM,EAAE;AADY,OAAtB;AAGA,aAAOD,aAAa,CAACH,IAAD,CAApB;AACD;;;WAED,wBAA0C;AACxC,aAAO,QAAP;AACD;;;EA/BsCK,mB","sourcesContent":["import BaseLayer from '../core/BaseLayer';\nimport { ICanvasLayerStyleOptions } from '../core/interface';\nimport CanvasModels, { CanvasModelType } from './models/index';\nexport default class CanvasLayer extends BaseLayer<ICanvasLayerStyleOptions> {\n public type: string = 'CanvasLayer';\n public buildModels() {\n const modelType = this.getModelType();\n this.layerModel = new CanvasModels[modelType](this);\n this.models = this.layerModel.initModels();\n }\n public rebuildModels() {\n this.models = this.layerModel.buildModels();\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 canvas: {},\n };\n return defaultConfig[type];\n }\n\n protected getModelType(): CanvasModelType {\n return 'canvas';\n }\n}\n"],"file":"index.js"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
+
|
|
12
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
+
|
|
14
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
+
|
|
16
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
17
|
+
|
|
18
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
19
|
+
|
|
20
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
21
|
+
|
|
22
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
23
|
+
|
|
24
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
|
+
|
|
26
|
+
var _BaseModel2 = _interopRequireDefault(require("../../core/BaseModel"));
|
|
27
|
+
|
|
28
|
+
var _interface = require("../../core/interface");
|
|
29
|
+
|
|
30
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
31
|
+
|
|
32
|
+
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; } }
|
|
33
|
+
|
|
34
|
+
var CanvaModel = function (_BaseModel) {
|
|
35
|
+
(0, _inherits2.default)(CanvaModel, _BaseModel);
|
|
36
|
+
|
|
37
|
+
var _super = _createSuper(CanvaModel);
|
|
38
|
+
|
|
39
|
+
function CanvaModel() {
|
|
40
|
+
var _this;
|
|
41
|
+
|
|
42
|
+
(0, _classCallCheck2.default)(this, CanvaModel);
|
|
43
|
+
|
|
44
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
45
|
+
args[_key] = arguments[_key];
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
_this = _super.call.apply(_super, [this].concat(args));
|
|
49
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "updateMode", _interface.CanvasUpdateType.AWAYS);
|
|
50
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "canvas", void 0);
|
|
51
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "ctx", void 0);
|
|
52
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "prevSize", void 0);
|
|
53
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderUpdate", function () {
|
|
54
|
+
var _ref = _this.layer.getLayerConfig(),
|
|
55
|
+
_ref$zIndex = _ref.zIndex,
|
|
56
|
+
zIndex = _ref$zIndex === void 0 ? 10 : _ref$zIndex,
|
|
57
|
+
_ref$update = _ref.update,
|
|
58
|
+
update = _ref$update === void 0 ? _interface.CanvasUpdateType.AWAYS : _ref$update;
|
|
59
|
+
|
|
60
|
+
if (+_this.canvas.style.zIndex === zIndex) {
|
|
61
|
+
_this.canvas.style.zIndex = zIndex + '';
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (_this.updateMode !== update) {
|
|
65
|
+
_this.updateMode = update;
|
|
66
|
+
|
|
67
|
+
_this.unBindListener();
|
|
68
|
+
|
|
69
|
+
_this.bindListener();
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "unBindListener", function () {
|
|
73
|
+
_this.mapService.off('mapchange', _this.renderCanvas);
|
|
74
|
+
|
|
75
|
+
_this.mapService.off('zoomstart', _this.clearCanvas);
|
|
76
|
+
|
|
77
|
+
_this.mapService.off('zoomend', _this.renderCanvas);
|
|
78
|
+
|
|
79
|
+
_this.mapService.off('movestart', _this.clearCanvas);
|
|
80
|
+
|
|
81
|
+
_this.mapService.off('moveend', _this.renderCanvas);
|
|
82
|
+
});
|
|
83
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "bindListener", function () {
|
|
84
|
+
if (_this.updateMode === _interface.CanvasUpdateType.AWAYS) {
|
|
85
|
+
_this.mapService.on('mapchange', _this.renderCanvas);
|
|
86
|
+
} else {
|
|
87
|
+
_this.mapService.on('zoomstart', _this.clearCanvas);
|
|
88
|
+
|
|
89
|
+
_this.mapService.on('zoomend', _this.renderCanvas);
|
|
90
|
+
|
|
91
|
+
_this.mapService.on('movestart', _this.clearCanvas);
|
|
92
|
+
|
|
93
|
+
_this.mapService.on('moveend', _this.renderCanvas);
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "clearCanvas", function () {
|
|
97
|
+
if (_this.ctx) {
|
|
98
|
+
var _this$rendererService = _this.rendererService.getViewportSize(),
|
|
99
|
+
w = _this$rendererService.width,
|
|
100
|
+
h = _this$rendererService.height;
|
|
101
|
+
|
|
102
|
+
_this.ctx.clearRect(0, 0, w, h);
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderCanvas", function () {
|
|
106
|
+
var _this$rendererService2 = _this.rendererService.getViewportSize(),
|
|
107
|
+
viewWidth = _this$rendererService2.width,
|
|
108
|
+
viewHeight = _this$rendererService2.height;
|
|
109
|
+
|
|
110
|
+
if (_this.prevSize[0] !== viewWidth || _this.prevSize[1] !== viewHeight) {
|
|
111
|
+
_this.prevSize = [viewWidth, viewHeight];
|
|
112
|
+
|
|
113
|
+
var size = _this.mapService.getSize();
|
|
114
|
+
|
|
115
|
+
var _size = (0, _slicedToArray2.default)(size, 2),
|
|
116
|
+
width = _size[0],
|
|
117
|
+
height = _size[1];
|
|
118
|
+
|
|
119
|
+
_this.canvas.width = viewWidth;
|
|
120
|
+
_this.canvas.height = viewHeight;
|
|
121
|
+
_this.canvas.style.width = width + 'px';
|
|
122
|
+
_this.canvas.style.height = height + 'px';
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
var _ref2 = _this.layer.getLayerConfig(),
|
|
126
|
+
drawingOnCanvas = _ref2.drawingOnCanvas;
|
|
127
|
+
|
|
128
|
+
if (_this.ctx) {
|
|
129
|
+
drawingOnCanvas({
|
|
130
|
+
canvas: _this.canvas,
|
|
131
|
+
ctx: _this.ctx,
|
|
132
|
+
mapService: _this.mapService,
|
|
133
|
+
size: [viewWidth, viewHeight]
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
return _this;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
(0, _createClass2.default)(CanvaModel, [{
|
|
141
|
+
key: "clearModels",
|
|
142
|
+
value: function clearModels() {
|
|
143
|
+
if (this.canvas) {
|
|
144
|
+
document.removeChild(this.canvas);
|
|
145
|
+
this.canvas = null;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
this.unBindListener();
|
|
149
|
+
}
|
|
150
|
+
}, {
|
|
151
|
+
key: "initModels",
|
|
152
|
+
value: function initModels() {
|
|
153
|
+
var _ref3 = this.layer.getLayerConfig(),
|
|
154
|
+
_ref3$update = _ref3.update,
|
|
155
|
+
update = _ref3$update === void 0 ? _interface.CanvasUpdateType.AWAYS : _ref3$update;
|
|
156
|
+
|
|
157
|
+
this.updateMode = update;
|
|
158
|
+
this.initCanvas();
|
|
159
|
+
this.renderCanvas();
|
|
160
|
+
this.bindListener();
|
|
161
|
+
this.mapService.getContainer();
|
|
162
|
+
return [];
|
|
163
|
+
}
|
|
164
|
+
}, {
|
|
165
|
+
key: "initCanvas",
|
|
166
|
+
value: function initCanvas() {
|
|
167
|
+
var _this$mapService$getC;
|
|
168
|
+
|
|
169
|
+
var _ref4 = this.layer.getLayerConfig(),
|
|
170
|
+
zIndex = _ref4.zIndex;
|
|
171
|
+
|
|
172
|
+
var size = this.mapService.getSize();
|
|
173
|
+
|
|
174
|
+
var _size2 = (0, _slicedToArray2.default)(size, 2),
|
|
175
|
+
width = _size2[0],
|
|
176
|
+
height = _size2[1];
|
|
177
|
+
|
|
178
|
+
var _this$rendererService3 = this.rendererService.getViewportSize(),
|
|
179
|
+
viewWidth = _this$rendererService3.width,
|
|
180
|
+
viewHeight = _this$rendererService3.height;
|
|
181
|
+
|
|
182
|
+
this.prevSize = [viewWidth, viewHeight];
|
|
183
|
+
var canvas = document.createElement('canvas');
|
|
184
|
+
this.canvas = canvas;
|
|
185
|
+
canvas.width = viewWidth;
|
|
186
|
+
canvas.height = viewHeight;
|
|
187
|
+
canvas.style.pointerEvents = 'none';
|
|
188
|
+
canvas.style.width = width + 'px';
|
|
189
|
+
canvas.style.height = height + 'px';
|
|
190
|
+
canvas.style.position = 'absolute';
|
|
191
|
+
canvas.style.top = '0';
|
|
192
|
+
canvas.style.left = '0';
|
|
193
|
+
canvas.style.zIndex = zIndex + '';
|
|
194
|
+
(_this$mapService$getC = this.mapService.getContainer()) === null || _this$mapService$getC === void 0 ? void 0 : _this$mapService$getC.appendChild(canvas);
|
|
195
|
+
var ctx = canvas.getContext('2d');
|
|
196
|
+
this.ctx = ctx;
|
|
197
|
+
}
|
|
198
|
+
}, {
|
|
199
|
+
key: "buildModels",
|
|
200
|
+
value: function buildModels() {
|
|
201
|
+
return this.initModels();
|
|
202
|
+
}
|
|
203
|
+
}, {
|
|
204
|
+
key: "registerBuiltinAttributes",
|
|
205
|
+
value: function registerBuiltinAttributes() {
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
}]);
|
|
209
|
+
return CanvaModel;
|
|
210
|
+
}(_BaseModel2.default);
|
|
211
|
+
|
|
212
|
+
exports.default = CanvaModel;
|
|
213
|
+
//# sourceMappingURL=canvas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/canvas/models/canvas.ts"],"names":["CanvaModel","CanvasUpdateType","AWAYS","layer","getLayerConfig","zIndex","update","canvas","style","updateMode","unBindListener","bindListener","mapService","off","renderCanvas","clearCanvas","on","ctx","rendererService","getViewportSize","w","width","h","height","clearRect","viewWidth","viewHeight","prevSize","size","getSize","drawingOnCanvas","document","removeChild","initCanvas","getContainer","createElement","pointerEvents","position","top","left","appendChild","getContext","initModels","BaseModel"],"mappings":"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","sourcesContent":["import BaseModel from '../../core/BaseModel';\nimport {\n CanvasUpdateType,\n ICanvasLayerStyleOptions,\n IDrawingOnCanvas,\n} from '../../core/interface';\n\nexport default class CanvaModel extends BaseModel {\n protected updateMode: CanvasUpdateType = CanvasUpdateType.AWAYS;\n protected canvas: HTMLCanvasElement;\n protected ctx: CanvasRenderingContext2D;\n protected prevSize: [number, number];\n public renderUpdate = () => {\n const {\n zIndex = 10,\n update = CanvasUpdateType.AWAYS,\n } = this.layer.getLayerConfig() as ICanvasLayerStyleOptions;\n if (+this.canvas.style.zIndex === zIndex) {\n this.canvas.style.zIndex = zIndex + '';\n }\n if (this.updateMode !== update) {\n this.updateMode = update as CanvasUpdateType;\n this.unBindListener();\n this.bindListener();\n }\n };\n\n public unBindListener = () => {\n this.mapService.off('mapchange', this.renderCanvas);\n this.mapService.off('zoomstart', this.clearCanvas);\n this.mapService.off('zoomend', this.renderCanvas);\n this.mapService.off('movestart', this.clearCanvas);\n this.mapService.off('moveend', this.renderCanvas);\n };\n\n public bindListener = () => {\n if (this.updateMode === CanvasUpdateType.AWAYS) {\n this.mapService.on('mapchange', this.renderCanvas);\n } else {\n this.mapService.on('zoomstart', this.clearCanvas);\n this.mapService.on('zoomend', this.renderCanvas);\n this.mapService.on('movestart', this.clearCanvas);\n this.mapService.on('moveend', this.renderCanvas);\n }\n };\n\n public clearModels(): void {\n if (this.canvas) {\n document.removeChild(this.canvas);\n // @ts-ignore\n this.canvas = null;\n }\n this.unBindListener();\n }\n\n public initModels() {\n const {\n update = CanvasUpdateType.AWAYS,\n } = this.layer.getLayerConfig() as ICanvasLayerStyleOptions;\n this.updateMode = update as CanvasUpdateType;\n this.initCanvas();\n\n this.renderCanvas();\n\n this.bindListener();\n\n this.mapService.getContainer();\n return [];\n }\n\n public initCanvas(): void {\n const { zIndex } = this.layer.getLayerConfig() as ICanvasLayerStyleOptions;\n const size = this.mapService.getSize();\n const [width, height] = size;\n const {\n width: viewWidth,\n height: viewHeight,\n } = this.rendererService.getViewportSize();\n this.prevSize = [viewWidth, viewHeight];\n\n const canvas = document.createElement('canvas');\n this.canvas = canvas;\n canvas.width = viewWidth;\n canvas.height = viewHeight;\n canvas.style.pointerEvents = 'none';\n canvas.style.width = width + 'px';\n canvas.style.height = height + 'px';\n canvas.style.position = 'absolute';\n canvas.style.top = '0';\n canvas.style.left = '0';\n canvas.style.zIndex = zIndex + '';\n this.mapService.getContainer()?.appendChild(canvas);\n\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n this.ctx = ctx;\n }\n\n public clearCanvas = () => {\n if (this.ctx) {\n const { width: w, height: h } = this.rendererService.getViewportSize();\n this.ctx.clearRect(0, 0, w, h);\n }\n };\n\n public renderCanvas = () => {\n const {\n width: viewWidth,\n height: viewHeight,\n } = this.rendererService.getViewportSize();\n if (this.prevSize[0] !== viewWidth || this.prevSize[1] !== viewHeight) {\n this.prevSize = [viewWidth, viewHeight];\n const size = this.mapService.getSize();\n const [width, height] = size;\n this.canvas.width = viewWidth;\n this.canvas.height = viewHeight;\n this.canvas.style.width = width + 'px';\n this.canvas.style.height = height + 'px';\n }\n\n const {\n drawingOnCanvas,\n } = this.layer.getLayerConfig() as ICanvasLayerStyleOptions;\n\n if (this.ctx) {\n drawingOnCanvas({\n canvas: this.canvas,\n ctx: this.ctx,\n mapService: this.mapService,\n size: [viewWidth, viewHeight],\n });\n }\n };\n\n public buildModels() {\n return this.initModels();\n }\n\n protected registerBuiltinAttributes() {\n return;\n }\n}\n"],"file":"canvas.js"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _canvas = _interopRequireDefault(require("./canvas"));
|
|
11
|
+
|
|
12
|
+
var CanvasModels = {
|
|
13
|
+
canvas: _canvas.default
|
|
14
|
+
};
|
|
15
|
+
var _default = CanvasModels;
|
|
16
|
+
exports.default = _default;
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/canvas/models/index.ts"],"names":["CanvasModels","canvas","CanvasModel"],"mappings":";;;;;;;;;AAAA;;AAGA,IAAMA,YAA+C,GAAG;AACtDC,EAAAA,MAAM,EAAEC;AAD8C,CAAxD;eAIeF,Y","sourcesContent":["import CanvasModel from './canvas';\nexport type CanvasModelType = 'canvas';\n\nconst CanvasModels: { [key in CanvasModelType]: any } = {\n canvas: CanvasModel,\n};\n\nexport default CanvasModels;\n"],"file":"index.js"}
|
package/lib/core/BaseLayer.js
CHANGED
|
@@ -1071,6 +1071,10 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
|
|
|
1071
1071
|
this.layerModelNeedUpdate = false;
|
|
1072
1072
|
}
|
|
1073
1073
|
|
|
1074
|
+
if (this.layerModel.renderUpdate) {
|
|
1075
|
+
this.layerModel.renderUpdate();
|
|
1076
|
+
}
|
|
1077
|
+
|
|
1074
1078
|
this.models.forEach(function (model) {
|
|
1075
1079
|
model.draw({
|
|
1076
1080
|
uniforms: _this7.layerModel.getUninforms()
|