maplibre-gl 2.0.4 → 2.1.2
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/build/{banner.js → banner.ts} +1 -1
- package/build/generate-query-test-fixtures.ts +123 -0
- package/build/generate-shaders.ts +35 -0
- package/build/generate-struct-arrays.ts +7 -7
- package/build/generate-style-code.ts +8 -8
- package/build/generate-style-spec.ts +5 -4
- package/build/generate-typings.ts +16 -0
- package/build/readme.md +8 -18
- package/build/release-notes.js +9 -13
- package/build/{rollup_plugin_minify_style_spec.js → rollup_plugin_minify_style_spec.ts} +4 -3
- package/build/{rollup_plugins.js → rollup_plugins.ts} +12 -26
- package/dist/maplibre-gl-dev.js +54885 -0
- package/dist/maplibre-gl.css +1 -1
- package/dist/maplibre-gl.d.ts +1583 -1023
- package/dist/maplibre-gl.js +3 -3
- package/dist/maplibre-gl.js.map +1 -1
- package/package.json +99 -141
- package/src/css/maplibre-gl.css +36 -36
- package/src/data/{array_types.ts → array_types.g.ts} +0 -0
- package/src/data/bucket/circle_bucket.ts +1 -1
- package/src/data/bucket/fill_bucket.test.ts +1 -1
- package/src/data/bucket/fill_bucket.ts +4 -4
- package/src/data/bucket/fill_extrusion_bucket.ts +1 -1
- package/src/data/bucket/line_bucket.test.ts +1 -1
- package/src/data/bucket/line_bucket.ts +6 -6
- package/src/data/bucket/symbol_bucket.test.ts +16 -16
- package/src/data/bucket/symbol_bucket.ts +56 -56
- package/src/data/bucket.ts +43 -43
- package/src/data/dem_data.ts +12 -12
- package/src/data/evaluation_feature.ts +10 -10
- package/src/data/feature_index.ts +37 -37
- package/src/data/feature_position_map.ts +5 -5
- package/src/data/index_array_type.ts +1 -1
- package/src/data/load_geometry.test.ts +1 -1
- package/src/data/program_configuration.ts +47 -47
- package/src/data/segment.ts +14 -14
- package/src/geo/edge_insets.ts +2 -2
- package/src/geo/lng_lat.ts +4 -4
- package/src/geo/lng_lat_bounds.ts +35 -35
- package/src/geo/mercator_coordinate.ts +5 -5
- package/src/geo/transform.test.ts +1 -1
- package/src/geo/transform.ts +14 -14
- package/src/gl/context.ts +3 -3
- package/src/gl/types.ts +19 -19
- package/src/gl/value.ts +6 -6
- package/src/gl/vertex_buffer.test.ts +1 -1
- package/src/index.ts +24 -9
- package/src/render/draw_circle.ts +8 -8
- package/src/render/draw_collision_debug.ts +5 -5
- package/src/render/draw_debug.ts +1 -1
- package/src/render/draw_line.ts +4 -4
- package/src/render/draw_symbol.ts +21 -21
- package/src/render/glyph_atlas.ts +12 -12
- package/src/render/glyph_manager.test.ts +10 -21
- package/src/render/glyph_manager.ts +34 -33
- package/src/render/image_manager.ts +4 -4
- package/src/render/painter.ts +16 -14
- package/src/render/program/background_program.ts +29 -29
- package/src/render/program/circle_program.ts +11 -11
- package/src/render/program/clipping_mask_program.ts +1 -1
- package/src/render/program/collision_program.ts +9 -9
- package/src/render/program/debug_program.ts +4 -4
- package/src/render/program/fill_extrusion_program.ts +31 -31
- package/src/render/program/fill_program.ts +29 -29
- package/src/render/program/heatmap_program.ts +12 -12
- package/src/render/program/hillshade_program.ts +12 -12
- package/src/render/program/line_program.ts +41 -41
- package/src/render/program/pattern.ts +28 -28
- package/src/render/program/raster_program.ts +21 -21
- package/src/render/program/symbol_program.ts +97 -97
- package/src/render/program.ts +25 -25
- package/src/render/texture.ts +9 -9
- package/src/render/uniform_binding.ts +1 -1
- package/src/render/vertex_array_object.ts +13 -13
- package/src/shaders/_prelude.fragment.glsl.g.ts +2 -0
- package/src/shaders/_prelude.vertex.glsl.g.ts +2 -0
- package/src/shaders/background.fragment.glsl.g.ts +2 -0
- package/src/shaders/background.vertex.glsl.g.ts +2 -0
- package/src/shaders/background_pattern.fragment.glsl.g.ts +2 -0
- package/src/shaders/background_pattern.vertex.glsl.g.ts +2 -0
- package/src/shaders/circle.fragment.glsl.g.ts +2 -0
- package/src/shaders/circle.vertex.glsl.g.ts +2 -0
- package/src/shaders/clipping_mask.fragment.glsl.g.ts +2 -0
- package/src/shaders/clipping_mask.vertex.glsl.g.ts +2 -0
- package/src/shaders/collision_box.fragment.glsl.g.ts +2 -0
- package/src/shaders/collision_box.vertex.glsl.g.ts +2 -0
- package/src/shaders/collision_circle.fragment.glsl.g.ts +2 -0
- package/src/shaders/collision_circle.vertex.glsl.g.ts +2 -0
- package/src/shaders/debug.fragment.glsl.g.ts +2 -0
- package/src/shaders/debug.vertex.glsl.g.ts +2 -0
- package/src/shaders/fill.fragment.glsl.g.ts +2 -0
- package/src/shaders/fill.vertex.glsl.g.ts +2 -0
- package/src/shaders/fill_extrusion.fragment.glsl.g.ts +2 -0
- package/src/shaders/fill_extrusion.vertex.glsl.g.ts +2 -0
- package/src/shaders/fill_extrusion_pattern.fragment.glsl.g.ts +2 -0
- package/src/shaders/fill_extrusion_pattern.vertex.glsl.g.ts +2 -0
- package/src/shaders/fill_outline.fragment.glsl.g.ts +2 -0
- package/src/shaders/fill_outline.vertex.glsl.g.ts +2 -0
- package/src/shaders/fill_outline_pattern.fragment.glsl.g.ts +2 -0
- package/src/shaders/fill_outline_pattern.vertex.glsl.g.ts +2 -0
- package/src/shaders/fill_pattern.fragment.glsl.g.ts +2 -0
- package/src/shaders/fill_pattern.vertex.glsl.g.ts +2 -0
- package/src/shaders/heatmap.fragment.glsl.g.ts +2 -0
- package/src/shaders/heatmap.vertex.glsl.g.ts +2 -0
- package/src/shaders/heatmap_texture.fragment.glsl.g.ts +2 -0
- package/src/shaders/heatmap_texture.vertex.glsl.g.ts +2 -0
- package/src/shaders/hillshade.fragment.glsl.g.ts +2 -0
- package/src/shaders/hillshade.vertex.glsl.g.ts +2 -0
- package/src/shaders/hillshade_prepare.fragment.glsl.g.ts +2 -0
- package/src/shaders/hillshade_prepare.vertex.glsl.g.ts +2 -0
- package/src/shaders/line.fragment.glsl.g.ts +2 -0
- package/src/shaders/line.vertex.glsl.g.ts +2 -0
- package/src/shaders/line_gradient.fragment.glsl.g.ts +2 -0
- package/src/shaders/line_gradient.vertex.glsl.g.ts +2 -0
- package/src/shaders/line_pattern.fragment.glsl.g.ts +2 -0
- package/src/shaders/line_pattern.vertex.glsl.g.ts +2 -0
- package/src/shaders/line_sdf.fragment.glsl.g.ts +2 -0
- package/src/shaders/line_sdf.vertex.glsl.g.ts +2 -0
- package/src/shaders/raster.fragment.glsl.g.ts +2 -0
- package/src/shaders/raster.vertex.glsl.g.ts +2 -0
- package/src/shaders/shaders.ts +52 -55
- package/src/shaders/symbol_icon.fragment.glsl.g.ts +2 -0
- package/src/shaders/symbol_icon.vertex.glsl.g.ts +2 -0
- package/src/shaders/symbol_sdf.fragment.glsl.g.ts +2 -0
- package/src/shaders/symbol_sdf.vertex.glsl.g.ts +2 -0
- package/src/shaders/symbol_text_and_icon.fragment.glsl.g.ts +2 -0
- package/src/shaders/symbol_text_and_icon.vertex.glsl.g.ts +2 -0
- package/src/source/canvas_source.test.ts +11 -12
- package/src/source/canvas_source.ts +4 -4
- package/src/source/geojson_source.test.ts +2 -1
- package/src/source/geojson_source.ts +1 -1
- package/src/source/geojson_worker_source.ts +23 -23
- package/src/source/geojson_wrapper.ts +8 -8
- package/src/source/image_source.test.ts +153 -0
- package/src/source/image_source.ts +6 -6
- package/src/source/pixels_to_tile_units.ts +6 -6
- package/src/source/query_features.ts +20 -20
- package/src/source/raster_dem_tile_source.test.ts +4 -3
- package/src/source/raster_dem_tile_source.ts +1 -1
- package/src/source/raster_tile_source.test.ts +4 -3
- package/src/source/raster_tile_source.ts +1 -1
- package/src/source/rtl_text_plugin.ts +10 -10
- package/src/source/source.ts +29 -29
- package/src/source/source_cache.test.ts +33 -1
- package/src/source/source_cache.ts +7 -5
- package/src/source/source_state.ts +1 -1
- package/src/source/tile.test.ts +3 -3
- package/src/source/tile.ts +15 -15
- package/src/source/tile_cache.test.ts +6 -4
- package/src/source/tile_cache.ts +6 -6
- package/src/source/tile_id.test.ts +10 -13
- package/src/source/tile_id.ts +2 -2
- package/src/source/vector_tile_source.test.ts +17 -5
- package/src/source/vector_tile_source.ts +4 -5
- package/src/source/vector_tile_worker_source.test.ts +4 -4
- package/src/source/vector_tile_worker_source.ts +5 -5
- package/src/source/worker.test.ts +1 -1
- package/src/source/worker.ts +22 -22
- package/src/source/worker_source.ts +56 -56
- package/src/source/worker_tile.ts +4 -4
- package/src/style/evaluation_parameters.ts +3 -3
- package/src/style/format_section_override.test.ts +1 -1
- package/src/style/light.ts +10 -10
- package/src/style/load_glyph_range.test.ts +3 -5
- package/src/style/load_glyph_range.ts +6 -6
- package/src/style/load_sprite.ts +5 -4
- package/src/style/pauseable_placement.ts +1 -1
- package/src/style/properties.ts +70 -70
- package/src/style/query_utils.ts +7 -7
- package/src/style/style.test.ts +26 -15
- package/src/style/style.ts +30 -30
- package/src/style/style_glyph.ts +8 -8
- package/src/style/style_image.ts +58 -58
- package/src/style/style_layer/background_style_layer.ts +2 -2
- package/src/style/style_layer/{background_style_layer_properties.ts → background_style_layer_properties.g.ts} +0 -0
- package/src/style/style_layer/circle_style_layer.ts +10 -10
- package/src/style/style_layer/{circle_style_layer_properties.ts → circle_style_layer_properties.g.ts} +0 -0
- package/src/style/style_layer/custom_style_layer.ts +19 -19
- package/src/style/style_layer/fill_extrusion_style_layer.ts +11 -11
- package/src/style/style_layer/{fill_extrusion_style_layer_properties.ts → fill_extrusion_style_layer_properties.g.ts} +0 -0
- package/src/style/style_layer/fill_style_layer.ts +9 -9
- package/src/style/style_layer/{fill_style_layer_properties.ts → fill_style_layer_properties.g.ts} +0 -0
- package/src/style/style_layer/heatmap_style_layer.ts +2 -2
- package/src/style/style_layer/{heatmap_style_layer_properties.ts → heatmap_style_layer_properties.g.ts} +0 -0
- package/src/style/style_layer/hillshade_style_layer.ts +2 -2
- package/src/style/style_layer/{hillshade_style_layer_properties.ts → hillshade_style_layer_properties.g.ts} +0 -0
- package/src/style/style_layer/line_style_layer.ts +9 -9
- package/src/style/style_layer/{line_style_layer_properties.ts → line_style_layer_properties.g.ts} +0 -0
- package/src/style/style_layer/raster_style_layer.ts +2 -2
- package/src/style/style_layer/{raster_style_layer_properties.ts → raster_style_layer_properties.g.ts} +0 -0
- package/src/style/style_layer/symbol_style_layer.ts +26 -7
- package/src/style/style_layer/{symbol_style_layer_properties.ts → symbol_style_layer_properties.g.ts} +6 -0
- package/src/style/style_layer.ts +10 -10
- package/src/style/style_layer_index.ts +3 -3
- package/src/style/validate_style.ts +15 -15
- package/src/style-spec/CHANGELOG.md +6 -0
- package/src/style-spec/error/validation_error.ts +1 -1
- package/src/style-spec/expression/compound_expression.ts +3 -3
- package/src/style-spec/expression/definitions/format.ts +11 -11
- package/src/style-spec/expression/definitions/interpolate.ts +5 -5
- package/src/style-spec/expression/definitions/match.ts +2 -2
- package/src/style-spec/expression/definitions/number_format.ts +11 -11
- package/src/style-spec/expression/expression.ts +8 -8
- package/src/style-spec/expression/index.ts +97 -97
- package/src/style-spec/expression/parsing_context.ts +11 -11
- package/src/style-spec/expression/types/collator.ts +9 -9
- package/src/style-spec/expression/types/resolved_image.ts +2 -2
- package/src/style-spec/expression/types.ts +14 -14
- package/src/style-spec/expression/values.ts +1 -1
- package/src/style-spec/feature_filter/index.ts +66 -66
- package/src/style-spec/function/convert.ts +3 -3
- package/src/style-spec/package.json +1 -1
- package/src/style-spec/reference/v8.json +68 -2
- package/src/style-spec/style-spec.ts +44 -44
- package/src/style-spec/types.ts +2 -0
- package/src/style-spec/util/color_spaces.ts +8 -8
- package/src/style-spec/util/result.ts +4 -4
- package/src/style-spec/validate/validate_filter.ts +58 -58
- package/src/style-spec/validate/validate_source.ts +63 -63
- package/src/style-spec/visit.ts +11 -11
- package/src/symbol/collision_feature.test.ts +1 -1
- package/src/symbol/collision_feature.ts +10 -10
- package/src/symbol/collision_index.ts +43 -43
- package/src/symbol/cross_tile_symbol_index.ts +17 -17
- package/src/symbol/get_anchors.ts +16 -16
- package/src/symbol/grid_index.test.ts +42 -19
- package/src/symbol/grid_index.ts +69 -40
- package/src/symbol/placement.ts +124 -95
- package/src/symbol/projection.ts +30 -30
- package/src/symbol/quads.ts +30 -30
- package/src/symbol/shaping.ts +160 -160
- package/src/symbol/symbol_layout.ts +119 -119
- package/src/symbol/symbol_size.ts +29 -29
- package/src/symbol/symbol_style_layer.test.ts +49 -2
- package/src/types/cancelable.ts +1 -1
- package/src/types/tilejson.ts +13 -13
- package/src/ui/anchor.ts +1 -1
- package/src/ui/camera.test.ts +9 -9
- package/src/ui/camera.ts +26 -18
- package/src/ui/control/attribution_control.test.ts +51 -16
- package/src/ui/control/attribution_control.ts +35 -16
- package/src/ui/control/control.ts +40 -40
- package/src/ui/control/fullscreen_control.ts +1 -1
- package/src/ui/control/geolocate_control.test.ts +1 -1
- package/src/ui/control/geolocate_control.ts +102 -102
- package/src/ui/control/logo_control.test.ts +5 -4
- package/src/ui/control/navigation_control.ts +3 -3
- package/src/ui/control/scale_control.test.ts +2 -2
- package/src/ui/control/scale_control.ts +5 -5
- package/src/ui/events.ts +289 -200
- package/src/ui/handler/box_zoom.test.ts +1 -1
- package/src/ui/handler/box_zoom.ts +1 -1
- package/src/ui/handler/dblclick_zoom.test.ts +1 -1
- package/src/ui/handler/drag_pan.test.ts +1 -1
- package/src/ui/handler/drag_rotate.test.ts +1 -1
- package/src/ui/handler/keyboard.test.ts +1 -1
- package/src/ui/handler/keyboard.ts +51 -51
- package/src/ui/handler/map_event.test.ts +1 -1
- package/src/ui/handler/map_event.ts +1 -1
- package/src/ui/handler/mouse.ts +1 -1
- package/src/ui/handler/mouse_rotate.test.ts +1 -1
- package/src/ui/handler/scroll_zoom.test.ts +3 -2
- package/src/ui/handler/scroll_zoom.ts +9 -9
- package/src/ui/handler/shim/drag_pan.ts +4 -4
- package/src/ui/handler/shim/drag_rotate.ts +1 -1
- package/src/ui/handler/shim/touch_zoom_rotate.ts +1 -1
- package/src/ui/handler/tap_recognizer.ts +4 -4
- package/src/ui/handler/touch_pan.ts +2 -2
- package/src/ui/handler/touch_zoom_rotate.test.ts +1 -1
- package/src/ui/handler/touch_zoom_rotate.ts +1 -1
- package/src/ui/handler_inertia.ts +6 -6
- package/src/ui/handler_manager.ts +44 -44
- package/src/ui/map/isMoving.test.ts +1 -1
- package/src/ui/map/isRotating.test.ts +1 -1
- package/src/ui/map/isZooming.test.ts +1 -1
- package/src/ui/map.test.ts +87 -14
- package/src/ui/map.ts +138 -108
- package/src/ui/map_events.test.ts +1 -1
- package/src/ui/marker.test.ts +12 -12
- package/src/ui/marker.ts +37 -37
- package/src/ui/popup.test.ts +7 -7
- package/src/ui/popup.ts +9 -9
- package/src/util/actor.test.ts +41 -10
- package/src/util/actor.ts +8 -8
- package/src/util/ajax.test.ts +214 -0
- package/src/util/ajax.ts +51 -30
- package/src/util/browser.ts +1 -1
- package/src/util/classify_rings.test.ts +1 -1
- package/src/util/color_ramp.ts +5 -5
- package/src/util/config.ts +2 -2
- package/src/util/dispatcher.ts +1 -1
- package/src/util/dom.ts +2 -2
- package/src/util/evented.ts +1 -1
- package/src/util/find_pole_of_inaccessibility.ts +3 -3
- package/src/util/image.ts +5 -5
- package/src/util/performance.ts +7 -7
- package/src/util/request_manager.ts +4 -4
- package/src/util/resolve_tokens.ts +4 -4
- package/src/util/struct_array.test.ts +1 -1
- package/src/util/struct_array.ts +15 -15
- package/src/util/task_queue.ts +3 -3
- package/src/util/test/util.ts +14 -0
- package/src/util/tile_request_cache.ts +3 -3
- package/src/util/transferable_grid_index.ts +4 -4
- package/src/util/util.ts +8 -8
- package/src/util/web_worker.ts +4 -68
- package/src/util/web_worker_transfer.test.ts +3 -0
- package/src/util/web_worker_transfer.ts +21 -17
- package/src/util/worker_pool.ts +1 -1
- package/build/.eslintrc +0 -21
- package/build/glsl_to_js.js +0 -12
- package/build/post-ts-build.js +0 -43
- package/build/release-notes.md.ejs +0 -8
- package/build/test/build-tape.js +0 -17
- package/build/web_worker_replacement.js +0 -5
- package/dist/package.json +0 -1
- package/src/style-spec/validate_spec.test.ts +0 -29
- package/src/symbol/shaping.test.ts +0 -392
- package/src/types/glsl.d.ts +0 -4
package/src/style/properties.ts
CHANGED
|
@@ -24,8 +24,8 @@ import {
|
|
|
24
24
|
type TimePoint = number;
|
|
25
25
|
|
|
26
26
|
export type CrossFaded<T> = {
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
to: T;
|
|
28
|
+
from: T;
|
|
29
29
|
};
|
|
30
30
|
|
|
31
31
|
/**
|
|
@@ -64,14 +64,14 @@ export type CrossFaded<T> = {
|
|
|
64
64
|
* @private
|
|
65
65
|
*/
|
|
66
66
|
export interface Property<T, R> {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
67
|
+
specification: StylePropertySpecification;
|
|
68
|
+
possiblyEvaluate(
|
|
69
|
+
value: PropertyValue<T, R>,
|
|
70
|
+
parameters: EvaluationParameters,
|
|
71
|
+
canonical?: CanonicalTileID,
|
|
72
|
+
availableImages?: Array<string>
|
|
73
|
+
): R;
|
|
74
|
+
interpolate(a: R, b: R, t: number): R;
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
/**
|
|
@@ -109,9 +109,9 @@ export class PropertyValue<T, R> {
|
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
possiblyEvaluate(
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
112
|
+
parameters: EvaluationParameters,
|
|
113
|
+
canonical?: CanonicalTileID,
|
|
114
|
+
availableImages?: Array<string>
|
|
115
115
|
): R {
|
|
116
116
|
return this.property.possiblyEvaluate(this, parameters, canonical, availableImages);
|
|
117
117
|
}
|
|
@@ -120,8 +120,8 @@ export class PropertyValue<T, R> {
|
|
|
120
120
|
// ------- Transitionable -------
|
|
121
121
|
|
|
122
122
|
export type TransitionParameters = {
|
|
123
|
-
|
|
124
|
-
|
|
123
|
+
now: TimePoint;
|
|
124
|
+
transition: TransitionSpecification;
|
|
125
125
|
};
|
|
126
126
|
|
|
127
127
|
/**
|
|
@@ -248,10 +248,10 @@ class TransitioningPropertyValue<T, R> {
|
|
|
248
248
|
end: TimePoint;
|
|
249
249
|
|
|
250
250
|
constructor(property: Property<T, R>,
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
251
|
+
value: PropertyValue<T, R>,
|
|
252
|
+
prior: TransitioningPropertyValue<T, R>,
|
|
253
|
+
transition: TransitionSpecification,
|
|
254
|
+
now: TimePoint) {
|
|
255
255
|
this.property = property;
|
|
256
256
|
this.value = value;
|
|
257
257
|
this.begin = now + transition.delay || 0;
|
|
@@ -262,9 +262,9 @@ class TransitioningPropertyValue<T, R> {
|
|
|
262
262
|
}
|
|
263
263
|
|
|
264
264
|
possiblyEvaluate(
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
265
|
+
parameters: EvaluationParameters,
|
|
266
|
+
canonical: CanonicalTileID,
|
|
267
|
+
availableImages: Array<string>
|
|
268
268
|
): R {
|
|
269
269
|
const now = parameters.now || 0;
|
|
270
270
|
const finalValue = this.value.possiblyEvaluate(parameters, canonical, availableImages);
|
|
@@ -310,9 +310,9 @@ export class Transitioning<Props> {
|
|
|
310
310
|
}
|
|
311
311
|
|
|
312
312
|
possiblyEvaluate(
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
313
|
+
parameters: EvaluationParameters,
|
|
314
|
+
canonical?: CanonicalTileID,
|
|
315
|
+
availableImages?: Array<string>
|
|
316
316
|
): PossiblyEvaluated<Props, any> {
|
|
317
317
|
const result = new PossiblyEvaluated(this._properties); // eslint-disable-line no-use-before-define
|
|
318
318
|
for (const property of Object.keys(this._values)) {
|
|
@@ -373,9 +373,9 @@ export class Layout<Props> {
|
|
|
373
373
|
}
|
|
374
374
|
|
|
375
375
|
possiblyEvaluate(
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
376
|
+
parameters: EvaluationParameters,
|
|
377
|
+
canonical?: CanonicalTileID,
|
|
378
|
+
availableImages?: Array<string>
|
|
379
379
|
): PossiblyEvaluated<Props, any> {
|
|
380
380
|
const result = new PossiblyEvaluated(this._properties); // eslint-disable-line no-use-before-define
|
|
381
381
|
for (const property of Object.keys(this._values)) {
|
|
@@ -409,8 +409,8 @@ export class Layout<Props> {
|
|
|
409
409
|
* @private
|
|
410
410
|
*/
|
|
411
411
|
type PossiblyEvaluatedValue<T> = {
|
|
412
|
-
|
|
413
|
-
|
|
412
|
+
kind: 'constant';
|
|
413
|
+
value: T;
|
|
414
414
|
} | SourceExpression | CompositeExpression;
|
|
415
415
|
|
|
416
416
|
/**
|
|
@@ -445,10 +445,10 @@ export class PossiblyEvaluatedPropertyValue<T> {
|
|
|
445
445
|
}
|
|
446
446
|
|
|
447
447
|
evaluate(
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
448
|
+
feature: Feature,
|
|
449
|
+
featureState: FeatureState,
|
|
450
|
+
canonical?: CanonicalTileID,
|
|
451
|
+
availableImages?: Array<string>
|
|
452
452
|
): T {
|
|
453
453
|
return this.property.evaluate(this.value, this.parameters, feature, featureState, canonical, availableImages);
|
|
454
454
|
}
|
|
@@ -519,10 +519,10 @@ export class DataDrivenProperty<T> implements Property<T, PossiblyEvaluatedPrope
|
|
|
519
519
|
}
|
|
520
520
|
|
|
521
521
|
possiblyEvaluate(
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
522
|
+
value: PropertyValue<T, PossiblyEvaluatedPropertyValue<T>>,
|
|
523
|
+
parameters: EvaluationParameters,
|
|
524
|
+
canonical?: CanonicalTileID,
|
|
525
|
+
availableImages?: Array<string>
|
|
526
526
|
): PossiblyEvaluatedPropertyValue<T> {
|
|
527
527
|
if (value.expression.kind === 'constant' || value.expression.kind === 'camera') {
|
|
528
528
|
return new PossiblyEvaluatedPropertyValue(this, {kind: 'constant', value: value.expression.evaluate(parameters, null, {}, canonical, availableImages)}, parameters);
|
|
@@ -532,9 +532,9 @@ export class DataDrivenProperty<T> implements Property<T, PossiblyEvaluatedPrope
|
|
|
532
532
|
}
|
|
533
533
|
|
|
534
534
|
interpolate(
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
535
|
+
a: PossiblyEvaluatedPropertyValue<T>,
|
|
536
|
+
b: PossiblyEvaluatedPropertyValue<T>,
|
|
537
|
+
t: number
|
|
538
538
|
): PossiblyEvaluatedPropertyValue<T> {
|
|
539
539
|
// If either possibly-evaluated value is non-constant, give up: we aren't able to interpolate data-driven values.
|
|
540
540
|
if (a.value.kind !== 'constant' || b.value.kind !== 'constant') {
|
|
@@ -561,12 +561,12 @@ export class DataDrivenProperty<T> implements Property<T, PossiblyEvaluatedPrope
|
|
|
561
561
|
}
|
|
562
562
|
|
|
563
563
|
evaluate(
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
564
|
+
value: PossiblyEvaluatedValue<T>,
|
|
565
|
+
parameters: EvaluationParameters,
|
|
566
|
+
feature: Feature,
|
|
567
|
+
featureState: FeatureState,
|
|
568
|
+
canonical?: CanonicalTileID,
|
|
569
|
+
availableImages?: Array<string>
|
|
570
570
|
): T {
|
|
571
571
|
if (value.kind === 'constant') {
|
|
572
572
|
return value.value;
|
|
@@ -586,10 +586,10 @@ export class DataDrivenProperty<T> implements Property<T, PossiblyEvaluatedPrope
|
|
|
586
586
|
export class CrossFadedDataDrivenProperty<T> extends DataDrivenProperty<CrossFaded<T>> {
|
|
587
587
|
|
|
588
588
|
possiblyEvaluate(
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
589
|
+
value: PropertyValue<CrossFaded<T>, PossiblyEvaluatedPropertyValue<CrossFaded<T>>>,
|
|
590
|
+
parameters: EvaluationParameters,
|
|
591
|
+
canonical?: CanonicalTileID,
|
|
592
|
+
availableImages?: Array<string>
|
|
593
593
|
): PossiblyEvaluatedPropertyValue<CrossFaded<T>> {
|
|
594
594
|
if (value.value === undefined) {
|
|
595
595
|
return new PossiblyEvaluatedPropertyValue(this, {kind: 'constant', value: undefined}, parameters);
|
|
@@ -601,10 +601,10 @@ export class CrossFadedDataDrivenProperty<T> extends DataDrivenProperty<CrossFad
|
|
|
601
601
|
return new PossiblyEvaluatedPropertyValue(this, {kind: 'constant', value: constant}, parameters);
|
|
602
602
|
} else if (value.expression.kind === 'camera') {
|
|
603
603
|
const cameraVal = this._calculate(
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
604
|
+
value.expression.evaluate({zoom: parameters.zoom - 1.0}),
|
|
605
|
+
value.expression.evaluate({zoom: parameters.zoom}),
|
|
606
|
+
value.expression.evaluate({zoom: parameters.zoom + 1.0}),
|
|
607
|
+
parameters);
|
|
608
608
|
return new PossiblyEvaluatedPropertyValue(this, {kind: 'constant', value: cameraVal}, parameters);
|
|
609
609
|
} else {
|
|
610
610
|
// source or composite expression
|
|
@@ -613,12 +613,12 @@ export class CrossFadedDataDrivenProperty<T> extends DataDrivenProperty<CrossFad
|
|
|
613
613
|
}
|
|
614
614
|
|
|
615
615
|
evaluate(
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
616
|
+
value: PossiblyEvaluatedValue<CrossFaded<T>>,
|
|
617
|
+
globals: EvaluationParameters,
|
|
618
|
+
feature: Feature,
|
|
619
|
+
featureState: FeatureState,
|
|
620
|
+
canonical?: CanonicalTileID,
|
|
621
|
+
availableImages?: Array<string>
|
|
622
622
|
): CrossFaded<T> {
|
|
623
623
|
if (value.kind === 'source') {
|
|
624
624
|
const constant = value.evaluate(globals, feature, featureState, canonical, availableImages);
|
|
@@ -657,10 +657,10 @@ export class CrossFadedProperty<T> implements Property<T, CrossFaded<T>> {
|
|
|
657
657
|
}
|
|
658
658
|
|
|
659
659
|
possiblyEvaluate(
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
660
|
+
value: PropertyValue<T, CrossFaded<T>>,
|
|
661
|
+
parameters: EvaluationParameters,
|
|
662
|
+
canonical?: CanonicalTileID,
|
|
663
|
+
availableImages?: Array<string>
|
|
664
664
|
): CrossFaded<T> {
|
|
665
665
|
if (value.value === undefined) {
|
|
666
666
|
return undefined;
|
|
@@ -703,10 +703,10 @@ export class ColorRampProperty implements Property<Color, boolean> {
|
|
|
703
703
|
}
|
|
704
704
|
|
|
705
705
|
possiblyEvaluate(
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
706
|
+
value: PropertyValue<Color, boolean>,
|
|
707
|
+
parameters: EvaluationParameters,
|
|
708
|
+
canonical?: CanonicalTileID,
|
|
709
|
+
availableImages?: Array<string>
|
|
710
710
|
): boolean {
|
|
711
711
|
return !!value.expression.evaluate(parameters, null, {}, canonical, availableImages);
|
|
712
712
|
}
|
|
@@ -730,7 +730,7 @@ export class Properties<Props> {
|
|
|
730
730
|
defaultPropertyValues: {[K in keyof Props]: PropertyValue<unknown, any>};
|
|
731
731
|
defaultTransitionablePropertyValues: {[K in keyof Props]: TransitionablePropertyValue<unknown, unknown>};
|
|
732
732
|
defaultTransitioningPropertyValues: {[K in keyof Props]: TransitioningPropertyValue<unknown, unknown>};
|
|
733
|
-
defaultPossiblyEvaluatedValues: {[K in keyof Props]: PossiblyEvaluatedPropertyValue<unknown>}
|
|
733
|
+
defaultPossiblyEvaluatedValues: {[K in keyof Props]: PossiblyEvaluatedPropertyValue<unknown>};
|
|
734
734
|
overridableProperties: Array<string>;
|
|
735
735
|
|
|
736
736
|
constructor(properties: Props) {
|
package/src/style/query_utils.ts
CHANGED
|
@@ -6,9 +6,9 @@ import type CircleBucket from '../data/bucket/circle_bucket';
|
|
|
6
6
|
import type LineBucket from '../data/bucket/line_bucket';
|
|
7
7
|
|
|
8
8
|
export function getMaximumPaintValue(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
property: string,
|
|
10
|
+
layer: StyleLayer,
|
|
11
|
+
bucket: CircleBucket<any> | LineBucket
|
|
12
12
|
): number {
|
|
13
13
|
const value = ((layer.paint as any).get(property) as PossiblyEvaluatedPropertyValue<any>).value;
|
|
14
14
|
if (value.kind === 'constant') {
|
|
@@ -23,10 +23,10 @@ export function translateDistance(translate: [number, number]) {
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
export function translate(queryGeometry: Array<Point>,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
translate: [number, number],
|
|
27
|
+
translateAnchor: 'viewport' | 'map',
|
|
28
|
+
bearing: number,
|
|
29
|
+
pixelsToTileUnits: number) {
|
|
30
30
|
if (!translate[0] && !translate[1]) {
|
|
31
31
|
return queryGeometry;
|
|
32
32
|
}
|
package/src/style/style.test.ts
CHANGED
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
} from '../source/rtl_text_plugin';
|
|
13
13
|
import browser from '../util/browser';
|
|
14
14
|
import {OverscaledTileID} from '../source/tile_id';
|
|
15
|
-
import {
|
|
15
|
+
import {fakeXhr, fakeServer} from 'nise';
|
|
16
16
|
import {WorkerGlobalScopeInterface} from '../util/web_worker';
|
|
17
17
|
import EvaluationParameters from './evaluation_parameters';
|
|
18
18
|
import {LayerSpecification, GeoJSONSourceSpecification, FilterSpecification, SourceSpecification} from '../style-spec/types';
|
|
@@ -48,6 +48,7 @@ function createGeoJSONSource() {
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
class StubMap extends Evented {
|
|
51
|
+
style: Style;
|
|
51
52
|
transform: Transform;
|
|
52
53
|
private _requestManager: RequestManager;
|
|
53
54
|
|
|
@@ -60,10 +61,20 @@ class StubMap extends Evented {
|
|
|
60
61
|
_getMapId() {
|
|
61
62
|
return 1;
|
|
62
63
|
}
|
|
64
|
+
|
|
65
|
+
getPixelRatio() {
|
|
66
|
+
return 1;
|
|
67
|
+
}
|
|
63
68
|
}
|
|
64
69
|
|
|
65
70
|
const getStubMap = () => new StubMap() as any;
|
|
66
71
|
|
|
72
|
+
function createStyle(map = getStubMap()) {
|
|
73
|
+
const style = new Style(map);
|
|
74
|
+
map.style = style;
|
|
75
|
+
return style;
|
|
76
|
+
}
|
|
77
|
+
|
|
67
78
|
let sinonFakeXMLServer;
|
|
68
79
|
let sinonFakeServer;
|
|
69
80
|
let _self;
|
|
@@ -72,7 +83,7 @@ let mockConsoleError;
|
|
|
72
83
|
beforeEach(() => {
|
|
73
84
|
global.fetch = null;
|
|
74
85
|
sinonFakeServer = fakeServer.create();
|
|
75
|
-
sinonFakeXMLServer = useFakeXMLHttpRequest();
|
|
86
|
+
sinonFakeXMLServer = fakeXhr.useFakeXMLHttpRequest();
|
|
76
87
|
|
|
77
88
|
_self = {
|
|
78
89
|
addEventListener() {}
|
|
@@ -254,7 +265,7 @@ describe('Style#loadJSON', () => {
|
|
|
254
265
|
});
|
|
255
266
|
|
|
256
267
|
test('creates sources', done => {
|
|
257
|
-
const style =
|
|
268
|
+
const style = createStyle();
|
|
258
269
|
|
|
259
270
|
style.on('style.load', () => {
|
|
260
271
|
expect(style.sourceCaches['mapLibre'] instanceof SourceCache).toBeTruthy();
|
|
@@ -272,7 +283,7 @@ describe('Style#loadJSON', () => {
|
|
|
272
283
|
});
|
|
273
284
|
|
|
274
285
|
test('creates layers', done => {
|
|
275
|
-
const style =
|
|
286
|
+
const style = createStyle();
|
|
276
287
|
|
|
277
288
|
style.on('style.load', () => {
|
|
278
289
|
expect(style.getLayer('fill') instanceof StyleLayer).toBeTruthy();
|
|
@@ -298,7 +309,7 @@ describe('Style#loadJSON', () => {
|
|
|
298
309
|
test('transforms sprite json and image URLs before request', done => {
|
|
299
310
|
const map = getStubMap();
|
|
300
311
|
const transformSpy = jest.spyOn(map._requestManager, 'transformRequest');
|
|
301
|
-
const style =
|
|
312
|
+
const style = createStyle(map);
|
|
302
313
|
|
|
303
314
|
style.on('style.load', () => {
|
|
304
315
|
expect(transformSpy).toHaveBeenCalledTimes(2);
|
|
@@ -315,7 +326,7 @@ describe('Style#loadJSON', () => {
|
|
|
315
326
|
});
|
|
316
327
|
|
|
317
328
|
test('emits an error on non-existant vector source layer', done => {
|
|
318
|
-
const style =
|
|
329
|
+
const style = createStyle();
|
|
319
330
|
style.loadJSON(createStyleJSON({
|
|
320
331
|
sources: {
|
|
321
332
|
'-source-id-': {type: 'vector', tiles: []}
|
|
@@ -403,7 +414,7 @@ describe('Style#_remove', () => {
|
|
|
403
414
|
|
|
404
415
|
describe('Style#update', () => {
|
|
405
416
|
test('on error', done => {
|
|
406
|
-
const style =
|
|
417
|
+
const style = createStyle();
|
|
407
418
|
style.loadJSON({
|
|
408
419
|
'version': 8,
|
|
409
420
|
'sources': {
|
|
@@ -445,7 +456,7 @@ describe('Style#setState', () => {
|
|
|
445
456
|
});
|
|
446
457
|
|
|
447
458
|
test('do nothing if there are no changes', done => {
|
|
448
|
-
const style =
|
|
459
|
+
const style = createStyle();
|
|
449
460
|
style.loadJSON(createStyleJSON());
|
|
450
461
|
jest.spyOn(style, 'addLayer').mockImplementation(() => done('test failed'));
|
|
451
462
|
jest.spyOn(style, 'removeLayer').mockImplementation(() => done('test failed'));
|
|
@@ -570,7 +581,7 @@ describe('Style#addSource', () => {
|
|
|
570
581
|
});
|
|
571
582
|
|
|
572
583
|
test('fires "data" event', done => {
|
|
573
|
-
const style =
|
|
584
|
+
const style = createStyle();
|
|
574
585
|
style.loadJSON(createStyleJSON());
|
|
575
586
|
const source = createSource();
|
|
576
587
|
style.once('data', () => { done(); });
|
|
@@ -581,7 +592,7 @@ describe('Style#addSource', () => {
|
|
|
581
592
|
});
|
|
582
593
|
|
|
583
594
|
test('throws on duplicates', done => {
|
|
584
|
-
const style =
|
|
595
|
+
const style = createStyle();
|
|
585
596
|
style.loadJSON(createStyleJSON());
|
|
586
597
|
const source = createSource();
|
|
587
598
|
style.on('style.load', () => {
|
|
@@ -603,7 +614,7 @@ describe('Style#addSource', () => {
|
|
|
603
614
|
done();
|
|
604
615
|
}
|
|
605
616
|
};
|
|
606
|
-
const style =
|
|
617
|
+
const style = createStyle();
|
|
607
618
|
style.loadJSON(createStyleJSON({
|
|
608
619
|
layers: [{
|
|
609
620
|
id: 'background',
|
|
@@ -791,7 +802,7 @@ describe('Style#addLayer', () => {
|
|
|
791
802
|
});
|
|
792
803
|
|
|
793
804
|
test('throws on non-existant vector source layer', done => {
|
|
794
|
-
const style =
|
|
805
|
+
const style = createStyle();
|
|
795
806
|
style.loadJSON(createStyleJSON({
|
|
796
807
|
sources: {
|
|
797
808
|
// At least one source must be added to trigger the load event
|
|
@@ -860,7 +871,7 @@ describe('Style#addLayer', () => {
|
|
|
860
871
|
});
|
|
861
872
|
|
|
862
873
|
test('reloads source', done => {
|
|
863
|
-
const style =
|
|
874
|
+
const style = createStyle();
|
|
864
875
|
style.loadJSON(extend(createStyleJSON(), {
|
|
865
876
|
'sources': {
|
|
866
877
|
'mapLibre': {
|
|
@@ -887,7 +898,7 @@ describe('Style#addLayer', () => {
|
|
|
887
898
|
});
|
|
888
899
|
|
|
889
900
|
test('#3895 reloads source (instead of clearing) if adding this layer with the same type, immediately after removing it', done => {
|
|
890
|
-
const style =
|
|
901
|
+
const style = createStyle();
|
|
891
902
|
style.loadJSON(extend(createStyleJSON(), {
|
|
892
903
|
'sources': {
|
|
893
904
|
'mapLibre': {
|
|
@@ -924,7 +935,7 @@ describe('Style#addLayer', () => {
|
|
|
924
935
|
});
|
|
925
936
|
|
|
926
937
|
test('clears source (instead of reloading) if adding this layer with a different type, immediately after removing it', done => {
|
|
927
|
-
const style =
|
|
938
|
+
const style = createStyle();
|
|
928
939
|
style.loadJSON(extend(createStyleJSON(), {
|
|
929
940
|
'sources': {
|
|
930
941
|
'mapLibre': {
|
package/src/style/style.ts
CHANGED
|
@@ -37,8 +37,8 @@ import {validateCustomStyleLayer} from './style_layer/custom_style_layer';
|
|
|
37
37
|
// to continue to allow canvas sources to be added at runtime/updated in
|
|
38
38
|
// smart setStyle (see https://github.com/mapbox/mapbox-gl-js/pull/6424):
|
|
39
39
|
const emitValidationErrors = (evented: Evented, errors?: ReadonlyArray<{
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
message: string;
|
|
41
|
+
identifier?: string;
|
|
42
42
|
}> | null) =>
|
|
43
43
|
_emitValidationErrors(evented, errors && errors.filter(error => error.identifier !== 'source.canvas'));
|
|
44
44
|
|
|
@@ -88,12 +88,12 @@ const ignoredDiffOperations = pick(diffOperations, [
|
|
|
88
88
|
const empty = emptyStyle() as StyleSpecification;
|
|
89
89
|
|
|
90
90
|
export type StyleOptions = {
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
validate?: boolean;
|
|
92
|
+
localIdeographFontFamily?: string;
|
|
93
93
|
};
|
|
94
94
|
|
|
95
95
|
export type StyleSetterOptions = {
|
|
96
|
-
|
|
96
|
+
validate?: boolean;
|
|
97
97
|
};
|
|
98
98
|
/**
|
|
99
99
|
* @private
|
|
@@ -203,7 +203,7 @@ class Style extends Evented {
|
|
|
203
203
|
}
|
|
204
204
|
|
|
205
205
|
loadURL(url: string, options: {
|
|
206
|
-
|
|
206
|
+
validate?: boolean;
|
|
207
207
|
} = {}) {
|
|
208
208
|
this.fire(new Event('dataloading', {dataType: 'style'}));
|
|
209
209
|
|
|
@@ -276,7 +276,7 @@ class Style extends Evented {
|
|
|
276
276
|
}
|
|
277
277
|
|
|
278
278
|
_loadSprite(url: string) {
|
|
279
|
-
this._spriteRequest = loadSprite(url, this.map._requestManager, (err, images) => {
|
|
279
|
+
this._spriteRequest = loadSprite(url, this.map._requestManager, this.map.getPixelRatio(), (err, images) => {
|
|
280
280
|
this._spriteRequest = null;
|
|
281
281
|
if (err) {
|
|
282
282
|
this.fire(new ErrorEvent(err));
|
|
@@ -611,10 +611,10 @@ class Style extends Evented {
|
|
|
611
611
|
}
|
|
612
612
|
|
|
613
613
|
/**
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
614
|
+
* Set the data of a GeoJSON source, given its id.
|
|
615
|
+
* @param {string} id id of the source
|
|
616
|
+
* @param {GeoJSON|string} data GeoJSON source
|
|
617
|
+
*/
|
|
618
618
|
setGeoJSONSourceData(id: string, data: GeoJSON.GeoJSON | string) {
|
|
619
619
|
this._checkLoaded();
|
|
620
620
|
|
|
@@ -716,7 +716,7 @@ class Style extends Evented {
|
|
|
716
716
|
/**
|
|
717
717
|
* Moves a layer to a different z-position. The layer will be inserted before the layer with
|
|
718
718
|
* ID `before`, or appended if `before` is omitted.
|
|
719
|
-
* @param {string} id
|
|
719
|
+
* @param {string} id ID of the layer to move
|
|
720
720
|
* @param {string} [before] ID of an existing layer to insert before
|
|
721
721
|
*/
|
|
722
722
|
moveLayer(id: string, before?: string) {
|
|
@@ -913,9 +913,9 @@ class Style extends Evented {
|
|
|
913
913
|
}
|
|
914
914
|
|
|
915
915
|
setFeatureState(target: {
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
916
|
+
source: string;
|
|
917
|
+
sourceLayer?: string;
|
|
918
|
+
id: string | number;
|
|
919
919
|
}, state: any) {
|
|
920
920
|
this._checkLoaded();
|
|
921
921
|
const sourceId = target.source;
|
|
@@ -943,9 +943,9 @@ class Style extends Evented {
|
|
|
943
943
|
}
|
|
944
944
|
|
|
945
945
|
removeFeatureState(target: {
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
946
|
+
source: string;
|
|
947
|
+
sourceLayer?: string;
|
|
948
|
+
id?: string | number;
|
|
949
949
|
}, key?: string) {
|
|
950
950
|
this._checkLoaded();
|
|
951
951
|
const sourceId = target.source;
|
|
@@ -973,9 +973,9 @@ class Style extends Evented {
|
|
|
973
973
|
}
|
|
974
974
|
|
|
975
975
|
getFeatureState(target: {
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
976
|
+
source: string;
|
|
977
|
+
sourceLayer?: string;
|
|
978
|
+
id: string | number;
|
|
979
979
|
}) {
|
|
980
980
|
this._checkLoaded();
|
|
981
981
|
const sourceId = target.source;
|
|
@@ -1218,7 +1218,7 @@ class Style extends Evented {
|
|
|
1218
1218
|
}
|
|
1219
1219
|
|
|
1220
1220
|
_validate(validate: Validator, key: string, value: any, props: any, options: {
|
|
1221
|
-
|
|
1221
|
+
validate?: boolean;
|
|
1222
1222
|
} = {}) {
|
|
1223
1223
|
if (options && options.validate === false) {
|
|
1224
1224
|
return false;
|
|
@@ -1354,14 +1354,14 @@ class Style extends Evented {
|
|
|
1354
1354
|
// Callbacks from web workers
|
|
1355
1355
|
|
|
1356
1356
|
getImages(
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1357
|
+
mapId: string,
|
|
1358
|
+
params: {
|
|
1359
|
+
icons: Array<string>;
|
|
1360
|
+
source: string;
|
|
1361
|
+
tileID: OverscaledTileID;
|
|
1362
|
+
type: string;
|
|
1363
|
+
},
|
|
1364
|
+
callback: Callback<{[_: string]: StyleImage}>
|
|
1365
1365
|
) {
|
|
1366
1366
|
this.imageManager.getImages(params.icons, callback);
|
|
1367
1367
|
|
package/src/style/style_glyph.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import type {AlphaImage} from '../util/image';
|
|
2
2
|
|
|
3
3
|
export type GlyphMetrics = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
left: number;
|
|
7
|
+
top: number;
|
|
8
|
+
advance: number;
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
export type StyleGlyph = {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
id: number;
|
|
13
|
+
bitmap: AlphaImage;
|
|
14
|
+
metrics: GlyphMetrics;
|
|
15
15
|
};
|