ol 10.2.2-dev.1729261410863 → 10.2.2-dev.1729531112834

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.
@@ -11,6 +11,7 @@
11
11
  * @param {string} font The font.
12
12
  * @param {Object<string, number>} cache A cache of measured widths.
13
13
  * @param {number} rotation Rotation to apply to the flatCoordinates to determine whether text needs to be reversed.
14
+ * @param {boolean} keepUpright Whether the text needs to be kept upright
14
15
  * @return {Array<Array<*>>|null} The result array (or null if `maxAngle` was
15
16
  * exceeded). Entries of the array are x, y, anchorX, angle, chunk.
16
17
  */
@@ -18,5 +19,5 @@ export function drawTextOnPath(flatCoordinates: Array<number>, offset: number, e
18
19
  [x: string]: number;
19
20
  }) => number, font: string, cache: {
20
21
  [x: string]: number;
21
- }, rotation: number): Array<Array<any>> | null;
22
+ }, rotation: number, keepUpright?: boolean): Array<Array<any>> | null;
22
23
  //# sourceMappingURL=textpath.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"textpath.d.ts","sourceRoot":"","sources":["textpath.js"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;GAeG;AACH,gDAfW,KAAK,CAAC,MAAM,CAAC,UACb,MAAM,OACN,MAAM,UACN,MAAM,QACN,MAAM,UACN,MAAM,YACN,MAAM,SACN,MAAM,4BACN,CAAS,IAAM,EAAN,MAAM,EAAE,IAAM,EAAN,MAAM,EAAE,IAAsB,EAAtB;QAAO,MAAM,GAAE,MAAM;CAAC,KAAE,MAAM,QACvD,MAAM,SACN;QAAO,MAAM,GAAE,MAAM;CAAC,YACtB,MAAM,GACL,KAAK,CAAC,KAAK,CAAC,GAAC,CAAC,CAAC,GAAC,IAAI,CAsI/B"}
1
+ {"version":3,"file":"textpath.d.ts","sourceRoot":"","sources":["textpath.js"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;GAgBG;AACH,gDAhBW,KAAK,CAAC,MAAM,CAAC,UACb,MAAM,OACN,MAAM,UACN,MAAM,QACN,MAAM,UACN,MAAM,YACN,MAAM,SACN,MAAM,4BACN,CAAS,IAAM,EAAN,MAAM,EAAE,IAAM,EAAN,MAAM,EAAE,IAAsB,EAAtB;QAAO,MAAM,GAAE,MAAM;CAAC,KAAE,MAAM,QACvD,MAAM,SACN;QAAO,MAAM,GAAE,MAAM;CAAC,YACtB,MAAM,gBACN,OAAO,GACN,KAAK,CAAC,KAAK,CAAC,GAAC,CAAC,CAAC,GAAC,IAAI,CAyI/B"}
@@ -17,6 +17,7 @@ import {rotate} from './transform.js';
17
17
  * @param {string} font The font.
18
18
  * @param {Object<string, number>} cache A cache of measured widths.
19
19
  * @param {number} rotation Rotation to apply to the flatCoordinates to determine whether text needs to be reversed.
20
+ * @param {boolean} keepUpright Whether the text needs to be kept upright
20
21
  * @return {Array<Array<*>>|null} The result array (or null if `maxAngle` was
21
22
  * exceeded). Entries of the array are x, y, anchorX, angle, chunk.
22
23
  */
@@ -33,6 +34,7 @@ export function drawTextOnPath(
33
34
  font,
34
35
  cache,
35
36
  rotation,
37
+ keepUpright = true,
36
38
  ) {
37
39
  let x2 = flatCoordinates[offset];
38
40
  let y2 = flatCoordinates[offset + 1];
@@ -69,14 +71,16 @@ export function drawTextOnPath(
69
71
  const endX = lerp(x1, x2, interpolate);
70
72
  const endY = lerp(y1, y2, interpolate);
71
73
 
72
- // Keep text upright
73
- let reverse;
74
- if (rotation) {
75
- const flat = [beginX, beginY, endX, endY];
76
- rotate(flat, 0, 4, 2, rotation, flat, flat);
77
- reverse = flat[0] > flat[2];
78
- } else {
79
- reverse = beginX > endX;
74
+ // Keep text upright if the option is selected
75
+ let reverse = false;
76
+ if (keepUpright) {
77
+ if (rotation) {
78
+ const flat = [beginX, beginY, endX, endY];
79
+ rotate(flat, 0, 4, 2, rotation, flat, flat);
80
+ reverse = flat[0] > flat[2];
81
+ } else {
82
+ reverse = beginX > endX;
83
+ }
80
84
  }
81
85
 
82
86
  const PI = Math.PI;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ol",
3
- "version": "10.2.2-dev.1729261410863",
3
+ "version": "10.2.2-dev.1729531112834",
4
4
  "description": "OpenLayers mapping library",
5
5
  "keywords": [
6
6
  "map",
@@ -1 +1 @@
1
- {"version":3,"file":"Executor.d.ts","sourceRoot":"","sources":["Executor.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Executor.d.ts","sourceRoot":"","sources":["Executor.js"],"names":[],"mappings":"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"}
@@ -1001,6 +1001,7 @@ class Executor {
1001
1001
  ];
1002
1002
  declutterMode = instruction[14] || 'declutter';
1003
1003
 
1004
+ const textKeepUpright = /** @type {boolean} */ (instruction[15]);
1004
1005
  const textState = this.textStates[textKey];
1005
1006
  const font = textState.font;
1006
1007
  const textScale = [
@@ -1037,6 +1038,7 @@ class Executor {
1037
1038
  font,
1038
1039
  cachedWidths,
1039
1040
  viewRotationFromTransform ? 0 : this.viewRotation_,
1041
+ textKeepUpright,
1040
1042
  );
1041
1043
  drawChars: if (parts) {
1042
1044
  /** @type {Array<ReplayImageOrLabelArgs>} */
@@ -40,6 +40,11 @@ declare class CanvasTextBuilder extends CanvasBuilder {
40
40
  * @type {boolean|undefined}
41
41
  */
42
42
  private textRotateWithView_;
43
+ /**
44
+ * @private
45
+ * @type {boolean|undefined}
46
+ */
47
+ private textKeepUpright_;
43
48
  /**
44
49
  * @private
45
50
  * @type {number}
@@ -1 +1 @@
1
- {"version":3,"file":"TextBuilder.d.ts","sourceRoot":"","sources":["TextBuilder.js"],"names":[],"mappings":"AAyBA;;;GAGG;AACH,yBAFU;IAAC,IAAI,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC;IAAC,GAAG,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE,GAAG,CAAC;IAAC,UAAU,EAAE,GAAG,CAAC;IAAC,WAAW,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAC,CAYzH;;AAEF;IAUI;;;OAGG;IACH,gBAAmB;IAEnB;;;OAGG;IACH,cAAe;IAEf;;;OAGG;IACH,qBAAqB;IAErB;;;OAGG;IACH,qBAAqB;IAErB;;;OAGG;IACH,4BAAoC;IAEpC;;;OAGG;IACH,sBAAsB;IAEtB;;;OAGG;IACH,uBAA0B;IAE1B;;OAEG;IACH,YAFU;YAAQ,MAAM,GAAE,OAAO,cAAc,EAAE,SAAS;KAAC,CAEvC;IAGpB;;;OAGG;IACH,yBAA4B;IAE5B;;OAEG;IACH,cAFU;YAAQ,MAAM,GAAE,OAAO,cAAc,EAAE,WAAW;KAAC,CAEvC;IAEtB;;;OAGG;IACH,mBAAsE;IAEtE;;OAEG;IACH,YAFU;YAAQ,MAAM,GAAE,OAAO,cAAc,EAAE,SAAS;KAAC,CAEvC;IAEpB;;;OAGG;IACH,iBAAkB;IAElB;;;OAGG;IACH,iBAAkB;IAElB;;;OAGG;IACH,mBAAoB;IAEpB;;;OAGG;IACH,uBAA+B;IAE/B;;;;OAIG;IACH,gCAAwC;IAqT1C;;OAEG;IACH,wBAqCC;IAED;;;;OAIG;IACH,mBAoDC;IAED;;;;OAIG;IACH,iCAJW,OAAO,qBAAqB,EAAE,OAAO,0BA+G/C;CACF;0BA9pByB,cAAc"}
1
+ {"version":3,"file":"TextBuilder.d.ts","sourceRoot":"","sources":["TextBuilder.js"],"names":[],"mappings":"AAyBA;;;GAGG;AACH,yBAFU;IAAC,IAAI,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC;IAAC,GAAG,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC;IAAC,OAAO,EAAE,GAAG,CAAC;IAAC,UAAU,EAAE,GAAG,CAAC;IAAC,WAAW,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAC,CAYzH;;AAEF;IAUI;;;OAGG;IACH,gBAAmB;IAEnB;;;OAGG;IACH,cAAe;IAEf;;;OAGG;IACH,qBAAqB;IAErB;;;OAGG;IACH,qBAAqB;IAErB;;;OAGG;IACH,4BAAoC;IAEpC;;;OAGG;IACH,yBAAiC;IAEjC;;;OAGG;IACH,sBAAsB;IAEtB;;;OAGG;IACH,uBAA0B;IAE1B;;OAEG;IACH,YAFU;YAAQ,MAAM,GAAE,OAAO,cAAc,EAAE,SAAS;KAAC,CAEvC;IAGpB;;;OAGG;IACH,yBAA4B;IAE5B;;OAEG;IACH,cAFU;YAAQ,MAAM,GAAE,OAAO,cAAc,EAAE,WAAW;KAAC,CAEvC;IAEtB;;;OAGG;IACH,mBAAsE;IAEtE;;OAEG;IACH,YAFU;YAAQ,MAAM,GAAE,OAAO,cAAc,EAAE,SAAS;KAAC,CAEvC;IAEpB;;;OAGG;IACH,iBAAkB;IAElB;;;OAGG;IACH,iBAAkB;IAElB;;;OAGG;IACH,mBAAoB;IAEpB;;;OAGG;IACH,uBAA+B;IAE/B;;;;OAIG;IACH,gCAAwC;IAqT1C;;OAEG;IACH,wBAqCC;IAED;;;;OAIG;IACH,mBAsDC;IAED;;;;OAIG;IACH,iCAJW,OAAO,qBAAqB,EAAE,OAAO,0BAkH/C;CACF;0BAzqByB,cAAc"}
@@ -79,6 +79,12 @@ class CanvasTextBuilder extends CanvasBuilder {
79
79
  */
80
80
  this.textRotateWithView_ = undefined;
81
81
 
82
+ /**
83
+ * @private
84
+ * @type {boolean|undefined}
85
+ */
86
+ this.textKeepUpright_ = undefined;
87
+
82
88
  /**
83
89
  * @private
84
90
  * @type {number}
@@ -538,6 +544,7 @@ class CanvasTextBuilder extends CanvasBuilder {
538
544
  textKey,
539
545
  1,
540
546
  this.declutterMode_,
547
+ this.textKeepUpright_,
541
548
  ]);
542
549
  this.hitDetectionInstructions.push([
543
550
  CanvasInstruction.DRAW_CHARS,
@@ -555,6 +562,7 @@ class CanvasTextBuilder extends CanvasBuilder {
555
562
  textKey,
556
563
  1 / pixelRatio,
557
564
  this.declutterMode_,
565
+ this.textKeepUpright_,
558
566
  ]);
559
567
  }
560
568
 
@@ -632,12 +640,15 @@ class CanvasTextBuilder extends CanvasBuilder {
632
640
  const textOffsetX = textStyle.getOffsetX();
633
641
  const textOffsetY = textStyle.getOffsetY();
634
642
  const textRotateWithView = textStyle.getRotateWithView();
643
+ const textKeepUpright = textStyle.getKeepUpright();
635
644
  const textRotation = textStyle.getRotation();
636
645
  this.text_ = textStyle.getText() || '';
637
646
  this.textOffsetX_ = textOffsetX === undefined ? 0 : textOffsetX;
638
647
  this.textOffsetY_ = textOffsetY === undefined ? 0 : textOffsetY;
639
648
  this.textRotateWithView_ =
640
649
  textRotateWithView === undefined ? false : textRotateWithView;
650
+ this.textKeepUpright_ =
651
+ textKeepUpright === undefined ? true : textKeepUpright;
641
652
  this.textRotation_ = textRotation === undefined ? 0 : textRotation;
642
653
 
643
654
  this.strokeKey_ = strokeState
package/style/Text.d.ts CHANGED
@@ -48,6 +48,10 @@ export type Options = {
48
48
  * Whether to rotate the text with the view.
49
49
  */
50
50
  rotateWithView?: boolean | undefined;
51
+ /**
52
+ * Whether the text can be rotated 180° to prevent being rendered upside down.
53
+ */
54
+ keepUpright?: boolean | undefined;
51
55
  /**
52
56
  * Rotation in radians (positive rotation clockwise).
53
57
  */
@@ -121,6 +125,7 @@ export type Options = {
121
125
  * the distance between two text anchors in pixels. Only available when `placement` is set to `'line'`. Overrides 'textAlign'.
122
126
  * @property {number|import("../size.js").Size} [scale] Scale.
123
127
  * @property {boolean} [rotateWithView=false] Whether to rotate the text with the view.
128
+ * @property {boolean} [keepUpright=true] Whether the text can be rotated 180° to prevent being rendered upside down.
124
129
  * @property {number} [rotation=0] Rotation in radians (positive rotation clockwise).
125
130
  * @property {string|Array<string>} [text] Text content or rich text content. For plain text provide a string, which can
126
131
  * contain line breaks (`\n`). For rich text provide an array of text/font tuples. A tuple consists of the text to
@@ -171,6 +176,11 @@ declare class Text {
171
176
  * @type {boolean|undefined}
172
177
  */
173
178
  private rotateWithView_;
179
+ /**
180
+ * @private
181
+ * @type {boolean|undefined}
182
+ */
183
+ private keepUpright_;
174
184
  /**
175
185
  * @private
176
186
  * @type {number|import("../size.js").Size|undefined}
@@ -321,6 +331,12 @@ declare class Text {
321
331
  * @api
322
332
  */
323
333
  getRotateWithView(): boolean | undefined;
334
+ /**
335
+ * Determine whether the text can be rendered upside down.
336
+ * @return {boolean|undefined} Keep text upright.
337
+ * @api
338
+ */
339
+ getKeepUpright(): boolean | undefined;
324
340
  /**
325
341
  * Get the text rotation.
326
342
  * @return {number|undefined} Rotation.
@@ -447,6 +463,13 @@ declare class Text {
447
463
  * @api
448
464
  */
449
465
  setRotateWithView(rotateWithView: boolean): void;
466
+ /**
467
+ * Set whether the text can be rendered upside down.
468
+ *
469
+ * @param {boolean} keepUpright Keep text upright.
470
+ * @api
471
+ */
472
+ setKeepUpright(keepUpright: boolean): void;
450
473
  /**
451
474
  * Set the fill.
452
475
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["Text.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["Text.js"],"names":[],"mappings":"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"}
package/style/Text.js CHANGED
@@ -39,6 +39,7 @@ const DEFAULT_FILL_COLOR = '#333';
39
39
  * the distance between two text anchors in pixels. Only available when `placement` is set to `'line'`. Overrides 'textAlign'.
40
40
  * @property {number|import("../size.js").Size} [scale] Scale.
41
41
  * @property {boolean} [rotateWithView=false] Whether to rotate the text with the view.
42
+ * @property {boolean} [keepUpright=true] Whether the text can be rotated 180° to prevent being rendered upside down.
42
43
  * @property {number} [rotation=0] Rotation in radians (positive rotation clockwise).
43
44
  * @property {string|Array<string>} [text] Text content or rich text content. For plain text provide a string, which can
44
45
  * contain line breaks (`\n`). For rich text provide an array of text/font tuples. A tuple consists of the text to
@@ -95,6 +96,12 @@ class Text {
95
96
  */
96
97
  this.rotateWithView_ = options.rotateWithView;
97
98
 
99
+ /**
100
+ * @private
101
+ * @type {boolean|undefined}
102
+ */
103
+ this.keepUpright_ = options.keepUpright;
104
+
98
105
  /**
99
106
  * @private
100
107
  * @type {number|import("../size.js").Size|undefined}
@@ -228,6 +235,7 @@ class Text {
228
235
  overflow: this.getOverflow(),
229
236
  rotation: this.getRotation(),
230
237
  rotateWithView: this.getRotateWithView(),
238
+ keepUpright: this.getKeepUpright(),
231
239
  scale: Array.isArray(scale) ? scale.slice() : scale,
232
240
  text: this.getText(),
233
241
  textAlign: this.getTextAlign(),
@@ -329,6 +337,15 @@ class Text {
329
337
  return this.rotateWithView_;
330
338
  }
331
339
 
340
+ /**
341
+ * Determine whether the text can be rendered upside down.
342
+ * @return {boolean|undefined} Keep text upright.
343
+ * @api
344
+ */
345
+ getKeepUpright() {
346
+ return this.keepUpright_;
347
+ }
348
+
332
349
  /**
333
350
  * Get the text rotation.
334
351
  * @return {number|undefined} Rotation.
@@ -515,6 +532,16 @@ class Text {
515
532
  this.rotateWithView_ = rotateWithView;
516
533
  }
517
534
 
535
+ /**
536
+ * Set whether the text can be rendered upside down.
537
+ *
538
+ * @param {boolean} keepUpright Keep text upright.
539
+ * @api
540
+ */
541
+ setKeepUpright(keepUpright) {
542
+ this.keepUpright_ = keepUpright;
543
+ }
544
+
518
545
  /**
519
546
  * Set the fill.
520
547
  *
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 = '10.2.2-dev.1729261410863';
36
+ export const VERSION = '10.2.2-dev.1729531112834';