ol 9.0.0-dev.1707341212133 → 9.0.0-dev.1707494062569
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/Map.d.ts +5 -10
- package/Map.d.ts.map +1 -1
- package/Map.js +3 -17
- package/VectorRenderTile.d.ts +0 -7
- package/VectorRenderTile.d.ts.map +1 -1
- package/VectorRenderTile.js +0 -6
- package/dist/ol.d.ts +2 -0
- package/dist/ol.d.ts.map +1 -1
- package/dist/ol.js +2 -2
- package/dist/ol.js.map +1 -1
- package/layer/BaseVector.d.ts +7 -22
- package/layer/BaseVector.d.ts.map +1 -1
- package/layer/BaseVector.js +12 -20
- package/layer/Layer.d.ts +12 -0
- package/layer/Layer.d.ts.map +1 -1
- package/layer/Layer.js +23 -0
- package/layer/VectorImage.d.ts +10 -6
- package/layer/VectorImage.d.ts.map +1 -1
- package/layer/VectorImage.js +5 -3
- package/layer/VectorTile.d.ts +22 -30
- package/layer/VectorTile.d.ts.map +1 -1
- package/layer/VectorTile.js +10 -14
- package/package.json +1 -1
- package/render/VectorContext.d.ts +22 -11
- package/render/VectorContext.d.ts.map +1 -1
- package/render/VectorContext.js +22 -11
- package/render/canvas/Builder.d.ts +2 -1
- package/render/canvas/Builder.d.ts.map +1 -1
- package/render/canvas/Builder.js +19 -3
- package/render/canvas/Executor.d.ts +18 -7
- package/render/canvas/Executor.d.ts.map +1 -1
- package/render/canvas/Executor.js +101 -57
- package/render/canvas/ExecutorGroup.d.ts +39 -9
- package/render/canvas/ExecutorGroup.d.ts.map +1 -1
- package/render/canvas/ExecutorGroup.js +96 -25
- package/render/canvas/ImageBuilder.d.ts +1 -1
- package/render/canvas/ImageBuilder.d.ts.map +1 -1
- package/render/canvas/ImageBuilder.js +30 -8
- package/render/canvas/Immediate.d.ts +11 -0
- package/render/canvas/Immediate.d.ts.map +1 -1
- package/render/canvas/LineStringBuilder.d.ts.map +1 -1
- package/render/canvas/LineStringBuilder.js +6 -4
- package/render/canvas/PolygonBuilder.d.ts.map +1 -1
- package/render/canvas/PolygonBuilder.js +9 -6
- package/render/canvas/TextBuilder.d.ts +4 -0
- package/render/canvas/TextBuilder.d.ts.map +1 -1
- package/render/canvas/TextBuilder.js +15 -6
- package/render/canvas/ZIndexContext.d.ts +56 -0
- package/render/canvas/ZIndexContext.d.ts.map +1 -0
- package/render/canvas/ZIndexContext.js +112 -0
- package/render/canvas/style.d.ts.map +1 -1
- package/render/canvas/style.js +9 -2
- package/render/canvas.d.ts +2 -2
- package/render/canvas.d.ts.map +1 -1
- package/render/canvas.js +6 -2
- package/renderer/Composite.d.ts +3 -2
- package/renderer/Composite.d.ts.map +1 -1
- package/renderer/Composite.js +26 -19
- package/renderer/Layer.d.ts +4 -0
- package/renderer/Layer.d.ts.map +1 -1
- package/renderer/Layer.js +5 -0
- package/renderer/Map.d.ts +0 -4
- package/renderer/Map.d.ts.map +1 -1
- package/renderer/Map.js +0 -5
- package/renderer/canvas/Layer.d.ts +4 -0
- package/renderer/canvas/Layer.d.ts.map +1 -1
- package/renderer/canvas/Layer.js +32 -0
- package/renderer/canvas/VectorImageLayer.d.ts.map +1 -1
- package/renderer/canvas/VectorImageLayer.js +8 -1
- package/renderer/canvas/VectorLayer.d.ts +6 -5
- package/renderer/canvas/VectorLayer.d.ts.map +1 -1
- package/renderer/canvas/VectorLayer.js +55 -58
- package/renderer/canvas/VectorTileLayer.d.ts +14 -3
- package/renderer/canvas/VectorTileLayer.d.ts.map +1 -1
- package/renderer/canvas/VectorTileLayer.js +129 -60
- package/renderer/vector.d.ts +3 -2
- package/renderer/vector.d.ts.map +1 -1
- package/renderer/vector.js +68 -126
- package/renderer/webgl/PointsLayer.d.ts +1 -0
- package/renderer/webgl/PointsLayer.d.ts.map +1 -1
- package/renderer/webgl/PointsLayer.js +2 -0
- package/source/Raster.js +1 -1
- package/style/Circle.d.ts +2 -2
- package/style/Circle.d.ts.map +1 -1
- package/style/Circle.js +1 -1
- package/style/Icon.d.ts +1 -1
- package/style/Icon.d.ts.map +1 -1
- package/style/Icon.js +1 -1
- package/style/Image.d.ts +7 -6
- package/style/Image.d.ts.map +1 -1
- package/style/Image.js +4 -3
- package/style/RegularShape.d.ts +2 -2
- package/style/RegularShape.d.ts.map +1 -1
- package/style/RegularShape.js +1 -1
- package/style/Style.d.ts +17 -0
- package/style/Style.d.ts.map +1 -1
- package/style/Style.js +10 -0
- package/style/Text.d.ts +16 -0
- package/style/Text.d.ts.map +1 -1
- package/style/Text.js +17 -0
- package/style/flat.d.ts +11 -6
- package/style/flat.d.ts.map +1 -1
- package/style/flat.js +4 -3
- package/util.js +1 -1
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module ol/render/canvas/ZIndexContext
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/** @typedef {CanvasRenderingContext2D & {globalAlpha: any}} ZIndexContextProxy */
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @extends {CanvasRenderingContext2D}
|
|
9
|
+
*/
|
|
10
|
+
class ZIndexContext {
|
|
11
|
+
constructor() {
|
|
12
|
+
/**
|
|
13
|
+
* @private
|
|
14
|
+
* @type {Array<Array<*>>}
|
|
15
|
+
*/
|
|
16
|
+
this.instructions_ = [];
|
|
17
|
+
/**
|
|
18
|
+
* @type {number}
|
|
19
|
+
*/
|
|
20
|
+
this.zIndex = 0;
|
|
21
|
+
/**
|
|
22
|
+
* @private
|
|
23
|
+
* @type {number}
|
|
24
|
+
*/
|
|
25
|
+
this.offset_ = 0;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @type {ZIndexContextProxy}
|
|
29
|
+
*/
|
|
30
|
+
this.context_ = /** @type {ZIndexContextProxy} */ (
|
|
31
|
+
new Proxy(CanvasRenderingContext2D.prototype, {
|
|
32
|
+
get: (target, property) => {
|
|
33
|
+
if (typeof (/** @type {*} */ (target)[property]) !== 'function') {
|
|
34
|
+
// we only accept calling functions on the proxy, not accessing properties
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
if (!this.instructions_[this.zIndex + this.offset_]) {
|
|
38
|
+
this.instructions_[this.zIndex + this.offset_] = [];
|
|
39
|
+
}
|
|
40
|
+
this.instructions_[this.zIndex + this.offset_].push(property);
|
|
41
|
+
return this.pushMethodArgs_;
|
|
42
|
+
},
|
|
43
|
+
set: (target, property, value) => {
|
|
44
|
+
if (!this.instructions_[this.zIndex + this.offset_]) {
|
|
45
|
+
this.instructions_[this.zIndex + this.offset_] = [];
|
|
46
|
+
}
|
|
47
|
+
this.instructions_[this.zIndex + this.offset_].push(property, value);
|
|
48
|
+
return true;
|
|
49
|
+
},
|
|
50
|
+
})
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* @private
|
|
56
|
+
* @param {...*} args Args.
|
|
57
|
+
* @return {ZIndexContext} This.
|
|
58
|
+
*/
|
|
59
|
+
pushMethodArgs_ = (...args) => {
|
|
60
|
+
this.instructions_[this.zIndex + this.offset_].push(args);
|
|
61
|
+
return this;
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Get a proxy for CanvasRenderingContext2D which does not support getting state
|
|
66
|
+
* (e.g. `context.globalAlpha`, which will return `undefined`). To set state, if it relies on a
|
|
67
|
+
* previous state (e.g. `context.globalAlpha = context.globalAlpha / 2`), set a function,
|
|
68
|
+
* e.g. `context.globalAlpha = (context) => context.globalAlpha / 2`.
|
|
69
|
+
* @return {ZIndexContextProxy} Context.
|
|
70
|
+
*/
|
|
71
|
+
getContext() {
|
|
72
|
+
return this.context_;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* @param {CanvasRenderingContext2D} context Context.
|
|
77
|
+
*/
|
|
78
|
+
draw(context) {
|
|
79
|
+
this.instructions_.forEach((instructionsAtIndex) => {
|
|
80
|
+
for (let i = 0, ii = instructionsAtIndex.length; i < ii; i += 2) {
|
|
81
|
+
const property = instructionsAtIndex[i];
|
|
82
|
+
const instructionAtIndex = instructionsAtIndex[i + 1];
|
|
83
|
+
if (typeof (/** @type {*} */ (context)[property]) === 'function') {
|
|
84
|
+
/** @type {*} */ (context)[property](...instructionAtIndex);
|
|
85
|
+
} else {
|
|
86
|
+
if (typeof instructionAtIndex === 'function') {
|
|
87
|
+
/** @type {*} */ (context)[property] = instructionAtIndex(context);
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
/** @type {*} */ (context)[property] = instructionAtIndex;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
clear() {
|
|
97
|
+
this.instructions_.length = 0;
|
|
98
|
+
this.zIndex = 0;
|
|
99
|
+
this.offset_ = 0;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Offsets the zIndex by the highest current zIndex. Useful for rendering multiple worlds or tiles, to
|
|
104
|
+
* avoid conflicting context.clip() or context.save()/restore() calls.
|
|
105
|
+
*/
|
|
106
|
+
offset() {
|
|
107
|
+
this.offset_ = this.instructions_.length;
|
|
108
|
+
this.zIndex = 0;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export default ZIndexContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["style.js"],"names":[],"mappings":"AAgEA;;;;;;;GAOG;AACH,4CAHW,MAAM,OAAO,qBAAqB,EAAE,IAAI,CAAC,GACxC,OAAO,sBAAsB,EAAE,aAAa,CAwBvD;AAED;;;;;;;GAOG;AACH,sDAHW,MAAM,OAAO,qBAAqB,EAAE,SAAS,CAAC,GAC7C,OAAO,sBAAsB,EAAE,aAAa,CA0CvD;AAED;;GAEG;AAEH;;;;GAIG;AAEH;;;;GAIG;AACH,oCAJW,MAAM,OAAO,qBAAqB,EAAE,IAAI,CAAC,WACzC,cAAc,GACb,gBAAgB,CA6D3B;AAED;;GAEG;AAEH;;;;;GAKG;AACH,sCALW,SAAS,WACT,cAAc,GACb,cAAc,CAgEzB;wBApQY,OAAO,qBAAqB,EAAE,SAAS;gCAIvC,OAAO,0BAA0B,EAAE,iBAAiB;6BAIpD,OAAO,0BAA0B,EAAE,cAAc;6BAIjD,OAAO,0BAA0B,EAAE,cAAc;gCAIjD,OAAO,mBAAmB,EAAE,iBAAiB;kCAI7C,OAAO,mBAAmB,EAAE,mBAAmB;sCA8FtC,iBAAiB,KAAE,MAAM,KAAK,CAAC;;;;;YAKvC,mBAAmB;;;;YACnB,MAAM,cAAc,CAAC;;oCAsEb,iBAAiB,KAAE,KAAK,GAAC,IAAI;mCAyE7B,iBAAiB,KAAE,IAAI,GAAC,IAAI;qCAoC5B,iBAAiB,KAAE,MAAM,GAAC,IAAI;mCA2G9B,iBAAiB,KAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["style.js"],"names":[],"mappings":"AAgEA;;;;;;;GAOG;AACH,4CAHW,MAAM,OAAO,qBAAqB,EAAE,IAAI,CAAC,GACxC,OAAO,sBAAsB,EAAE,aAAa,CAwBvD;AAED;;;;;;;GAOG;AACH,sDAHW,MAAM,OAAO,qBAAqB,EAAE,SAAS,CAAC,GAC7C,OAAO,sBAAsB,EAAE,aAAa,CA0CvD;AAED;;GAEG;AAEH;;;;GAIG;AAEH;;;;GAIG;AACH,oCAJW,MAAM,OAAO,qBAAqB,EAAE,IAAI,CAAC,WACzC,cAAc,GACb,gBAAgB,CA6D3B;AAED;;GAEG;AAEH;;;;;GAKG;AACH,sCALW,SAAS,WACT,cAAc,GACb,cAAc,CAgEzB;wBApQY,OAAO,qBAAqB,EAAE,SAAS;gCAIvC,OAAO,0BAA0B,EAAE,iBAAiB;6BAIpD,OAAO,0BAA0B,EAAE,cAAc;6BAIjD,OAAO,0BAA0B,EAAE,cAAc;gCAIjD,OAAO,mBAAmB,EAAE,iBAAiB;kCAI7C,OAAO,mBAAmB,EAAE,mBAAmB;sCA8FtC,iBAAiB,KAAE,MAAM,KAAK,CAAC;;;;;YAKvC,mBAAmB;;;;YACnB,MAAM,cAAc,CAAC;;oCAsEb,iBAAiB,KAAE,KAAK,GAAC,IAAI;mCAyE7B,iBAAiB,KAAE,IAAI,GAAC,IAAI;qCAoC5B,iBAAiB,KAAE,MAAM,GAAC,IAAI;mCA2G9B,iBAAiB,KAAE,IAAI;oCAgOvB,iBAAiB,KAAE,OAAO,sBAAsB,EAAE,OAAO;kBA9oB7D,sBAAsB;iBAJvB,qBAAqB;mBAGnB,uBAAuB;iBAEzB,qBAAqB"}
|
package/render/canvas/style.js
CHANGED
|
@@ -541,7 +541,14 @@ function buildText(flatStyle, context) {
|
|
|
541
541
|
context,
|
|
542
542
|
);
|
|
543
543
|
|
|
544
|
-
|
|
544
|
+
// The following properties are not currently settable
|
|
545
|
+
const declutterMode = optionalDeclutterMode(
|
|
546
|
+
flatStyle,
|
|
547
|
+
prefix + 'declutter-mode',
|
|
548
|
+
);
|
|
549
|
+
|
|
550
|
+
const text = new Text({declutterMode});
|
|
551
|
+
|
|
545
552
|
return function (context) {
|
|
546
553
|
text.setText(evaluateValue(context));
|
|
547
554
|
|
|
@@ -1217,7 +1224,7 @@ function optionalNumberArray(flatStyle, property) {
|
|
|
1217
1224
|
/**
|
|
1218
1225
|
* @param {FlatStyle} flatStyle The flat style.
|
|
1219
1226
|
* @param {string} property The symbolizer property.
|
|
1220
|
-
* @return {
|
|
1227
|
+
* @return {import('../../style/Style.js').DeclutterMode} Icon declutter mode.
|
|
1221
1228
|
*/
|
|
1222
1229
|
function optionalDeclutterMode(flatStyle, property) {
|
|
1223
1230
|
const encoded = flatStyle[property];
|
package/render/canvas.d.ts
CHANGED
|
@@ -34,7 +34,7 @@ export function getTextDimensions(baseStyle: TextState, chunks: Array<string>):
|
|
|
34
34
|
*/
|
|
35
35
|
export function rotateAtOffset(context: CanvasRenderingContext2D, rotation: number, offsetX: number, offsetY: number): void;
|
|
36
36
|
/**
|
|
37
|
-
* @param {CanvasRenderingContext2D} context Context.
|
|
37
|
+
* @param {CanvasRenderingContext2D|import("../render/canvas/ZIndexContext.js").ZIndexContextProxy} context Context.
|
|
38
38
|
* @param {import("../transform.js").Transform|null} transform Transform.
|
|
39
39
|
* @param {number} opacity Opacity.
|
|
40
40
|
* @param {Label|HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} labelOrImage Label.
|
|
@@ -46,7 +46,7 @@ export function rotateAtOffset(context: CanvasRenderingContext2D, rotation: numb
|
|
|
46
46
|
* @param {number} y Y.
|
|
47
47
|
* @param {import("../size.js").Size} scale Scale.
|
|
48
48
|
*/
|
|
49
|
-
export function drawImageOrLabel(context: CanvasRenderingContext2D, transform: import("../transform.js").Transform | null, opacity: number, labelOrImage: Label | HTMLCanvasElement | HTMLImageElement | HTMLVideoElement, originX: number, originY: number, w: number, h: number, x: number, y: number, scale: import("../size.js").Size): void;
|
|
49
|
+
export function drawImageOrLabel(context: CanvasRenderingContext2D | import("../render/canvas/ZIndexContext.js").ZIndexContextProxy, transform: import("../transform.js").Transform | null, opacity: number, labelOrImage: Label | HTMLCanvasElement | HTMLImageElement | HTMLVideoElement, originX: number, originY: number, w: number, h: number, x: number, y: number, scale: import("../size.js").Size): void;
|
|
50
50
|
/**
|
|
51
51
|
* @typedef {'Circle' | 'Image' | 'LineString' | 'Polygon' | 'Text' | 'Default'} BuilderType
|
|
52
52
|
*/
|
package/render/canvas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["canvas.js"],"names":[],"mappings":"AAgVA;;;;GAIG;AACH,uCAJW,MAAM,QACN,MAAM,GACL,MAAM,CAIjB;AAED;;;;;;GAMG;AACH,+CALW,MAAM,QACN,MAAM;QACC,MAAM,GAAE,MAAM;IACpB,MAAM,CAWjB;AAED;;;;GAIG;AACH,6CAJW,SAAS,UACT,MAAM,MAAM,CAAC;WACJ,MAAM;YAAU,MAAM;YAAU,MAAM,MAAM,CAAC;aAAW,MAAM,MAAM,CAAC;gBAAc,MAAM,MAAM,CAAC;EA4BnH;AAED;;;;;GAKG;AACH,wCALW,wBAAwB,YACxB,MAAM,WACN,MAAM,WACN,MAAM,QAQhB;AAED;;;;;;;;;;;;GAYG;AACH,0CAZW,wBAAwB,
|
|
1
|
+
{"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["canvas.js"],"names":[],"mappings":"AAgVA;;;;GAIG;AACH,uCAJW,MAAM,QACN,MAAM,GACL,MAAM,CAIjB;AAED;;;;;;GAMG;AACH,+CALW,MAAM,QACN,MAAM;QACC,MAAM,GAAE,MAAM;IACpB,MAAM,CAWjB;AAED;;;;GAIG;AACH,6CAJW,SAAS,UACT,MAAM,MAAM,CAAC;WACJ,MAAM;YAAU,MAAM;YAAU,MAAM,MAAM,CAAC;aAAW,MAAM,MAAM,CAAC;gBAAc,MAAM,MAAM,CAAC;EA4BnH;AAED;;;;;GAKG;AACH,wCALW,wBAAwB,YACxB,MAAM,WACN,MAAM,WACN,MAAM,QAQhB;AAED;;;;;;;;;;;;GAYG;AACH,0CAZW,wBAAwB,GAAC,OAAO,mCAAmC,EAAE,kBAAkB,aACvF,OAAO,iBAAiB,EAAE,SAAS,GAAC,IAAI,WACxC,MAAM,gBACN,KAAK,GAAC,iBAAiB,GAAC,gBAAgB,GAAC,gBAAgB,WACzD,MAAM,WACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,SACN,OAAO,YAAY,EAAE,IAAI,QAoEnC;AAheD;;GAEG;AAEH;;;GAGG;AAEH;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;;;;;;;;;GASG;AAEH;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;;GAQG;AAEH;;GAEG;AAEH;;;GAGG;AACH,0BAFU,MAAM,CAE6B;AAE7C;;;GAGG;AACH,+BAFU,MAAM,CAEuB;AAEvC;;;GAGG;AACH,6BAFU,aAAa,CAEe;AAEtC;;;GAGG;AACH,8BAFU,MAAM,MAAM,CAAC,CAEW;AAElC;;;GAGG;AACH,oCAFU,MAAM,CAEuB;AAEvC;;;GAGG;AACH,8BAFU,cAAc,CAEe;AAEvC;;;GAGG;AACH,gCAFU,MAAM,CAEoB;AAEpC;;;GAGG;AACH,iCAFU,OAAO,iBAAiB,EAAE,SAAS,CAEJ;AAEzC;;;GAGG;AACH,+BAFU,eAAe,CAEgB;AAEzC;;;GAGG;AACH,kCAFU,kBAAkB,CAEgB;AAE5C;;;GAGG;AACH,6BAFU,MAAM,MAAM,CAAC,CAEoB;AAE3C;;;GAGG;AACH,+BAFU,MAAM,CAEkB;AAElC;;GAEG;AACH,2BAFU,UAAU,CAEyB;AAY7C;;GAEG;AACH;QAFkB,MAAM,GAAE,MAAM;EAEF;AA2ErB,kDAmBN;AAYM,yDAiCN;0BAnTU,QAAQ,GAAG,OAAO,GAAG,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS;;;;;eAKjE,OAAO,iBAAiB,EAAE,SAAS;;;;;;WAKnC,MAAM;;;;YACN,MAAM;;;;yBACN,MAAM,MAAM,GAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;qBAQpB,MAAM,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cASb,MAAM,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;aAUb,aAAa;;;;cACb,MAAM,MAAM,CAAC;;;;oBACb,MAAM;;;;cACN,cAAc;;;;eACd,MAAM;;;;gBACN,MAAM;;;;iBACN,OAAO,iBAAiB,EAAE,SAAS;;;;;;UAKnC,MAAM;;;;;;;;;;;;;;;;kBAIN,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAYlB,UAAQ;;;;8BACR,UAAQ;;;;iBACR,MAAM,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;QAOP,MAAM,GAAE,OAAO,sBAAsB,EAAE,sBAAsB;;uBAlF1D,cAAc"}
|
package/render/canvas.js
CHANGED
|
@@ -409,7 +409,7 @@ export function rotateAtOffset(context, rotation, offsetX, offsetY) {
|
|
|
409
409
|
}
|
|
410
410
|
|
|
411
411
|
/**
|
|
412
|
-
* @param {CanvasRenderingContext2D} context Context.
|
|
412
|
+
* @param {CanvasRenderingContext2D|import("../render/canvas/ZIndexContext.js").ZIndexContextProxy} context Context.
|
|
413
413
|
* @param {import("../transform.js").Transform|null} transform Transform.
|
|
414
414
|
* @param {number} opacity Opacity.
|
|
415
415
|
* @param {Label|HTMLCanvasElement|HTMLImageElement|HTMLVideoElement} labelOrImage Label.
|
|
@@ -437,7 +437,11 @@ export function drawImageOrLabel(
|
|
|
437
437
|
context.save();
|
|
438
438
|
|
|
439
439
|
if (opacity !== 1) {
|
|
440
|
-
context.globalAlpha
|
|
440
|
+
if (context.globalAlpha === undefined) {
|
|
441
|
+
context.globalAlpha = (context) => (context.globalAlpha *= opacity);
|
|
442
|
+
} else {
|
|
443
|
+
context.globalAlpha *= opacity;
|
|
444
|
+
}
|
|
441
445
|
}
|
|
442
446
|
if (transform) {
|
|
443
447
|
context.transform.apply(context, transform);
|
package/renderer/Composite.d.ts
CHANGED
|
@@ -25,9 +25,10 @@ declare class CompositeMapRenderer extends MapRenderer {
|
|
|
25
25
|
*/
|
|
26
26
|
private renderedVisible_;
|
|
27
27
|
/**
|
|
28
|
-
* @
|
|
28
|
+
* @param {import("../Map.js").FrameState} frameState Frame state.
|
|
29
|
+
* @param {Array<import('../layer/Layer.js').State>} layerStates Layers.
|
|
29
30
|
*/
|
|
30
|
-
|
|
31
|
+
declutter(frameState: import("../Map.js").FrameState, layerStates: Array<import('../layer/Layer.js').State>): void;
|
|
31
32
|
}
|
|
32
33
|
import MapRenderer from './Map.js';
|
|
33
34
|
//# sourceMappingURL=Composite.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Composite.d.ts","sourceRoot":"","sources":["Composite.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"Composite.d.ts","sourceRoot":"","sources":["Composite.js"],"names":[],"mappings":";AAcA;;;;GAIG;AACH;IAOI;;OAEG;IACH,wBAFU,OAAO,cAAc,EAAE,SAAS,CAMzC;IAED;;;OAGG;IACH,iBAA6C;IAY7C;;;OAGG;IACH,kBAAmB;IAEnB;;;OAGG;IACH,yBAA4B;IA+F9B;;;OAGG;IACH,sBAHW,OAAO,WAAW,EAAE,UAAU,eAC9B,MAAM,OAAO,mBAAmB,EAAE,KAAK,CAAC,QAalD;CACF;wBAxKuB,UAAU"}
|
package/renderer/Composite.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module ol/renderer/Composite
|
|
3
3
|
*/
|
|
4
|
+
import BaseVectorLayer from '../layer/BaseVector.js';
|
|
4
5
|
import MapRenderer from './Map.js';
|
|
5
6
|
import ObjectEventType from '../ObjectEventType.js';
|
|
6
7
|
import RenderEvent from '../render/Event.js';
|
|
@@ -59,11 +60,6 @@ class CompositeMapRenderer extends MapRenderer {
|
|
|
59
60
|
* @type {boolean}
|
|
60
61
|
*/
|
|
61
62
|
this.renderedVisible_ = true;
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* @type {Array<import("../layer/BaseVector.js").default>}
|
|
65
|
-
*/
|
|
66
|
-
this.declutterLayers_ = [];
|
|
67
63
|
}
|
|
68
64
|
|
|
69
65
|
/**
|
|
@@ -103,13 +99,20 @@ class CompositeMapRenderer extends MapRenderer {
|
|
|
103
99
|
const layerStatesArray = frameState.layerStatesArray.sort(function (a, b) {
|
|
104
100
|
return a.zIndex - b.zIndex;
|
|
105
101
|
});
|
|
102
|
+
const declutter = layerStatesArray.some(
|
|
103
|
+
(layerState) =>
|
|
104
|
+
layerState.layer instanceof BaseVectorLayer &&
|
|
105
|
+
layerState.layer.getDeclutter(),
|
|
106
|
+
);
|
|
107
|
+
if (declutter) {
|
|
108
|
+
// Some layers need decluttering, turn on deferred rendering hint
|
|
109
|
+
frameState.declutter = {};
|
|
110
|
+
}
|
|
106
111
|
const viewState = frameState.viewState;
|
|
107
112
|
|
|
108
113
|
this.children_.length = 0;
|
|
109
114
|
|
|
110
|
-
const
|
|
111
|
-
declutterLayers.length = 0;
|
|
112
|
-
|
|
115
|
+
const renderedLayerStates = [];
|
|
113
116
|
let previousElement = null;
|
|
114
117
|
for (let i = 0, ii = layerStatesArray.length; i < ii; ++i) {
|
|
115
118
|
const layerState = layerStatesArray[i];
|
|
@@ -133,13 +136,11 @@ class CompositeMapRenderer extends MapRenderer {
|
|
|
133
136
|
this.children_.push(element);
|
|
134
137
|
previousElement = element;
|
|
135
138
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
/** @type {import("../layer/BaseVector.js").default} */ (layer),
|
|
139
|
-
);
|
|
140
|
-
}
|
|
139
|
+
|
|
140
|
+
renderedLayerStates.push(layerState);
|
|
141
141
|
}
|
|
142
|
-
|
|
142
|
+
|
|
143
|
+
this.declutter(frameState, renderedLayerStates);
|
|
143
144
|
|
|
144
145
|
replaceChildren(this.element_, this.children_);
|
|
145
146
|
|
|
@@ -155,13 +156,19 @@ class CompositeMapRenderer extends MapRenderer {
|
|
|
155
156
|
|
|
156
157
|
/**
|
|
157
158
|
* @param {import("../Map.js").FrameState} frameState Frame state.
|
|
159
|
+
* @param {Array<import('../layer/Layer.js').State>} layerStates Layers.
|
|
158
160
|
*/
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
161
|
+
declutter(frameState, layerStates) {
|
|
162
|
+
for (let i = layerStates.length - 1; i >= 0; --i) {
|
|
163
|
+
const layerState = layerStates[i];
|
|
164
|
+
const layer = layerState.layer;
|
|
165
|
+
if (layer.getDeclutter()) {
|
|
166
|
+
layer.renderDeclutter(frameState, layerState);
|
|
167
|
+
}
|
|
163
168
|
}
|
|
164
|
-
|
|
169
|
+
layerStates.forEach((layerState) =>
|
|
170
|
+
layerState.layer.renderDeferred(frameState),
|
|
171
|
+
);
|
|
165
172
|
}
|
|
166
173
|
}
|
|
167
174
|
|
package/renderer/Layer.d.ts
CHANGED
|
@@ -113,6 +113,10 @@ declare class LayerRenderer<LayerType extends import("../layer/Layer.js").defaul
|
|
|
113
113
|
* @protected
|
|
114
114
|
*/
|
|
115
115
|
protected renderIfReadyAndVisible(): void;
|
|
116
|
+
/**
|
|
117
|
+
* @param {import("../Map.js").FrameState} frameState Frame state.
|
|
118
|
+
*/
|
|
119
|
+
renderDeferred(frameState: import("../Map.js").FrameState): void;
|
|
116
120
|
}
|
|
117
121
|
import Observable from '../Observable.js';
|
|
118
122
|
//# sourceMappingURL=Layer.d.ts.map
|
package/renderer/Layer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Layer.d.ts","sourceRoot":"","sources":["Layer.js"],"names":[],"mappings":";AAQA;;GAEG;AACH;IACE;;OAEG;IACH,mBAFW,SAAS,EAwBnB;IAnBC;;;OAGG;IACH,OAFU,OAAO,CAEA;IAEjB,eAAe;IACf,gCAAiE;IAEjE;;;OAGG;IACH,kBAFU,SAAS,CAEA;IAEnB;;OAEG;IACH,wBAFU,OAAO,gCAAgC,EAAE,OAAO,CAExB;IAGpC;;;;;OAKG;IACH,mBAJW,OAAO,aAAa,EAAE,KAAK,GAC1B,QAAQ,MAAM,OAAO,YAAY,EAAE,WAAW,CAAC,CAAC,CAK3D;IAED;;;OAGG;IACH,eAHW,OAAO,aAAa,EAAE,KAAK,GAC1B,iBAAiB,GAAC,UAAU,GAAC,YAAY,GAAC,QAAQ,GAAC,IAAI,CAIlE;IAED;;;;;OAKG;IACH,yBAHW,OAAO,WAAW,EAAE,UAAU,GAC7B,OAAO,CAIlB;IAED;;;;;;OAMG;IACH,wBAJW,OAAO,WAAW,EAAE,UAAU,UAC9B,WAAW,GAAC,IAAI,GACf,WAAW,GAAC,IAAI,CAI3B;IAED;;;;;OAKG;IACH;YALkB,MAAM;gBAAS,MAAM,GAAE,OAAO,YAAY,EAAE,OAAO;;aAC1D,MAAM,QACN,OAAO,YAAY,EAAE,OAAO,GAC3B,OAAO,GAAC,IAAI,CAQvB;IAED;;;;;;;;OAQG;IACH,yCAPW,OAAO,mBAAmB,EAAE,OAAO,cACnC,OAAO,uBAAuB,EAAE,OAAO;YAChC,MAAM;gBAAS,MAAM,GAAE,OAAO,YAAY,EAAE,OAAO;;eAChD,MAAM,QAAE,OAAO,iBAAiB,EAAE,OAAO,KAAE,OAAO,CAgBtE;IACD;;;;;;;;;OASG;IACH,0CARW,OAAO,kBAAkB,EAAE,UAAU,cACrC,OAAO,WAAW,EAAE,UAAU,gBAC9B,MAAM,gHAchB;IAED;;OAEG;IACH,YAFY,SAAS,CAIpB;IAED;;;OAGG;IACH,2BAAuB;IAEvB;;;;OAIG;IACH,2BAQC;IAED;;;;;;OAMG;IACH,2BAJW,OAAO,aAAa,EAAE,OAAO,GAC5B,OAAO,CAalB;IAED;;OAEG;IACH,0CAKC;
|
|
1
|
+
{"version":3,"file":"Layer.d.ts","sourceRoot":"","sources":["Layer.js"],"names":[],"mappings":";AAQA;;GAEG;AACH;IACE;;OAEG;IACH,mBAFW,SAAS,EAwBnB;IAnBC;;;OAGG;IACH,OAFU,OAAO,CAEA;IAEjB,eAAe;IACf,gCAAiE;IAEjE;;;OAGG;IACH,kBAFU,SAAS,CAEA;IAEnB;;OAEG;IACH,wBAFU,OAAO,gCAAgC,EAAE,OAAO,CAExB;IAGpC;;;;;OAKG;IACH,mBAJW,OAAO,aAAa,EAAE,KAAK,GAC1B,QAAQ,MAAM,OAAO,YAAY,EAAE,WAAW,CAAC,CAAC,CAK3D;IAED;;;OAGG;IACH,eAHW,OAAO,aAAa,EAAE,KAAK,GAC1B,iBAAiB,GAAC,UAAU,GAAC,YAAY,GAAC,QAAQ,GAAC,IAAI,CAIlE;IAED;;;;;OAKG;IACH,yBAHW,OAAO,WAAW,EAAE,UAAU,GAC7B,OAAO,CAIlB;IAED;;;;;;OAMG;IACH,wBAJW,OAAO,WAAW,EAAE,UAAU,UAC9B,WAAW,GAAC,IAAI,GACf,WAAW,GAAC,IAAI,CAI3B;IAED;;;;;OAKG;IACH;YALkB,MAAM;gBAAS,MAAM,GAAE,OAAO,YAAY,EAAE,OAAO;;aAC1D,MAAM,QACN,OAAO,YAAY,EAAE,OAAO,GAC3B,OAAO,GAAC,IAAI,CAQvB;IAED;;;;;;;;OAQG;IACH,yCAPW,OAAO,mBAAmB,EAAE,OAAO,cACnC,OAAO,uBAAuB,EAAE,OAAO;YAChC,MAAM;gBAAS,MAAM,GAAE,OAAO,YAAY,EAAE,OAAO;;eAChD,MAAM,QAAE,OAAO,iBAAiB,EAAE,OAAO,KAAE,OAAO,CAgBtE;IACD;;;;;;;;;OASG;IACH,0CARW,OAAO,kBAAkB,EAAE,UAAU,cACrC,OAAO,WAAW,EAAE,UAAU,gBAC9B,MAAM,gHAchB;IAED;;OAEG;IACH,YAFY,SAAS,CAIpB;IAED;;;OAGG;IACH,2BAAuB;IAEvB;;;;OAIG;IACH,2BAQC;IAED;;;;;;OAMG;IACH,2BAJW,OAAO,aAAa,EAAE,OAAO,GAC5B,OAAO,CAalB;IAED;;OAEG;IACH,0CAKC;IAED;;OAEG;IACH,2BAFW,OAAO,WAAW,EAAE,UAAU,QAEZ;CAS9B;uBAtMsB,kBAAkB"}
|
package/renderer/Layer.js
CHANGED
package/renderer/Map.d.ts
CHANGED
|
@@ -94,10 +94,6 @@ declare class MapRenderer extends Disposable {
|
|
|
94
94
|
* @param {?import("../Map.js").FrameState} frameState Frame state.
|
|
95
95
|
*/
|
|
96
96
|
renderFrame(frameState: import("../Map.js").FrameState | null): void;
|
|
97
|
-
/**
|
|
98
|
-
* @param {import("../Map.js").FrameState} frameState Frame state.
|
|
99
|
-
*/
|
|
100
|
-
flushDeclutterItems(frameState: import("../Map.js").FrameState): void;
|
|
101
97
|
/**
|
|
102
98
|
* @param {import("../Map.js").FrameState} frameState Frame state.
|
|
103
99
|
* @protected
|
package/renderer/Map.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Map.d.ts","sourceRoot":"","sources":["Map.js"],"names":[],"mappings":";;;;;aAec,OAAO,eAAe,EAAE,WAAW;;;;WACnC,OAAO,mBAAmB,EAAE,OAAO;;;;cACnC,OAAO,2BAA2B,EAAE,OAAO;;;;gBAC3C,MAAM;;;;cACN,OAAO,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;;AAPtD;;;;;;;;GAQG;AAEH;;GAEG;AACH;IACE;;OAEG;IACH,iBAFW,OAAO,WAAW,EAAE,OAAO,EAUrC;IALC;;;OAGG;IACH,aAAe;IAGjB;;;;OAIG;IACH,2CAFW,OAAO,WAAW,EAAE,UAAU,QAIxC;IAED;;;OAGG;IACH,0CAHW,OAAO,WAAW,EAAE,UAAU,QAoBxC;IAED;;;;;;;;;;;;;;OAcG;IACH,gDAdW,OAAO,kBAAkB,EAAE,UAAU,cACrC,OAAO,WAAW,EAAE,UAAU,gBAC9B,MAAM,gBACN,OAAO,+FAGW,OAAO,mBAAmB,EAAE,OAAO,KAAG,OAAO,8BA4FzE;IAED;;;;;;;;;;;;OAYG;IACH,wCAZW,OAAO,kBAAkB,EAAE,UAAU,cACrC,OAAO,WAAW,EAAE,UAAU,gBAC9B,MAAM,gBACN,OAAO,iCACW,OAAO,mBAAmB,EAAE,OAAO,KAAG,OAAO,iBAK9D,OAAO,CAuBlB;IAED;;OAEG;IACH,UAFY,OAAO,WAAW,EAAE,OAAO,CAItC;IAED;;;;OAIG;IACH,wBAFY,OAAO,WAAW,EAAE,UAAU,eAIzC;IAED
|
|
1
|
+
{"version":3,"file":"Map.d.ts","sourceRoot":"","sources":["Map.js"],"names":[],"mappings":";;;;;aAec,OAAO,eAAe,EAAE,WAAW;;;;WACnC,OAAO,mBAAmB,EAAE,OAAO;;;;cACnC,OAAO,2BAA2B,EAAE,OAAO;;;;gBAC3C,MAAM;;;;cACN,OAAO,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;;AAPtD;;;;;;;;GAQG;AAEH;;GAEG;AACH;IACE;;OAEG;IACH,iBAFW,OAAO,WAAW,EAAE,OAAO,EAUrC;IALC;;;OAGG;IACH,aAAe;IAGjB;;;;OAIG;IACH,2CAFW,OAAO,WAAW,EAAE,UAAU,QAIxC;IAED;;;OAGG;IACH,0CAHW,OAAO,WAAW,EAAE,UAAU,QAoBxC;IAED;;;;;;;;;;;;;;OAcG;IACH,gDAdW,OAAO,kBAAkB,EAAE,UAAU,cACrC,OAAO,WAAW,EAAE,UAAU,gBAC9B,MAAM,gBACN,OAAO,+FAGW,OAAO,mBAAmB,EAAE,OAAO,KAAG,OAAO,8BA4FzE;IAED;;;;;;;;;;;;OAYG;IACH,wCAZW,OAAO,kBAAkB,EAAE,UAAU,cACrC,OAAO,WAAW,EAAE,UAAU,gBAC9B,MAAM,gBACN,OAAO,iCACW,OAAO,mBAAmB,EAAE,OAAO,KAAG,OAAO,iBAK9D,OAAO,CAuBlB;IAED;;OAEG;IACH,UAFY,OAAO,WAAW,EAAE,OAAO,CAItC;IAED;;;;OAIG;IACH,wBAFY,OAAO,WAAW,EAAE,UAAU,eAIzC;IAED;;;OAGG;IACH,8CAHW,OAAO,WAAW,EAAE,UAAU,QAOxC;CACF;uBArOsB,kBAAkB"}
|
package/renderer/Map.js
CHANGED
|
@@ -221,11 +221,6 @@ class MapRenderer extends Disposable {
|
|
|
221
221
|
abstract();
|
|
222
222
|
}
|
|
223
223
|
|
|
224
|
-
/**
|
|
225
|
-
* @param {import("../Map.js").FrameState} frameState Frame state.
|
|
226
|
-
*/
|
|
227
|
-
flushDeclutterItems(frameState) {}
|
|
228
|
-
|
|
229
224
|
/**
|
|
230
225
|
* @param {import("../Map.js").FrameState} frameState Frame state.
|
|
231
226
|
* @protected
|
|
@@ -103,6 +103,10 @@ declare class CanvasLayerRenderer<LayerType extends import("../../layer/Layer.js
|
|
|
103
103
|
* @protected
|
|
104
104
|
*/
|
|
105
105
|
protected postRender(context: CanvasRenderingContext2D, frameState: import("../../Map.js").FrameState): void;
|
|
106
|
+
/**
|
|
107
|
+
* @param {import("../../Map.js").FrameState} frameState Frame state.
|
|
108
|
+
*/
|
|
109
|
+
renderDeferredInternal(frameState: import("../../Map.js").FrameState): void;
|
|
106
110
|
/**
|
|
107
111
|
* Creates a transform for rendering to an element that will be rotated after rendering.
|
|
108
112
|
* @param {import("../../coordinate.js").Coordinate} center Center.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Layer.d.ts","sourceRoot":"","sources":["Layer.js"],"names":[],"mappings":"AAqBA;;GAEG;AACH,yBAFU,MAAM,iBAAiB,CAAC,CAEL;;AAa7B;;;;GAIG;AACH;IAOI;;;OAGG;IACH,qBAFU,WAAW,CAEA;IAErB;;;OAGG;IACH,8BAFU,MAAM,CAEO;IAEvB;;;;;OAKG;IACH,yBAFU,OAAO,oBAAoB,EAAE,SAAS,CAEV;IAEtC;;;;;OAKG;IACH,0BAFU,OAAO,oBAAoB,EAAE,SAAS,CAET;IAEvC;;;;;OAKG;IACH,iCAFU,OAAO,oBAAoB,EAAE,SAAS,CAEF;IAE9C;;OAEG;IACH,SAFU,wBAAwB,CAEf;IAEnB;;OAEG;IACH,iBAFU,OAAO,CAEW;IAE5B;;;OAGG;IACH,sBAAyB;IAEzB;;;OAGG;IACH,sBAFU,OAAO,cAAc,EAAE,UAAU,GAAC,IAAI,CAE1B;IAGxB;;;;;OAKG;IACH,oBALW,OAAO,mBAAmB,EAAE,SAAS,OACrC,MAAM,OACN,MAAM,GACL,iBAAiB,GAAC,IAAI,CAiBjC;IAED;;;OAGG;IACH,0BAHW,OAAO,cAAc,EAAE,UAAU,GAChC,MAAM,CASjB;IAED;;;;;OAKG;IACH,qBAJW,WAAW,aACX,MAAM,8CA2DhB;IAED;;;;;OAKG;IACH,iCALW,wBAAwB,cACxB,OAAO,cAAc,EAAE,UAAU,UACjC,OAAO,iBAAiB,EAAE,MAAM,QA2B1C;IAED;;;;;OAKG;IACH,6BAWC;IAED;;;;OAIG;IACH,6BAJW,wBAAwB,cACxB,OAAO,cAAc,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"Layer.d.ts","sourceRoot":"","sources":["Layer.js"],"names":[],"mappings":"AAqBA;;GAEG;AACH,yBAFU,MAAM,iBAAiB,CAAC,CAEL;;AAa7B;;;;GAIG;AACH;IAOI;;;OAGG;IACH,qBAFU,WAAW,CAEA;IAErB;;;OAGG;IACH,8BAFU,MAAM,CAEO;IAEvB;;;;;OAKG;IACH,yBAFU,OAAO,oBAAoB,EAAE,SAAS,CAEV;IAEtC;;;;;OAKG;IACH,0BAFU,OAAO,oBAAoB,EAAE,SAAS,CAET;IAEvC;;;;;OAKG;IACH,iCAFU,OAAO,oBAAoB,EAAE,SAAS,CAEF;IAE9C;;OAEG;IACH,SAFU,wBAAwB,CAEf;IAEnB;;OAEG;IACH,iBAFU,OAAO,CAEW;IAE5B;;;OAGG;IACH,sBAAyB;IAEzB;;;OAGG;IACH,sBAFU,OAAO,cAAc,EAAE,UAAU,GAAC,IAAI,CAE1B;IAGxB;;;;;OAKG;IACH,oBALW,OAAO,mBAAmB,EAAE,SAAS,OACrC,MAAM,OACN,MAAM,GACL,iBAAiB,GAAC,IAAI,CAiBjC;IAED;;;OAGG;IACH,0BAHW,OAAO,cAAc,EAAE,UAAU,GAChC,MAAM,CASjB;IAED;;;;;OAKG;IACH,qBAJW,WAAW,aACX,MAAM,8CA2DhB;IAED;;;;;OAKG;IACH,iCALW,wBAAwB,cACxB,OAAO,cAAc,EAAE,UAAU,UACjC,OAAO,iBAAiB,EAAE,MAAM,QA2B1C;IAED;;;;;OAKG;IACH,6BAWC;IAED;;;;OAIG;IACH,6BAJW,wBAAwB,cACxB,OAAO,cAAc,EAAE,UAAU,QAS3C;IAED;;;;OAIG;IACH,8BAJW,wBAAwB,cACxB,OAAO,cAAc,EAAE,UAAU,QAQ3C;IAED;;OAEG;IACH,mCAFW,OAAO,cAAc,EAAE,UAAU,QAEP;IAuBrC;;;;;;;;;;;OAWG;IACH,qCAVW,OAAO,qBAAqB,EAAE,UAAU,cACxC,MAAM,YACN,MAAM,cACN,MAAM,SACN,MAAM,UACN,MAAM,WACN,MAAM,GAEJ,OAAO,oBAAoB,EAAE,SAAS,CA2BlD;CASF;0BAjWyB,aAAa"}
|
package/renderer/canvas/Layer.js
CHANGED
|
@@ -264,6 +264,9 @@ class CanvasLayerRenderer extends LayerRenderer {
|
|
|
264
264
|
*/
|
|
265
265
|
preRender(context, frameState) {
|
|
266
266
|
this.frameState = frameState;
|
|
267
|
+
if (frameState.declutter) {
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
267
270
|
this.dispatchRenderEvent_(RenderEventType.PRERENDER, context, frameState);
|
|
268
271
|
}
|
|
269
272
|
|
|
@@ -273,9 +276,38 @@ class CanvasLayerRenderer extends LayerRenderer {
|
|
|
273
276
|
* @protected
|
|
274
277
|
*/
|
|
275
278
|
postRender(context, frameState) {
|
|
279
|
+
if (frameState.declutter) {
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
276
282
|
this.dispatchRenderEvent_(RenderEventType.POSTRENDER, context, frameState);
|
|
277
283
|
}
|
|
278
284
|
|
|
285
|
+
/**
|
|
286
|
+
* @param {import("../../Map.js").FrameState} frameState Frame state.
|
|
287
|
+
*/
|
|
288
|
+
renderDeferredInternal(frameState) {}
|
|
289
|
+
|
|
290
|
+
/**
|
|
291
|
+
* @param {import("../../Map.js").FrameState} frameState Frame state.
|
|
292
|
+
* @override
|
|
293
|
+
*/
|
|
294
|
+
renderDeferred(frameState) {
|
|
295
|
+
if (!frameState.declutter) {
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
this.dispatchRenderEvent_(
|
|
299
|
+
RenderEventType.PRERENDER,
|
|
300
|
+
this.context,
|
|
301
|
+
frameState,
|
|
302
|
+
);
|
|
303
|
+
this.renderDeferredInternal(frameState);
|
|
304
|
+
this.dispatchRenderEvent_(
|
|
305
|
+
RenderEventType.POSTRENDER,
|
|
306
|
+
this.context,
|
|
307
|
+
frameState,
|
|
308
|
+
);
|
|
309
|
+
}
|
|
310
|
+
|
|
279
311
|
/**
|
|
280
312
|
* Creates a transform for rendering to an element that will be rotated after rendering.
|
|
281
313
|
* @param {import("../../coordinate.js").Coordinate} center Center.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VectorImageLayer.d.ts","sourceRoot":"","sources":["VectorImageLayer.js"],"names":[],"mappings":";AAcA;;;;GAIG;AACH;IACE;;OAEG;IACH,sEA0BC;IAvBC;;;OAGG;IACH,wBAA2D;IAE3D;;;OAGG;IACH,yBAA6C;IAE7C;;;OAGG;IACH,0CAAiD;IAEjD;;;OAGG;IACH,4CAA+C;IAWjD;;;;OAIG;IACH,mBAHW,OAAO,gBAAgB,EAAE,KAAK,GAC7B,QAAQ,MAAM,OAAO,eAAe,EAAE,OAAO,CAAC,CAAC,CAW1D;
|
|
1
|
+
{"version":3,"file":"VectorImageLayer.d.ts","sourceRoot":"","sources":["VectorImageLayer.js"],"names":[],"mappings":";AAcA;;;;GAIG;AACH;IACE;;OAEG;IACH,sEA0BC;IAvBC;;;OAGG;IACH,wBAA2D;IAE3D;;;OAGG;IACH,yBAA6C;IAE7C;;;OAGG;IACH,0CAAiD;IAEjD;;;OAGG;IACH,4CAA+C;IAWjD;;;;OAIG;IACH,mBAHW,OAAO,gBAAgB,EAAE,KAAK,GAC7B,QAAQ,MAAM,OAAO,eAAe,EAAE,OAAO,CAAC,CAAC,CAW1D;IAgHD;OACG;IACH,kBAAc;IAEd;OACG;IACH,mBAAe;IAEf;OACG;IACH,wBAAoB;CAmCrB;qCAnOoC,iBAAiB"}
|
|
@@ -111,7 +111,6 @@ class CanvasVectorImageLayerRenderer extends CanvasImageLayerRenderer {
|
|
|
111
111
|
const imageLayerState = Object.assign({}, layerState, {opacity: 1});
|
|
112
112
|
const imageFrameState = /** @type {import("../../Map.js").FrameState} */ (
|
|
113
113
|
Object.assign({}, frameState, {
|
|
114
|
-
declutterTree: new RBush(9),
|
|
115
114
|
extent: renderedExtent,
|
|
116
115
|
size: [width, height],
|
|
117
116
|
viewState: /** @type {import("../../View.js").State} */ (
|
|
@@ -121,8 +120,15 @@ class CanvasVectorImageLayerRenderer extends CanvasImageLayerRenderer {
|
|
|
121
120
|
),
|
|
122
121
|
layerStatesArray: [imageLayerState],
|
|
123
122
|
layerIndex: 0,
|
|
123
|
+
declutter: null,
|
|
124
124
|
})
|
|
125
125
|
);
|
|
126
|
+
const declutter = this.getLayer().getDeclutter();
|
|
127
|
+
if (declutter) {
|
|
128
|
+
imageFrameState.declutter = {
|
|
129
|
+
[declutter]: new RBush(9),
|
|
130
|
+
};
|
|
131
|
+
}
|
|
126
132
|
let emptyImage = true;
|
|
127
133
|
const image = new ImageCanvas(
|
|
128
134
|
renderedExtent,
|
|
@@ -137,6 +143,7 @@ class CanvasVectorImageLayerRenderer extends CanvasImageLayerRenderer {
|
|
|
137
143
|
vectorRenderer.clipping = false;
|
|
138
144
|
if (vectorRenderer.renderFrame(imageFrameState, null)) {
|
|
139
145
|
vectorRenderer.renderDeclutter(imageFrameState);
|
|
146
|
+
vectorRenderer.renderDeferred(imageFrameState);
|
|
140
147
|
emptyImage = false;
|
|
141
148
|
}
|
|
142
149
|
callback();
|
|
@@ -96,9 +96,10 @@ declare class CanvasVectorLayerRenderer extends CanvasLayerRenderer<any> {
|
|
|
96
96
|
/**
|
|
97
97
|
* @param {ExecutorGroup} executorGroup Executor group.
|
|
98
98
|
* @param {import("../../Map.js").FrameState} frameState Frame state.
|
|
99
|
-
* @param {
|
|
99
|
+
* @param {boolean} [declutterable] `true` to only render declutterable items,
|
|
100
|
+
* `false` to only render non-declutterable items, `undefined` to render all.
|
|
100
101
|
*/
|
|
101
|
-
renderWorlds(executorGroup: ExecutorGroup, frameState: import("../../Map.js").FrameState,
|
|
102
|
+
renderWorlds(executorGroup: ExecutorGroup, frameState: import("../../Map.js").FrameState, declutterable?: boolean | undefined): void;
|
|
102
103
|
setupCompositionContext_(): void;
|
|
103
104
|
releaseCompositionContext_(): void;
|
|
104
105
|
/**
|
|
@@ -125,12 +126,12 @@ declare class CanvasVectorLayerRenderer extends CanvasLayerRenderer<any> {
|
|
|
125
126
|
* @param {import("../../style/Style.js").default|Array<import("../../style/Style.js").default>} styles The style or array of styles.
|
|
126
127
|
* @param {import("../../render/canvas/BuilderGroup.js").default} builderGroup Builder group.
|
|
127
128
|
* @param {import("../../proj.js").TransformFunction} [transform] Transform from user to view projection.
|
|
128
|
-
* @param {
|
|
129
|
+
* @param {boolean} [declutter] Enable decluttering.
|
|
130
|
+
* @param {number} [index] Render order index.
|
|
129
131
|
* @return {boolean} `true` if an image is loading.
|
|
130
132
|
*/
|
|
131
|
-
renderFeature(feature: import("../../Feature.js").default, squaredTolerance: number, styles: import("../../style/Style.js").default | Array<import("../../style/Style.js").default>, builderGroup: import("../../render/canvas/BuilderGroup.js").default, transform?: import("../../proj.js").TransformFunction | undefined,
|
|
133
|
+
renderFeature(feature: import("../../Feature.js").default, squaredTolerance: number, styles: import("../../style/Style.js").default | Array<import("../../style/Style.js").default>, builderGroup: import("../../render/canvas/BuilderGroup.js").default, transform?: import("../../proj.js").TransformFunction | undefined, declutter?: boolean | undefined, index?: number | undefined): boolean;
|
|
132
134
|
}
|
|
133
135
|
import CanvasLayerRenderer from './Layer.js';
|
|
134
136
|
import ExecutorGroup from '../../render/canvas/ExecutorGroup.js';
|
|
135
|
-
import CanvasBuilderGroup from '../../render/canvas/BuilderGroup.js';
|
|
136
137
|
//# sourceMappingURL=VectorLayer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VectorLayer.d.ts","sourceRoot":"","sources":["VectorLayer.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"VectorLayer.d.ts","sourceRoot":"","sources":["VectorLayer.js"],"names":[],"mappings":";AAiDA;;;;GAIG;AACH;IACE;;OAEG;IACH,gFAwGC;IArGC,eAAe;IACf,qCAA2E;IAE3E;;OAEG;IACH,yBAFU,OAAO,CAEW;IAE5B;;OAEG;IACH,wBAFU,SAAS,GAAC,IAAI,CAEU;IAElC;;OAEG;IACH,mBAFU,MAAM,OAAO,kBAAkB,EAAE,OAAO,CAAC,CAEtB;IAE7B;;;OAGG;IACH,0BAA2B;IAE3B;;;OAGG;IACH,4BAA8B;IAE9B;;;OAGG;IACH,wBAAoC;IAEpC;;;OAGG;IACH,+BAA2C;IAE3C;;;OAGG;IACH,0BAAsB;IAEtB;;;OAGG;IACH,wBAA2B;IAE3B;;;OAGG;IACH,4BAA+B;IAE/B;;;OAGG;IACH,4BAA4B;IAE5B;;;OAGG;IACH,6BAAgC;IAEhC;;;OAGG;IACH,qBAAwB;IAExB;;;OAGG;IACH,oBAFU,OAAO,CAEa;IAE9B;;;OAGG;IACH,UAFU,OAAO,CAEG;IAEpB;;;OAGG;IACH,4BAA+B;IAE/B;;;OAGG;IACH,iBAAiB;IAGnB;;;;;OAKG;IACH,4BALW,aAAa,cACb,OAAO,cAAc,EAAE,UAAU,6CAyD3C;IAED,iCAWC;IAED,mCAUC;IAED;;;OAGG;IACH,4BAFW,OAAO,cAAc,EAAE,UAAU,QAU3C;IAgGD;;;;;OAKG;IACH,mBAJW,OAAO,gBAAgB,EAAE,KAAK,GAC7B,QAAQ,MAAM,OAAO,eAAe,EAAE,OAAO,CAAC,CAAC,CA2F1D;IA4FD;;;;OAIG;IACH,gCAEC;IAwMD;;;;;;;;;OASG;IACH,uBATW,OAAO,kBAAkB,EAAE,OAAO,oBAClC,MAAM,UACN,OAAO,sBAAsB,EAAE,OAAO,GAAC,MAAM,OAAO,sBAAsB,EAAE,OAAO,CAAC,gBACpF,OAAO,qCAAqC,EAAE,OAAO,mIAIpD,OAAO,CA0ClB;CACF;gCA9xB6C,YAAY;0BAKnD,sCAAsC"}
|