@sl-utils/map 1.0.0 → 1.0.2

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.
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SLUCanvasText = void 0;
4
+ const txt_1 = require("../utils/txt");
5
+ const slu_canvas_1 = require("./slu-canvas");
6
+ class SLUCanvasText {
7
+ static drawText(info, textRects = [], ctx = this.ctx) {
8
+ let { text = '', maxWidth = 0, font = ctx.font, ifHide } = info;
9
+ if (ifHide === true || !text)
10
+ return null;
11
+ this.ctx = ctx;
12
+ slu_canvas_1.SLUCanvas.setCtxPara(ctx, info);
13
+ const texts = this.wordWrap(text, maxWidth, font);
14
+ const textRect = this.calcTextRect(texts, info);
15
+ const ctr = this.avoidOverlap(info, textRect, textRects);
16
+ this.renderTexts(info, texts, textRect, textRects, ctr, ctx);
17
+ }
18
+ static wordWrap(text, max, font, ctx = this.ctx) {
19
+ let strs = text.split('\n').filter(e => e != '');
20
+ if (max <= 0)
21
+ return strs;
22
+ let texts = [];
23
+ strs.forEach((text) => {
24
+ texts.push(...(0, txt_1.u_TextSplitMultilineText)(ctx, text, font, max, true, (str) => {
25
+ return [str.lastIndexOf(',') + 1];
26
+ }));
27
+ });
28
+ return texts;
29
+ }
30
+ static calcTextRect(texts, info, ctx = this.ctx) {
31
+ let { point = [20, 20], panel = {}, lineHeight, textAlign, px = 0, py = 0 } = info;
32
+ let w = 0, h = 0, [x0, y0] = point;
33
+ let { actualBoundingBoxDescent = 0 } = ctx.measureText('M');
34
+ h = (lineHeight || actualBoundingBoxDescent) * texts.length;
35
+ w = Math.max(...texts.map(text => ctx.measureText(text).width));
36
+ const { pl = 0, pr = pl, pt = 0, pb = pt } = panel;
37
+ let width = w + pl + pr, height = h + pt + pb;
38
+ if (textAlign === 'center')
39
+ x0 -= width / 2;
40
+ if (textAlign === 'right')
41
+ x0 -= width;
42
+ let textRect = {
43
+ x: x0 + px,
44
+ y: y0 + py,
45
+ width: width,
46
+ height: height
47
+ };
48
+ return textRect;
49
+ }
50
+ static avoidOverlap(info, rect, rects) {
51
+ const { x, y, width = 0, height = 0 } = rect, { overlap, textAlign } = info, { type = "show", querySpace = 1, maxDistance = 200, minSpacing = 0 } = overlap || {};
52
+ if (type === 'show')
53
+ return [0, 0, 8];
54
+ let ifOverlap = this.isTextOverlap(rect, rects);
55
+ if (type === 'hide') {
56
+ if (ifOverlap)
57
+ return [0, 0, 9];
58
+ return [0, 0, 8];
59
+ }
60
+ if (!ifOverlap) {
61
+ return [0, 0, 8];
62
+ }
63
+ else {
64
+ let flag = false;
65
+ for (let total = 0; total <= maxDistance; total += querySpace) {
66
+ for (let dir = 0; dir < 8; dir++) {
67
+ const dirX = dir % 4 === 0 ? 0 : dir < 4 ? 1 : -1, dirY = (dir == 2 || dir == 6) ? 0 : dir < 2 || dir > 6 ? -1 : 1;
68
+ let px = total * dirX - (dirX < 0 ? width : 0), py = total * dirY - (dirY < 0 ? height : 0);
69
+ if (!this.isTextOverlap({ x: x + px, y: y + py, width, height }, rects, minSpacing)) {
70
+ return [px, py, dir];
71
+ }
72
+ }
73
+ }
74
+ }
75
+ return [0, 0, 9];
76
+ }
77
+ static renderTexts(info, texts, rect, textRects, ctr, ctx) {
78
+ const [px, py, status] = ctr, { panel = {}, overlap = {}, textAlign = 'center', px: upx = 0, py: upy = 0, point = [0, 0] } = info, { pl = 0, pt = 0, pb = pt, pr = pl } = panel, { line } = overlap, { width = 0, height = 0 } = rect, [x0, y0] = point;
79
+ if (status === 9)
80
+ return;
81
+ rect.x += px, rect.y += py;
82
+ textRects.push({ ...rect });
83
+ if (px != 0 || py != 0 && line) {
84
+ let { x: x1, y: y1 } = rect;
85
+ switch (status) {
86
+ case 0:
87
+ x1 = x1, y1 = y1 + height;
88
+ break;
89
+ case 1:
90
+ x1 = x1, y1 = y1 + height;
91
+ break;
92
+ case 2:
93
+ x1 = x1, y1 = y1;
94
+ break;
95
+ case 3:
96
+ x1 = x1, y1 = y1;
97
+ break;
98
+ case 4:
99
+ x1 = x1, y1 = y1;
100
+ break;
101
+ case 5:
102
+ x1 = x1 + width, y1 = y1;
103
+ break;
104
+ case 6:
105
+ x1 = x1 + width, y1 = y1;
106
+ break;
107
+ case 7:
108
+ x1 = x1 + width, y1 = y1 + height;
109
+ break;
110
+ }
111
+ slu_canvas_1.SLUCanvas.drawLine({ ...line, points: [[x0, y0], [x1, y1]] }, ctx);
112
+ }
113
+ if (panel) {
114
+ slu_canvas_1.SLUCanvas.drawRect({
115
+ point: [rect.x, rect.y],
116
+ width: rect.width,
117
+ height: rect.height,
118
+ radius: panel.radius,
119
+ ...panel,
120
+ }, ctx);
121
+ }
122
+ slu_canvas_1.SLUCanvas.setCtxPara(ctx, info);
123
+ this.renderMultiText(texts, [rect.x + pl, rect.y + pt], info, ctx);
124
+ slu_canvas_1.SLUCanvas.setCtxPara(ctx);
125
+ }
126
+ static renderMultiText(texts, start, info, ctx) {
127
+ let [x, y] = start;
128
+ const { lineHeight, ifShadow } = info;
129
+ let { actualBoundingBoxDescent } = ctx.measureText('M');
130
+ texts.forEach(text => {
131
+ let fontTop = lineHeight && lineHeight > actualBoundingBoxDescent ? (lineHeight - actualBoundingBoxDescent) / 2 : 0;
132
+ let dH = lineHeight || actualBoundingBoxDescent;
133
+ if (ifShadow)
134
+ ctx.strokeText(text, x, y + fontTop);
135
+ ctx.fillText(text, x, y + fontTop);
136
+ y += dH;
137
+ });
138
+ }
139
+ static isTextOverlap(rect, rects, minSpacing = 0) {
140
+ for (const eRect of rects) {
141
+ const { x, y, width = 0, height = 0 } = rect;
142
+ const { x: ex, y: ey = 0, width: ew = 0, height: eh = 0 } = eRect;
143
+ if (!(ex > x + width + minSpacing || ex + ew + minSpacing < x || ey > y + height + minSpacing || ey + eh + minSpacing < y)) {
144
+ return true;
145
+ }
146
+ }
147
+ return false;
148
+ }
149
+ }
150
+ exports.SLUCanvasText = SLUCanvasText;
151
+ //# sourceMappingURL=slu-canvas-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slu-canvas-text.js","sourceRoot":"","sources":["../../src/canvas/slu-canvas-text.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SLUCanvas = void 0;
4
+ class SLUCanvas {
5
+ constructor() { }
6
+ static drawArc(arc, ctx = this.ctx) {
7
+ if (arc.ifHide === true)
8
+ return this;
9
+ let { point, points = [], size = 10 } = arc;
10
+ if (point)
11
+ points = [...points, point];
12
+ this.setCtxPara(ctx, arc);
13
+ for (let i = 0, len = points.length; i < len; i++) {
14
+ ctx.beginPath();
15
+ const e = points[i];
16
+ ctx.arc(e[0], e[1], size, 0, 2 * Math.PI, false);
17
+ ctx.stroke();
18
+ ctx.globalAlpha = arc.fillAlpha == undefined ? 1 : arc.fillAlpha;
19
+ ctx.fill();
20
+ }
21
+ this.setCtxPara(ctx);
22
+ return this;
23
+ }
24
+ static drawRect(rect, ctx = this.ctx) {
25
+ if (rect.ifHide === true)
26
+ return this;
27
+ let { point, points = [point], width = 0, height = 0, radius = [0, 0, 0, 0] } = rect;
28
+ this.setCtxPara(ctx, rect);
29
+ for (let i = 0; i < points.length; i++) {
30
+ let [x, y] = points[i] || [0, 0];
31
+ ctx.beginPath();
32
+ ctx['roundRect'](x, y, width, height, radius);
33
+ ctx.stroke();
34
+ ctx.globalAlpha = rect.fillAlpha == undefined ? 1 : rect.fillAlpha;
35
+ ctx.fill();
36
+ ctx.closePath();
37
+ }
38
+ this.setCtxPara(ctx);
39
+ return this;
40
+ }
41
+ static drawPolygon(rect, ctx = this.ctx) {
42
+ let { points = [] } = rect;
43
+ if (rect.ifHide === true || points.length < 2)
44
+ return this;
45
+ this.setCtxPara(ctx, rect);
46
+ for (let i = 0, len = points.length; i < len; i++) {
47
+ let [x, y] = points[i];
48
+ if (i == 0) {
49
+ ctx.beginPath();
50
+ ctx.moveTo(x, y);
51
+ }
52
+ else if (i == len - 1) {
53
+ ctx.lineTo(x, y);
54
+ ctx.closePath();
55
+ ctx.globalAlpha = rect.fillAlpha == undefined ? 1 : rect.fillAlpha;
56
+ ctx.fill();
57
+ if (ctx.lineWidth > 0) {
58
+ ctx.globalAlpha = rect.alpha || 1;
59
+ ctx.stroke();
60
+ }
61
+ }
62
+ else {
63
+ ctx.lineTo(x, y);
64
+ }
65
+ }
66
+ this.setCtxPara(ctx);
67
+ return this;
68
+ }
69
+ static drawLine(line, ctx = this.ctx) {
70
+ if (line.ifHide === true)
71
+ return this;
72
+ let { points = [] } = line;
73
+ if (points.length < 2)
74
+ return this;
75
+ this.setCtxPara(ctx, line);
76
+ let s = points[0] || [], lineWidth = line.widthLine || 1;
77
+ ctx.beginPath();
78
+ ctx.moveTo(s[0], s[1]);
79
+ for (let i = 1, len = points.length; i < len; i++) {
80
+ let point = points[i];
81
+ ctx.lineTo(point[0], point[1]);
82
+ }
83
+ ctx.stroke();
84
+ this.setCtxPara(ctx);
85
+ return this;
86
+ }
87
+ static drawBezierLine(line, ctx = this.ctx) {
88
+ if (line.ifHide === true)
89
+ return this;
90
+ let { points = [] } = line;
91
+ if (points.length < 2)
92
+ return this;
93
+ this.setCtxPara(ctx, line);
94
+ let s = points[0], degree = line.degree;
95
+ ctx.beginPath();
96
+ ctx.moveTo(s[0], s[1]);
97
+ for (let i = 1, len = points.length; i < len; i++) {
98
+ let s = points[i - 1], e = points[i];
99
+ let c = this.getBezierCtrlPoint(s, e, degree);
100
+ ctx.quadraticCurveTo(c[0], c[1], e[0], e[1]);
101
+ }
102
+ ctx.stroke();
103
+ this.setCtxPara(ctx);
104
+ return this;
105
+ }
106
+ static createCanvas() {
107
+ return document.createElement('canvas');
108
+ }
109
+ static getBezierCtrlPoint(s, e, degree = 1) {
110
+ const e0 = s, e1 = e, c = [(e0[0] + e1[0]) / 2, (e0[1] + e1[1]) / 2], d = degree;
111
+ let x = c[0] - e0[0], y = c[1] - e0[1];
112
+ let len = Math.sqrt(x * x + y * y);
113
+ let angle = Math.PI / 2 - Math.asin(y / len);
114
+ let xd = d * Math.cos(angle) * len, yd = (d * Math.sin(angle) * len * x) / Math.abs(x);
115
+ xd = isNaN(xd) ? 0 : xd;
116
+ yd = isNaN(yd) ? 0 : yd;
117
+ let curve = [c[0] + xd, c[1] - yd];
118
+ return curve;
119
+ }
120
+ static setCtxPara(ctx, fig = {}) {
121
+ this.ctx = ctx;
122
+ this.deletePara(fig);
123
+ fig = Object.assign({}, this.ctxFig, fig);
124
+ ctx.globalAlpha = fig.alpha;
125
+ ctx.globalCompositeOperation = fig.globalCompositeOperation;
126
+ ctx.fillStyle = fig.colorFill;
127
+ ctx.strokeStyle = fig.colorLine;
128
+ ctx.lineWidth = fig.widthLine;
129
+ ctx.shadowColor = fig.shadowColor;
130
+ ctx.shadowBlur = fig.shadowBlur;
131
+ ctx.font = fig.font;
132
+ ctx.textBaseline = fig.textBaseline;
133
+ ctx.setLineDash(fig.dash);
134
+ ctx.lineDashOffset = fig.dashOff;
135
+ return ctx;
136
+ }
137
+ static deletePara(obj = {}) {
138
+ for (const key in obj) {
139
+ if (Object.prototype.hasOwnProperty.call(obj, key)) {
140
+ const ele = obj[key];
141
+ if (ele === undefined || ele === null) {
142
+ Reflect.deleteProperty(obj, key);
143
+ }
144
+ }
145
+ }
146
+ }
147
+ }
148
+ exports.SLUCanvas = SLUCanvas;
149
+ SLUCanvas.ctxFig = {
150
+ alpha: 1,
151
+ widthLine: 1,
152
+ colorLine: '#FFFFFF',
153
+ colorFill: '#EE3434',
154
+ dash: [10, 0],
155
+ dashOff: 0,
156
+ fillAlpha: 1,
157
+ font: '14px serif',
158
+ textBaseline: "top",
159
+ globalCompositeOperation: 'source-over',
160
+ shadowBlur: 0,
161
+ shadowColor: '#000000',
162
+ };
163
+ //# sourceMappingURL=slu-canvas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slu-canvas.js","sourceRoot":"","sources":["../../src/canvas/slu-canvas.ts"],"names":[],"mappings":";;;AACA,MAAa,SAAS;IAEpB,gBAAgB,CAAC;IAmBV,MAAM,CAAC,OAAO,CAAC,GAAkB,EAAE,MAAgC,IAAI,CAAC,GAAG;QAChF,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACrC,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC;QAC5C,IAAI,KAAK;YAAE,MAAM,GAAG,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,GAAG,CAAC,SAAS,EAAE,CAAC;YAChB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;YACrB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACjD,GAAG,CAAC,MAAM,EAAE,CAAC;YACb,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC;YACjE,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,IAAoB,EAAE,MAAgC,IAAI,CAAC,GAAG;QACnF,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACtC,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;QACrF,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjC,GAAG,CAAC,SAAS,EAAE,CAAC;YAChB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAC9C,GAAG,CAAC,MAAM,EAAE,CAAC;YACb,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;YACnE,GAAG,CAAC,IAAI,EAAE,CAAC;YACX,GAAG,CAAC,SAAS,EAAE,CAAC;QAWlB,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,IAAuB,EAAE,MAAgC,IAAI,CAAC,GAAG;QACzF,IAAI,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC;QAC3B,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3D,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACX,GAAG,CAAC,SAAS,EAAE,CAAC;gBAChB,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACnB,CAAC;iBAAM,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACxB,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjB,GAAG,CAAC,SAAS,EAAE,CAAC;gBAChB,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;gBACnE,GAAG,CAAC,IAAI,EAAE,CAAC;gBACX,IAAI,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;oBACtB,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;oBAClC,GAAG,CAAC,MAAM,EAAE,CAAC;gBACf,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,IAAoB,EAAE,MAAgC,IAAI,CAAC,GAAG;QACnF,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACtC,IAAI,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC;QAC3B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;QACzD,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACtB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC;QACD,GAAG,CAAC,MAAM,EAAE,CAAC;QACb,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,IAAoB,EAAE,MAAgC,IAAI,CAAC,GAAG;QACzF,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACtC,IAAI,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC;QAC3B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EACf,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACvB,GAAG,CAAC,SAAS,EAAE,CAAC;QAChB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EACnB,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YAC9C,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,GAAG,CAAC,MAAM,EAAE,CAAC;QACb,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,YAAY;QACxB,OAAO,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAMM,MAAM,CAAC,kBAAkB,CAAC,CAAmB,EAAE,CAAmB,EAAE,SAAiB,CAAC;QAC3F,MAAM,EAAE,GAAG,CAAC,EACV,EAAE,GAAG,CAAC,EACN,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAC9C,CAAC,GAAG,MAAM,CAAC;QACb,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAClB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAEnB,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAEnC,IAAI,KAAK,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QAC7C,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,EAChC,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrD,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxB,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxB,IAAI,KAAK,GAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IAKM,MAAM,CAAC,UAAU,CAAC,GAA6B,EAAE,MAAiB,EAAE;QACzE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACrB,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC1C,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,KAAM,CAAC;QAC7B,GAAG,CAAC,wBAAwB,GAAG,GAAG,CAAC,wBAAyB,CAAC;QAC7D,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,SAAU,CAAC;QAC/B,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,SAAU,CAAC;QACjC,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,SAAU,CAAC;QAC/B,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,WAAY,CAAC;QACnC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,UAAW,CAAC;QACjC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAK,CAAC;QACrB,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,YAAa,CAAC;QACrC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,IAAK,CAAC,CAAC;QAC3B,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,OAAQ,CAAC;QAClC,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,MAAW,EAAE;QACrC,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;gBACnD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;gBACrB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;oBACtC,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;;AAzLH,8BA0LC;AApLiB,gBAAM,GAAc;IAClC,KAAK,EAAE,CAAC;IACR,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,SAAS;IACpB,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACb,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,CAAC;IACZ,IAAI,EAAE,YAAY;IAClB,YAAY,EAAE,KAAK;IACnB,wBAAwB,EAAE,aAAa;IACvC,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,SAAS;CACvB,CAAC"}
@@ -0,0 +1,214 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MapCanvasDraw = void 0;
4
+ const slu_map_1 = require("../utils/slu-map");
5
+ const canvas_1 = require("../canvas");
6
+ class MapCanvasDraw {
7
+ constructor(map, canvas) {
8
+ this._allArcs = [];
9
+ this._allLines = [];
10
+ this._allBLins = [];
11
+ this._allRects = [];
12
+ this._allTexts = [];
13
+ this._allImgs = [];
14
+ this._allGifs = [];
15
+ this.map = map;
16
+ this.canvas = canvas;
17
+ this.ctx = canvas.getContext('2d');
18
+ }
19
+ get zoom() {
20
+ return this.map.getZoom();
21
+ }
22
+ reSetCanvas() {
23
+ let { canvas, map, ctx } = this;
24
+ const { w, h } = (0, slu_map_1.u_mapGetMapSize)(map);
25
+ canvas.style.width = w + 'px';
26
+ canvas.style.height = h + 'px';
27
+ canvas.width = w;
28
+ canvas.height = h;
29
+ }
30
+ drawMapAll() {
31
+ this.reSetCanvas();
32
+ this.drawByIndex();
33
+ }
34
+ async drawByIndex() {
35
+ let textRects = [], that = this, { ctx, zoom } = that, all = that._allRects.map((e) => ({ ...e, mold: 'R' }));
36
+ all = all.concat(that._allLines.map((e) => ({ ...e, mold: 'L' })));
37
+ all = all.concat(that._allBLins.map((e) => ({ ...e, mold: 'B' })));
38
+ all = all.concat(that._allArcs.map((e) => ({ ...e, mold: 'A' })));
39
+ all = all.concat(that._allTexts.map((e) => ({ ...e, mold: 'T' })));
40
+ all = all.concat(that._allImgs.map((e) => ({ ...e, mold: 'I' })));
41
+ all = all.concat(that._allGifs.map((e) => ({ ...e, mold: 'G' })));
42
+ all.sort((a, b) => (a.index || 0) - (b.index || 0));
43
+ all.forEach((e, index) => {
44
+ let { minZoom = 0, maxZoom = 50, overlap } = e;
45
+ if (zoom >= minZoom && zoom <= maxZoom) {
46
+ that.transformXY(e);
47
+ switch (e.mold) {
48
+ case 'A':
49
+ that.transformArcSize(e);
50
+ canvas_1.SLUCanvas.drawArc(e, ctx);
51
+ break;
52
+ case 'L':
53
+ canvas_1.SLUCanvas.drawLine(e, ctx);
54
+ break;
55
+ case 'B':
56
+ canvas_1.SLUCanvas.drawBezierLine(e, ctx);
57
+ break;
58
+ case 'R':
59
+ canvas_1.SLUCanvas.drawPolygon(e, ctx);
60
+ break;
61
+ case 'T':
62
+ canvas_1.SLUCanvasText.drawText(e, textRects, ctx);
63
+ break;
64
+ case 'I':
65
+ that.transformImageSize(e);
66
+ canvas_1.SLUCanvasImg.drawImg(e, ctx);
67
+ break;
68
+ case 'G':
69
+ that.transformImageSize(e);
70
+ that.gif = that.gif || new canvas_1.SLUCanvasGif();
71
+ that.gif.loadGIF(e, ctx);
72
+ break;
73
+ }
74
+ }
75
+ });
76
+ }
77
+ setAllArcs(arcs) {
78
+ this._allArcs = arcs;
79
+ return this;
80
+ }
81
+ setAllLines(lines) {
82
+ this._allLines = lines;
83
+ return this;
84
+ }
85
+ setAllBezierLines(lines) {
86
+ this._allBLins = lines;
87
+ return this;
88
+ }
89
+ setAllRects(rects) {
90
+ this._allRects = rects;
91
+ return this;
92
+ }
93
+ setAllTexts(texts) {
94
+ this._allTexts = texts;
95
+ return this;
96
+ }
97
+ setAllImgs(imgs) {
98
+ this._allImgs = imgs;
99
+ return this;
100
+ }
101
+ setAllGifs(gifs) {
102
+ this._allGifs = gifs;
103
+ return this;
104
+ }
105
+ addArc(arc) {
106
+ if (!arc.latlngs && !arc.latlng)
107
+ return this;
108
+ this._allArcs.push(arc);
109
+ return this;
110
+ }
111
+ addLine(line) {
112
+ if (!line.latlngs)
113
+ return this;
114
+ this._allLines.push(line);
115
+ return this;
116
+ }
117
+ addBezierLine(line) {
118
+ if (!line.latlngs)
119
+ return this;
120
+ this._allBLins.push(line);
121
+ return this;
122
+ }
123
+ addRect(rect) {
124
+ if (!rect.latlngs)
125
+ return this;
126
+ this._allRects.push(rect);
127
+ return this;
128
+ }
129
+ addText(text) {
130
+ if (!text.latlngs && !text.latlng)
131
+ return this;
132
+ this._allTexts.push(text);
133
+ return this;
134
+ }
135
+ addImg(img) {
136
+ if (!img.latlngs && !img.latlng)
137
+ return this;
138
+ this._allImgs.push(img);
139
+ return this;
140
+ }
141
+ delArc(arc) {
142
+ (0, slu_map_1.u_arrItemDel)(this._allArcs, arc);
143
+ return this;
144
+ }
145
+ delLine(line) {
146
+ (0, slu_map_1.u_arrItemDel)(this._allLines, line);
147
+ return this;
148
+ }
149
+ delBezierLine(line) {
150
+ (0, slu_map_1.u_arrItemDel)(this._allBLins, line);
151
+ return this;
152
+ }
153
+ delRect(rect) {
154
+ (0, slu_map_1.u_arrItemDel)(this._allRects, rect);
155
+ return this;
156
+ }
157
+ delText(text) {
158
+ (0, slu_map_1.u_arrItemDel)(this._allTexts, text);
159
+ return this;
160
+ }
161
+ delImg(img) {
162
+ (0, slu_map_1.u_arrItemDel)(this._allImgs, img);
163
+ return this;
164
+ }
165
+ delAll(type = 'all') {
166
+ const that = this;
167
+ switch (type) {
168
+ case 'arc':
169
+ that._allArcs = [];
170
+ break;
171
+ case 'line':
172
+ that._allLines = [];
173
+ break;
174
+ case 'bezier':
175
+ that._allBLins = [];
176
+ break;
177
+ case 'rect':
178
+ that._allRects = [];
179
+ break;
180
+ case 'img':
181
+ that._allImgs = [];
182
+ break;
183
+ case 'gif':
184
+ that._allGifs = [];
185
+ break;
186
+ case 'text':
187
+ that._allTexts = [];
188
+ break;
189
+ case 'all':
190
+ that._allArcs = [];
191
+ that._allLines = [];
192
+ that._allBLins = [];
193
+ that._allRects = [];
194
+ that._allImgs = [];
195
+ that._allGifs = [];
196
+ that._allTexts = [];
197
+ }
198
+ return that;
199
+ }
200
+ transformXY(info) {
201
+ info.points = (0, slu_map_1.u_mapGetPointsByLatlngs)(this.map, info.latlngs);
202
+ info.point = (0, slu_map_1.u_mapGetPointByLatlng)(this.map, info.latlng);
203
+ }
204
+ transformImageSize(img) {
205
+ let [x, y] = (0, slu_map_1.u_mapGetSizeByMap)(this.map, img);
206
+ img.size = [x, y];
207
+ }
208
+ transformArcSize(arc) {
209
+ let [x, y] = (0, slu_map_1.u_mapGetSizeByMap)(this.map, arc);
210
+ arc.size = x;
211
+ }
212
+ }
213
+ exports.MapCanvasDraw = MapCanvasDraw;
214
+ //# sourceMappingURL=canvas-draw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-draw.js","sourceRoot":"","sources":["../../src/map/canvas-draw.ts"],"names":[],"mappings":"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"}