@mapwhit/tilerenderer 0.52.1 → 1.0.0
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 +7 -0
- package/build/min/package.json +1 -1
- package/build/min/src/shaders/_prelude.fragment.glsl.js +2 -2
- package/build/min/src/shaders/_prelude.vertex.glsl.js +2 -2
- package/build/min/src/shaders/background.fragment.glsl.js +2 -2
- package/build/min/src/shaders/background.vertex.glsl.js +1 -1
- package/build/min/src/shaders/background_pattern.fragment.glsl.js +2 -2
- package/build/min/src/shaders/background_pattern.vertex.glsl.js +1 -1
- package/build/min/src/shaders/circle.fragment.glsl.js +2 -2
- package/build/min/src/shaders/circle.vertex.glsl.js +2 -2
- package/build/min/src/shaders/clipping_mask.fragment.glsl.js +1 -1
- package/build/min/src/shaders/clipping_mask.vertex.glsl.js +1 -1
- package/build/min/src/shaders/collision_box.fragment.glsl.js +1 -1
- package/build/min/src/shaders/collision_box.vertex.glsl.js +1 -1
- package/build/min/src/shaders/collision_circle.fragment.glsl.js +1 -1
- package/build/min/src/shaders/collision_circle.vertex.glsl.js +1 -1
- package/build/min/src/shaders/debug.fragment.glsl.js +1 -1
- package/build/min/src/shaders/debug.vertex.glsl.js +1 -1
- package/build/min/src/shaders/fill.fragment.glsl.js +2 -2
- package/build/min/src/shaders/fill.vertex.glsl.js +2 -2
- package/build/min/src/shaders/fill_extrusion.fragment.glsl.js +2 -2
- package/build/min/src/shaders/fill_extrusion.vertex.glsl.js +2 -2
- package/build/min/src/shaders/fill_extrusion_pattern.fragment.glsl.js +2 -2
- package/build/min/src/shaders/fill_extrusion_pattern.vertex.glsl.js +2 -2
- package/build/min/src/shaders/fill_outline.fragment.glsl.js +2 -2
- package/build/min/src/shaders/fill_outline.vertex.glsl.js +2 -2
- package/build/min/src/shaders/fill_outline_pattern.fragment.glsl.js +2 -2
- package/build/min/src/shaders/fill_outline_pattern.vertex.glsl.js +2 -2
- package/build/min/src/shaders/fill_pattern.fragment.glsl.js +2 -2
- package/build/min/src/shaders/fill_pattern.vertex.glsl.js +2 -2
- package/build/min/src/shaders/heatmap.fragment.glsl.js +2 -2
- package/build/min/src/shaders/heatmap.vertex.glsl.js +2 -2
- package/build/min/src/shaders/heatmap_texture.fragment.glsl.js +2 -2
- package/build/min/src/shaders/heatmap_texture.vertex.glsl.js +1 -1
- package/build/min/src/shaders/hillshade.fragment.glsl.js +2 -2
- package/build/min/src/shaders/hillshade.vertex.glsl.js +1 -1
- package/build/min/src/shaders/hillshade_prepare.fragment.glsl.js +2 -2
- package/build/min/src/shaders/hillshade_prepare.vertex.glsl.js +1 -1
- package/build/min/src/shaders/line.fragment.glsl.js +2 -2
- package/build/min/src/shaders/line.vertex.glsl.js +2 -2
- package/build/min/src/shaders/line_gradient.fragment.glsl.js +2 -2
- package/build/min/src/shaders/line_gradient.vertex.glsl.js +2 -2
- package/build/min/src/shaders/line_pattern.fragment.glsl.js +2 -2
- package/build/min/src/shaders/line_pattern.vertex.glsl.js +2 -2
- package/build/min/src/shaders/line_sdf.fragment.glsl.js +2 -2
- package/build/min/src/shaders/line_sdf.vertex.glsl.js +2 -2
- package/build/min/src/shaders/raster.fragment.glsl.js +2 -2
- package/build/min/src/shaders/raster.vertex.glsl.js +1 -1
- package/build/min/src/shaders/symbol_icon.fragment.glsl.js +2 -2
- package/build/min/src/shaders/symbol_icon.vertex.glsl.js +2 -2
- package/build/min/src/shaders/symbol_sdf.fragment.glsl.js +2 -2
- package/build/min/src/shaders/symbol_sdf.vertex.glsl.js +2 -2
- package/package.json +3 -3
- package/src/data/array_types.js +1 -36
- package/src/data/bucket/circle_bucket.js +0 -3
- package/src/data/bucket/fill_bucket.js +0 -3
- package/src/data/bucket/fill_extrusion_bucket.js +0 -3
- package/src/data/bucket/heatmap_bucket.js +0 -4
- package/src/data/bucket/line_bucket.js +1 -4
- package/src/data/bucket/pattern_bucket_features.js +2 -2
- package/src/data/bucket/symbol_bucket.js +87 -126
- package/src/data/bucket.js +26 -21
- package/src/data/dem_data.js +0 -3
- package/src/data/feature_index.js +3 -8
- package/src/data/program_configuration.js +3 -12
- package/src/data/segment.js +0 -4
- package/src/render/draw_background.js +3 -3
- package/src/render/draw_circle.js +4 -4
- package/src/render/draw_fill.js +8 -8
- package/src/render/draw_fill_extrusion.js +8 -8
- package/src/render/draw_heatmap.js +4 -4
- package/src/render/draw_line.js +6 -6
- package/src/render/draw_raster.js +6 -6
- package/src/render/draw_symbol.js +16 -16
- package/src/render/glyph_atlas.js +0 -3
- package/src/render/glyph_manager.js +1 -2
- package/src/render/image_atlas.js +0 -4
- package/src/render/image_manager.js +33 -19
- package/src/render/painter.js +13 -14
- package/src/render/program/circle_program.js +4 -4
- package/src/render/program/fill_extrusion_program.js +1 -1
- package/src/render/program/heatmap_program.js +1 -1
- package/src/render/program/hillshade_program.js +6 -6
- package/src/render/program/line_program.js +3 -3
- package/src/render/program/raster_program.js +6 -6
- package/src/source/geojson_source.js +15 -24
- package/src/source/geojson_worker_source.js +40 -68
- package/src/source/geojson_wrapper.js +9 -1
- package/src/source/image_source.js +6 -16
- package/src/source/query_features.js +4 -5
- package/src/source/raster_dem_tile_source.js +45 -64
- package/src/source/raster_tile_source.js +1 -6
- package/src/source/resources/glyphs.js +2 -2
- package/src/source/resources/index.js +3 -9
- package/src/source/rtl_text_plugin.js +58 -31
- package/src/source/source.js +11 -13
- package/src/source/source_cache.js +135 -151
- package/src/source/source_state.js +101 -12
- package/src/source/tile.js +32 -46
- package/src/source/tile_bounds.js +26 -26
- package/src/source/tile_id.js +2 -5
- package/src/source/vector_tile_source.js +14 -14
- package/src/source/vector_tile_worker_source.js +19 -23
- package/src/source/worker_tile.js +120 -117
- package/src/style/create_style_layer.js +1 -1
- package/src/style/pauseable_placement.js +4 -5
- package/src/style/properties.js +1 -8
- package/src/style/query_utils.js +3 -3
- package/src/style/style.js +263 -195
- package/src/style/style_layer/circle_style_layer.js +13 -11
- package/src/style/style_layer/fill_extrusion_style_layer.js +42 -27
- package/src/style/style_layer/fill_style_layer.js +5 -5
- package/src/style/style_layer/heatmap_style_layer.js +1 -1
- package/src/style/style_layer/hillshade_style_layer.js +1 -1
- package/src/style/style_layer/line_style_layer.js +23 -19
- package/src/style/style_layer/symbol_style_layer.js +13 -13
- package/src/style/style_layer.js +48 -30
- package/src/style/style_layer_index.js +16 -41
- package/src/symbol/anchor.js +0 -4
- package/src/symbol/cross_tile_symbol_index.js +2 -5
- package/src/symbol/opacity_state.js +0 -4
- package/src/symbol/placement.js +3 -3
- package/src/symbol/quads.js +4 -4
- package/src/symbol/symbol_layout.js +7 -7
- package/src/symbol/transform_text.js +1 -1
- package/src/ui/map.js +49 -11
- package/src/util/group_layers.js +41 -0
- package/src/util/image.js +0 -5
- package/src/util/key.js +21 -0
- package/src/util/object.js +8 -53
- package/src/worker.js +1 -4
- package/src/source/resources/images.js +0 -68
- package/src/source/worker.js +0 -110
- package/src/source/worker_source.js +0 -14
- package/src/style-spec/deref.js +0 -51
- package/src/style-spec/group_by_layout.js +0 -46
- package/src/util/actor.js +0 -108
- package/src/util/dispatcher.js +0 -65
- package/src/util/global_worker_pool.js +0 -15
- package/src/util/transfer_registry.js +0 -168
- package/src/util/web_worker_transfer.js +0 -43
- package/src/util/worker_pool.js +0 -41
|
@@ -7,7 +7,7 @@ const SymbolBucket = require('../data/bucket/symbol_bucket');
|
|
|
7
7
|
const LineBucket = require('../data/bucket/line_bucket');
|
|
8
8
|
const FillBucket = require('../data/bucket/fill_bucket');
|
|
9
9
|
const FillExtrusionBucket = require('../data/bucket/fill_extrusion_bucket');
|
|
10
|
-
const { mapObject
|
|
10
|
+
const { mapObject } = require('../util/object');
|
|
11
11
|
const warn = require('../util/warn');
|
|
12
12
|
const assert = require('assert');
|
|
13
13
|
const ImageAtlas = require('../render/image_atlas');
|
|
@@ -15,134 +15,139 @@ const GlyphAtlas = require('../render/glyph_atlas');
|
|
|
15
15
|
const EvaluationParameters = require('../style/evaluation_parameters');
|
|
16
16
|
const { OverscaledTileID } = require('./tile_id');
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
constructor(params) {
|
|
20
|
-
this.tileID = new OverscaledTileID(
|
|
21
|
-
params.tileID.overscaledZ,
|
|
22
|
-
params.tileID.wrap,
|
|
23
|
-
params.tileID.canonical.z,
|
|
24
|
-
params.tileID.canonical.x,
|
|
25
|
-
params.tileID.canonical.y
|
|
26
|
-
);
|
|
27
|
-
this.uid = params.uid;
|
|
28
|
-
this.zoom = params.zoom;
|
|
29
|
-
this.pixelRatio = params.pixelRatio;
|
|
30
|
-
this.tileSize = params.tileSize;
|
|
31
|
-
this.source = params.source;
|
|
32
|
-
this.overscaling = this.tileID.overscaleFactor();
|
|
33
|
-
this.showCollisionBoxes = params.showCollisionBoxes;
|
|
34
|
-
this.globalState = params.globalState;
|
|
35
|
-
}
|
|
18
|
+
module.exports = makeWorkerTile;
|
|
36
19
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
this.data = data;
|
|
20
|
+
async function makeWorkerTile(params, vectorTile, layerIndex, resources) {
|
|
21
|
+
const tileID = createTileID(params);
|
|
40
22
|
|
|
41
|
-
|
|
42
|
-
|
|
23
|
+
const overscaling = tileID.overscaleFactor();
|
|
24
|
+
const { uid, zoom, pixelRatio, source, showCollisionBoxes, globalState, justReloaded, painter } = params;
|
|
43
25
|
|
|
44
|
-
|
|
45
|
-
|
|
26
|
+
const collisionBoxArray = new CollisionBoxArray();
|
|
27
|
+
const sourceLayerCoder = dictionaryCoder(Object.keys(vectorTile.layers));
|
|
46
28
|
|
|
47
|
-
|
|
29
|
+
const featureIndex = new FeatureIndex(tileID);
|
|
30
|
+
featureIndex.bucketLayerIDs = [];
|
|
48
31
|
|
|
49
|
-
|
|
50
|
-
featureIndex,
|
|
51
|
-
iconDependencies: {},
|
|
52
|
-
patternDependencies: {},
|
|
53
|
-
glyphDependencies: {}
|
|
54
|
-
};
|
|
32
|
+
const uniqueBuckets = new Map();
|
|
55
33
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
34
|
+
const options = {
|
|
35
|
+
featureIndex,
|
|
36
|
+
iconDependencies: {},
|
|
37
|
+
patternDependencies: {},
|
|
38
|
+
glyphDependencies: {}
|
|
39
|
+
};
|
|
62
40
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
41
|
+
const layerFamilies = layerIndex.familiesBySource.get(source) ?? new Map();
|
|
42
|
+
for (const [sourceLayerId, sourceLayerFamilies] of layerFamilies) {
|
|
43
|
+
const sourceLayer = vectorTile.layers[sourceLayerId];
|
|
44
|
+
if (!sourceLayer) {
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
69
47
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
48
|
+
const sourceLayerIndex = sourceLayerCoder.encode(sourceLayerId);
|
|
49
|
+
const features = new Array(sourceLayer.length);
|
|
50
|
+
for (let index = 0; index < sourceLayer.length; index++) {
|
|
51
|
+
features[index] = { feature: sourceLayer.feature(index), index, sourceLayerIndex };
|
|
52
|
+
}
|
|
76
53
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
featureIndex.bucketLayerIDs.push(family.map(l => l.id));
|
|
101
|
-
}
|
|
54
|
+
for (const layers of sourceLayerFamilies.values()) {
|
|
55
|
+
const layer = layers[0];
|
|
56
|
+
|
|
57
|
+
if (layer.minzoom && zoom < Math.floor(layer.minzoom)) continue;
|
|
58
|
+
if (layer.maxzoom && zoom >= layer.maxzoom) continue;
|
|
59
|
+
if (layer.visibility === 'none') continue;
|
|
60
|
+
|
|
61
|
+
recalculateLayers(layers, zoom, globalState);
|
|
62
|
+
|
|
63
|
+
const bucket = layer.createBucket({
|
|
64
|
+
index: featureIndex.bucketLayerIDs.length,
|
|
65
|
+
layers,
|
|
66
|
+
zoom,
|
|
67
|
+
pixelRatio,
|
|
68
|
+
overscaling,
|
|
69
|
+
collisionBoxArray,
|
|
70
|
+
sourceLayerIndex,
|
|
71
|
+
sourceID: source,
|
|
72
|
+
globalState
|
|
73
|
+
});
|
|
74
|
+
uniqueBuckets.set(layer.id, bucket);
|
|
75
|
+
bucket.populate(features, options);
|
|
76
|
+
featureIndex.bucketLayerIDs.push(layers.map(l => l.id));
|
|
102
77
|
}
|
|
78
|
+
}
|
|
103
79
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
glyphMap,
|
|
123
|
-
glyphAtlas.positions,
|
|
124
|
-
iconMap,
|
|
125
|
-
imageAtlas.iconPositions,
|
|
126
|
-
this.showCollisionBoxes
|
|
127
|
-
);
|
|
128
|
-
} else if (
|
|
129
|
-
bucket.hasPattern &&
|
|
130
|
-
(bucket instanceof LineBucket || bucket instanceof FillBucket || bucket instanceof FillExtrusionBucket)
|
|
131
|
-
) {
|
|
132
|
-
recalculateLayers(bucket.layers, this.zoom, this.globalState);
|
|
133
|
-
bucket.addFeatures(options, imageAtlas.patternPositions);
|
|
80
|
+
const buckets = new Map();
|
|
81
|
+
const { glyphAtlas, imageAtlas, glyphMap, iconMap } = await makeAtlasses(options, resources);
|
|
82
|
+
let hasSymbolBuckets = false;
|
|
83
|
+
let queryPadding = 0;
|
|
84
|
+
for (const bucket of uniqueBuckets.values()) {
|
|
85
|
+
if (bucket instanceof SymbolBucket) {
|
|
86
|
+
hasSymbolBuckets = true;
|
|
87
|
+
recalculateLayers(bucket.layers, zoom, globalState);
|
|
88
|
+
performSymbolLayout(
|
|
89
|
+
bucket,
|
|
90
|
+
glyphMap,
|
|
91
|
+
glyphAtlas.positions,
|
|
92
|
+
iconMap,
|
|
93
|
+
imageAtlas.iconPositions,
|
|
94
|
+
showCollisionBoxes
|
|
95
|
+
);
|
|
96
|
+
if (justReloaded) {
|
|
97
|
+
bucket.justReloaded = true;
|
|
134
98
|
}
|
|
99
|
+
} else if (
|
|
100
|
+
bucket.hasPattern &&
|
|
101
|
+
(bucket instanceof LineBucket || bucket instanceof FillBucket || bucket instanceof FillExtrusionBucket)
|
|
102
|
+
) {
|
|
103
|
+
recalculateLayers(bucket.layers, zoom, globalState);
|
|
104
|
+
bucket.addFeatures(options, imageAtlas.patternPositions);
|
|
105
|
+
}
|
|
106
|
+
if (bucket.isEmpty()) {
|
|
107
|
+
continue; // Skip empty buckets
|
|
108
|
+
}
|
|
109
|
+
bucket.stateDependentLayers = [];
|
|
110
|
+
for (const layer of bucket.layers) {
|
|
111
|
+
if (painter?.style) {
|
|
112
|
+
queryPadding = Math.max(queryPadding, painter.style.getLayer(layer.id).queryRadius(bucket));
|
|
113
|
+
}
|
|
114
|
+
if (layer.isStateDependent()) {
|
|
115
|
+
bucket.stateDependentLayers.push(layer);
|
|
116
|
+
}
|
|
117
|
+
buckets.set(layer.id, bucket);
|
|
135
118
|
}
|
|
136
|
-
|
|
137
|
-
this.status = 'done';
|
|
138
|
-
return {
|
|
139
|
-
buckets: values(buckets).filter(b => !b.isEmpty()),
|
|
140
|
-
featureIndex,
|
|
141
|
-
collisionBoxArray: this.collisionBoxArray,
|
|
142
|
-
glyphAtlasImage: glyphAtlas.image,
|
|
143
|
-
imageAtlas
|
|
144
|
-
};
|
|
145
119
|
}
|
|
120
|
+
|
|
121
|
+
return {
|
|
122
|
+
buckets,
|
|
123
|
+
featureIndex,
|
|
124
|
+
collisionBoxArray,
|
|
125
|
+
glyphAtlasImage: glyphAtlas.image,
|
|
126
|
+
imageAtlas,
|
|
127
|
+
hasSymbolBuckets,
|
|
128
|
+
queryPadding
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
async function makeAtlasses({ glyphDependencies, patternDependencies, iconDependencies }, resources) {
|
|
133
|
+
const stacks = mapObject(glyphDependencies, glyphs => Object.keys(glyphs).map(Number));
|
|
134
|
+
const icons = Object.keys(iconDependencies);
|
|
135
|
+
const patterns = Object.keys(patternDependencies);
|
|
136
|
+
const tasks = [
|
|
137
|
+
Object.keys(stacks).length ? resources.getGlyphs({ stacks }) : {},
|
|
138
|
+
icons.length ? resources.getImages({ icons }) : {},
|
|
139
|
+
patterns.length ? resources.getImages({ icons: patterns }) : {}
|
|
140
|
+
];
|
|
141
|
+
const [glyphMap, iconMap, patternMap] = await Promise.all(tasks);
|
|
142
|
+
const glyphAtlas = new GlyphAtlas(glyphMap);
|
|
143
|
+
const imageAtlas = new ImageAtlas(iconMap, patternMap);
|
|
144
|
+
return { glyphAtlas, imageAtlas, glyphMap, iconMap };
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
function createTileID({ tileID }) {
|
|
148
|
+
const { overscaledZ, wrap, canonical } = tileID;
|
|
149
|
+
const { x, y, z } = canonical;
|
|
150
|
+
return new OverscaledTileID(overscaledZ, wrap, z, x, y);
|
|
146
151
|
}
|
|
147
152
|
|
|
148
153
|
function recalculateLayers(layers, zoom, globalState) {
|
|
@@ -152,5 +157,3 @@ function recalculateLayers(layers, zoom, globalState) {
|
|
|
152
157
|
layer.recalculate(parameters);
|
|
153
158
|
}
|
|
154
159
|
}
|
|
155
|
-
|
|
156
|
-
module.exports = WorkerTile;
|
|
@@ -2,7 +2,7 @@ const circle = require('./style_layer/circle_style_layer');
|
|
|
2
2
|
const heatmap = require('./style_layer/heatmap_style_layer');
|
|
3
3
|
const hillshade = require('./style_layer/hillshade_style_layer');
|
|
4
4
|
const fill = require('./style_layer/fill_style_layer');
|
|
5
|
-
const fillExtrusion = require('./style_layer/fill_extrusion_style_layer');
|
|
5
|
+
const { FillExtrusionStyleLayer: fillExtrusion } = require('./style_layer/fill_extrusion_style_layer');
|
|
6
6
|
const line = require('./style_layer/line_style_layer');
|
|
7
7
|
const symbol = require('./style_layer/symbol_style_layer');
|
|
8
8
|
const background = require('./style_layer/background_style_layer');
|
|
@@ -22,9 +22,9 @@ class LayerPlacement {
|
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
class PauseablePlacement {
|
|
25
|
-
constructor(transform,
|
|
25
|
+
constructor(transform, maxIndex, forceFullPlacement, showCollisionBoxes, fadeDuration, crossSourceCollisions) {
|
|
26
26
|
this.placement = new Placement(transform, fadeDuration, crossSourceCollisions);
|
|
27
|
-
this._currentPlacementIndex =
|
|
27
|
+
this._currentPlacementIndex = maxIndex;
|
|
28
28
|
this._forceFullPlacement = forceFullPlacement;
|
|
29
29
|
this._showCollisionBoxes = showCollisionBoxes;
|
|
30
30
|
this._done = false;
|
|
@@ -34,7 +34,7 @@ class PauseablePlacement {
|
|
|
34
34
|
return this._done;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
continuePlacement(
|
|
37
|
+
continuePlacement(layers, layerTiles) {
|
|
38
38
|
const startTime = browser.now();
|
|
39
39
|
|
|
40
40
|
const shouldPausePlacement = () => {
|
|
@@ -43,8 +43,7 @@ class PauseablePlacement {
|
|
|
43
43
|
};
|
|
44
44
|
|
|
45
45
|
while (this._currentPlacementIndex >= 0) {
|
|
46
|
-
const
|
|
47
|
-
const layer = layers[layerId];
|
|
46
|
+
const layer = layers[this._currentPlacementIndex];
|
|
48
47
|
const placementZoom = this.placement.collisionIndex.transform.zoom;
|
|
49
48
|
if (
|
|
50
49
|
layer.type === 'symbol' &&
|
package/src/style/properties.js
CHANGED
|
@@ -3,7 +3,6 @@ const assert = require('assert');
|
|
|
3
3
|
const { clone } = require('../util/object');
|
|
4
4
|
const { easeCubicInOut } = require('../util/util');
|
|
5
5
|
const { interpolate, normalizePropertyExpression } = require('@mapwhit/style-expressions');
|
|
6
|
-
const { register } = require('../util/transfer_registry');
|
|
7
6
|
const EvaluationParameters = require('./evaluation_parameters');
|
|
8
7
|
|
|
9
8
|
/**
|
|
@@ -407,7 +406,7 @@ class PossiblyEvaluatedPropertyValue {
|
|
|
407
406
|
* in a way that allows flow to know which of these two cases applies for any given property name, and if you attempt
|
|
408
407
|
* to use a `PossiblyEvaluatedPropertyValue` as if it was a scalar, or vice versa, you will get a type error. (However,
|
|
409
408
|
* there's at least one case in which flow fails to produce a type error that you should be aware of: in a context such
|
|
410
|
-
* as `layer.
|
|
409
|
+
* as `layer._paint.get('foo-opacity') === 0`, if `foo-opacity` is data-driven, than the left-hand side is of type
|
|
411
410
|
* `PossiblyEvaluatedPropertyValue<number>`, but flow will not complain about comparing this to a number using `===`.
|
|
412
411
|
* See https://github.com/facebook/flow/issues/2359.)
|
|
413
412
|
*
|
|
@@ -672,12 +671,6 @@ class Properties {
|
|
|
672
671
|
}
|
|
673
672
|
}
|
|
674
673
|
|
|
675
|
-
register('DataDrivenProperty', DataDrivenProperty);
|
|
676
|
-
register('DataConstantProperty', DataConstantProperty);
|
|
677
|
-
register('CrossFadedDataDrivenProperty', CrossFadedDataDrivenProperty);
|
|
678
|
-
register('CrossFadedProperty', CrossFadedProperty);
|
|
679
|
-
register('ColorRampProperty', ColorRampProperty);
|
|
680
|
-
|
|
681
674
|
module.exports = {
|
|
682
675
|
PropertyValue,
|
|
683
676
|
Transitionable,
|
package/src/style/query_utils.js
CHANGED
|
@@ -7,7 +7,7 @@ module.exports = {
|
|
|
7
7
|
};
|
|
8
8
|
|
|
9
9
|
function getMaximumPaintValue(property, layer, bucket) {
|
|
10
|
-
const value = layer.
|
|
10
|
+
const value = layer._paint.get(property).value;
|
|
11
11
|
if (value.kind === 'constant') {
|
|
12
12
|
return value.value;
|
|
13
13
|
}
|
|
@@ -24,7 +24,7 @@ function translate(queryGeometry, translate, translateAnchor, bearing, pixelsToT
|
|
|
24
24
|
return queryGeometry;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
const pt = Point.convert(translate);
|
|
27
|
+
const pt = Point.convert(translate)._mult(pixelsToTileUnits);
|
|
28
28
|
|
|
29
29
|
if (translateAnchor === 'viewport') {
|
|
30
30
|
pt._rotate(-bearing);
|
|
@@ -33,7 +33,7 @@ function translate(queryGeometry, translate, translateAnchor, bearing, pixelsToT
|
|
|
33
33
|
const translated = [];
|
|
34
34
|
for (let i = 0; i < queryGeometry.length; i++) {
|
|
35
35
|
const point = queryGeometry[i];
|
|
36
|
-
translated.push(point.sub(pt
|
|
36
|
+
translated.push(point.sub(pt));
|
|
37
37
|
}
|
|
38
38
|
return translated;
|
|
39
39
|
}
|