ol 9.0.1-dev.1710242622736 → 9.0.1-dev.1710502266295

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ol",
3
- "version": "9.0.1-dev.1710242622736",
3
+ "version": "9.0.1-dev.1710502266295",
4
4
  "description": "OpenLayers mapping library",
5
5
  "keywords": [
6
6
  "map",
@@ -1 +1 @@
1
- {"version":3,"file":"ExecutorGroup.d.ts","sourceRoot":"","sources":["ExecutorGroup.js"],"names":[],"mappings":"AA6bA;;;;;;GAMG;AACH,2CAHW,MAAM,GACL,MAAM,MAAM,CAAC,CA2CxB;AA9dD;;;GAGG;AACH,kBAFU,MAAM,OAAO,cAAc,EAAE,WAAW,CAAC,CASjD;AAEF;;;GAGG;AACH,wBAFU,MAAM,OAAO,cAAc,EAAE,WAAW,CAAC,CAER;AAE3C;;;GAGG;AACH,4BAFU,MAAM,OAAO,cAAc,EAAE,WAAW,CAAC,CAIjD;;AAEF;IACE;;;;;;;;;;;;OAYG;IACH,uBAZW,OAAO,iBAAiB,EAAE,MAAM,cAIhC,MAAM,cACN,MAAM,YACN,OAAO;YACC,MAAM;mFA0ExB;IA5DC;;;OAGG;IACH,mBAA2B;IAE3B;;;OAGG;IACH,kBAAyB;IAEzB;;;OAGG;IACH,oBAA6B;IAE7B;;;OAGG;IACH,oBAA6B;IAE7B;;;OAGG;IACH,sBAAiC;IAEjC;;;OAGG;IACH,2BAA4B;IAE5B;;;OAGG;IACH,6BAAgC;IAEhC;;;OAGG;IACH,+BAA+C;IAE/C;;;OAGG;IACH,yBAA4B;IAE5B;;OAEG;IACH;YAFiB,MAAM,GAAE,MAAM,OAAO,oBAAoB,EAAE,OAAO,CAAC;MAEnC;IAKnC;;;OAGG;IACH,cAHW,wBAAwB,aACxB,OAAO,oBAAoB,EAAE,SAAS,QAUhD;IAED;;;;;OAKG;IACH,yBAmBC;IAED;;;OAGG;IACH,wBAHW,MAAM,OAAO,cAAc,EAAE,WAAW,CAAC,GACxC,OAAO,CAYlB;IAED;;;;;;;;;OASG;IACH,0CATW,OAAO,qBAAqB,EAAE,UAAU,cACxC,MAAM,YACN,MAAM,gBACN,MAAM,mBACG,OAAO,kBAAkB,EAAE,WAAW,QAAE,OAAO,8BAA8B,EAAE,OAAO,QAAE,MAAM,6BACvG,MAAM,OAAO,kBAAkB,EAAE,WAAW,CAAC,iBA4HvD;IAED;;;OAGG;IACH,yBAHW,OAAO,oBAAoB,EAAE,SAAS,GACrC,MAAM,MAAM,CAAC,GAAC,IAAI,CAc7B;IAED;;OAEG;IACH,WAFY,OAAO,CAIlB;IAED;;;;;;;;;;OAUG;IACH,uBAVW,wBAAwB,oBACxB,OAAO,eAAe,EAAE,IAAI,aAC5B,OAAO,oBAAoB,EAAE,SAAS,gBACtC,MAAM,eACN,OAAO,mFAGP,MAAwB,IAAI,QAmEtC;IAED;;MAEC;IAED,+CAEC;IAED,uBAQC;CACF"}
1
+ {"version":3,"file":"ExecutorGroup.d.ts","sourceRoot":"","sources":["ExecutorGroup.js"],"names":[],"mappings":"AA8bA;;;;;;GAMG;AACH,2CAHW,MAAM,GACL,MAAM,MAAM,CAAC,CA2CxB;AA/dD;;;GAGG;AACH,kBAFU,MAAM,OAAO,cAAc,EAAE,WAAW,CAAC,CASjD;AAEF;;;GAGG;AACH,wBAFU,MAAM,OAAO,cAAc,EAAE,WAAW,CAAC,CAER;AAE3C;;;GAGG;AACH,4BAFU,MAAM,OAAO,cAAc,EAAE,WAAW,CAAC,CAIjD;;AAEF;IACE;;;;;;;;;;;;OAYG;IACH,uBAZW,OAAO,iBAAiB,EAAE,MAAM,cAIhC,MAAM,cACN,MAAM,YACN,OAAO;YACC,MAAM;mFA0ExB;IA5DC;;;OAGG;IACH,mBAA2B;IAE3B;;;OAGG;IACH,kBAAyB;IAEzB;;;OAGG;IACH,oBAA6B;IAE7B;;;OAGG;IACH,oBAA6B;IAE7B;;;OAGG;IACH,sBAAiC;IAEjC;;;OAGG;IACH,2BAA4B;IAE5B;;;OAGG;IACH,6BAAgC;IAEhC;;;OAGG;IACH,+BAA+C;IAE/C;;;OAGG;IACH,yBAA4B;IAE5B;;OAEG;IACH;YAFiB,MAAM,GAAE,MAAM,OAAO,oBAAoB,EAAE,OAAO,CAAC;MAEnC;IAKnC;;;OAGG;IACH,cAHW,wBAAwB,aACxB,OAAO,oBAAoB,EAAE,SAAS,QAUhD;IAED;;;;;OAKG;IACH,yBAmBC;IAED;;;OAGG;IACH,wBAHW,MAAM,OAAO,cAAc,EAAE,WAAW,CAAC,GACxC,OAAO,CAYlB;IAED;;;;;;;;;OASG;IACH,0CATW,OAAO,qBAAqB,EAAE,UAAU,cACxC,MAAM,YACN,MAAM,gBACN,MAAM,mBACG,OAAO,kBAAkB,EAAE,WAAW,QAAE,OAAO,8BAA8B,EAAE,OAAO,QAAE,MAAM,6BACvG,MAAM,OAAO,kBAAkB,EAAE,WAAW,CAAC,iBA4HvD;IAED;;;OAGG;IACH,yBAHW,OAAO,oBAAoB,EAAE,SAAS,GACrC,MAAM,MAAM,CAAC,GAAC,IAAI,CAc7B;IAED;;OAEG;IACH,WAFY,OAAO,CAIlB;IAED;;;;;;;;;;OAUG;IACH,uBAVW,wBAAwB,oBACxB,OAAO,eAAe,EAAE,IAAI,aAC5B,OAAO,oBAAoB,EAAE,SAAS,gBACtC,MAAM,eACN,OAAO,mFAGP,MAAwB,IAAI,QAmEtC;IAED;;MAEC;IAED,+CAEC;IAED,uBASC;CACF"}
@@ -426,8 +426,9 @@ class ExecutorGroup {
426
426
 
427
427
  renderDeferred() {
428
428
  const deferredZIndexContexts = this.deferredZIndexContexts_;
429
- for (const key in deferredZIndexContexts) {
430
- deferredZIndexContexts[key].forEach((zIndexContext) => {
429
+ const zs = Object.keys(deferredZIndexContexts).map(Number).sort(ascending);
430
+ for (let i = 0, ii = zs.length; i < ii; ++i) {
431
+ deferredZIndexContexts[zs[i]].forEach((zIndexContext) => {
431
432
  zIndexContext.draw(this.renderedContext_); // FIXME Pass clip to replay for temporarily enabling clip
432
433
  zIndexContext.clear();
433
434
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ImageLayer.d.ts","sourceRoot":"","sources":["ImageLayer.js"],"names":[],"mappings":";AAuBA;;;;GAIG;AACH;IACE;;OAEG;IACH,qEAQC;IALC;;;OAGG;IACH,kBAFW,OAAO,gBAAgB,EAAE,OAAO,QAEzB;IAGpB;;OAEG;IACH,YAFY,OAAO,mBAAmB,EAAE,SAAS,CAIhD;IAqDD;;;OAGG;IACH,eAHW,OAAO,gBAAgB,EAAE,KAAK,GAC7B,iBAAiB,CAyC5B;IAED;;;;;OAKG;IACH,wBAJW,OAAO,cAAc,EAAE,UAAU,UACjC,WAAW,GACV,WAAW,CAqHtB;CACF;gCAxQ+B,YAAY"}
1
+ {"version":3,"file":"ImageLayer.d.ts","sourceRoot":"","sources":["ImageLayer.js"],"names":[],"mappings":";AAsBA;;;;GAIG;AACH;IACE;;OAEG;IACH,qEAQC;IALC;;;OAGG;IACH,kBAFW,OAAO,gBAAgB,EAAE,OAAO,QAEzB;IAGpB;;OAEG;IACH,YAFY,OAAO,mBAAmB,EAAE,SAAS,CAIhD;IAqDD;;;OAGG;IACH,eAHW,OAAO,gBAAgB,EAAE,KAAK,GAC7B,iBAAiB,CAyC5B;IAED;;;;;OAKG;IACH,wBAJW,OAAO,cAAc,EAAE,UAAU,UACjC,WAAW,GACV,WAAW,CA+GtB;CACF;gCAjQ+B,YAAY"}
@@ -8,7 +8,6 @@ import {
8
8
  apply as applyTransform,
9
9
  compose as composeTransform,
10
10
  makeInverse,
11
- toString as toTransformString,
12
11
  } from '../../transform.js';
13
12
  import {
14
13
  containsCoordinate,
@@ -187,9 +186,7 @@ class CanvasImageLayerRenderer extends CanvasLayerRenderer {
187
186
  );
188
187
  makeInverse(this.inversePixelTransform, this.pixelTransform);
189
188
 
190
- const canvasTransform = toTransformString(this.pixelTransform);
191
-
192
- this.useContainer(target, canvasTransform, this.getBackground(frameState));
189
+ this.useContainer(target, this.pixelTransform, frameState);
193
190
 
194
191
  const context = this.getRenderContext(frameState);
195
192
  const canvas = this.context.canvas;
@@ -259,10 +256,6 @@ class CanvasImageLayerRenderer extends CanvasLayerRenderer {
259
256
  }
260
257
  context.imageSmoothingEnabled = true;
261
258
 
262
- if (canvasTransform !== canvas.style.transform) {
263
- canvas.style.transform = canvasTransform;
264
- }
265
-
266
259
  return this.container;
267
260
  }
268
261
  }
@@ -78,10 +78,10 @@ declare class CanvasLayerRenderer<LayerType extends import("../../layer/Layer.js
78
78
  /**
79
79
  * Get a rendering container from an existing target, if compatible.
80
80
  * @param {HTMLElement} target Potential render target.
81
- * @param {string} transform CSS Transform.
82
- * @param {string} [backgroundColor] Background color.
81
+ * @param {import('../../transform.js').Transform} transform Transform parameters for the CSS matrix.
82
+ * @param {import('../../Map.js').FrameState} [frameState] Frame state.
83
83
  */
84
- useContainer(target: HTMLElement, transform: string, backgroundColor?: string | undefined): void;
84
+ useContainer(target: HTMLElement, transform: import('../../transform.js').Transform, frameState?: import("../../Map.js").FrameState | undefined): void;
85
85
  /**
86
86
  * @param {CanvasRenderingContext2D} context Context.
87
87
  * @param {import("../../Map.js").FrameState} frameState Frame state.
@@ -1 +1 @@
1
- {"version":3,"file":"Layer.d.ts","sourceRoot":"","sources":["Layer.js"],"names":[],"mappings":"AAsBA;;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;;;OAGG;IACH,yBAA4B;IAE5B;;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;IAErC;;;OAGG;IACH,6BAHW,OAAO,cAAc,EAAE,UAAU,GAChC,OAAO,sCAAsC,EAAE,kBAAkB,CAS5E;IA2BD;;;;;;;;;;;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;0BAzXyB,aAAa"}
1
+ {"version":3,"file":"Layer.d.ts","sourceRoot":"","sources":["Layer.js"],"names":[],"mappings":"AAwBA;;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;;;OAGG;IACH,yBAA4B;IAE5B;;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,OAAO,oBAAoB,EAAE,SAAS,oEAsEhD;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;IAErC;;;OAGG;IACH,6BAHW,OAAO,cAAc,EAAE,UAAU,GAChC,OAAO,sCAAsC,EAAE,kBAAkB,CAS5E;IA2BD;;;;;;;;;;;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;0BAtYyB,aAAa"}
@@ -9,10 +9,12 @@ import {
9
9
  apply as applyTransform,
10
10
  compose as composeTransform,
11
11
  create as createTransform,
12
+ equals as equalTransforms,
13
+ toString as toTransformString,
12
14
  } from '../../transform.js';
13
15
  import {asArray} from '../../color.js';
14
16
  import {createCanvasContext2D} from '../../dom.js';
15
- import {equals} from '../../array.js';
17
+ import {equals as equalArrays} from '../../array.js';
16
18
  import {
17
19
  getBottomLeft,
18
20
  getBottomRight,
@@ -152,11 +154,12 @@ class CanvasLayerRenderer extends LayerRenderer {
152
154
  /**
153
155
  * Get a rendering container from an existing target, if compatible.
154
156
  * @param {HTMLElement} target Potential render target.
155
- * @param {string} transform CSS Transform.
156
- * @param {string} [backgroundColor] Background color.
157
+ * @param {import('../../transform.js').Transform} transform Transform parameters for the CSS matrix.
158
+ * @param {import('../../Map.js').FrameState} [frameState] Frame state.
157
159
  */
158
- useContainer(target, transform, backgroundColor) {
160
+ useContainer(target, transform, frameState) {
159
161
  const layerClassName = this.getLayer().getClassName();
162
+ const backgroundColor = this.getBackground(frameState);
160
163
  let container, context;
161
164
  if (
162
165
  target &&
@@ -164,7 +167,7 @@ class CanvasLayerRenderer extends LayerRenderer {
164
167
  (!backgroundColor ||
165
168
  (target &&
166
169
  target.style.backgroundColor &&
167
- equals(
170
+ equalArrays(
168
171
  asArray(target.style.backgroundColor),
169
172
  asArray(backgroundColor),
170
173
  )))
@@ -174,7 +177,11 @@ class CanvasLayerRenderer extends LayerRenderer {
174
177
  context = canvas.getContext('2d');
175
178
  }
176
179
  }
177
- if (context && context.canvas.style.transform === transform) {
180
+ const transformsAreEqual =
181
+ frameState.layerTransform &&
182
+ transform &&
183
+ equalTransforms(frameState.layerTransform, transform);
184
+ if (context && transformsAreEqual) {
178
185
  // Container of the previous layer renderer can be used.
179
186
  this.container = target;
180
187
  this.context = context;
@@ -211,6 +218,12 @@ class CanvasLayerRenderer extends LayerRenderer {
211
218
  ) {
212
219
  this.container.style.backgroundColor = backgroundColor;
213
220
  }
221
+ if (!transformsAreEqual) {
222
+ if (transform) {
223
+ this.context.canvas.style.transform = toTransformString(transform);
224
+ }
225
+ frameState.layerTransform = transform;
226
+ }
214
227
  }
215
228
 
216
229
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"TileLayer.d.ts","sourceRoot":"","sources":["TileLayer.js"],"names":[],"mappings":";AA8BA;;;;;;GAMG;AACH;IACE;;OAEG;IACH,uBAFW,SAAS,EA0DnB;IArDC;;;OAGG;IACH,eAFU,OAAO,CAEQ;IAEzB;;;OAGG;IACH,wBAA2B;IAE3B;;;OAGG;IACH,8BAFU,MAAM,CAEO;IAEvB;;;OAGG;IACH,8BAFU,OAAO,0BAA0B,EAAE,OAAO,CAEtB;IAE9B;;;OAGG;IACH,4BAFU,MAAM,CAEK;IAErB;;;OAGG;IACH,yBAFW,MAAM,OAAO,eAAe,EAAE,OAAO,CAAC,CAE1B;IAEvB;;;OAGG;IACH,kBAAsB;IAEtB;;;OAGG;IACH,qBAFU,OAAO,iBAAiB,EAAE,MAAM,CAEZ;IAE9B;;;OAGG;IACH,sBAA8C;IAGhD;;;;OAIG;IACH,+BAHW,OAAO,eAAe,EAAE,OAAO,GAC9B,OAAO,CAWlB;IAED;;;;;;OAMG;IACH,WANW,MAAM,KACN,MAAM,KACN,MAAM,cACN,OAAO,cAAc,EAAE,UAAU,GAC/B,OAAO,eAAe,EAAE,OAAO,CAkB3C;IAED;;;OAGG;IACH,eAHW,OAAO,gBAAgB,EAAE,KAAK,GAC7B,iBAAiB,CA4E5B;IAwBD;;;;;OAKG;IACH,wBAJW,OAAO,cAAc,EAAE,UAAU,UACjC,WAAW,GACV,WAAW,CAuUtB;IAED;;;;;;;;;OASG;IACH,oBATW,OAAO,oBAAoB,EAAE,OAAO,cACpC,OAAO,cAAc,EAAE,UAAU,KACjC,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,UACN,MAAM,cACN,OAAO,QAsCjB;IAED;;OAEG;IACH,YAFY,iBAAiB,CAK5B;IAED;;;;;OAKG;IACH,6BAJW,OAAO,oBAAoB,EAAE,OAAO,GACnC,iBAAiB,GAAC,gBAAgB,GAAC,gBAAgB,CAK9D;IAED;;;;OAIG;IACH,0CAJW,OAAO,cAAc,EAAE,UAAU,cACjC,OAAO,sBAAsB,EAAE,OAAO,QA0BhD;IAED;;;;;OAKG;IACH;YALmB,MAAM;gBAAU,MAAM,GAAE,OAAO;;mBACvC,OAAO,sBAAsB,EAAE,OAAO,QACtC,OAAO,eAAe,EAAE,OAAO,QAUzC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,wCAXW,OAAO,cAAc,EAAE,UAAU,cACjC,OAAO,sBAAsB,EAAE,OAAO,YACtC,OAAO,4BAA4B,EAAE,OAAO,cAC5C,MAAM,cACN,OAAO,0BAA0B,EAAE,OAAO,UAC1C,OAAO,iBAAiB,EAAE,MAAM,YAChC,MAAM,WACN,MAAM,yBACG,OAAO,eAAe,EAAE,OAAO,KAAE,IAAI,qBAmExD;CACF;gCA9vB+B,YAAY"}
1
+ {"version":3,"file":"TileLayer.d.ts","sourceRoot":"","sources":["TileLayer.js"],"names":[],"mappings":";AA6BA;;;;;;GAMG;AACH;IACE;;OAEG;IACH,uBAFW,SAAS,EA0DnB;IArDC;;;OAGG;IACH,eAFU,OAAO,CAEQ;IAEzB;;;OAGG;IACH,wBAA2B;IAE3B;;;OAGG;IACH,8BAFU,MAAM,CAEO;IAEvB;;;OAGG;IACH,8BAFU,OAAO,0BAA0B,EAAE,OAAO,CAEtB;IAE9B;;;OAGG;IACH,4BAFU,MAAM,CAEK;IAErB;;;OAGG;IACH,yBAFW,MAAM,OAAO,eAAe,EAAE,OAAO,CAAC,CAE1B;IAEvB;;;OAGG;IACH,kBAAsB;IAEtB;;;OAGG;IACH,qBAFU,OAAO,iBAAiB,EAAE,MAAM,CAEZ;IAE9B;;;OAGG;IACH,sBAA8C;IAGhD;;;;OAIG;IACH,+BAHW,OAAO,eAAe,EAAE,OAAO,GAC9B,OAAO,CAWlB;IAED;;;;;;OAMG;IACH,WANW,MAAM,KACN,MAAM,KACN,MAAM,cACN,OAAO,cAAc,EAAE,UAAU,GAC/B,OAAO,eAAe,EAAE,OAAO,CAkB3C;IAED;;;OAGG;IACH,eAHW,OAAO,gBAAgB,EAAE,KAAK,GAC7B,iBAAiB,CA4E5B;IAwBD;;;;;OAKG;IACH,wBAJW,OAAO,cAAc,EAAE,UAAU,UACjC,WAAW,GACV,WAAW,CAiUtB;IAED;;;;;;;;;OASG;IACH,oBATW,OAAO,oBAAoB,EAAE,OAAO,cACpC,OAAO,cAAc,EAAE,UAAU,KACjC,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,UACN,MAAM,cACN,OAAO,QAsCjB;IAED;;OAEG;IACH,YAFY,iBAAiB,CAK5B;IAED;;;;;OAKG;IACH,6BAJW,OAAO,oBAAoB,EAAE,OAAO,GACnC,iBAAiB,GAAC,gBAAgB,GAAC,gBAAgB,CAK9D;IAED;;;;OAIG;IACH,0CAJW,OAAO,cAAc,EAAE,UAAU,cACjC,OAAO,sBAAsB,EAAE,OAAO,QA0BhD;IAED;;;;;OAKG;IACH;YALmB,MAAM;gBAAU,MAAM,GAAE,OAAO;;mBACvC,OAAO,sBAAsB,EAAE,OAAO,QACtC,OAAO,eAAe,EAAE,OAAO,QAUzC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,wCAXW,OAAO,cAAc,EAAE,UAAU,cACjC,OAAO,sBAAsB,EAAE,OAAO,YACtC,OAAO,4BAA4B,EAAE,OAAO,cAC5C,MAAM,cACN,OAAO,0BAA0B,EAAE,OAAO,UAC1C,OAAO,iBAAiB,EAAE,MAAM,YAChC,MAAM,WACN,MAAM,yBACG,OAAO,eAAe,EAAE,OAAO,KAAE,IAAI,qBAmExD;CACF;gCAvvB+B,YAAY"}
@@ -10,7 +10,6 @@ import {
10
10
  apply as applyTransform,
11
11
  compose as composeTransform,
12
12
  makeInverse,
13
- toString as toTransformString,
14
13
  } from '../../transform.js';
15
14
  import {ascending} from '../../array.js';
16
15
  import {
@@ -380,9 +379,7 @@ class CanvasTileLayerRenderer extends CanvasLayerRenderer {
380
379
  -height / 2,
381
380
  );
382
381
 
383
- const canvasTransform = toTransformString(this.pixelTransform);
384
-
385
- this.useContainer(target, canvasTransform, this.getBackground(frameState));
382
+ this.useContainer(target, this.pixelTransform, frameState);
386
383
 
387
384
  const context = this.getRenderContext(frameState);
388
385
  const canvas = this.context.canvas;
@@ -566,10 +563,6 @@ class CanvasTileLayerRenderer extends CanvasLayerRenderer {
566
563
  }
567
564
  context.imageSmoothingEnabled = true;
568
565
 
569
- if (canvasTransform !== canvas.style.transform) {
570
- canvas.style.transform = canvasTransform;
571
- }
572
-
573
566
  return this.container;
574
567
  }
575
568
 
@@ -105,7 +105,7 @@ class CanvasVectorImageLayerRenderer extends CanvasImageLayerRenderer {
105
105
  !hints[ViewHint.INTERACTING] &&
106
106
  !isEmpty(renderedExtent)
107
107
  ) {
108
- vectorRenderer.useContainer(null, null);
108
+ vectorRenderer.useContainer(null, null, frameState);
109
109
  const context = vectorRenderer.context;
110
110
  const layerState = frameState.layerStatesArray[frameState.layerIndex];
111
111
  const imageLayerState = Object.assign({}, layerState, {opacity: 1});
@@ -87,7 +87,7 @@ declare class CanvasVectorLayerRenderer extends CanvasLayerRenderer<any> {
87
87
  * @private
88
88
  * @type {CanvasRenderingContext2D}
89
89
  */
90
- private compositionContext_;
90
+ private targetContext_;
91
91
  /**
92
92
  * @private
93
93
  * @type {number}
@@ -100,8 +100,14 @@ declare class CanvasVectorLayerRenderer extends CanvasLayerRenderer<any> {
100
100
  * `false` to only render non-declutterable items, `undefined` to render all.
101
101
  */
102
102
  renderWorlds(executorGroup: ExecutorGroup, frameState: import("../../Map.js").FrameState, declutterable?: boolean | undefined): void;
103
- setupCompositionContext_(): void;
104
- releaseCompositionContext_(): void;
103
+ /**
104
+ * @private
105
+ */
106
+ private setDrawContext_;
107
+ /**
108
+ * @private
109
+ */
110
+ private resetDrawContext_;
105
111
  /**
106
112
  * Render declutter items for this layer
107
113
  * @param {import("../../Map.js").FrameState} frameState Frame state.
@@ -1 +1 @@
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,QAS3C;IAmGD;;;;;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;gCAhyB6C,YAAY;0BAKnD,sCAAsC"}
1
+ {"version":3,"file":"VectorLayer.d.ts","sourceRoot":"","sources":["VectorLayer.js"],"names":[],"mappings":";AA4CA;;;;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,uBAA0B;IAE1B;;;OAGG;IACH,iBAAiB;IAGnB;;;;;OAKG;IACH,4BALW,aAAa,cACb,OAAO,cAAc,EAAE,UAAU,6CAyD3C;IAED;;OAEG;IACH,wBASC;IAED;;OAEG;IACH,0BAWC;IAED;;;OAGG;IACH,4BAFW,OAAO,cAAc,EAAE,UAAU,QAO3C;IAiGD;;;;;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;gCA5xB6C,YAAY;0BAKnD,sCAAsC"}
@@ -15,12 +15,7 @@ import {
15
15
  createHitDetectionImageData,
16
16
  hitDetect,
17
17
  } from '../../render/canvas/hitdetect.js';
18
- import {
19
- apply,
20
- makeInverse,
21
- makeScale,
22
- toString as transformToString,
23
- } from '../../transform.js';
18
+ import {apply, makeInverse, makeScale} from '../../transform.js';
24
19
  import {
25
20
  buffer,
26
21
  containsExtent,
@@ -153,7 +148,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
153
148
  * @private
154
149
  * @type {CanvasRenderingContext2D}
155
150
  */
156
- this.compositionContext_ = null;
151
+ this.targetContext_ = null;
157
152
 
158
153
  /**
159
154
  * @private
@@ -183,7 +178,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
183
178
  const snapToPixel = !(
184
179
  viewHints[ViewHint.ANIMATING] || viewHints[ViewHint.INTERACTING]
185
180
  );
186
- const context = this.compositionContext_;
181
+ const context = this.context;
187
182
  const width = Math.round(frameState.size[0] * pixelRatio);
188
183
  const height = Math.round(frameState.size[1] * pixelRatio);
189
184
 
@@ -223,28 +218,33 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
223
218
  } while (++world < endWorld);
224
219
  }
225
220
 
226
- setupCompositionContext_() {
221
+ /**
222
+ * @private
223
+ */
224
+ setDrawContext_() {
227
225
  if (this.opacity_ !== 1) {
228
- const compositionContext = createCanvasContext2D(
226
+ this.targetContext_ = this.context;
227
+ this.context = createCanvasContext2D(
229
228
  this.context.canvas.width,
230
229
  this.context.canvas.height,
231
230
  canvasPool,
232
231
  );
233
- this.compositionContext_ = compositionContext;
234
- } else {
235
- this.compositionContext_ = this.context;
236
232
  }
237
233
  }
238
234
 
239
- releaseCompositionContext_() {
235
+ /**
236
+ * @private
237
+ */
238
+ resetDrawContext_() {
240
239
  if (this.opacity_ !== 1) {
241
- const alpha = this.context.globalAlpha;
242
- this.context.globalAlpha = this.opacity_;
243
- this.context.drawImage(this.compositionContext_.canvas, 0, 0);
244
- this.context.globalAlpha = alpha;
245
- releaseCanvas(this.compositionContext_);
246
- canvasPool.push(this.compositionContext_.canvas);
247
- this.compositionContext_ = null;
240
+ const alpha = this.targetContext_.globalAlpha;
241
+ this.targetContext_.globalAlpha = this.opacity_;
242
+ this.targetContext_.drawImage(this.context.canvas, 0, 0);
243
+ this.targetContext_.globalAlpha = alpha;
244
+ releaseCanvas(this.context);
245
+ canvasPool.push(this.context.canvas);
246
+ this.context = this.targetContext_;
247
+ this.targetContext_ = null;
248
248
  }
249
249
  }
250
250
 
@@ -256,9 +256,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
256
256
  if (!this.replayGroup_ || !this.getLayer().getDeclutter()) {
257
257
  return;
258
258
  }
259
- this.setupCompositionContext_(); //FIXME Check if this works, or if we need to defer something.
260
259
  this.renderWorlds(this.replayGroup_, frameState, true);
261
- this.releaseCompositionContext_();
262
260
  }
263
261
 
264
262
  /**
@@ -270,6 +268,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
270
268
  return;
271
269
  }
272
270
  this.replayGroup_.renderDeferred();
271
+ this.resetDrawContext_();
273
272
  }
274
273
 
275
274
  /**
@@ -281,14 +280,14 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
281
280
  renderFrame(frameState, target) {
282
281
  const pixelRatio = frameState.pixelRatio;
283
282
  const layerState = frameState.layerStatesArray[frameState.layerIndex];
283
+ this.opacity_ = layerState.opacity;
284
284
 
285
285
  // set forward and inverse pixel transforms
286
286
  makeScale(this.pixelTransform, 1 / pixelRatio, 1 / pixelRatio);
287
287
  makeInverse(this.inversePixelTransform, this.pixelTransform);
288
288
 
289
- const canvasTransform = transformToString(this.pixelTransform);
289
+ this.useContainer(target, this.pixelTransform, frameState);
290
290
 
291
- this.useContainer(target, canvasTransform, this.getBackground(frameState));
292
291
  const context = this.context;
293
292
  const canvas = context.canvas;
294
293
 
@@ -309,21 +308,17 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
309
308
  if (canvas.width != width || canvas.height != height) {
310
309
  canvas.width = width;
311
310
  canvas.height = height;
312
- if (canvas.style.transform !== canvasTransform) {
313
- canvas.style.transform = canvasTransform;
314
- }
315
311
  } else if (!this.containerReused) {
316
312
  context.clearRect(0, 0, width, height);
317
313
  }
318
314
 
315
+ this.setDrawContext_();
316
+
319
317
  this.preRender(context, frameState);
320
318
 
321
319
  const viewState = frameState.viewState;
322
320
  const projection = viewState.projection;
323
321
 
324
- this.opacity_ = layerState.opacity;
325
- this.setupCompositionContext_();
326
-
327
322
  // clipped rendering if layer extent is set
328
323
  let clipped = false;
329
324
  if (render && layerState.extent && this.clipping) {
@@ -331,7 +326,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
331
326
  render = intersectsExtent(layerExtent, frameState.extent);
332
327
  clipped = render && !containsExtent(layerExtent, frameState.extent);
333
328
  if (clipped) {
334
- this.clipUnrotated(this.compositionContext_, frameState, layerExtent);
329
+ this.clipUnrotated(context, frameState, layerExtent);
335
330
  }
336
331
  }
337
332
 
@@ -344,17 +339,18 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
344
339
  }
345
340
 
346
341
  if (clipped) {
347
- this.compositionContext_.restore();
342
+ context.restore();
348
343
  }
349
344
 
350
- this.releaseCompositionContext_();
351
-
352
345
  this.postRender(context, frameState);
353
346
 
354
347
  if (this.renderedRotation_ !== viewState.rotation) {
355
348
  this.renderedRotation_ = viewState.rotation;
356
349
  this.hitDetectionImageData_ = null;
357
350
  }
351
+ if (!frameState.declutter) {
352
+ this.resetDrawContext_();
353
+ }
358
354
  return this.container;
359
355
  }
360
356
 
@@ -1 +1 @@
1
- {"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["vector.js"],"names":[],"mappings":"AAuCA;;;;GAIG;AACH,uCAJW,OAAO,eAAe,EAAE,WAAW,YACnC,OAAO,eAAe,EAAE,WAAW,GAClC,MAAM,CAIjB;AAED;;;;GAIG;AACH,gDAJW,MAAM,cACN,MAAM,GACL,MAAM,CAKjB;AAED;;;;GAIG;AACH,yCAJW,MAAM,cACN,MAAM,GACL,MAAM,CAIjB;AAwBD;;;;;;;;;;GAUG;AACH,2CAVW,OAAO,kCAAkC,EAAE,OAAO,WAClD,OAAO,eAAe,EAAE,WAAW,SACnC,OAAO,mBAAmB,EAAE,OAAO,oBACnC,MAAM,mBACG,OAAO,oBAAoB,EAAE,OAAO,KAAG,IAAI,gIAInD,OAAO,CA+ClB;;;;;;;;wCApIqB,OAAO,eAAe,EAAE,WAAW,QAAE,OAAO,mBAAmB,EAAE,OAAO,CAAC,OAAO,kBAAkB,EAAE,OAAO,CAAC,QAAE,OAAO,2BAA2B,EAAE,OAAO,KAAG,CAAC"}
1
+ {"version":3,"file":"vector.d.ts","sourceRoot":"","sources":["vector.js"],"names":[],"mappings":"AAuCA;;;;GAIG;AACH,uCAJW,OAAO,eAAe,EAAE,WAAW,YACnC,OAAO,eAAe,EAAE,WAAW,GAClC,MAAM,CAIjB;AAED;;;;GAIG;AACH,gDAJW,MAAM,cACN,MAAM,GACL,MAAM,CAKjB;AAED;;;;GAIG;AACH,yCAJW,MAAM,cACN,MAAM,GACL,MAAM,CAIjB;AAyBD;;;;;;;;;;GAUG;AACH,2CAVW,OAAO,kCAAkC,EAAE,OAAO,WAClD,OAAO,eAAe,EAAE,WAAW,SACnC,OAAO,mBAAmB,EAAE,OAAO,oBACnC,MAAM,mBACG,OAAO,oBAAoB,EAAE,OAAO,KAAG,IAAI,gIAInD,OAAO,CA+ClB;;;;;;;;wCArIqB,OAAO,eAAe,EAAE,WAAW,QAAE,OAAO,mBAAmB,EAAE,OAAO,CAAC,OAAO,kBAAkB,EAAE,OAAO,CAAC,QAAE,OAAO,2BAA2B,EAAE,OAAO,KAAG,CAAC"}
@@ -70,14 +70,15 @@ export function getTolerance(resolution, pixelRatio) {
70
70
  * @param {import("../geom/Circle.js").default} geometry Geometry.
71
71
  * @param {import("../style/Style.js").default} style Style.
72
72
  * @param {import("../Feature.js").default} feature Feature.
73
+ * @param {number} [index] Render order index.
73
74
  */
74
- function renderCircleGeometry(builderGroup, geometry, style, feature) {
75
+ function renderCircleGeometry(builderGroup, geometry, style, feature, index) {
75
76
  const fillStyle = style.getFill();
76
77
  const strokeStyle = style.getStroke();
77
78
  if (fillStyle || strokeStyle) {
78
79
  const circleReplay = builderGroup.getBuilder(style.getZIndex(), 'Circle');
79
80
  circleReplay.setFillStrokeStyle(fillStyle, strokeStyle);
80
- circleReplay.drawCircle(geometry, feature);
81
+ circleReplay.drawCircle(geometry, feature, index);
81
82
  }
82
83
  const textStyle = style.getText();
83
84
  if (textStyle && textStyle.getText()) {
@@ -1 +1 @@
1
- {"version":3,"file":"Raster.d.ts","sourceRoot":"","sources":["Raster.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Raster.d.ts","sourceRoot":"","sources":["Raster.js"],"names":[],"mappings":"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"}
package/source/Raster.js CHANGED
@@ -634,6 +634,7 @@ class RasterSource extends ImageSource {
634
634
  extent: null,
635
635
  index: 0,
636
636
  layerIndex: 0,
637
+ layerTransform: null,
637
638
  layerStatesArray: getLayerStatesArray(this.layers_),
638
639
  pixelRatio: 1,
639
640
  pixelToCoordinateTransform: createTransform(),
package/transform.d.ts CHANGED
@@ -9,6 +9,12 @@ export function create(): number[];
9
9
  * @return {!Transform} Transform.
10
10
  */
11
11
  export function reset(transform: number[]): number[];
12
+ /**
13
+ * @param {!Transform} transform1 Transform 1.
14
+ * @param {!Transform} transform2 Transform 2.
15
+ * @return {boolean} Transform 1 and 2 are pixel equal.
16
+ */
17
+ export function equals(transform1: number[], transform2: number[]): boolean;
12
18
  /**
13
19
  * Multiply the underlying matrices of two transforms and return the result in
14
20
  * the first transform.
@@ -1 +1 @@
1
- {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["transform.js"],"names":[],"mappings":"AA8BA;;;GAGG;AACH,mCAEC;AAED;;;;GAIG;AACH,qDAEC;AAED;;;;;;GAMG;AACH,+EAsBC;AAED;;;;;;;;;;GAUG;AACH,4CARW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,YAWhB;AAED;;;;;GAKG;AACH,mFAQC;AAED;;;;;;;;GAQG;AACH,uDAJW,OAAO,iBAAiB,EAAE,UAAU,GAAC,OAAO,YAAY,EAAE,KAAK,GAC9D,OAAO,iBAAiB,EAAE,UAAU,GAAC,OAAO,YAAY,EAAE,KAAK,CAS1E;AAED;;;;;GAKG;AACH,mDAHW,MAAM,YAOhB;AAED;;;;;;GAMG;AACH,8CAJW,MAAM,KACN,MAAM,YAKhB;AAED;;;;;;GAMG;AACH,+CAJW,MAAM,KACN,MAAM,YAKhB;AAED;;;;;;GAMG;AACH,mDAJW,MAAM,MACN,MAAM,YAKhB;AAED;;;;;;;;;;;;GAYG;AACH,kDATW,MAAM,OACN,MAAM,MACN,MAAM,MACN,MAAM,SACN,MAAM,OACN,MAAM,OACN,MAAM,YAahB;AAED;;;;;;;;;;;;;GAaG;AACH,yCAVW,MAAM,OACN,MAAM,MACN,MAAM,MACN,MAAM,SACN,MAAM,OACN,MAAM,OACN,MAAM,GACL,MAAM,CAKjB;AAED;;;;GAIG;AACH,mDAEC;AAED;;;;;;GAMG;AACH,0EAmBC;AAED;;;;GAIG;AACH,4CAFY,MAAM,CAIjB;AAOD;;;;;GAKG;AACH,yCAFY,MAAM,CAajB;;;;;wBAxRa,MAAM,MAAM,CAAC"}
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["transform.js"],"names":[],"mappings":"AA8BA;;;GAGG;AACH,mCAEC;AAED;;;;GAIG;AACH,qDAEC;AAED;;;;GAIG;AACH,oEAFY,OAAO,CAelB;AAED;;;;;;GAMG;AACH,+EAsBC;AAED;;;;;;;;;;GAUG;AACH,4CARW,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,YAWhB;AAED;;;;;GAKG;AACH,mFAQC;AAED;;;;;;;;GAQG;AACH,uDAJW,OAAO,iBAAiB,EAAE,UAAU,GAAC,OAAO,YAAY,EAAE,KAAK,GAC9D,OAAO,iBAAiB,EAAE,UAAU,GAAC,OAAO,YAAY,EAAE,KAAK,CAS1E;AAED;;;;;GAKG;AACH,mDAHW,MAAM,YAOhB;AAED;;;;;;GAMG;AACH,8CAJW,MAAM,KACN,MAAM,YAKhB;AAED;;;;;;GAMG;AACH,+CAJW,MAAM,KACN,MAAM,YAKhB;AAED;;;;;;GAMG;AACH,mDAJW,MAAM,MACN,MAAM,YAKhB;AAED;;;;;;;;;;;;GAYG;AACH,kDATW,MAAM,OACN,MAAM,MACN,MAAM,MACN,MAAM,SACN,MAAM,OACN,MAAM,OACN,MAAM,YAahB;AAED;;;;;;;;;;;;;GAaG;AACH,yCAVW,MAAM,OACN,MAAM,MACN,MAAM,MACN,MAAM,SACN,MAAM,OACN,MAAM,OACN,MAAM,GACL,MAAM,CAKjB;AAED;;;;GAIG;AACH,mDAEC;AAED;;;;;;GAMG;AACH,0EAmBC;AAED;;;;GAIG;AACH,4CAFY,MAAM,CAIjB;AAED;;;;;GAKG;AACH,yCAFY,MAAM,CAIjB;;;;;wBA9Ra,MAAM,MAAM,CAAC"}
package/transform.js CHANGED
@@ -45,6 +45,26 @@ export function reset(transform) {
45
45
  return set(transform, 1, 0, 0, 1, 0, 0);
46
46
  }
47
47
 
48
+ /**
49
+ * @param {!Transform} transform1 Transform 1.
50
+ * @param {!Transform} transform2 Transform 2.
51
+ * @return {boolean} Transform 1 and 2 are pixel equal.
52
+ */
53
+ export function equals(transform1, transform2) {
54
+ if (transform1 === transform2) {
55
+ return true;
56
+ }
57
+ const tolerance = 1e-6;
58
+ return (
59
+ Math.abs(transform1[0] - transform2[0]) < tolerance &&
60
+ Math.abs(transform1[1] - transform2[1]) < tolerance &&
61
+ Math.abs(transform1[2] - transform2[2]) < tolerance &&
62
+ Math.abs(transform1[3] - transform2[3]) < tolerance &&
63
+ Math.abs(transform1[4] - transform2[4]) < tolerance &&
64
+ Math.abs(transform1[5] - transform2[5]) < tolerance
65
+ );
66
+ }
67
+
48
68
  /**
49
69
  * Multiply the underlying matrices of two transforms and return the result in
50
70
  * the first transform.
@@ -264,11 +284,6 @@ export function determinant(mat) {
264
284
  return mat[0] * mat[3] - mat[1] * mat[2];
265
285
  }
266
286
 
267
- /**
268
- * @type {Array}
269
- */
270
- const matrixPrecision = [1e6, 1e6, 1e6, 1e6, 2, 2];
271
-
272
287
  /**
273
288
  * A rounded string version of the transform. This can be used
274
289
  * for CSS transforms.
@@ -276,14 +291,5 @@ const matrixPrecision = [1e6, 1e6, 1e6, 1e6, 2, 2];
276
291
  * @return {string} The transform as a string.
277
292
  */
278
293
  export function toString(mat) {
279
- const transformString =
280
- 'matrix(' +
281
- mat
282
- .map(
283
- (value, i) =>
284
- Math.round(value * matrixPrecision[i]) / matrixPrecision[i],
285
- )
286
- .join(', ') +
287
- ')';
288
- return transformString;
294
+ return 'matrix(' + mat.join(', ') + ')';
289
295
  }
package/util.js CHANGED
@@ -33,4 +33,4 @@ export function getUid(obj) {
33
33
  * OpenLayers version.
34
34
  * @type {string}
35
35
  */
36
- export const VERSION = '9.0.1-dev.1710242622736';
36
+ export const VERSION = '9.0.1-dev.1710502266295';