ol 10.3.2-dev.1737448999971 → 10.3.2-dev.1737622602778
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/expr/expression.d.ts +5 -0
- package/expr/expression.d.ts.map +1 -1
- package/expr/expression.js +12 -3
- package/package.json +1 -1
- package/render/canvas/Builder.d.ts +12 -0
- package/render/canvas/Builder.d.ts.map +1 -1
- package/render/canvas/Builder.js +31 -5
- package/render/canvas/Executor.d.ts.map +1 -1
- package/render/canvas/Executor.js +13 -16
- package/render/canvas/TextBuilder.d.ts.map +1 -1
- package/render/canvas/TextBuilder.js +15 -26
- package/render/webgl/MixedGeometryBatch.d.ts +9 -1
- package/render/webgl/MixedGeometryBatch.d.ts.map +1 -1
- package/render/webgl/MixedGeometryBatch.js +22 -3
- package/render/webgl/VectorStyleRenderer.d.ts +16 -3
- package/render/webgl/VectorStyleRenderer.d.ts.map +1 -1
- package/render/webgl/VectorStyleRenderer.js +66 -3
- package/renderer/webgl/VectorLayer.d.ts.map +1 -1
- package/renderer/webgl/VectorLayer.js +17 -10
- package/renderer/webgl/VectorTileLayer.d.ts.map +1 -1
- package/renderer/webgl/VectorTileLayer.js +4 -0
- package/util.js +1 -1
- package/webgl/TileGeometry.d.ts +5 -0
- package/webgl/TileGeometry.d.ts.map +1 -1
- package/webgl/TileGeometry.js +36 -0
- package/webgl/styleparser.d.ts.map +1 -1
- package/webgl/styleparser.js +2 -0
package/expr/expression.d.ts
CHANGED
|
@@ -31,6 +31,7 @@ export function isType(type: number, expected: number): boolean;
|
|
|
31
31
|
* @property {Set<string>} properties Properties referenced with the 'get' operator.
|
|
32
32
|
* @property {boolean} featureId The style uses the feature id.
|
|
33
33
|
* @property {boolean} geometryType The style uses the feature geometry type.
|
|
34
|
+
* @property {boolean} mapState The style uses the map state (view state or time elapsed).
|
|
34
35
|
*/
|
|
35
36
|
/**
|
|
36
37
|
* @return {ParsingContext} A new parsing context.
|
|
@@ -107,6 +108,10 @@ export type ParsingContext = {
|
|
|
107
108
|
* The style uses the feature geometry type.
|
|
108
109
|
*/
|
|
109
110
|
geometryType: boolean;
|
|
111
|
+
/**
|
|
112
|
+
* The style uses the map state (view state or time elapsed).
|
|
113
|
+
*/
|
|
114
|
+
mapState: boolean;
|
|
110
115
|
};
|
|
111
116
|
export type EncodedExpression = LiteralValue | any[];
|
|
112
117
|
/**
|
package/expr/expression.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["expression.js"],"names":[],"mappings":"AAoKA;;;;GAIG;AACH,+BAHW,MAAM,GACL,MAAM,CAgBjB;AAED;;;;GAIG;AACH,oCAJW,MAAM,YACN,MAAM,GACL,OAAO,CAIlB;AAED;;;;GAIG;AACH,sCAJW,MAAM,aACN,MAAM,GACL,OAAO,CAIlB;AAED;;;;GAIG;AACH,6BAJW,MAAM,YACN,MAAM,GACL,OAAO,CAIlB;AAmCD;;GAEG;AAEH
|
|
1
|
+
{"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["expression.js"],"names":[],"mappings":"AAoKA;;;;GAIG;AACH,+BAHW,MAAM,GACL,MAAM,CAgBjB;AAED;;;;GAIG;AACH,oCAJW,MAAM,YACN,MAAM,GACL,OAAO,CAIlB;AAED;;;;GAIG;AACH,sCAJW,MAAM,aACN,MAAM,GACL,OAAO,CAIlB;AAED;;;;GAIG;AACH,6BAJW,MAAM,YACN,MAAM,GACL,OAAO,CAIlB;AAmCD;;GAEG;AAEH;;;;;;;GAOG;AAEH;;GAEG;AACH,qCAFY,cAAc,CAUzB;AAED;;GAEG;AAEH;;;;;GAKG;AACH,+BALW,iBAAiB,gBACjB,MAAM,WACN,cAAc,GACb,UAAU,CA6FrB;AA8oBD;;;;GAIG;AACH,8CAHW,OAAO,qBAAqB,EAAE,OAAO,GAAC,OAAO,sBAAsB,EAAE,OAAO,GAC3E,OAAO,GAAC,YAAY,GAAC,SAAS,GAAC,EAAE,CA2B5C;AAx5BD,uBAAwB,CAAC,CAAC;AAC1B,iCAA2C;AAC3C,gCAA0C;AAC1C,gCAA0C;AAC1C,+BAAyC;AACzC,qCAA+C;AAC/C,8BAAwC;AACxC,6BAAiD;AAqEjD;;GAEG;AAEH;IACE;;;OAGG;IACH,kBAHW,MAAM,SACN,YAAY,EAUtB;IAFC,aAAgB;IAChB,oBAAkB;CAErB;AAED;IACE;;;;OAIG;IACH,kBAJW,MAAM,YACN,MAAM,WACH,UAAU,EAAA,EAMvB;IAHC,aAAgB;IAChB,iBAAwB;IACxB,mBAAgB;CAEnB;AAmID;;GAEG;AACH;;EAgDE;yBAnLW,iBAAiB,GAAC,cAAc;;;;;eAK/B,GAAG,CAAC,MAAM,CAAC;;;;gBACX,GAAG,CAAC,MAAM,CAAC;;;;eACX,OAAO;;;;kBACP,OAAO;;;;cACP,OAAO;;gCAiBR,YAAY,QAAM;;;;;2BAyUlB,CAAS,IAAwB,EAAxB,KAAK,CAAC,iBAAiB,CAAC,EAAE,IAAM,EAAN,MAAM,EAAE,IAAc,EAAd,cAAc,KAAE,KAAK,CAAC,UAAU,CAAC,GAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BAtdjF,KAAK,CAAC,GAAC,CAAC,GAAC,OAAO,aAAa,EAAE,KAAK,GAAC,MAAM,GAAC,MAAM,GAAC,OAAO;2BAkF1D,OAAO,GAAC,MAAM,GAAC,MAAM,GAAC,KAAK,CAAC,MAAM,CAAC;;;;qBAuNnC,CAAS,IAAK,SAAE,IAAM,EAAN,MAAM,EAAE,IAAc,EAAd,cAAc,KAAE,UAAU"}
|
package/expr/expression.js
CHANGED
|
@@ -253,6 +253,7 @@ export class CallExpression {
|
|
|
253
253
|
* @property {Set<string>} properties Properties referenced with the 'get' operator.
|
|
254
254
|
* @property {boolean} featureId The style uses the feature id.
|
|
255
255
|
* @property {boolean} geometryType The style uses the feature geometry type.
|
|
256
|
+
* @property {boolean} mapState The style uses the map state (view state or time elapsed).
|
|
256
257
|
*/
|
|
257
258
|
|
|
258
259
|
/**
|
|
@@ -264,6 +265,7 @@ export function newParsingContext() {
|
|
|
264
265
|
properties: new Set(),
|
|
265
266
|
featureId: false,
|
|
266
267
|
geometryType: false,
|
|
268
|
+
mapState: false,
|
|
267
269
|
};
|
|
268
270
|
}
|
|
269
271
|
|
|
@@ -443,9 +445,9 @@ const parsers = {
|
|
|
443
445
|
),
|
|
444
446
|
[Ops.GeometryType]: createCallExpressionParser(usesGeometryType, withNoArgs),
|
|
445
447
|
[Ops.LineMetric]: createCallExpressionParser(withNoArgs),
|
|
446
|
-
[Ops.Resolution]: createCallExpressionParser(withNoArgs),
|
|
447
|
-
[Ops.Zoom]: createCallExpressionParser(withNoArgs),
|
|
448
|
-
[Ops.Time]: createCallExpressionParser(withNoArgs),
|
|
448
|
+
[Ops.Resolution]: createCallExpressionParser(usesMapState, withNoArgs),
|
|
449
|
+
[Ops.Zoom]: createCallExpressionParser(usesMapState, withNoArgs),
|
|
450
|
+
[Ops.Time]: createCallExpressionParser(usesMapState, withNoArgs),
|
|
449
451
|
[Ops.Any]: createCallExpressionParser(
|
|
450
452
|
hasArgsCount(2, Infinity),
|
|
451
453
|
withArgsOfType(BooleanType),
|
|
@@ -660,6 +662,13 @@ function usesGeometryType(encoded, returnType, context) {
|
|
|
660
662
|
context.geometryType = true;
|
|
661
663
|
}
|
|
662
664
|
|
|
665
|
+
/**
|
|
666
|
+
* @type {ArgValidator}
|
|
667
|
+
*/
|
|
668
|
+
function usesMapState(encoded, returnType, context) {
|
|
669
|
+
context.mapState = true;
|
|
670
|
+
}
|
|
671
|
+
|
|
663
672
|
/**
|
|
664
673
|
* @type {ArgValidator}
|
|
665
674
|
*/
|
package/package.json
CHANGED
|
@@ -122,6 +122,18 @@ declare class CanvasBuilder extends VectorContext {
|
|
|
122
122
|
* Reverse the hit detection instructions.
|
|
123
123
|
*/
|
|
124
124
|
reverseHitDetectionInstructions(): void;
|
|
125
|
+
/**
|
|
126
|
+
* @param {import("../../style/Fill.js").default} fillStyle Fill style.
|
|
127
|
+
* @param {import('../canvas.js').FillStrokeState} [state] State.
|
|
128
|
+
* @return {import('../canvas.js').FillStrokeState} State.
|
|
129
|
+
*/
|
|
130
|
+
fillStyleToState(fillStyle: import("../../style/Fill.js").default, state?: import("../canvas.js").FillStrokeState): import("../canvas.js").FillStrokeState;
|
|
131
|
+
/**
|
|
132
|
+
* @param {import("../../style/Stroke.js").default} strokeStyle Stroke style.
|
|
133
|
+
* @param {import("../canvas.js").FillStrokeState} state State.
|
|
134
|
+
* @return {import("../canvas.js").FillStrokeState} State.
|
|
135
|
+
*/
|
|
136
|
+
strokeStyleToState(strokeStyle: import("../../style/Stroke.js").default, state?: import("../canvas.js").FillStrokeState): import("../canvas.js").FillStrokeState;
|
|
125
137
|
/**
|
|
126
138
|
* @param {import("../canvas.js").FillStrokeState} state State.
|
|
127
139
|
* @return {Array<*>} Fill instruction.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["Builder.js"],"names":[],"mappings":";AA8BA;IACE;;;;;OAKG;IACH,uBALW,MAAM,aACN,OAAO,iBAAiB,EAAE,MAAM,cAChC,MAAM,cACN,MAAM,EAoFhB;IA/EC;;;OAGG;IACH,qBAFU,MAAM,CAEU;IAE1B;;;;OAIG;IACH,qBAFU,OAAO,iBAAiB,EAAE,MAAM,CAEhB;IAE1B;;;OAGG;IACH,sBAFU,MAAM,CAEY;IAE5B;;;OAGG;IACH,wBAFU,MAAM,CAEK;IAErB;;;;OAIG;IACH,sBAFU,MAAM,CAEY;IAE5B;;;OAGG;IACH,mCAAsC;IAEtC;;;OAGG;IACH,mCAAsC;IAEtC;;;OAGG;IACH,2BAA8B;IAE9B;;;OAGG;IACH,wBAFU,KAAK,CAAC,GAAC,CAAC,CAEI;IAEtB;;;OAGG;IACH,uBAFU,KAAK,CAAC,MAAM,CAAC,CAEF;IAErB;;;OAGG;IACH,uBAAwB;IAExB;;;OAGG;IACH,oCAFU,KAAK,CAAC,GAAC,CAAC,CAEgB;IAElC;;;OAGG;IACH,iBAFU,OAAO,cAAc,EAAE,eAAe,CAEuB;IAGzE;;;;OAIG;IACH,qCAHW,KAAK,CAAC,MAAM,CAAC,GACZ,KAAK,CAAC,MAAM,CAAC,CASxB;IAED;;;;;OAKG;IACH,sDALW,KAAK,CAAC,MAAM,CAAC,UACb,MAAM,GAEL,MAAM,CAgBjB;IAED;;;;;;;;;OASG;IACH,qDATW,KAAK,CAAC,MAAM,CAAC,UACb,MAAM,OACN,MAAM,UACN,MAAM,UACN,OAAO,aACP,OAAO,GAEN,MAAM,CAoDjB;IAED;;;;;;;OAOG;IACH,wCAPW,KAAK,CAAC,MAAM,CAAC,UACb,MAAM,QACN,KAAK,CAAC,MAAM,CAAC,UACb,MAAM,eACN,KAAK,CAAC,MAAM,CAAC,GACZ,MAAM,CAiBjB;IAuLD;;;;;OAKG;IACH,kCAJW,OAAO,qBAAqB,EAAE,OAAO,GAAC,OAAO,eAAe,EAAE,OAAO,WACrE,OAAO,kBAAkB,EAAE,WAAW,SACtC,MAAM,QAmBhB;IAED;;OAEG;IACH,UAFY,OAAO,cAAc,EAAE,wBAAwB,CAQ1D;IAED;;OAEG;IACH,wCAqBC;
|
|
1
|
+
{"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["Builder.js"],"names":[],"mappings":";AA8BA;IACE;;;;;OAKG;IACH,uBALW,MAAM,aACN,OAAO,iBAAiB,EAAE,MAAM,cAChC,MAAM,cACN,MAAM,EAoFhB;IA/EC;;;OAGG;IACH,qBAFU,MAAM,CAEU;IAE1B;;;;OAIG;IACH,qBAFU,OAAO,iBAAiB,EAAE,MAAM,CAEhB;IAE1B;;;OAGG;IACH,sBAFU,MAAM,CAEY;IAE5B;;;OAGG;IACH,wBAFU,MAAM,CAEK;IAErB;;;;OAIG;IACH,sBAFU,MAAM,CAEY;IAE5B;;;OAGG;IACH,mCAAsC;IAEtC;;;OAGG;IACH,mCAAsC;IAEtC;;;OAGG;IACH,2BAA8B;IAE9B;;;OAGG;IACH,wBAFU,KAAK,CAAC,GAAC,CAAC,CAEI;IAEtB;;;OAGG;IACH,uBAFU,KAAK,CAAC,MAAM,CAAC,CAEF;IAErB;;;OAGG;IACH,uBAAwB;IAExB;;;OAGG;IACH,oCAFU,KAAK,CAAC,GAAC,CAAC,CAEgB;IAElC;;;OAGG;IACH,iBAFU,OAAO,cAAc,EAAE,eAAe,CAEuB;IAGzE;;;;OAIG;IACH,qCAHW,KAAK,CAAC,MAAM,CAAC,GACZ,KAAK,CAAC,MAAM,CAAC,CASxB;IAED;;;;;OAKG;IACH,sDALW,KAAK,CAAC,MAAM,CAAC,UACb,MAAM,GAEL,MAAM,CAgBjB;IAED;;;;;;;;;OASG;IACH,qDATW,KAAK,CAAC,MAAM,CAAC,UACb,MAAM,OACN,MAAM,UACN,MAAM,UACN,OAAO,aACP,OAAO,GAEN,MAAM,CAoDjB;IAED;;;;;;;OAOG;IACH,wCAPW,KAAK,CAAC,MAAM,CAAC,UACb,MAAM,QACN,KAAK,CAAC,MAAM,CAAC,UACb,MAAM,eACN,KAAK,CAAC,MAAM,CAAC,GACZ,MAAM,CAiBjB;IAuLD;;;;;OAKG;IACH,kCAJW,OAAO,qBAAqB,EAAE,OAAO,GAAC,OAAO,eAAe,EAAE,OAAO,WACrE,OAAO,kBAAkB,EAAE,WAAW,SACtC,MAAM,QAmBhB;IAED;;OAEG;IACH,UAFY,OAAO,cAAc,EAAE,wBAAwB,CAQ1D;IAED;;OAEG;IACH,wCAqBC;IAED;;;;OAIG;IACH,4BAJW,OAAO,qBAAqB,EAAE,OAAO,UACrC,OAAO,cAAc,EAAE,eAAe,GACrC,OAAO,cAAc,EAAE,eAAe,CAqBjD;IAED;;;;OAIG;IACH,gCAJW,OAAO,uBAAuB,EAAE,OAAO,UACvC,OAAO,cAAc,EAAE,eAAe,GACrC,OAAO,cAAc,EAAE,eAAe,CAmDjD;IAaD;;;OAGG;IACH,kBAHW,OAAO,cAAc,EAAE,eAAe,GACrC,KAAK,CAAC,GAAC,CAAC,CAWnB;IAED;;OAEG;IACH,mBAFW,OAAO,cAAc,EAAE,eAAe,QAIhD;IAED;;;OAGG;IACH,oBAHW,OAAO,cAAc,EAAE,eAAe,GACrC,KAAK,CAAC,GAAC,CAAC,CAanB;IAED;;;OAGG;IACH,uBAHW,OAAO,cAAc,EAAE,eAAe,cACtC,CAAS,IAAkB,EAAb,aAAa,EAAE,IAAsC,EAAtC,OAAO,cAAc,EAAE,eAAe,KAAE,KAAK,CAAC,GAAC,CAAC,QAUvF;IAED;;;OAGG;IACH,yBAHW,OAAO,cAAc,EAAE,eAAe,eACtC,CAAS,IAAkB,EAAb,aAAa,EAAE,IAAsC,EAAtC,OAAO,cAAc,EAAE,eAAe,KAAG,IAAI,QA+BpF;IAED;;OAEG;IACH,qBAFW,OAAO,kBAAkB,EAAE,WAAW,QAUhD;IAED;;;;;;OAMG;IACH,kCAHY,OAAO,iBAAiB,EAAE,MAAM,CAY3C;CACF;0BAzqByB,qBAAqB"}
|
package/render/canvas/Builder.js
CHANGED
|
@@ -487,11 +487,13 @@ class CanvasBuilder extends VectorContext {
|
|
|
487
487
|
|
|
488
488
|
/**
|
|
489
489
|
* @param {import("../../style/Fill.js").default} fillStyle Fill style.
|
|
490
|
-
* @param {import(
|
|
491
|
-
* @
|
|
490
|
+
* @param {import('../canvas.js').FillStrokeState} [state] State.
|
|
491
|
+
* @return {import('../canvas.js').FillStrokeState} State.
|
|
492
492
|
*/
|
|
493
|
-
|
|
494
|
-
|
|
493
|
+
fillStyleToState(
|
|
494
|
+
fillStyle,
|
|
495
|
+
state = /** @type {import('../canvas.js').FillStrokeState} */ ({}),
|
|
496
|
+
) {
|
|
495
497
|
if (fillStyle) {
|
|
496
498
|
const fillStyleColor = fillStyle.getColor();
|
|
497
499
|
state.fillPatternScale =
|
|
@@ -506,6 +508,18 @@ class CanvasBuilder extends VectorContext {
|
|
|
506
508
|
} else {
|
|
507
509
|
state.fillStyle = undefined;
|
|
508
510
|
}
|
|
511
|
+
return state;
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
/**
|
|
515
|
+
* @param {import("../../style/Stroke.js").default} strokeStyle Stroke style.
|
|
516
|
+
* @param {import("../canvas.js").FillStrokeState} state State.
|
|
517
|
+
* @return {import("../canvas.js").FillStrokeState} State.
|
|
518
|
+
*/
|
|
519
|
+
strokeStyleToState(
|
|
520
|
+
strokeStyle,
|
|
521
|
+
state = /** @type {import('../canvas.js').FillStrokeState} */ ({}),
|
|
522
|
+
) {
|
|
509
523
|
if (strokeStyle) {
|
|
510
524
|
const strokeStyleColor = strokeStyle.getColor();
|
|
511
525
|
state.strokeStyle = asColorLike(
|
|
@@ -550,6 +564,18 @@ class CanvasBuilder extends VectorContext {
|
|
|
550
564
|
state.lineWidth = undefined;
|
|
551
565
|
state.miterLimit = undefined;
|
|
552
566
|
}
|
|
567
|
+
return state;
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
/**
|
|
571
|
+
* @param {import("../../style/Fill.js").default} fillStyle Fill style.
|
|
572
|
+
* @param {import("../../style/Stroke.js").default} strokeStyle Stroke style.
|
|
573
|
+
* @override
|
|
574
|
+
*/
|
|
575
|
+
setFillStrokeStyle(fillStyle, strokeStyle) {
|
|
576
|
+
const state = this.state;
|
|
577
|
+
this.fillStyleToState(fillStyle, state);
|
|
578
|
+
this.strokeStyleToState(strokeStyle, state);
|
|
553
579
|
}
|
|
554
580
|
|
|
555
581
|
/**
|
|
@@ -586,7 +612,7 @@ class CanvasBuilder extends VectorContext {
|
|
|
586
612
|
state.lineCap,
|
|
587
613
|
state.lineJoin,
|
|
588
614
|
state.miterLimit,
|
|
589
|
-
this.applyPixelRatio(state.lineDash),
|
|
615
|
+
state.lineDash ? this.applyPixelRatio(state.lineDash) : null,
|
|
590
616
|
state.lineDashOffset * this.pixelRatio,
|
|
591
617
|
];
|
|
592
618
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Executor.d.ts","sourceRoot":"","sources":["Executor.js"],"names":[],"mappings":";6BA2Ba,OAAO,wBAAwB,EAAE,KAAK,CAAC,OAAO,kBAAkB,EAAE,WAAW,CAAC;;;;;gBAK7E,MAAM;;;;gBACN,MAAM;;;;gBACN,MAAM;;;;gBACN,MAAM;;;;aACN,MAAM;;;;aACN,MAAM;;;;WACN,KAAK,CAAC,MAAM,CAAC;;;;kBACb,cAAc;;;;qBACd,OAAO,oBAAoB,EAAE,SAAS;;qCAIvC;IAAC,CAAC,EAAE,wBAAwB,CAAC;IAAC,CAAC,EAAE,OAAO,eAAe,EAAE,IAAI,CAAC;IAAC,CAAC,EAAE,OAAO,cAAc,EAAE,KAAK,GAAC,gBAAgB,GAAC,iBAAiB,GAAC,gBAAgB,CAAC;IAAC,CAAC,EAAE,sBAAsB,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,KAAK,CAAC,GAAC,CAAC,CAAC;IAAC,CAAC,EAAE,KAAK,CAAC,GAAC,CAAC,CAAA;CAAC;4BAInN,CAAC,IACD,CAAS,IAAsC,EAAtC,OAAO,kBAAkB,EAAE,WAAW,EAAE,IAA8C,EAA9C,OAAO,8BAA8B,EAAE,OAAO,EAAE,IAA4C,EAA5C,OAAO,sBAAsB,EAAE,aAAa,KAAG,CAAC;AAiE9J;IACE;;;;;;OAMG;IACH,wBANW,MAAM,cACN,MAAM,YACN,OAAO,gBACP,OAAO,cAAc,EAAE,wBAAwB,sBAC/C,OAAO,EA4GjB;IAnGC;;;OAGG;IACH,oBAFU,OAAO,CAEO;IAExB;;;OAGG;IACH,sBAFU,MAAM,CAEY;IAE5B;;;;OAIG;IACH,sBAFU,MAAM,CAEY;IAE5B;;;OAGG;IACH,2BAAuB;IAEvB;;;OAGG;IACH,wBAFU,KAAK,CAAC,GAAC,CAAC,CAE2B;IAE7C;;;OAGG;IACH,uBAFU,KAAK,CAAC,MAAM,CAAC,CAEoB;IAE3C;;;OAGG;IACH,yBAA0B;IAE1B;;;OAGG;IACH,2BAA2C;IAE3C;;;OAGG;IACH,oCAFU,KAAK,CAAC,GAAC,CAAC,CAEmD;IAErE;;;OAGG;IACH,0BAA6B;IAE7B;;;OAGG;IACH,sBAAsB;IAEtB;;OAEG;IACH,YAFU;YAAQ,MAAM,GAAE,OAAO,cAAc,EAAE,SAAS;KAAC,CAEZ;IAE/C;;OAEG;IACH,cAFU;YAAQ,MAAM,GAAE,OAAO,cAAc,EAAE,WAAW;KAAC,CAEV;IAEnD;;OAEG;IACH,YAFU;YAAQ,MAAM,GAAE,OAAO,cAAc,EAAE,SAAS;KAAC,CAEZ;IAE/C;;;OAGG;IACH,gBAAiB;IAEjB;;;OAGG;IACH,gBAAiB;IAEjB;;;OAGG;IACH,uBAAoE;IAGtE;;OAEG;IACH,oBAFY,aAAa,CAIxB;IAED;;;;;;OAMG;IACH,kBANW,MAAM,GAAC,KAAK,CAAC,MAAM,CAAC,WACpB,MAAM,WACN,MAAM,aACN,MAAM,GACL,OAAO,cAAc,EAAE,KAAK,CA6GvC;IAED;;;;;;;;OAQG;IACH,+BARW,wBAAwB,MACxB,OAAO,qBAAqB,EAAE,UAAU,MACxC,OAAO,qBAAqB,EAAE,UAAU,MACxC,OAAO,qBAAqB,EAAE,UAAU,MACxC,OAAO,qBAAqB,EAAE,UAAU,mBACxC,KAAK,CAAC,GAAC,CAAC,qBACR,KAAK,CAAC,GAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"Executor.d.ts","sourceRoot":"","sources":["Executor.js"],"names":[],"mappings":"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"}
|
|
@@ -377,6 +377,7 @@ class Executor {
|
|
|
377
377
|
context.lineTo.apply(context, p1);
|
|
378
378
|
if (fillInstruction) {
|
|
379
379
|
this.alignAndScaleFill_ = /** @type {number} */ (fillInstruction[2]);
|
|
380
|
+
context.fillStyle = /** @type {string} */ (fillInstruction[1]);
|
|
380
381
|
this.fill_(context);
|
|
381
382
|
}
|
|
382
383
|
if (strokeInstruction) {
|
|
@@ -703,8 +704,6 @@ class Executor {
|
|
|
703
704
|
fillKey;
|
|
704
705
|
let pendingFill = 0;
|
|
705
706
|
let pendingStroke = 0;
|
|
706
|
-
let lastFillInstruction = null;
|
|
707
|
-
let lastStrokeInstruction = null;
|
|
708
707
|
const coordinateCache = this.coordinateCache_;
|
|
709
708
|
const viewRotation = this.viewRotation_;
|
|
710
709
|
const viewRotationFromTransform =
|
|
@@ -867,15 +866,19 @@ class Executor {
|
|
|
867
866
|
geometryWidths = /** @type {number} */ (instruction[25]);
|
|
868
867
|
}
|
|
869
868
|
|
|
870
|
-
let padding,
|
|
869
|
+
let padding, backgroundFillInstruction, backgroundStrokeInstruction;
|
|
871
870
|
if (instruction.length > 17) {
|
|
872
871
|
padding = /** @type {Array<number>} */ (instruction[16]);
|
|
873
|
-
|
|
874
|
-
|
|
872
|
+
backgroundFillInstruction = /** @type {Array<*>} */ (
|
|
873
|
+
instruction[17]
|
|
874
|
+
);
|
|
875
|
+
backgroundStrokeInstruction = /** @type {Array<*>} */ (
|
|
876
|
+
instruction[18]
|
|
877
|
+
);
|
|
875
878
|
} else {
|
|
876
879
|
padding = defaultPadding;
|
|
877
|
-
|
|
878
|
-
|
|
880
|
+
backgroundFillInstruction = null;
|
|
881
|
+
backgroundStrokeInstruction = null;
|
|
879
882
|
}
|
|
880
883
|
|
|
881
884
|
if (rotateWithView && viewRotationFromTransform) {
|
|
@@ -908,7 +911,7 @@ class Executor {
|
|
|
908
911
|
scale,
|
|
909
912
|
snapToPixel,
|
|
910
913
|
padding,
|
|
911
|
-
|
|
914
|
+
!!backgroundFillInstruction || !!backgroundStrokeInstruction,
|
|
912
915
|
feature,
|
|
913
916
|
);
|
|
914
917
|
/** @type {ReplayImageOrLabelArgs} */
|
|
@@ -918,12 +921,8 @@ class Executor {
|
|
|
918
921
|
image,
|
|
919
922
|
dimensions,
|
|
920
923
|
opacity,
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
: null,
|
|
924
|
-
backgroundStroke
|
|
925
|
-
? /** @type {Array<*>} */ (lastStrokeInstruction)
|
|
926
|
-
: null,
|
|
924
|
+
backgroundFillInstruction,
|
|
925
|
+
backgroundStrokeInstruction,
|
|
927
926
|
];
|
|
928
927
|
if (declutterTree) {
|
|
929
928
|
let imageArgs, imageDeclutterMode, imageDeclutterBox;
|
|
@@ -1192,7 +1191,6 @@ class Executor {
|
|
|
1192
1191
|
++i;
|
|
1193
1192
|
break;
|
|
1194
1193
|
case CanvasInstruction.SET_FILL_STYLE:
|
|
1195
|
-
lastFillInstruction = instruction;
|
|
1196
1194
|
this.alignAndScaleFill_ = instruction[2];
|
|
1197
1195
|
|
|
1198
1196
|
if (pendingFill) {
|
|
@@ -1209,7 +1207,6 @@ class Executor {
|
|
|
1209
1207
|
++i;
|
|
1210
1208
|
break;
|
|
1211
1209
|
case CanvasInstruction.SET_STROKE_STYLE:
|
|
1212
|
-
lastStrokeInstruction = instruction;
|
|
1213
1210
|
if (pendingStroke) {
|
|
1214
1211
|
context.stroke();
|
|
1215
1212
|
pendingStroke = 0;
|
|
@@ -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,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;
|
|
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;IA0S1C;;OAEG;IACH,wBAqCC;IAED;;;;OAIG;IACH,mBAsDC;IAED;;;;OAIG;IACH,iCAJW,OAAO,qBAAqB,EAAE,OAAO,0BAkH/C;CACF;0BA1oByB,cAAc"}
|
|
@@ -345,19 +345,12 @@ class CanvasTextBuilder extends CanvasBuilder {
|
|
|
345
345
|
|
|
346
346
|
this.saveTextStates_();
|
|
347
347
|
|
|
348
|
-
|
|
349
|
-
this.
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
)
|
|
353
|
-
|
|
354
|
-
this.updateFillStyle(this.state, this.createFill);
|
|
355
|
-
}
|
|
356
|
-
if (textState.backgroundStroke) {
|
|
357
|
-
this.updateStrokeStyle(this.state, this.applyStroke);
|
|
358
|
-
this.hitDetectionInstructions.push(this.createStroke(this.state));
|
|
359
|
-
}
|
|
360
|
-
}
|
|
348
|
+
const backgroundFill = textState.backgroundFill
|
|
349
|
+
? this.createFill(this.fillStyleToState(textState.backgroundFill))
|
|
350
|
+
: null;
|
|
351
|
+
const backgroundStroke = textState.backgroundStroke
|
|
352
|
+
? this.createStroke(this.strokeStyleToState(textState.backgroundStroke))
|
|
353
|
+
: null;
|
|
361
354
|
|
|
362
355
|
this.beginGeometry(geometry, feature, index);
|
|
363
356
|
|
|
@@ -408,8 +401,8 @@ class CanvasTextBuilder extends CanvasBuilder {
|
|
|
408
401
|
: padding.map(function (p) {
|
|
409
402
|
return p * pixelRatio;
|
|
410
403
|
}),
|
|
411
|
-
|
|
412
|
-
|
|
404
|
+
backgroundFill,
|
|
405
|
+
backgroundStroke,
|
|
413
406
|
this.text_,
|
|
414
407
|
this.textKey_,
|
|
415
408
|
this.strokeKey_,
|
|
@@ -420,10 +413,11 @@ class CanvasTextBuilder extends CanvasBuilder {
|
|
|
420
413
|
]);
|
|
421
414
|
const scale = 1 / pixelRatio;
|
|
422
415
|
// Set default fill for hit detection background
|
|
423
|
-
const
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
416
|
+
const hitDetectionBackgroundFill = backgroundFill
|
|
417
|
+
? backgroundFill.slice(0)
|
|
418
|
+
: null;
|
|
419
|
+
if (hitDetectionBackgroundFill) {
|
|
420
|
+
hitDetectionBackgroundFill[1] = defaultFillStyle;
|
|
427
421
|
}
|
|
428
422
|
this.hitDetectionInstructions.push([
|
|
429
423
|
CanvasInstruction.DRAW_IMAGE,
|
|
@@ -443,8 +437,8 @@ class CanvasTextBuilder extends CanvasBuilder {
|
|
|
443
437
|
this.declutterMode_,
|
|
444
438
|
this.declutterImageWithText_,
|
|
445
439
|
padding,
|
|
446
|
-
|
|
447
|
-
|
|
440
|
+
hitDetectionBackgroundFill,
|
|
441
|
+
backgroundStroke,
|
|
448
442
|
this.text_,
|
|
449
443
|
this.textKey_,
|
|
450
444
|
this.strokeKey_,
|
|
@@ -453,11 +447,6 @@ class CanvasTextBuilder extends CanvasBuilder {
|
|
|
453
447
|
this.textOffsetY_,
|
|
454
448
|
geometryWidths,
|
|
455
449
|
]);
|
|
456
|
-
// Reset previous fill
|
|
457
|
-
if (textState.backgroundFill) {
|
|
458
|
-
this.state.fillStyle = currentFillStyle;
|
|
459
|
-
this.hitDetectionInstructions.push(this.createFill(this.state));
|
|
460
|
-
}
|
|
461
450
|
|
|
462
451
|
this.endGeometry(feature);
|
|
463
452
|
}
|
|
@@ -168,7 +168,7 @@ declare class MixedGeometryBatch {
|
|
|
168
168
|
private uidToRef_;
|
|
169
169
|
/**
|
|
170
170
|
* The precision in WebGL shaders is limited.
|
|
171
|
-
* To keep the refs as small as possible we maintain an array of
|
|
171
|
+
* To keep the refs as small as possible we maintain an array of freed up references.
|
|
172
172
|
* @type {Array<number>}
|
|
173
173
|
* @private
|
|
174
174
|
*/
|
|
@@ -259,6 +259,14 @@ declare class MixedGeometryBatch {
|
|
|
259
259
|
* @return {Feature|RenderFeature} feature
|
|
260
260
|
*/
|
|
261
261
|
getFeatureFromRef(ref: number): Feature | RenderFeature;
|
|
262
|
+
isEmpty(): boolean;
|
|
263
|
+
/**
|
|
264
|
+
* Will return a new instance of this class that only contains the features
|
|
265
|
+
* for which the provided callback returned true
|
|
266
|
+
* @param {function((Feature|RenderFeature)): boolean} featureFilter Feature filter callback
|
|
267
|
+
* @return {MixedGeometryBatch} Filtered geometry batch
|
|
268
|
+
*/
|
|
269
|
+
filter(featureFilter: (arg0: (Feature | RenderFeature)) => boolean): MixedGeometryBatch;
|
|
262
270
|
}
|
|
263
271
|
import RenderFeature from '../../render/Feature.js';
|
|
264
272
|
//# sourceMappingURL=MixedGeometryBatch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MixedGeometryBatch.d.ts","sourceRoot":"","sources":["MixedGeometryBatch.js"],"names":[],"mappings":";sBAQa,OAAO,kBAAkB,EAAE,OAAO;2BAGlC,OAAO,wBAAwB,EAAE,IAAI;;;;;;;;aAKpC,OAAO,GAAC,aAAa;;;;iBACrB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;;;;;;;;;;;;;;;;;;4BAQrB,kBAAkB,GAAC,uBAAuB,GAAC,oBAAoB;;;;;;;;;;;;;;;qBAO9D,MAAM;;;;mBACN,MAAM;;;;gBACN,MAAM;;;;;;;;;;;;;;;;qBAON,MAAM;;;;mBACN,MAAM;;;;;;;;;;;;;;;;qBAON,MAAM;;AA1CpB;;GAEG;AACH;;GAEG;AAEH;;;;;;;;GAQG;AAEH;;GAEG;AAEH;;;;;;;GAOG;AAEH;;;;;;GAMG;AAEH;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH;IAEI;;OAEG;IACH,uBAAuB;IAEvB;;;;OAIG;IACH,sBAA8B;IAE9B;;;;OAIG;IACH,kBAA0B;IAE1B;;;;;OAKG;IACH,uBAAwB;IAExB;;OAEG;IACH,cAFU,oBAAoB,CAO7B;IAED;;OAEG;IACH,YAFU,kBAAkB,CAK3B;IAED;;OAEG;IACH,iBAFU,uBAAuB,CAMhC;IAGH;;;OAGG;IACH,sBAHW,KAAK,CAAC,OAAO,GAAC,aAAa,CAAC,wBAC5B,OAAO,eAAe,EAAE,iBAAiB,QAMnD;IAED;;;OAGG;IACH,oBAHW,OAAO,GAAC,aAAa,wBACrB,OAAO,eAAe,EAAE,iBAAiB,QAYnD;IAED;;;;OAIG;IACH,uCASC;IAED;;;;OAIG;IACH,4CAUC;IAED;;;;OAIG;IACH,yCAWC;IAED;;;;OAIG;IACH,qBA2GC;IAED;;;;;;;;;OASG;IACH,wBAyJC;IAED;;;;;OAKG;IACH,uBAYC;IAED;;;;;OAKG;IACH,mBAOC;IAED;;OAEG;IACH,uBAFW,OAAO,GAAC,aAAa,QAS/B;IAED;;OAEG;IACH,uBAFW,OAAO,GAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"MixedGeometryBatch.d.ts","sourceRoot":"","sources":["MixedGeometryBatch.js"],"names":[],"mappings":";sBAQa,OAAO,kBAAkB,EAAE,OAAO;2BAGlC,OAAO,wBAAwB,EAAE,IAAI;;;;;;;;aAKpC,OAAO,GAAC,aAAa;;;;iBACrB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;;;;;;;;;;;;;;;;;;4BAQrB,kBAAkB,GAAC,uBAAuB,GAAC,oBAAoB;;;;;;;;;;;;;;;qBAO9D,MAAM;;;;mBACN,MAAM;;;;gBACN,MAAM;;;;;;;;;;;;;;;;qBAON,MAAM;;;;mBACN,MAAM;;;;;;;;;;;;;;;;qBAON,MAAM;;AA1CpB;;GAEG;AACH;;GAEG;AAEH;;;;;;;;GAQG;AAEH;;GAEG;AAEH;;;;;;;GAOG;AAEH;;;;;;GAMG;AAEH;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH;IAEI;;OAEG;IACH,uBAAuB;IAEvB;;;;OAIG;IACH,sBAA8B;IAE9B;;;;OAIG;IACH,kBAA0B;IAE1B;;;;;OAKG;IACH,uBAAwB;IAExB;;OAEG;IACH,cAFU,oBAAoB,CAO7B;IAED;;OAEG;IACH,YAFU,kBAAkB,CAK3B;IAED;;OAEG;IACH,iBAFU,uBAAuB,CAMhC;IAGH;;;OAGG;IACH,sBAHW,KAAK,CAAC,OAAO,GAAC,aAAa,CAAC,wBAC5B,OAAO,eAAe,EAAE,iBAAiB,QAMnD;IAED;;;OAGG;IACH,oBAHW,OAAO,GAAC,aAAa,wBACrB,OAAO,eAAe,EAAE,iBAAiB,QAYnD;IAED;;;;OAIG;IACH,uCASC;IAED;;;;OAIG;IACH,4CAUC;IAED;;;;OAIG;IACH,yCAWC;IAED;;;;OAIG;IACH,qBA2GC;IAED;;;;;;;;;OASG;IACH,wBAyJC;IAED;;;;;OAKG;IACH,uBAYC;IAED;;;;;OAKG;IACH,mBAOC;IAED;;OAEG;IACH,uBAFW,OAAO,GAAC,aAAa,QAS/B;IAED;;OAEG;IACH,uBAFW,OAAO,GAAC,aAAa,QAS/B;IAED,cAcC;IAED;;;;OAIG;IACH,uBAHW,MAAM,GACL,OAAO,GAAC,aAAa,CAIhC;IAED,mBAEC;IAED;;;;;OAKG;IACH,sBAHW,CAAS,IAAuB,EAAvB,CAAC,OAAO,GAAC,aAAa,CAAC,KAAG,OAAO,GACzC,kBAAkB,CAU7B;CACF;0BAvkByB,yBAAyB"}
|
|
@@ -92,7 +92,7 @@ class MixedGeometryBatch {
|
|
|
92
92
|
|
|
93
93
|
/**
|
|
94
94
|
* The precision in WebGL shaders is limited.
|
|
95
|
-
* To keep the refs as small as possible we maintain an array of
|
|
95
|
+
* To keep the refs as small as possible we maintain an array of freed up references.
|
|
96
96
|
* @type {Array<number>}
|
|
97
97
|
* @private
|
|
98
98
|
*/
|
|
@@ -533,8 +533,7 @@ class MixedGeometryBatch {
|
|
|
533
533
|
* @param {Feature|RenderFeature} feature Feature
|
|
534
534
|
*/
|
|
535
535
|
removeFeature(feature) {
|
|
536
|
-
let entry;
|
|
537
|
-
entry = this.clearFeatureEntryInPointBatch_(feature) || entry;
|
|
536
|
+
let entry = this.clearFeatureEntryInPointBatch_(feature);
|
|
538
537
|
entry = this.clearFeatureEntryInPolygonBatch_(feature) || entry;
|
|
539
538
|
entry = this.clearFeatureEntryInLineStringBatch_(feature) || entry;
|
|
540
539
|
if (entry) {
|
|
@@ -566,6 +565,26 @@ class MixedGeometryBatch {
|
|
|
566
565
|
getFeatureFromRef(ref) {
|
|
567
566
|
return this.refToFeature_.get(ref);
|
|
568
567
|
}
|
|
568
|
+
|
|
569
|
+
isEmpty() {
|
|
570
|
+
return this.globalCounter_ === 0;
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
/**
|
|
574
|
+
* Will return a new instance of this class that only contains the features
|
|
575
|
+
* for which the provided callback returned true
|
|
576
|
+
* @param {function((Feature|RenderFeature)): boolean} featureFilter Feature filter callback
|
|
577
|
+
* @return {MixedGeometryBatch} Filtered geometry batch
|
|
578
|
+
*/
|
|
579
|
+
filter(featureFilter) {
|
|
580
|
+
const filtered = new MixedGeometryBatch();
|
|
581
|
+
for (const feature of this.refToFeature_.values()) {
|
|
582
|
+
if (featureFilter(feature)) {
|
|
583
|
+
filtered.addFeature(feature);
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
return filtered;
|
|
587
|
+
}
|
|
569
588
|
}
|
|
570
589
|
|
|
571
590
|
/**
|
|
@@ -177,8 +177,9 @@ declare class VectorStyleRenderer {
|
|
|
177
177
|
* @param {import('../../style/flat.js').StyleVariables} variables Style variables
|
|
178
178
|
* @param {import('../../webgl/Helper.js').default} helper Helper
|
|
179
179
|
* @param {boolean} [enableHitDetection] Whether to enable the hit detection (needs compatible shader)
|
|
180
|
+
* @param {import("../../expr/expression.js").ExpressionValue} [filter] Optional filter expression
|
|
180
181
|
*/
|
|
181
|
-
constructor(styleOrShaders: VectorStyle, variables: import("../../style/flat.js").StyleVariables, helper: import("../../webgl/Helper.js").default, enableHitDetection?: boolean);
|
|
182
|
+
constructor(styleOrShaders: VectorStyle, variables: import("../../style/flat.js").StyleVariables, helper: import("../../webgl/Helper.js").default, enableHitDetection?: boolean, filter?: import("../../expr/expression.js").ExpressionValue);
|
|
182
183
|
/**
|
|
183
184
|
* @private
|
|
184
185
|
* @type {import('../../webgl/Helper.js').default}
|
|
@@ -242,6 +243,11 @@ declare class VectorStyleRenderer {
|
|
|
242
243
|
* @private
|
|
243
244
|
*/
|
|
244
245
|
private symbolFragmentShader_;
|
|
246
|
+
/**
|
|
247
|
+
* @type {function(import('../../Feature.js').FeatureLike): boolean}
|
|
248
|
+
* @private
|
|
249
|
+
*/
|
|
250
|
+
private featureFilter_;
|
|
245
251
|
/**
|
|
246
252
|
* @private
|
|
247
253
|
*/
|
|
@@ -265,12 +271,19 @@ declare class VectorStyleRenderer {
|
|
|
265
271
|
* @private
|
|
266
272
|
*/
|
|
267
273
|
private pointAttributesDesc_;
|
|
274
|
+
/**
|
|
275
|
+
* Will apply the style filter when generating geometry batches (if it can be evaluated outside a map context)
|
|
276
|
+
* @param {import("../../expr/expression.js").ExpressionValue} filter Style filter
|
|
277
|
+
* @return {function(import('../../Feature.js').FeatureLike): boolean} Feature filter
|
|
278
|
+
* @private
|
|
279
|
+
*/
|
|
280
|
+
private computeFeatureFilter;
|
|
268
281
|
/**
|
|
269
282
|
* @param {import('./MixedGeometryBatch.js').default} geometryBatch Geometry batch
|
|
270
283
|
* @param {import("../../transform.js").Transform} transform Transform to apply to coordinates
|
|
271
|
-
* @return {Promise<WebGLBuffers>} A promise resolving to WebGL buffers
|
|
284
|
+
* @return {Promise<WebGLBuffers|null>} A promise resolving to WebGL buffers; returns null if buffers are empty
|
|
272
285
|
*/
|
|
273
|
-
generateBuffers(geometryBatch: import("./MixedGeometryBatch.js").default, transform: import("../../transform.js").Transform): Promise<WebGLBuffers>;
|
|
286
|
+
generateBuffers(geometryBatch: import("./MixedGeometryBatch.js").default, transform: import("../../transform.js").Transform): Promise<WebGLBuffers | null>;
|
|
274
287
|
/**
|
|
275
288
|
* @param {import('./MixedGeometryBatch.js').default} geometryBatch Geometry batch
|
|
276
289
|
* @param {import("../../transform.js").Transform} transform Transform to apply to coordinates
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VectorStyleRenderer.d.ts","sourceRoot":"","sources":["VectorStyleRenderer.js"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"VectorStyleRenderer.d.ts","sourceRoot":"","sources":["VectorStyleRenderer.js"],"names":[],"mappings":";;;;yBAyCU,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;cAmBF,CAAS,IAAwD,EAAnD,OAAO,yBAAyB,EAAE,iBAAiB,EAAE,IAAmC,EAAnC,OAAO,eAAe,EAAE,WAAW,KAAE,MAAM,GAAC,KAAK,CAAC,MAAM,CAAC;;;;;;;;;;;;oBAW5H,KAAK,CAAC,gBAAgB,CAAC;;;;uBACvB,KAAK,CAAC,gBAAgB,CAAC;;;;kBACvB,KAAK,CAAC,gBAAgB,CAAC;;;;6BACvB,OAAO,oBAAoB,EAAE,SAAS;;;;;;yBAKtC,YAAY,GAAC,IAAI;;;;4BACjB,YAAY,GAAC,IAAI;;;;uBACjB,YAAY,GAAC,IAAI;;;;;;;;;YAKjB,MAAM;;;;cACN,MAAM;;;;;;aAKN,OAAO,8BAA8B,EAAE,aAAa;;;;;;;;;;;;;;;;;;;WAQpD,OAAO,qBAAqB,EAAE,SAAS;;;;;;0BAKxC,MAAM,GAAC,SAAS;AAlD7B;;;;;;;GAOG;AAEH;;;GAGG;AAEH;;;;;;GAMG;AAEH;;;;;GAKG;AAEH;;;;GAIG;AAEH;;;;;;GAMG;AAEH;;;;GAIG;AAEH;;GAEG;AAEH;;;;;;;;;;;;;GAaG;AACH;IACE;;;;;;OAMG;IACH,4BANW,WAAW,aACX,OAAO,qBAAqB,EAAE,cAAc,UAC5C,OAAO,uBAAuB,EAAE,OAAO,uBACvC,OAAO,WACP,OAAO,0BAA0B,EAAE,eAAe,EAiN5D;IA9MC;;;OAGG;IACH,gBAAY;IAEZ;;OAEG;IACH,6BAAgD;IAkBhD;;;OAGG;IACH,qBAAiB;IAEjB;;;OAGG;IACH,uBAAmB;IAEnB;;;OAGG;IACH,uBAAmB;IAEnB;;;OAGG;IACH,iBAAyD;IAEvD;;OAEG;IACH,0BAAgE;IAChE;;OAEG;IACH,4BAAoE;IAGtE;;;OAGG;IACH,mBAA6D;IAE3D;;OAEG;IACH,4BAAoE;IACpE;;OAEG;IACH,8BAAwE;IAG1E;;;OAGG;IACH,mBAA6D;IAE3D;;OAEG;IACH,4BAAoE;IACpE;;OAEG;IACH,8BAAwE;IAG1E;;;OAGG;IACH,uBAA0B;IAgB1B;;OAEG;IACH,0BAIC;IACD;;OAEG;IACH,kBAAmC;IASnC;;;OAGG;IACH,+BAOC;IACD;;;OAGG;IACH,kCAqCC;IACD;;;OAGG;IACH,6BAYC;IAKH;;;;;OAKG;IACH,6BAgCC;IAED;;;;OAIG;IACH,+BAJW,OAAO,yBAAyB,EAAE,OAAO,aACzC,OAAO,oBAAoB,EAAE,SAAS,GACrC,OAAO,CAAC,YAAY,GAAC,IAAI,CAAC,CA4CrC;IAED;;;;;OAKG;IACH,oCA+BC;IAED;;;;;;OAMG;IACH,gCAwEC;IAED;;;;;OAKG;IACH,gBAJW,YAAY,cACZ,OAAO,cAAc,EAAE,UAAU,qBACjC,MAAY,IAAI,QA8B1B;IAED;;;;;;;;OAQG;IACH,wBAkBC;IAED;;;OAGG;IACH,kBAHW,OAAO,uBAAuB,EAAE,OAAO,YACvC,YAAY,QAuCtB;CACF;6BAloB4B,uBAAuB"}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module ol/render/webgl/VectorStyleRenderer
|
|
3
3
|
*/
|
|
4
|
+
import {buildExpression, newEvaluationContext} from '../../expr/cpu.js';
|
|
5
|
+
import {
|
|
6
|
+
BooleanType,
|
|
7
|
+
computeGeometryType,
|
|
8
|
+
newParsingContext,
|
|
9
|
+
} from '../../expr/expression.js';
|
|
4
10
|
import {
|
|
5
11
|
create as createTransform,
|
|
6
12
|
makeInverse as makeInverseTransform,
|
|
@@ -120,8 +126,9 @@ class VectorStyleRenderer {
|
|
|
120
126
|
* @param {import('../../style/flat.js').StyleVariables} variables Style variables
|
|
121
127
|
* @param {import('../../webgl/Helper.js').default} helper Helper
|
|
122
128
|
* @param {boolean} [enableHitDetection] Whether to enable the hit detection (needs compatible shader)
|
|
129
|
+
* @param {import("../../expr/expression.js").ExpressionValue} [filter] Optional filter expression
|
|
123
130
|
*/
|
|
124
|
-
constructor(styleOrShaders, variables, helper, enableHitDetection) {
|
|
131
|
+
constructor(styleOrShaders, variables, helper, enableHitDetection, filter) {
|
|
125
132
|
/**
|
|
126
133
|
* @private
|
|
127
134
|
* @type {import('../../webgl/Helper.js').default}
|
|
@@ -215,6 +222,15 @@ class VectorStyleRenderer {
|
|
|
215
222
|
this.symbolFragmentShader_ = asShaders.builder.getSymbolFragmentShader();
|
|
216
223
|
}
|
|
217
224
|
|
|
225
|
+
/**
|
|
226
|
+
* @type {function(import('../../Feature.js').FeatureLike): boolean}
|
|
227
|
+
* @private
|
|
228
|
+
*/
|
|
229
|
+
this.featureFilter_ = null;
|
|
230
|
+
if (filter) {
|
|
231
|
+
this.featureFilter_ = this.computeFeatureFilter(filter);
|
|
232
|
+
}
|
|
233
|
+
|
|
218
234
|
const hitDetectionAttributes = this.hitDetectionEnabled_
|
|
219
235
|
? {
|
|
220
236
|
hitColor: {
|
|
@@ -321,14 +337,61 @@ class VectorStyleRenderer {
|
|
|
321
337
|
this.setHelper(helper);
|
|
322
338
|
}
|
|
323
339
|
|
|
340
|
+
/**
|
|
341
|
+
* Will apply the style filter when generating geometry batches (if it can be evaluated outside a map context)
|
|
342
|
+
* @param {import("../../expr/expression.js").ExpressionValue} filter Style filter
|
|
343
|
+
* @return {function(import('../../Feature.js').FeatureLike): boolean} Feature filter
|
|
344
|
+
* @private
|
|
345
|
+
*/
|
|
346
|
+
computeFeatureFilter(filter) {
|
|
347
|
+
const parsingContext = newParsingContext();
|
|
348
|
+
/**
|
|
349
|
+
* @type {import('../../expr/cpu.js').ExpressionEvaluator}
|
|
350
|
+
*/
|
|
351
|
+
let compiled;
|
|
352
|
+
try {
|
|
353
|
+
compiled = buildExpression(filter, BooleanType, parsingContext);
|
|
354
|
+
} catch {
|
|
355
|
+
// filter expression failed to compile for CPU: ignore it
|
|
356
|
+
return null;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
// do not apply the filter if it depends on map state (e.g. zoom level) or any variable
|
|
360
|
+
if (parsingContext.mapState || parsingContext.variables.size > 0) {
|
|
361
|
+
return null;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
const evalContext = newEvaluationContext();
|
|
365
|
+
return (feature) => {
|
|
366
|
+
evalContext.properties = feature.getPropertiesInternal();
|
|
367
|
+
if (parsingContext.featureId) {
|
|
368
|
+
const id = feature.getId();
|
|
369
|
+
if (id !== undefined) {
|
|
370
|
+
evalContext.featureId = id;
|
|
371
|
+
} else {
|
|
372
|
+
evalContext.featureId = null;
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
evalContext.geometryType = computeGeometryType(feature.getGeometry());
|
|
376
|
+
return /** @type {boolean} */ (compiled(evalContext));
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
|
|
324
380
|
/**
|
|
325
381
|
* @param {import('./MixedGeometryBatch.js').default} geometryBatch Geometry batch
|
|
326
382
|
* @param {import("../../transform.js").Transform} transform Transform to apply to coordinates
|
|
327
|
-
* @return {Promise<WebGLBuffers>} A promise resolving to WebGL buffers
|
|
383
|
+
* @return {Promise<WebGLBuffers|null>} A promise resolving to WebGL buffers; returns null if buffers are empty
|
|
328
384
|
*/
|
|
329
385
|
async generateBuffers(geometryBatch, transform) {
|
|
386
|
+
let filteredBatch = geometryBatch;
|
|
387
|
+
if (this.featureFilter_) {
|
|
388
|
+
filteredBatch = filteredBatch.filter(this.featureFilter_);
|
|
389
|
+
if (filteredBatch.isEmpty()) {
|
|
390
|
+
return null;
|
|
391
|
+
}
|
|
392
|
+
}
|
|
330
393
|
const renderInstructions = this.generateRenderInstructions_(
|
|
331
|
-
|
|
394
|
+
filteredBatch,
|
|
332
395
|
transform,
|
|
333
396
|
);
|
|
334
397
|
const [polygonBuffers, lineStringBuffers, pointBuffers] = await Promise.all(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VectorLayer.d.ts","sourceRoot":"","sources":["VectorLayer.js"],"names":[],"mappings":"AAmCA;;;;;;;;;;;;;EAKE;;6BAGW,OAAO,2CAA2C,EAAE,SAAS;0BAG7D,OAAO,2CAA2C,EAAE,MAAM;;;;;;;;;WAMzD,OAAO,qBAAqB,EAAE,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,cAAc;;;;;;;;;;;;;;;;;AAVlG;;GAEG;AACH;;GAEG;AAEH;;;;;;;;GAQG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH;IACE;;;OAGG;IACH,mBAHW,OAAO,sBAAsB,EAAE,OAAO,WACtC,OAAO,EA0GjB;IA5FC;;;OAGG;IACH,6BAAwD;IAExD;;;OAGG;IACH,yBAAqB;IAErB;;OAEG;IACH,wBAAyB;IAEzB;;OAEG;IACH,wBAAoC;IAEpC;;;;;;OAMG;IACH,0BAA0C;IAE1C;;OAEG;IACH,mBAAwB;IACxB;;OAEG;IACH,sBAAsC;IACtC;;OAEG;IACH,iBAA4B;IAE5B;;;OAGG;IACH,oCAAoD;IAEpD;;;OAGG;IACH,wBAAyB;IAEzB;;;OAGG;IACH,gBAAiB;IAEjB;;;OAGG;IACH,wBAAyB;IAEzB;;;OAGG;IACH,iBAAkB;IAIlB;;OAEG;IACH,eAAsC;IAEtC;;;OAGG;IACH,8BAAkC;IAElC;;;OAGG;IACH,0BAA6B;IAG/B;;;OAGG;IACH,4BAoCC;IAED;;;OAGG;IACH,sBAGC;IAED;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"VectorLayer.d.ts","sourceRoot":"","sources":["VectorLayer.js"],"names":[],"mappings":"AAmCA;;;;;;;;;;;;;EAKE;;6BAGW,OAAO,2CAA2C,EAAE,SAAS;0BAG7D,OAAO,2CAA2C,EAAE,MAAM;;;;;;;;;WAMzD,OAAO,qBAAqB,EAAE,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,cAAc;;;;;;;;;;;;;;;;;AAVlG;;GAEG;AACH;;GAEG;AAEH;;;;;;;;GAQG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH;IACE;;;OAGG;IACH,mBAHW,OAAO,sBAAsB,EAAE,OAAO,WACtC,OAAO,EA0GjB;IA5FC;;;OAGG;IACH,6BAAwD;IAExD;;;OAGG;IACH,yBAAqB;IAErB;;OAEG;IACH,wBAAyB;IAEzB;;OAEG;IACH,wBAAoC;IAEpC;;;;;;OAMG;IACH,0BAA0C;IAE1C;;OAEG;IACH,mBAAwB;IACxB;;OAEG;IACH,sBAAsC;IACtC;;OAEG;IACH,iBAA4B;IAE5B;;;OAGG;IACH,oCAAoD;IAEpD;;;OAGG;IACH,wBAAyB;IAEzB;;;OAGG;IACH,gBAAiB;IAEjB;;;OAGG;IACH,wBAAyB;IAEzB;;;OAGG;IACH,iBAAkB;IAIlB;;OAEG;IACH,eAAsC;IAEtC;;;OAGG;IACH,8BAAkC;IAElC;;;OAGG;IACH,0BAA6B;IAG/B;;;OAGG;IACH,4BAoCC;IAED;;;OAGG;IACH,sBAGC;IAED;;OAEG;IACH,yBAYC;IAED;;OAEG;IACH,mCAMC;IAoBD;;;;OAIG;IACH,kCAGC;IAED;;;OAGG;IACH,oCAGC;IAED;;;OAGG;IACH,mCAGC;IAED;;OAEG;IACH,kCAEC;IAED;;;OAGG;IACH,uBAsBC;IAED;;;;;OAKG;IACH,iCAJW,OAAO,cAAc,EAAE,UAAU,GAChC,WAAW,CA+BtB;IAwED;;;;;;;OAOG;IACH,yBANW,OAAO,cAAc,EAAE,UAAU,mBACjC,OAAO,cACP,MAAM,YACN,MAAM,cACN,MAAM,QAuChB;IA0CD;;;OAGG;IACH,wBAFW,OAAO,2CAA2C,EAAE,YAAY,QAsB1E;CAoBF;+BAziB8B,YAAY"}
|