@massif-maps/style-tools 6.1.0-rc.1
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/README.md +58 -0
- package/dist/cli.js +436 -0
- package/dist/cli.js.map +1 -0
- package/dist/generated/properties.json +2488 -0
- package/dist/legend-svg.js +142 -0
- package/dist/legend-svg.js.map +1 -0
- package/dist/mapbox2css/browser-host.js +27 -0
- package/dist/mapbox2css/browser-host.js.map +1 -0
- package/dist/mapbox2css/casing.js +84 -0
- package/dist/mapbox2css/casing.js.map +1 -0
- package/dist/mapbox2css/config.js +212 -0
- package/dist/mapbox2css/config.js.map +1 -0
- package/dist/mapbox2css/contour.js +61 -0
- package/dist/mapbox2css/contour.js.map +1 -0
- package/dist/mapbox2css/coverage.js +56 -0
- package/dist/mapbox2css/coverage.js.map +1 -0
- package/dist/mapbox2css/emissive.js +192 -0
- package/dist/mapbox2css/emissive.js.map +1 -0
- package/dist/mapbox2css/expression.js +606 -0
- package/dist/mapbox2css/expression.js.map +1 -0
- package/dist/mapbox2css/filter.js +285 -0
- package/dist/mapbox2css/filter.js.map +1 -0
- package/dist/mapbox2css/fold.js +588 -0
- package/dist/mapbox2css/fold.js.map +1 -0
- package/dist/mapbox2css/host.js +13 -0
- package/dist/mapbox2css/host.js.map +1 -0
- package/dist/mapbox2css/index.js +3599 -0
- package/dist/mapbox2css/index.js.map +1 -0
- package/dist/mapbox2css/narrow.js +284 -0
- package/dist/mapbox2css/narrow.js.map +1 -0
- package/dist/mapbox2css/node-host.js +36 -0
- package/dist/mapbox2css/node-host.js.map +1 -0
- package/dist/mapbox2css/placement.js +62 -0
- package/dist/mapbox2css/placement.js.map +1 -0
- package/dist/mapbox2css/png.js +264 -0
- package/dist/mapbox2css/png.js.map +1 -0
- package/dist/mapbox2css/properties.js +155 -0
- package/dist/mapbox2css/properties.js.map +1 -0
- package/dist/mapbox2css/schema.js +865 -0
- package/dist/mapbox2css/schema.js.map +1 -0
- package/dist/mapbox2css/shield.js +118 -0
- package/dist/mapbox2css/shield.js.map +1 -0
- package/dist/mapbox2css/split.js +380 -0
- package/dist/mapbox2css/split.js.map +1 -0
- package/dist/mapbox2css/sprite.js +882 -0
- package/dist/mapbox2css/sprite.js.map +1 -0
- package/dist/mapbox2css/types.js +2 -0
- package/dist/mapbox2css/types.js.map +1 -0
- package/dist/mapbox2css/variables.js +273 -0
- package/dist/mapbox2css/variables.js.map +1 -0
- package/dist/wasm.js +43 -0
- package/dist/wasm.js.map +1 -0
- package/package.json +48 -0
- package/wasm/massif-style.mjs +2 -0
- package/wasm/massif-style.wasm +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/mapbox2css/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { readsFeature } from './split.js';
|
|
2
|
+
/**
|
|
3
|
+
* A road shield is a sprite BEHIND its text, tinted by icon-color, with icon-halo-* as its border -
|
|
4
|
+
* and the sprite is picked per feature (`concat('road_', to-string([ref_length]))`). Where that
|
|
5
|
+
* name can be spelled as a path mapnik interpolates, the real artwork is drawn and none of this
|
|
6
|
+
* applies. What is left here is the FALLBACK, for a name CartoCSS cannot assemble (`slice`, say):
|
|
7
|
+
* `text-background-*` is a rounded plate behind the label, so icon-color becomes the plate and the
|
|
8
|
+
* icon halo its border.
|
|
9
|
+
*
|
|
10
|
+
* The signal is the sprite name reading the FEATURE. A POI icon does that too, but its text sits
|
|
11
|
+
* below the icon (`text-anchor: top`, `text-offset: [0, 0.8]`) rather than on it, and a town's
|
|
12
|
+
* circle is picked by ZOOM, not by the feature - so neither is mistaken for a plate.
|
|
13
|
+
*/
|
|
14
|
+
const CENTRED_OFFSET_EMS = 0.3;
|
|
15
|
+
/** The plate's corner rounding. MapBox carries it in the sprite, so there is nothing to read. */
|
|
16
|
+
const PLATE_RADIUS = 2;
|
|
17
|
+
/**
|
|
18
|
+
* Can the sprite NAME be spelled out per feature? Mirrors what iconExpression builds: a file path
|
|
19
|
+
* carries every `[field]` mapnik interpolates, so a name assembled from literals and fields is
|
|
20
|
+
* resolvable however many fields it reads, and a case only needs each of its branches to be.
|
|
21
|
+
*/
|
|
22
|
+
export function canSpellIconName(image) {
|
|
23
|
+
if (typeof image === 'string')
|
|
24
|
+
return true;
|
|
25
|
+
if (!Array.isArray(image))
|
|
26
|
+
return false;
|
|
27
|
+
const head = image[0];
|
|
28
|
+
if (head === 'image' || head === 'to-string')
|
|
29
|
+
return canSpellIconName(image[1]);
|
|
30
|
+
if (head === 'get')
|
|
31
|
+
return typeof image[1] === 'string';
|
|
32
|
+
if (head === 'coalesce')
|
|
33
|
+
return image.slice(1).some((b) => canSpellIconName(b));
|
|
34
|
+
if (head === 'concat') {
|
|
35
|
+
return image.slice(1).every((part) => {
|
|
36
|
+
let piece = part;
|
|
37
|
+
while (Array.isArray(piece) && piece[0] === 'to-string')
|
|
38
|
+
piece = piece[1];
|
|
39
|
+
if (typeof piece === 'string' || typeof piece === 'number')
|
|
40
|
+
return true;
|
|
41
|
+
return Array.isArray(piece) && piece[0] === 'get' && typeof piece[1] === 'string';
|
|
42
|
+
}) || (typeof image[1] === 'string' && /:$/.test(image[1]) && image.length === 3
|
|
43
|
+
&& canSpellIconName(image[2]));
|
|
44
|
+
}
|
|
45
|
+
if (head === 'case' && image.length >= 4 && image.length % 2 === 0) {
|
|
46
|
+
for (let i = 2; i < image.length; i += 2)
|
|
47
|
+
if (!canSpellIconName(image[i]))
|
|
48
|
+
return false;
|
|
49
|
+
return canSpellIconName(image[image.length - 1]);
|
|
50
|
+
}
|
|
51
|
+
if (head === 'match' && image.length >= 5 && image.length % 2 === 1) {
|
|
52
|
+
for (let i = 3; i < image.length; i += 2)
|
|
53
|
+
if (!canSpellIconName(image[i]))
|
|
54
|
+
return false;
|
|
55
|
+
return canSpellIconName(image[image.length - 1]);
|
|
56
|
+
}
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
export function isShieldLayer(layer) {
|
|
60
|
+
const layout = layer.layout ?? {};
|
|
61
|
+
if (layer.type !== 'symbol' || layout['text-field'] === undefined)
|
|
62
|
+
return false;
|
|
63
|
+
if (!readsFeature(layout['icon-image']))
|
|
64
|
+
return false;
|
|
65
|
+
// A name that can be spelled reaches the real sprite, so there is nothing to fake.
|
|
66
|
+
if (canSpellIconName(layout['icon-image']))
|
|
67
|
+
return false;
|
|
68
|
+
// Without a colour there is no plate to draw, only a border round nothing.
|
|
69
|
+
if ((layer.paint?.['icon-color'] ?? layout['icon-color']) === undefined)
|
|
70
|
+
return false;
|
|
71
|
+
return textSitsOnIcon(layer);
|
|
72
|
+
}
|
|
73
|
+
function textSitsOnIcon(layer) {
|
|
74
|
+
const layout = layer.layout ?? {};
|
|
75
|
+
const anchor = layout['text-anchor'];
|
|
76
|
+
if (typeof anchor === 'string' && anchor !== 'center')
|
|
77
|
+
return false;
|
|
78
|
+
const offset = layout['text-offset'];
|
|
79
|
+
if (!Array.isArray(offset))
|
|
80
|
+
return true;
|
|
81
|
+
return offset.every((v) => typeof v === 'number' && Math.abs(v) <= CENTRED_OFFSET_EMS);
|
|
82
|
+
}
|
|
83
|
+
/** MapBox icon-* on the shield sprite -> the CartoCSS plate that replaces it. */
|
|
84
|
+
export const PLATE_MAP = [
|
|
85
|
+
['icon-color', 'text-background-fill'],
|
|
86
|
+
['icon-opacity', 'text-background-opacity'],
|
|
87
|
+
['icon-halo-color', 'text-background-border-fill'],
|
|
88
|
+
['icon-halo-width', 'text-background-border-width'],
|
|
89
|
+
];
|
|
90
|
+
export function plateRadius() {
|
|
91
|
+
return `text-background-radius: ${PLATE_RADIUS};`;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* MapBox draws an icon and its text as ONE symbol; a `markers` plus a `text` symbolizer are two
|
|
95
|
+
* labels that then collide, and the marker wins - which is why a city dot appeared with no name
|
|
96
|
+
* next to it. `ShieldSymbolizer` is the one-label construct, so a symbol layer that has both
|
|
97
|
+
* becomes a shield and every `text-*` declaration is renamed into it.
|
|
98
|
+
*
|
|
99
|
+
* Most names just take the prefix. These do not: `shield-dx/dy` move the IMAGE, so the text's own
|
|
100
|
+
* offset is `shield-text-dx/dy`, and a few carry the word `text` for the same reason.
|
|
101
|
+
*/
|
|
102
|
+
const SHIELD_RENAMES = {
|
|
103
|
+
'text-dx': 'shield-text-dx',
|
|
104
|
+
'text-dy': 'shield-text-dy',
|
|
105
|
+
'text-opacity': 'shield-text-opacity',
|
|
106
|
+
'text-transform': 'shield-text-transform',
|
|
107
|
+
'text-name': 'shield-name',
|
|
108
|
+
};
|
|
109
|
+
/** A text declaration as the shield spells it, or null when the shield has no equivalent. */
|
|
110
|
+
export function asShieldDeclaration(declaration) {
|
|
111
|
+
const colon = declaration.indexOf(':');
|
|
112
|
+
const name = declaration.slice(0, colon);
|
|
113
|
+
if (!name.startsWith('text-'))
|
|
114
|
+
return declaration;
|
|
115
|
+
const renamed = SHIELD_RENAMES[name] ?? `shield-${name.slice('text-'.length)}`;
|
|
116
|
+
return `${renamed}${declaration.slice(colon)}`;
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=shield.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shield.js","sourceRoot":"","sources":["../../src/mapbox2css/shield.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
import { translateFilter } from './filter.js';
|
|
2
|
+
import { closedSets, narrowLayer } from './narrow.js';
|
|
3
|
+
/**
|
|
4
|
+
* Two properties have to be split into per-branch attachments rather than left as a field-driven
|
|
5
|
+
* expression, and both for the same reason: they name a RESOURCE, not a value.
|
|
6
|
+
*
|
|
7
|
+
* **`icon-image`** has to name one file, so splitting is what turns
|
|
8
|
+
* `match(subclass, 'international', 'airport', …)` into attachments that each have a real icon.
|
|
9
|
+
* **`text-font`** has to name one face: the symbolizer resolves it to a loaded `vt::Font` when it
|
|
10
|
+
* builds the formatter for the rule, so an unsplit `match` left the face literally named `match`
|
|
11
|
+
* and every label fell back to the default font.
|
|
12
|
+
*
|
|
13
|
+
* **Nothing else does.** A property value that reads a feature field is evaluated per feature:
|
|
14
|
+
* `GenericFunctionProperty::getFunction` rebuilds the function from the bound context whenever the
|
|
15
|
+
* expression has context variables, and only memoises when it does not.
|
|
16
|
+
*
|
|
17
|
+
* This used to cast a much wider net, on the strength of a measurement: two `line-color`
|
|
18
|
+
* declarations reading `[class]` and `[paved]` produced `Color parsing failed` and lost their whole
|
|
19
|
+
* rule for that tile. Re-measured on the same style at the same camera with a cold cache, it is
|
|
20
|
+
* **0** - and a plate colour reading `[iso_a2]` and a regex on `[ref]` picks the right country's
|
|
21
|
+
* shield colour per feature. Which of this converter's later fixes cured it is not established
|
|
22
|
+
* (`InterpolateExpression` reading string keyframes as colours is the likeliest), but the
|
|
23
|
+
* observation that justified the workaround no longer reproduces, and the workaround cost real
|
|
24
|
+
* fidelity: a 28-branch country `case` exceeded the variant cap, so every road shield fell back to
|
|
25
|
+
* white, and a track's width kept a fallback that made it half again too wide.
|
|
26
|
+
*/
|
|
27
|
+
const MUST_BE_CONSTANT = new Set(['icon-image', 'text-font']);
|
|
28
|
+
function mustNotReadFeature(name) {
|
|
29
|
+
return MUST_BE_CONSTANT.has(name);
|
|
30
|
+
}
|
|
31
|
+
/** A layer splitting into more than this many attachments is left whole - the compile cost is real. */
|
|
32
|
+
const MAX_VARIANTS = 8;
|
|
33
|
+
/** ...and how many a set that IS the whole filter may have: one rule each, nothing copied. */
|
|
34
|
+
const MAX_SET_VALUES = 24;
|
|
35
|
+
/** Does this value read anything about the feature? Zoom-only expressions do not. */
|
|
36
|
+
export function readsFeature(value) {
|
|
37
|
+
if (Array.isArray(value)) {
|
|
38
|
+
const head = value[0];
|
|
39
|
+
if (head === 'get' || head === 'has' || head === 'id' || head === 'geometry-type')
|
|
40
|
+
return true;
|
|
41
|
+
return value.some((item) => readsFeature(item));
|
|
42
|
+
}
|
|
43
|
+
if (value && typeof value === 'object') {
|
|
44
|
+
if (typeof value.property === 'string')
|
|
45
|
+
return true;
|
|
46
|
+
return Object.values(value).some((item) => readsFeature(item));
|
|
47
|
+
}
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
/** The branches of a top-level case/match over the feature, or null when it is another shape. */
|
|
51
|
+
function branchesOf(value) {
|
|
52
|
+
if (!Array.isArray(value) || !readsFeature(value))
|
|
53
|
+
return null;
|
|
54
|
+
const head = value[0];
|
|
55
|
+
if (head === 'case' && value.length >= 4 && value.length % 2 === 0) {
|
|
56
|
+
const conditions = [];
|
|
57
|
+
const branches = [];
|
|
58
|
+
for (let i = 1; i + 1 < value.length; i += 2) {
|
|
59
|
+
const condition = value[i];
|
|
60
|
+
branches.push({ when: exclusive(conditions, condition), value: value[i + 1] });
|
|
61
|
+
conditions.push(condition);
|
|
62
|
+
}
|
|
63
|
+
branches.push({ when: exclusive(conditions, null), value: value[value.length - 1] });
|
|
64
|
+
return branches;
|
|
65
|
+
}
|
|
66
|
+
if (head === 'match' && value.length >= 5 && value.length % 2 === 1) {
|
|
67
|
+
const input = value[1];
|
|
68
|
+
const conditions = [];
|
|
69
|
+
const branches = [];
|
|
70
|
+
for (let i = 2; i + 1 < value.length; i += 2) {
|
|
71
|
+
const condition = matchCondition(input, value[i]);
|
|
72
|
+
branches.push({ when: exclusive(conditions, condition), value: value[i + 1] });
|
|
73
|
+
conditions.push(condition);
|
|
74
|
+
}
|
|
75
|
+
branches.push({ when: exclusive(conditions, null), value: value[value.length - 1] });
|
|
76
|
+
return branches;
|
|
77
|
+
}
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* One `match` label set as a filter. A plain `["get", f]` input takes the LEGACY spelling, which
|
|
82
|
+
* translateFilter can put in brackets (`[class = 'motorway']`); the expression spelling would
|
|
83
|
+
* always land in a when().
|
|
84
|
+
*/
|
|
85
|
+
function matchCondition(input, labels) {
|
|
86
|
+
const field = Array.isArray(input) && input[0] === 'get' && typeof input[1] === 'string' ? input[1] : null;
|
|
87
|
+
if (Array.isArray(labels)) {
|
|
88
|
+
return (field !== null
|
|
89
|
+
? ['in', field, ...labels]
|
|
90
|
+
: ['any', ...labels.map((l) => ['==', input, l])]);
|
|
91
|
+
}
|
|
92
|
+
return (field !== null ? ['==', field, labels] : ['==', input, labels]);
|
|
93
|
+
}
|
|
94
|
+
/** MapBox takes the FIRST matching branch, so every later one has to exclude the earlier ones. */
|
|
95
|
+
function exclusive(earlier, own) {
|
|
96
|
+
const tests = [...earlier.map((c) => ['!', c]), ...(own === null ? [] : [own])];
|
|
97
|
+
if (tests.length === 0)
|
|
98
|
+
return null;
|
|
99
|
+
return (tests.length === 1 ? tests[0] : ['all', ...tests]);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Every case/match over the feature replaced by its fallback. Field reads themselves are left alone,
|
|
103
|
+
* which is what makes this usable for `text-field` too, where reading a field is the whole point.
|
|
104
|
+
*
|
|
105
|
+
* This is an APPROXIMATION, not an equivalence: the decoder does bind the feature and would have
|
|
106
|
+
* evaluated the branches per feature (docs/contributing/style-tools.md, "A field in a value needs a
|
|
107
|
+
* null guard"). Kept as the past-8-variants fallback until the guarded alternative is measured.
|
|
108
|
+
*/
|
|
109
|
+
export function collapseBranches(value) {
|
|
110
|
+
if (!readsFeature(value))
|
|
111
|
+
return value;
|
|
112
|
+
if (Array.isArray(value)) {
|
|
113
|
+
const head = value[0];
|
|
114
|
+
if ((head === 'case' || head === 'match') && value.length >= 4) {
|
|
115
|
+
return collapseBranches(value[value.length - 1]);
|
|
116
|
+
}
|
|
117
|
+
return value.map((item) => collapseBranches(item));
|
|
118
|
+
}
|
|
119
|
+
const stops = value;
|
|
120
|
+
if (typeof stops.property === 'string') {
|
|
121
|
+
if (stops.default !== undefined)
|
|
122
|
+
return stops.default;
|
|
123
|
+
const first = stops.stops?.[0];
|
|
124
|
+
return Array.isArray(first) ? first[1] : null;
|
|
125
|
+
}
|
|
126
|
+
return value;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* The same, for a property VALUE: null when a field read survives the collapse, because a bare
|
|
130
|
+
* `["get", "width"]` has no fallback to fall back to and would take the rule down.
|
|
131
|
+
*/
|
|
132
|
+
function collapse(value) {
|
|
133
|
+
const collapsed = collapseBranches(value);
|
|
134
|
+
return readsFeature(collapsed) ? null : collapsed;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* One MapBox layer -> the attachments it has to become. The common answer is the layer itself;
|
|
138
|
+
* a field-driven paint value turns it into one variant per branch, each with a constant value and
|
|
139
|
+
* the branch's condition added to the filter.
|
|
140
|
+
*/
|
|
141
|
+
export function splitLayer(layer, coverage) {
|
|
142
|
+
let variants = splitIconByZoom(layer);
|
|
143
|
+
for (const name of splittableProperties(layer)) {
|
|
144
|
+
const expanded = [];
|
|
145
|
+
for (const variant of variants) {
|
|
146
|
+
const branches = branchesOf(valueOf(variant, name));
|
|
147
|
+
if (!branches || variants.length * branches.length > MAX_VARIANTS) {
|
|
148
|
+
expanded.push(variant);
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
for (const branch of branches) {
|
|
152
|
+
expanded.push(withValue(variant, name, branch.value, branch.when));
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
variants = expanded;
|
|
156
|
+
}
|
|
157
|
+
return variants.map((variant) => resolveRemaining(variant, layer.id, coverage));
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* `line-sort-key` orders features WITHIN one layer; CartoCSS has no equivalent, because a rule
|
|
161
|
+
* draws its features in the order the tile lists them. Expanded into one attachment per key value,
|
|
162
|
+
* LOWEST first, so the highest class is drawn last: without it a residential road painted over the
|
|
163
|
+
* motorway it crosses wherever the tile happened to carry it later.
|
|
164
|
+
*
|
|
165
|
+
* The branch filters are mutually exclusive by construction (see `exclusive`), so reordering them
|
|
166
|
+
* changes only which is drawn on top.
|
|
167
|
+
*/
|
|
168
|
+
export function expandSortKey(layer, coverage) {
|
|
169
|
+
const key = layer.layout?.[SORT_KEY];
|
|
170
|
+
if (key === undefined)
|
|
171
|
+
return [layer];
|
|
172
|
+
const branches = branchesOf(key);
|
|
173
|
+
const values = branches?.map((branch) => branch.value);
|
|
174
|
+
if (!branches || !values.every((value) => typeof value === 'number')) {
|
|
175
|
+
coverage.approximate(`${SORT_KEY} on "${layer.id}" is not a match over the feature, so its ` +
|
|
176
|
+
'features keep the order the tile lists them in');
|
|
177
|
+
return [layer];
|
|
178
|
+
}
|
|
179
|
+
if (branches.length > MAX_VARIANTS) {
|
|
180
|
+
coverage.approximate(`${SORT_KEY} on "${layer.id}" has ${branches.length} values, past the ` +
|
|
181
|
+
`${MAX_VARIANTS}-attachment cap, so its features keep the order the tile lists them in`);
|
|
182
|
+
return [layer];
|
|
183
|
+
}
|
|
184
|
+
return [...branches]
|
|
185
|
+
.sort((a, b) => a.value - b.value)
|
|
186
|
+
.map((branch) => withValue(layer, SORT_KEY, branch.value, branch.when));
|
|
187
|
+
}
|
|
188
|
+
const SORT_KEY = 'line-sort-key';
|
|
189
|
+
/**
|
|
190
|
+
* A layer whose filter pins a field to a set AND whose paint branches on that same field, as one
|
|
191
|
+
* attachment per value. The set test cannot bracket - it is a disjunction - so left whole it is a
|
|
192
|
+
* when() the decoder evaluates per feature, and the paint chain re-tests the field it just passed.
|
|
193
|
+
* Split, each attachment is one bracketed test and a constant (narrow.ts does the folding).
|
|
194
|
+
*
|
|
195
|
+
* Also when the set is the WHOLE filter, even though nothing branches on it: there each attachment
|
|
196
|
+
* carries one bracketed test and nothing else, so the split trades a when() for N rules that the
|
|
197
|
+
* decoder can prune - which is the trade the styles want.
|
|
198
|
+
*/
|
|
199
|
+
export function expandSetFilter(layer) {
|
|
200
|
+
for (const { field, values } of closedSets(layer.filter)) {
|
|
201
|
+
if (values.length > MAX_SET_VALUES)
|
|
202
|
+
continue;
|
|
203
|
+
const expanded = values.map((value) => narrowLayer({
|
|
204
|
+
...layer,
|
|
205
|
+
filter: mergeFilter(layer.filter, ['==', field, value]),
|
|
206
|
+
}));
|
|
207
|
+
const whole = expanded.every((variant) => isOnlyTest(variant.filter));
|
|
208
|
+
// The cap is there to stop a cartesian blow-up when the REST of the filter is copied into
|
|
209
|
+
// every attachment. Where the set is the whole filter there is no rest, so the only cost is
|
|
210
|
+
// one bracketed rule per value - which is what a category of sixteen poi classes needs.
|
|
211
|
+
if (values.length > MAX_VARIANTS && !whole)
|
|
212
|
+
continue;
|
|
213
|
+
if (!branchesOn(layer, field) && !whole)
|
|
214
|
+
continue;
|
|
215
|
+
// Splitting COPIES the rest of the filter into every attachment, so it only pays when that
|
|
216
|
+
// rest brackets: otherwise the one when() it removes comes back N times. Measured on
|
|
217
|
+
// MapTiler topo-v4, which is full of layers testing a class set AND something else.
|
|
218
|
+
if (expanded.every((variant) => brackets(variant.filter)))
|
|
219
|
+
return expanded;
|
|
220
|
+
}
|
|
221
|
+
return [layer];
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Is the residue of the split FREE? The `==` it pinned on its own, or beside tests that bracket -
|
|
225
|
+
* a mode switch on a style parameter, say. Those cost one more predicate per rule and no per-feature
|
|
226
|
+
* work, which is not the blow-up the cap guards against.
|
|
227
|
+
*/
|
|
228
|
+
function isOnlyTest(filter) {
|
|
229
|
+
if (!Array.isArray(filter))
|
|
230
|
+
return false;
|
|
231
|
+
return filter[0] === '==' || (filter[0] === 'all' && brackets(filter));
|
|
232
|
+
}
|
|
233
|
+
function brackets(filter) {
|
|
234
|
+
if (filter === undefined || filter === null)
|
|
235
|
+
return true;
|
|
236
|
+
try {
|
|
237
|
+
return !translateFilter(filter).some((predicate) => predicate.startsWith('when('));
|
|
238
|
+
}
|
|
239
|
+
catch {
|
|
240
|
+
return false;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
/** Does any paint or layout value pick a branch by this field? */
|
|
244
|
+
function branchesOn(layer, field) {
|
|
245
|
+
return Object.values({ ...layer.layout, ...layer.paint })
|
|
246
|
+
.some((value) => selectsOn(value, field));
|
|
247
|
+
}
|
|
248
|
+
function selectsOn(value, field) {
|
|
249
|
+
if (!Array.isArray(value))
|
|
250
|
+
return false;
|
|
251
|
+
if (value[0] === 'match' && readsField(value[1], field))
|
|
252
|
+
return true;
|
|
253
|
+
if (value[0] === 'case') {
|
|
254
|
+
for (let i = 1; i + 1 < value.length; i += 2) {
|
|
255
|
+
if (readsField(value[i], field))
|
|
256
|
+
return true;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
return value.some((item) => selectsOn(item, field));
|
|
260
|
+
}
|
|
261
|
+
function readsField(value, field) {
|
|
262
|
+
if (!Array.isArray(value))
|
|
263
|
+
return false;
|
|
264
|
+
if (value[0] === 'get' && value[1] === field)
|
|
265
|
+
return true;
|
|
266
|
+
return value.some((item) => readsField(item, field));
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* A sprite name that changes with ZOOM (`{stops: [[6, 'circle'], [12, ' ']]}`) cannot interpolate -
|
|
270
|
+
* it names one file per zoom band. Each band becomes its own attachment, which is what puts the
|
|
271
|
+
* dot back under a town name up to the zoom the style drops it at.
|
|
272
|
+
*/
|
|
273
|
+
function splitIconByZoom(layer) {
|
|
274
|
+
for (const name of ZOOM_BANDED) {
|
|
275
|
+
const bands = zoomBandsOf(layer.layout?.[name], name === 'icon-image');
|
|
276
|
+
if (!bands)
|
|
277
|
+
continue;
|
|
278
|
+
return bands
|
|
279
|
+
.map(({ from, to, value }) => ({
|
|
280
|
+
...layer,
|
|
281
|
+
minzoom: Math.max(from, layer.minzoom ?? 0),
|
|
282
|
+
maxzoom: Math.min(to, layer.maxzoom ?? 24),
|
|
283
|
+
layout: { ...layer.layout, [name]: value },
|
|
284
|
+
}))
|
|
285
|
+
.filter((variant) => variant.minzoom < variant.maxzoom);
|
|
286
|
+
}
|
|
287
|
+
return [layer];
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Properties whose value is a NAME or a TEXT rather than a number, and which a style may still
|
|
291
|
+
* ramp over zoom. Neither can interpolate, and `InterpolateExpression` reads a string keyframe as
|
|
292
|
+
* a COLOUR - so `step(zoom, [name], 15, concat(...))` had the decoder trying to parse "Beauregard"
|
|
293
|
+
* as a colour and losing the whole rule. One attachment per band says the same thing in a form the
|
|
294
|
+
* renderer has.
|
|
295
|
+
*/
|
|
296
|
+
const ZOOM_BANDED = ['icon-image', 'text-field'];
|
|
297
|
+
/** The zoom bands of a step/stops expression, or null when it is not one. */
|
|
298
|
+
function zoomBandsOf(value, requireString) {
|
|
299
|
+
const stops = [];
|
|
300
|
+
if (Array.isArray(value) && value[0] === 'step'
|
|
301
|
+
&& Array.isArray(value[1]) && value[1][0] === 'zoom' && value.length >= 4) {
|
|
302
|
+
stops.push([0, value[2]]);
|
|
303
|
+
for (let i = 3; i + 1 < value.length; i += 2)
|
|
304
|
+
stops.push([value[i], value[i + 1]]);
|
|
305
|
+
}
|
|
306
|
+
else if (value && typeof value === 'object' && !Array.isArray(value)) {
|
|
307
|
+
const legacy = value;
|
|
308
|
+
if (typeof legacy.property === 'string' || !Array.isArray(legacy.stops))
|
|
309
|
+
return null;
|
|
310
|
+
stops.push(...legacy.stops.map(([z, v]) => [z, v]));
|
|
311
|
+
}
|
|
312
|
+
else {
|
|
313
|
+
return null;
|
|
314
|
+
}
|
|
315
|
+
if (!stops.every(([z]) => typeof z === 'number'))
|
|
316
|
+
return null;
|
|
317
|
+
if (requireString && !stops.every(([, v]) => typeof v === 'string'))
|
|
318
|
+
return null;
|
|
319
|
+
return stops.map(([from, value], i) => ({ from, to: stops[i + 1]?.[0] ?? 24, value }));
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* A feature-driven icon name is resolved as a chain of style-parameter lookups instead (see
|
|
323
|
+
* iconExpression), which is one rule rather than one attachment per branch and has no MAX_VARIANTS:
|
|
324
|
+
* MapTiler's accommodation table has nine branches, so it did not split at all and every hotel lost
|
|
325
|
+
* its icon, and its food table nests a second lookup inside its own fallback.
|
|
326
|
+
*/
|
|
327
|
+
function isLookupTable(value) {
|
|
328
|
+
return Array.isArray(value) && (value[0] === 'match' || value[0] === 'case' || value[0] === 'coalesce');
|
|
329
|
+
}
|
|
330
|
+
/** The paint/layout names that read the feature and may not, in a stable order. */
|
|
331
|
+
function splittableProperties(layer) {
|
|
332
|
+
return Object.entries({ ...layer.layout, ...layer.paint })
|
|
333
|
+
.filter(([name, value]) => mustNotReadFeature(name) && readsFeature(value))
|
|
334
|
+
.filter(([name, value]) => !(name === 'icon-image' && isLookupTable(value)))
|
|
335
|
+
.map(([name]) => name);
|
|
336
|
+
}
|
|
337
|
+
function valueOf(layer, name) {
|
|
338
|
+
return layer.paint?.[name] ?? layer.layout?.[name];
|
|
339
|
+
}
|
|
340
|
+
function withValue(layer, name, value, when) {
|
|
341
|
+
const inLayout = layer.layout?.[name] !== undefined;
|
|
342
|
+
const filter = when === null ? layer.filter : mergeFilter(layer.filter, when);
|
|
343
|
+
return {
|
|
344
|
+
...layer,
|
|
345
|
+
filter,
|
|
346
|
+
layout: inLayout ? { ...layer.layout, [name]: value } : layer.layout,
|
|
347
|
+
paint: inLayout ? layer.paint : { ...layer.paint, [name]: value },
|
|
348
|
+
};
|
|
349
|
+
}
|
|
350
|
+
function mergeFilter(filter, extra) {
|
|
351
|
+
if (filter === undefined || filter === null)
|
|
352
|
+
return extra;
|
|
353
|
+
return ['all', filter, extra];
|
|
354
|
+
}
|
|
355
|
+
/** Whatever splitting left behind is collapsed to its fallback, or dropped with the reason. */
|
|
356
|
+
function resolveRemaining(layer, layerId, coverage) {
|
|
357
|
+
const layout = { ...layer.layout };
|
|
358
|
+
const paint = { ...layer.paint };
|
|
359
|
+
let changed = false;
|
|
360
|
+
for (const name of splittableProperties(layer)) {
|
|
361
|
+
// An icon-image that did not split is left alone: markerDeclarations already drops an
|
|
362
|
+
// unresolvable sprite, and shield.ts needs to still see that the layer HAD one.
|
|
363
|
+
if (name === 'icon-image')
|
|
364
|
+
continue;
|
|
365
|
+
const target = layout[name] !== undefined ? layout : paint;
|
|
366
|
+
const resolved = collapse(target[name]);
|
|
367
|
+
changed = true;
|
|
368
|
+
if (resolved === null) {
|
|
369
|
+
coverage.drop(name, 'reads a feature field, which a property value cannot do here', layerId);
|
|
370
|
+
delete target[name];
|
|
371
|
+
}
|
|
372
|
+
else {
|
|
373
|
+
coverage.approximate(`${name} on "${layerId}" kept only its fallback: a field-driven value breaks the rule, ` +
|
|
374
|
+
'and this one does not split into branches');
|
|
375
|
+
target[name] = resolved;
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
return changed ? { ...layer, layout, paint } : layer;
|
|
379
|
+
}
|
|
380
|
+
//# sourceMappingURL=split.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"split.js","sourceRoot":"","sources":["../../src/mapbox2css/split.ts"],"names":[],"mappings":"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"}
|