ol 10.4.1-dev.1742588748444 → 10.4.1-dev.1742845130862
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.d.ts +2 -0
- package/dist/ol.d.ts.map +1 -1
- package/dist/ol.js +1 -1
- package/dist/ol.js.map +1 -1
- package/expr/expression.d.ts +1 -0
- package/expr/expression.d.ts.map +1 -1
- package/expr/expression.js +1 -0
- package/expr/gpu.d.ts +4 -0
- package/expr/gpu.d.ts.map +1 -1
- package/expr/gpu.js +17 -0
- package/package.json +1 -1
- package/render/webgl/renderinstructions.d.ts.map +1 -1
- package/render/webgl/renderinstructions.js +11 -1
- package/util.js +1 -1
package/expr/expression.d.ts
CHANGED
|
@@ -203,6 +203,7 @@ export type ArgValidator = (arg0: Array<EncodedExpression>, arg1: number, arg2:
|
|
|
203
203
|
* * `['any', value1, value2, ...]` returns `true` if any of the inputs are `true`, `false` otherwise.
|
|
204
204
|
* * `['has', attributeName, keyOrArrayIndex, ...]` returns `true` if feature properties include the (nested) key `attributeName`,
|
|
205
205
|
* `false` otherwise.
|
|
206
|
+
* Note that for WebGL layers, the hardcoded value `-9999999` is used to distinguish when a property is not defined.
|
|
206
207
|
* * `['between', value1, value2, value3]` returns `true` if `value1` is contained between `value2` and `value3`
|
|
207
208
|
* (inclusively), or `false` otherwise.
|
|
208
209
|
* * `['in', needle, haystack]` returns `true` if `needle` is found in `haystack`, and
|
package/expr/expression.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["expression.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["expression.js"],"names":[],"mappings":"AAqKA;;;;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
|
@@ -96,6 +96,7 @@ import {toSize} from '../size.js';
|
|
|
96
96
|
* * `['any', value1, value2, ...]` returns `true` if any of the inputs are `true`, `false` otherwise.
|
|
97
97
|
* * `['has', attributeName, keyOrArrayIndex, ...]` returns `true` if feature properties include the (nested) key `attributeName`,
|
|
98
98
|
* `false` otherwise.
|
|
99
|
+
* Note that for WebGL layers, the hardcoded value `-9999999` is used to distinguish when a property is not defined.
|
|
99
100
|
* * `['between', value1, value2, value3]` returns `true` if `value1` is contained between `value2` and `value3`
|
|
100
101
|
* (inclusively), or `false` otherwise.
|
|
101
102
|
* * `['in', needle, haystack]` returns `true` if `needle` is found in `haystack`, and
|
package/expr/gpu.d.ts
CHANGED
|
@@ -97,6 +97,10 @@ export function buildExpression(encoded: import("./expression.js").EncodedExpres
|
|
|
97
97
|
export const PALETTE_TEXTURE_ARRAY: "u_paletteTextures";
|
|
98
98
|
export const FEATURE_ID_PROPERTY_NAME: "featureId";
|
|
99
99
|
export const GEOMETRY_TYPE_PROPERTY_NAME: "geometryType";
|
|
100
|
+
/**
|
|
101
|
+
* The value `-9999999` will be used to indicate that a property on a feature is not defined, similar to a "no data" value.
|
|
102
|
+
*/
|
|
103
|
+
export const UNDEFINED_PROP_VALUE: -9999999;
|
|
100
104
|
export type ParsingContext = import("./expression.js").ParsingContext;
|
|
101
105
|
export type Expression = import("./expression.js").Expression;
|
|
102
106
|
export type LiteralExpression = import("./expression.js").LiteralExpression;
|
package/expr/gpu.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gpu.d.ts","sourceRoot":"","sources":["gpu.js"],"names":[],"mappings":"AA6BA;;;;GAIG;AACH,gCAHW,MAAM,GACL,MAAM,CAKjB;AAED;;;;GAIG;AACH,mCAHW,KAAK,CAAC,MAAM,CAAC,GACZ,MAAM,CASjB;AAED;;;;;;GAMG;AACH,mCALW,MAAM,GAAC,OAAO,aAAa,EAAE,KAAK,GAGjC,MAAM,CAMjB;AAED;;;;GAIG;AACH,iCAHW,MAAM,GAAC,OAAO,YAAY,EAAE,IAAI,GAC/B,MAAM,CAKjB;AAMD;;;;GAIG;AACH,kDAHW,MAAM,GACL,MAAM,CAOjB;AAED;;;;;;GAMG;AACH,qCAHW,MAAM,GACL,MAAM,CAIjB;AAED;;;;GAIG;AACH,qDAHW,MAAM,GACL,MAAM,CAIjB;AAED;;GAEG;AACH;;;GAGG;AACH;;;GAGG;AAEH;;;;GAIG;AAEH;;;;GAIG;AAEH;;;;;;;;;GASG;AAEH;;GAEG;AACH,yCAFY,kBAAkB,CAW7B;
|
|
1
|
+
{"version":3,"file":"gpu.d.ts","sourceRoot":"","sources":["gpu.js"],"names":[],"mappings":"AA6BA;;;;GAIG;AACH,gCAHW,MAAM,GACL,MAAM,CAKjB;AAED;;;;GAIG;AACH,mCAHW,KAAK,CAAC,MAAM,CAAC,GACZ,MAAM,CASjB;AAED;;;;;;GAMG;AACH,mCALW,MAAM,GAAC,OAAO,aAAa,EAAE,KAAK,GAGjC,MAAM,CAMjB;AAED;;;;GAIG;AACH,iCAHW,MAAM,GAAC,OAAO,YAAY,EAAE,IAAI,GAC/B,MAAM,CAKjB;AAMD;;;;GAIG;AACH,kDAHW,MAAM,GACL,MAAM,CAOjB;AAED;;;;;;GAMG;AACH,qCAHW,MAAM,GACL,MAAM,CAIjB;AAED;;;;GAIG;AACH,qDAHW,MAAM,GACL,MAAM,CAIjB;AAED;;GAEG;AACH;;;GAGG;AACH;;;GAGG;AAEH;;;;GAIG;AAEH;;;;GAIG;AAEH;;;;;;;;;GASG;AAEH;;GAEG;AACH,yCAFY,kBAAkB,CAW7B;AAcD;;GAEG;AAEH;;;GAGG;AAEH;;;;;;GAMG;AACH,yCANW,OAAO,iBAAiB,EAAE,iBAAiB,QAC3C,MAAM,kBACN,OAAO,iBAAiB,EAAE,cAAc,sBACxC,kBAAkB,GACjB,kBAAkB,CAU7B;AAlCD,oCAAqC,mBAAmB,CAAC;AAEzD,uCAAwC,WAAW,CAAC;AACpD,0CAA2C,cAAc,CAAC;AAE1D;;GAEG;AACH,mCAAoC,CAAC,OAAO,CAAC;6BA1DhC,OAAO,iBAAiB,EAAE,cAAc;yBAIxC,OAAO,iBAAiB,EAAE,UAAU;gCAIpC,OAAO,iBAAiB,EAAE,iBAAiB;;;;;UAK1C,MAAM;;;;UACN,MAAM;;;;;;UAKN,MAAM;;;;UACN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAUN,OAAO;;;;kBACP,OAAO;;iCA8BR,MAAM;;;;uBAIN,CAAS,IAAkB,EAAlB,kBAAkB,EAAE,IAAc,EAAd,cAAc,EAAE,IAAM,EAAN,MAAM,KAAG,MAAM;2BA5K9C,4BAA4B;+BAYhD,iBAAiB"}
|
package/expr/gpu.js
CHANGED
|
@@ -166,6 +166,11 @@ export const PALETTE_TEXTURE_ARRAY = 'u_paletteTextures';
|
|
|
166
166
|
export const FEATURE_ID_PROPERTY_NAME = 'featureId';
|
|
167
167
|
export const GEOMETRY_TYPE_PROPERTY_NAME = 'geometryType';
|
|
168
168
|
|
|
169
|
+
/**
|
|
170
|
+
* The value `-9999999` will be used to indicate that a property on a feature is not defined, similar to a "no data" value.
|
|
171
|
+
*/
|
|
172
|
+
export const UNDEFINED_PROP_VALUE = -9999999;
|
|
173
|
+
|
|
169
174
|
/**
|
|
170
175
|
* @typedef {string} CompiledExpression
|
|
171
176
|
*/
|
|
@@ -244,6 +249,18 @@ const compilers = {
|
|
|
244
249
|
}
|
|
245
250
|
return uniformNameForVariable(varName);
|
|
246
251
|
},
|
|
252
|
+
[Ops.Has]: (context, expression) => {
|
|
253
|
+
const firstArg = /** @type {LiteralExpression} */ (expression.args[0]);
|
|
254
|
+
const propName = /** @type {string} */ (firstArg.value);
|
|
255
|
+
const isExisting = propName in context.properties;
|
|
256
|
+
if (!isExisting) {
|
|
257
|
+
context.properties[propName] = {
|
|
258
|
+
name: propName,
|
|
259
|
+
type: expression.type,
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
return `(a_prop_${propName} != ${numberToGlsl(UNDEFINED_PROP_VALUE)})`;
|
|
263
|
+
},
|
|
247
264
|
[Ops.Resolution]: () => 'u_resolution',
|
|
248
265
|
[Ops.Zoom]: () => 'u_zoom',
|
|
249
266
|
[Ops.Time]: () => 'u_time',
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderinstructions.d.ts","sourceRoot":"","sources":["renderinstructions.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"renderinstructions.d.ts","sourceRoot":"","sources":["renderinstructions.js"],"names":[],"mappings":"AAkDA;;;GAGG;AACH,0DAHW,OAAO,0BAA0B,EAAE,oBAAoB,GACtD,MAAM,CAOjB;AAED;;;;;;;;GAQG;AACH,uDANW,OAAO,yBAAyB,EAAE,kBAAkB,sBACpD,YAAY,oBACZ,OAAO,0BAA0B,EAAE,oBAAoB,aACvD,OAAO,oBAAoB,EAAE,SAAS,GACrC,YAAY,CAyCvB;AAED;;;;;;;;GAQG;AACH,4DANW,OAAO,yBAAyB,EAAE,uBAAuB,sBACzD,YAAY,oBACZ,OAAO,0BAA0B,EAAE,oBAAoB,aACvD,OAAO,oBAAoB,EAAE,SAAS,GACrC,YAAY,CAyDvB;AAED;;;;;;;;GAQG;AACH,yDANW,OAAO,yBAAyB,EAAE,oBAAoB,sBACtD,YAAY,oBACZ,OAAO,0BAA0B,EAAE,oBAAoB,aACvD,OAAO,oBAAoB,EAAE,SAAS,GACrC,YAAY,CAoEvB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module ol/render/webgl/renderinstructions
|
|
3
3
|
*/
|
|
4
|
+
import {UNDEFINED_PROP_VALUE} from '../../expr/gpu.js';
|
|
4
5
|
import {transform2D} from '../../geom/flat/transform.js';
|
|
5
6
|
import {apply as applyTransform} from '../../transform.js';
|
|
6
7
|
|
|
@@ -21,7 +22,16 @@ function pushCustomAttributesInRenderInstructions(
|
|
|
21
22
|
for (const key in customAttributes) {
|
|
22
23
|
const attr = customAttributes[key];
|
|
23
24
|
const value = attr.callback.call(batchEntry, batchEntry.feature);
|
|
24
|
-
|
|
25
|
+
let first = value?.[0] ?? value;
|
|
26
|
+
if (first === UNDEFINED_PROP_VALUE) {
|
|
27
|
+
console.warn('The "has" operator might return false positives.'); // eslint-disable-line no-console
|
|
28
|
+
}
|
|
29
|
+
if (first === undefined) {
|
|
30
|
+
first = UNDEFINED_PROP_VALUE;
|
|
31
|
+
} else if (first === null) {
|
|
32
|
+
first = 0;
|
|
33
|
+
}
|
|
34
|
+
renderInstructions[currentIndex + shift++] = first;
|
|
25
35
|
if (!attr.size || attr.size === 1) {
|
|
26
36
|
continue;
|
|
27
37
|
}
|
package/util.js
CHANGED