ol 10.2.2-dev.1730916385053 → 10.2.2-dev.1730987055849
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/dist/ol.js +1 -1
- package/dist/ol.js.map +1 -1
- package/package.json +1 -1
- package/style/Fill.d.ts +4 -0
- package/style/Fill.d.ts.map +1 -1
- package/style/Fill.js +17 -0
- package/style/IconImageCache.d.ts +2 -2
- package/style/IconImageCache.d.ts.map +1 -1
- package/style/IconImageCache.js +3 -3
- package/style/RegularShape.d.ts +0 -5
- package/style/RegularShape.d.ts.map +1 -1
- package/style/RegularShape.js +15 -9
- package/util.js +1 -1
package/package.json
CHANGED
package/style/Fill.d.ts
CHANGED
|
@@ -56,6 +56,10 @@ declare class Fill {
|
|
|
56
56
|
* @api
|
|
57
57
|
*/
|
|
58
58
|
setColor(color: import("../color.js").Color | import("../colorlike.js").ColorLike | import("../colorlike.js").PatternDescriptor | null): void;
|
|
59
|
+
/**
|
|
60
|
+
* @return {string} Key of the fill for cache lookup.
|
|
61
|
+
*/
|
|
62
|
+
getKey(): string;
|
|
59
63
|
/**
|
|
60
64
|
* @return {boolean} The fill style is loading an image pattern.
|
|
61
65
|
*/
|
package/style/Fill.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fill.d.ts","sourceRoot":"","sources":["Fill.js"],"names":[],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Fill.d.ts","sourceRoot":"","sources":["Fill.js"],"names":[],"mappings":";;;;;;;;;;;AASA;;;;;;;GAOG;AAEH;;;;GAIG;AACH;IACE;;OAEG;IACH,2CAiBC;IAdC;;;OAGG;IACH,sBAAyB;IAEzB;;;OAGG;IACH,eAAkB;IAMpB;;;;OAIG;IACH,SAHY,IAAI,CAQf;IAED;;;;OAIG;IACH,YAHY,OAAO,aAAa,EAAE,KAAK,GAAC,OAAO,iBAAiB,EAAE,SAAS,GAAC,OAAO,iBAAiB,EAAE,iBAAiB,GAAC,IAAI,CAK3H;IAED;;;;;OAKG;IACH,gBAHW,OAAO,aAAa,EAAE,KAAK,GAAC,OAAO,iBAAiB,EAAE,SAAS,GAAC,OAAO,iBAAiB,EAAE,iBAAiB,GAAC,IAAI,QAwB1H;IAED;;OAEG;IACH,UAFY,MAAM,CAYjB;IAED;;OAEG;IACH,WAFY,OAAO,CAIlB;IAED;;OAEG;IACH,SAFY,OAAO,CAAC,IAAI,CAAC,CAIxB;CACF"}
|
package/style/Fill.js
CHANGED
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
5
|
import ImageState from '../ImageState.js';
|
|
6
|
+
import {asArray} from '../color.js';
|
|
6
7
|
import {get as getIconImage} from './IconImage.js';
|
|
8
|
+
import {getUid} from '../util.js';
|
|
7
9
|
|
|
8
10
|
/**
|
|
9
11
|
* @typedef {Object} Options
|
|
@@ -92,6 +94,21 @@ class Fill {
|
|
|
92
94
|
this.color_ = color;
|
|
93
95
|
}
|
|
94
96
|
|
|
97
|
+
/**
|
|
98
|
+
* @return {string} Key of the fill for cache lookup.
|
|
99
|
+
*/
|
|
100
|
+
getKey() {
|
|
101
|
+
const fill = this.getColor();
|
|
102
|
+
if (!fill) {
|
|
103
|
+
return '';
|
|
104
|
+
}
|
|
105
|
+
return fill instanceof CanvasPattern || fill instanceof CanvasGradient
|
|
106
|
+
? getUid(fill)
|
|
107
|
+
: typeof fill === 'object' && 'src' in fill
|
|
108
|
+
? fill.src + ':' + fill.offset
|
|
109
|
+
: asArray(fill).toString();
|
|
110
|
+
}
|
|
111
|
+
|
|
95
112
|
/**
|
|
96
113
|
* @return {boolean} The fill style is loading an image pattern.
|
|
97
114
|
*/
|
|
@@ -72,8 +72,8 @@ declare class IconImageCache {
|
|
|
72
72
|
*/
|
|
73
73
|
set(src: string, crossOrigin: string | null, color: import("../color.js").Color | string | null, iconImage: import("./IconImage.js").default | null, pattern?: boolean | undefined): void;
|
|
74
74
|
/**
|
|
75
|
-
* Set the cache size of the icon cache. Default is `
|
|
76
|
-
* your map uses more than
|
|
75
|
+
* Set the cache size of the icon cache. Default is `1024`. Change this value when
|
|
76
|
+
* your map uses more than 1024 different icon images and you are not caching icon
|
|
77
77
|
* styles on the application level.
|
|
78
78
|
* @param {number} maxCacheSize Cache max size.
|
|
79
79
|
* @api
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconImageCache.d.ts","sourceRoot":"","sources":["IconImageCache.js"],"names":[],"mappings":"AA4IA;;;;;GAKG;AACH,iCALW,MAAM,eACL,MAAM,OAAA,SACP,OAAO,aAAa,EAAE,KAAK,GAAC,MAAM,GAAC,IAAI,GACtC,MAAM,CAKjB;;AAID;;;;GAIG;AACH,oCAA2C;AAvJ3C;;;GAGG;AACH;IAEI;;;OAGG;IACH,eAAgB;IAEhB;;;OAGG;IACH,sBAAuB;IAEvB;;;OAGG;IACH,mBAAmB;IAEnB;;;OAGG;IACH,
|
|
1
|
+
{"version":3,"file":"IconImageCache.d.ts","sourceRoot":"","sources":["IconImageCache.js"],"names":[],"mappings":"AA4IA;;;;;GAKG;AACH,iCALW,MAAM,eACL,MAAM,OAAA,SACP,OAAO,aAAa,EAAE,KAAK,GAAC,MAAM,GAAC,IAAI,GACtC,MAAM,CAKjB;;AAID;;;;GAIG;AACH,oCAA2C;AAvJ3C;;;GAGG;AACH;IAEI;;;OAGG;IACH,eAAgB;IAEhB;;;OAGG;IACH,sBAAuB;IAEvB;;;OAGG;IACH,mBAAmB;IAEnB;;;OAGG;IACH,sBAAyB;IAG3B;;OAEG;IACH,cAIC;IAED;;OAEG;IACH,kBAFY,OAAO,CAIlB;IAED;;OAEG;IACH,eAYC;IAED;;;;;OAKG;IACH,SALW,MAAM,eACL,MAAM,OAAA,SACP,OAAO,aAAa,EAAE,KAAK,GAAC,MAAM,GAAC,IAAI,GACtC,OAAO,gBAAgB,EAAE,OAAO,CAK3C;IAED;;;;;OAKG;IACH,gBALW,MAAM,eACL,MAAM,OAAA,SACP,OAAO,aAAa,EAAE,KAAK,GAAC,MAAM,GAAC,IAAI,GACtC,aAAa,CAKxB;IAED;;;;;;OAMG;IACH,SANW,MAAM,eACL,MAAM,OAAA,SACP,OAAO,aAAa,EAAE,KAAK,GAAC,MAAM,GAAC,IAAI,aACvC,OAAO,gBAAgB,EAAE,OAAO,GAAC,IAAI,uCA4B/C;IAED;;;;;;OAMG;IACH,sBAHW,MAAM,QAMhB;CACF"}
|
package/style/IconImageCache.js
CHANGED
|
@@ -33,7 +33,7 @@ class IconImageCache {
|
|
|
33
33
|
* @type {number}
|
|
34
34
|
* @private
|
|
35
35
|
*/
|
|
36
|
-
this.maxCacheSize_ =
|
|
36
|
+
this.maxCacheSize_ = 1024;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
/**
|
|
@@ -126,8 +126,8 @@ class IconImageCache {
|
|
|
126
126
|
}
|
|
127
127
|
|
|
128
128
|
/**
|
|
129
|
-
* Set the cache size of the icon cache. Default is `
|
|
130
|
-
* your map uses more than
|
|
129
|
+
* Set the cache size of the icon cache. Default is `1024`. Change this value when
|
|
130
|
+
* your map uses more than 1024 different icon images and you are not caching icon
|
|
131
131
|
* styles on the application level.
|
|
132
132
|
* @param {number} maxCacheSize Cache max size.
|
|
133
133
|
* @api
|
package/style/RegularShape.d.ts
CHANGED
|
@@ -126,11 +126,6 @@ declare class RegularShape extends ImageStyle {
|
|
|
126
126
|
* @param {Options} options Options.
|
|
127
127
|
*/
|
|
128
128
|
constructor(options: Options);
|
|
129
|
-
/**
|
|
130
|
-
* @private
|
|
131
|
-
* @type {Object<number, HTMLCanvasElement>}
|
|
132
|
-
*/
|
|
133
|
-
private canvases_;
|
|
134
129
|
/**
|
|
135
130
|
* @private
|
|
136
131
|
* @type {HTMLCanvasElement|null}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegularShape.d.ts","sourceRoot":"","sources":["RegularShape.js"],"names":[],"mappings":";;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"RegularShape.d.ts","sourceRoot":"","sources":["RegularShape.js"],"names":[],"mappings":";;;;;;;;;;;;;YAwBc,MAAM;;;;YAEN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAeN,OAAO,iBAAiB,EAAE,SAAS,GAAC,SAAS;;;;iBAC7C,MAAM;;;;UACN,MAAM;;;;aACN,aAAa;;;;cACb,KAAK,CAAC,MAAM,CAAC,GAAC,IAAI;;;;oBAClB,MAAM;;;;cACN,cAAc;;;;gBACd,MAAM;;AA5BpB;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;;;GAUG;AAEH;;;;;;GAMG;AACH;IACE;;OAEG;IACH,qBAFW,OAAO,EAqFjB;IAvEC;;;OAGG;IACH,4BAA+B;IAE/B;;;OAGG;IACH,cAA6D;IAE7D;;;OAGG;IACH,gBAAqB;IAErB;;;OAGG;IACH,gBAA6B;IAE7B;;;OAGG;IACH,kBAFU,MAAM,CAEY;IAE5B;;;OAGG;IACH,iBAA+B;IAE/B;;;OAGG;IACH,eAA6D;IAE7D;;;OAGG;IACH,gBAAmE;IAEnE;;;OAGG;IACH,cAAU;IAEV;;;OAGG;IACH,uBAAmB;IAEnB;;OAEG;IACH,oBAGuB;IAOzB;;;;;OAKG;IACH,kBAJY,YAAY,CAqBvB;IAqBD;;;;OAIG;IACH,YAHY,MAAM,CAKjB;IAED;;;;OAIG;IACH,WAHY,OAAO,WAAW,EAAE,OAAO,GAAC,IAAI,CAK3C;IAED;;;;OAIG;IACH,cAHW,OAAO,WAAW,EAAE,OAAO,GAAC,IAAI,QAM1C;IAED;;;OAGG;IACH,iCAHY,iBAAiB,CAU5B;IAED;;;;;;OAMG;IACH,8BALW,MAAM,GACL,iBAAiB,CA6B5B;IAsCD;;;;OAIG;IACH,aAHY,MAAM,CAKjB;IAED;;;;OAIG;IACH,aAHY,MAAM,CAKjB;IAED;;;;OAIG;IACH,cAHY,MAAM,GAAC,SAAS,CAK3B;IAYD;;;;OAIG;IACH,aAHY,OAAO,aAAa,EAAE,OAAO,GAAC,IAAI,CAK7C;IAED;;;;OAIG;IACH,kBAHW,OAAO,aAAa,EAAE,OAAO,GAAC,IAAI,QAM5C;IAoBD;;;;;;;OAOG;IACH,+BAgFC;IAED;;;OAGG;IACH,iCAHY,aAAa,CAoCxB;IAED;;OAEG;IACH,yBAKC;IAED;;;;;OAKG;IACH,cA2BC;IAED;;;;OAIG;IACH,kCAuBC;IAED;;;OAGG;IACH,oBAmBC;IAED;;;;OAIG;IACH,gCAmBC;CAQF;uBAvnBsB,YAAY"}
|
package/style/RegularShape.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* @module ol/style/RegularShape
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
+
import IconImage from './IconImage.js';
|
|
5
6
|
import ImageState from '../ImageState.js';
|
|
6
7
|
import ImageStyle from './Image.js';
|
|
7
8
|
import {asArray} from '../color.js';
|
|
@@ -15,6 +16,7 @@ import {
|
|
|
15
16
|
defaultMiterLimit,
|
|
16
17
|
defaultStrokeStyle,
|
|
17
18
|
} from '../render/canvas.js';
|
|
19
|
+
import {shared as iconImageCache} from './IconImageCache.js';
|
|
18
20
|
|
|
19
21
|
/**
|
|
20
22
|
* Specify radius for regular polygons, or both radius and radius2 for stars.
|
|
@@ -70,12 +72,6 @@ class RegularShape extends ImageStyle {
|
|
|
70
72
|
declutterMode: options.declutterMode,
|
|
71
73
|
});
|
|
72
74
|
|
|
73
|
-
/**
|
|
74
|
-
* @private
|
|
75
|
-
* @type {Object<number, HTMLCanvasElement>}
|
|
76
|
-
*/
|
|
77
|
-
this.canvases_;
|
|
78
|
-
|
|
79
75
|
/**
|
|
80
76
|
* @private
|
|
81
77
|
* @type {HTMLCanvasElement|null}
|
|
@@ -242,7 +238,13 @@ class RegularShape extends ImageStyle {
|
|
|
242
238
|
* @override
|
|
243
239
|
*/
|
|
244
240
|
getImage(pixelRatio) {
|
|
245
|
-
|
|
241
|
+
const fillKey = this.fill_?.getKey();
|
|
242
|
+
const cacheKey =
|
|
243
|
+
`${pixelRatio},${this.angle_},${this.radius},${this.radius2_},${this.points_},${fillKey}` +
|
|
244
|
+
Object.values(this.renderOptions_).join(',');
|
|
245
|
+
let image = /** @type {HTMLCanvasElement} */ (
|
|
246
|
+
iconImageCache.get(cacheKey, null, null)?.getImage(1)
|
|
247
|
+
);
|
|
246
248
|
if (!image) {
|
|
247
249
|
const renderOptions = this.renderOptions_;
|
|
248
250
|
const context = createCanvasContext2D(
|
|
@@ -252,7 +254,12 @@ class RegularShape extends ImageStyle {
|
|
|
252
254
|
this.draw_(renderOptions, context, pixelRatio);
|
|
253
255
|
|
|
254
256
|
image = context.canvas;
|
|
255
|
-
|
|
257
|
+
iconImageCache.set(
|
|
258
|
+
cacheKey,
|
|
259
|
+
null,
|
|
260
|
+
null,
|
|
261
|
+
new IconImage(image, undefined, null, ImageState.LOADED, null),
|
|
262
|
+
);
|
|
256
263
|
}
|
|
257
264
|
return image;
|
|
258
265
|
}
|
|
@@ -502,7 +509,6 @@ class RegularShape extends ImageStyle {
|
|
|
502
509
|
render() {
|
|
503
510
|
this.renderOptions_ = this.createRenderOptions();
|
|
504
511
|
const size = this.renderOptions_.size;
|
|
505
|
-
this.canvases_ = {};
|
|
506
512
|
this.hitDetectionCanvas_ = null;
|
|
507
513
|
this.size_ = [size, size];
|
|
508
514
|
}
|
package/util.js
CHANGED