maplibre-gl 2.1.1 → 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} +11 -26
- package/dist/maplibre-gl-dev.js +522 -226
- package/dist/maplibre-gl.css +1 -1
- package/dist/maplibre-gl.d.ts +1536 -1010
- package/dist/maplibre-gl.js +3 -3
- package/dist/maplibre-gl.js.map +1 -1
- package/package.json +40 -61
- 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 +53 -53
- 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 +46 -46
- 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_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 +33 -32
- package/src/render/image_manager.ts +4 -4
- package/src/render/painter.ts +11 -11
- package/src/render/program/background_program.ts +29 -29
- package/src/render/program/circle_program.ts +10 -10
- 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 +38 -38
- package/src/render/program/pattern.ts +28 -28
- package/src/render/program/raster_program.ts +21 -21
- package/src/render/program/symbol_program.ts +96 -96
- 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_worker_source.ts +23 -23
- package/src/source/geojson_wrapper.ts +8 -8
- package/src/source/image_source.test.ts +2 -2
- 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 +2 -2
- package/src/source/raster_tile_source.test.ts +2 -2
- package/src/source/rtl_text_plugin.ts +10 -10
- package/src/source/source.ts +29 -29
- package/src/source/source_cache.test.ts +32 -0
- 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.ts +6 -6
- package/src/source/tile_id.test.ts +0 -1
- package/src/source/vector_tile_source.test.ts +3 -3
- package/src/source/vector_tile_source.ts +1 -1
- 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 -3
- package/src/style/load_glyph_range.ts +6 -6
- package/src/style/load_sprite.ts +4 -4
- package/src/style/pauseable_placement.ts +1 -1
- package/src/style/properties.ts +69 -69
- package/src/style/query_utils.ts +7 -7
- package/src/style/style.test.ts +2 -2
- package/src/style/style.ts +29 -29
- 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 +17 -17
- package/src/style/style_layer/fill_extrusion_style_layer.ts +10 -10
- 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 +7 -7
- package/src/style/style_layer/{symbol_style_layer_properties.ts → symbol_style_layer_properties.g.ts} +0 -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/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/style-spec.ts +44 -44
- 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 +26 -26
- package/src/symbol/cross_tile_symbol_index.ts +17 -17
- package/src/symbol/get_anchors.ts +16 -16
- package/src/symbol/grid_index.ts +7 -7
- package/src/symbol/placement.ts +72 -72
- 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 +1 -1
- 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 +5 -5
- package/src/ui/camera.ts +18 -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 +4 -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 +1 -1
- 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 +10 -4
- package/src/ui/map.ts +106 -101
- 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 +29 -21
- 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/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/data/bucket.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {CollisionBoxArray} from './array_types';
|
|
1
|
+
import type {CollisionBoxArray} from './array_types.g';
|
|
2
2
|
import type Style from '../style/style';
|
|
3
3
|
import type {TypedStyleLayer} from '../style/style_layer/typed_style_layer';
|
|
4
4
|
import type FeatureIndex from './feature_index';
|
|
@@ -10,46 +10,46 @@ import type {VectorTileFeature, VectorTileLayer} from '@mapbox/vector-tile';
|
|
|
10
10
|
import Point from '@mapbox/point-geometry';
|
|
11
11
|
|
|
12
12
|
export type BucketParameters<Layer extends TypedStyleLayer> = {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
13
|
+
index: number;
|
|
14
|
+
layers: Array<Layer>;
|
|
15
|
+
zoom: number;
|
|
16
|
+
pixelRatio: number;
|
|
17
|
+
overscaling: number;
|
|
18
|
+
collisionBoxArray: CollisionBoxArray;
|
|
19
|
+
sourceLayerIndex: number;
|
|
20
|
+
sourceID: string;
|
|
21
21
|
};
|
|
22
22
|
|
|
23
23
|
export type PopulateParameters = {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
featureIndex: FeatureIndex;
|
|
25
|
+
iconDependencies: {};
|
|
26
|
+
patternDependencies: {};
|
|
27
|
+
glyphDependencies: {};
|
|
28
|
+
availableImages: Array<string>;
|
|
29
29
|
};
|
|
30
30
|
|
|
31
31
|
export type IndexedFeature = {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
feature: VectorTileFeature;
|
|
33
|
+
id: number | string;
|
|
34
|
+
index: number;
|
|
35
|
+
sourceLayerIndex: number;
|
|
36
36
|
};
|
|
37
37
|
|
|
38
38
|
export type BucketFeature = {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
39
|
+
index: number;
|
|
40
|
+
sourceLayerIndex: number;
|
|
41
|
+
geometry: Array<Array<Point>>;
|
|
42
|
+
properties: any;
|
|
43
|
+
type: 1 | 2 | 3;
|
|
44
|
+
id?: any;
|
|
45
|
+
readonly patterns: {
|
|
46
|
+
[_: string]: {
|
|
47
|
+
'min': string;
|
|
48
|
+
'mid': string;
|
|
49
|
+
'max': string;
|
|
50
|
+
};
|
|
50
51
|
};
|
|
51
|
-
|
|
52
|
-
sortKey?: number;
|
|
52
|
+
sortKey?: number;
|
|
53
53
|
};
|
|
54
54
|
|
|
55
55
|
/**
|
|
@@ -76,24 +76,24 @@ export type BucketFeature = {
|
|
|
76
76
|
* @private
|
|
77
77
|
*/
|
|
78
78
|
export interface Bucket {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
79
|
+
layerIds: Array<string>;
|
|
80
|
+
hasPattern: boolean;
|
|
81
|
+
readonly layers: Array<any>;
|
|
82
|
+
readonly stateDependentLayers: Array<any>;
|
|
83
|
+
readonly stateDependentLayerIds: Array<string>;
|
|
84
|
+
populate(features: Array<IndexedFeature>, options: PopulateParameters, canonical: CanonicalTileID): void;
|
|
85
|
+
update(states: FeatureStates, vtLayer: VectorTileLayer, imagePositions: {[_: string]: ImagePosition}): void;
|
|
86
|
+
isEmpty(): boolean;
|
|
87
|
+
upload(context: Context): void;
|
|
88
|
+
uploadPending(): boolean;
|
|
89
|
+
/**
|
|
90
90
|
* Release the WebGL resources associated with the buffers. Note that because
|
|
91
91
|
* buckets are shared between layers having the same layout properties, they
|
|
92
92
|
* must be destroyed in groups (all buckets for a tile, or all symbol buckets).
|
|
93
93
|
*
|
|
94
94
|
* @private
|
|
95
95
|
*/
|
|
96
|
-
|
|
96
|
+
destroy(): void;
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
export function deserialize(input: Array<Bucket>, style: Style): {[_: string]: Bucket} {
|
package/src/data/dem_data.ts
CHANGED
|
@@ -95,21 +95,21 @@ export default class DEMData {
|
|
|
95
95
|
yMax = dy * this.dim + this.dim;
|
|
96
96
|
|
|
97
97
|
switch (dx) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
98
|
+
case -1:
|
|
99
|
+
xMin = xMax - 1;
|
|
100
|
+
break;
|
|
101
|
+
case 1:
|
|
102
|
+
xMax = xMin + 1;
|
|
103
|
+
break;
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
switch (dy) {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
107
|
+
case -1:
|
|
108
|
+
yMin = yMax - 1;
|
|
109
|
+
break;
|
|
110
|
+
case 1:
|
|
111
|
+
yMax = yMin + 1;
|
|
112
|
+
break;
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
const ox = -dx * this.dim;
|
|
@@ -3,17 +3,17 @@ import type Point from '@mapbox/point-geometry';
|
|
|
3
3
|
import type {VectorTileFeature} from '@mapbox/vector-tile';
|
|
4
4
|
|
|
5
5
|
type EvaluationFeature = {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
readonly type: 1 | 2 | 3 | 'Unknown' | 'Point' | 'MultiPoint' | 'LineString' | 'MultiLineString' | 'Polygon' | 'MultiPolygon';
|
|
7
|
+
readonly id?: any;
|
|
8
|
+
readonly properties: {[_: string]: any};
|
|
9
|
+
readonly patterns?: {
|
|
10
|
+
[_: string]: {
|
|
11
|
+
'min': string;
|
|
12
|
+
'mid': string;
|
|
13
|
+
'max': string;
|
|
14
|
+
};
|
|
14
15
|
};
|
|
15
|
-
|
|
16
|
-
geometry: Array<Array<Point>>;
|
|
16
|
+
geometry: Array<Array<Point>>;
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
/**
|
|
@@ -15,7 +15,7 @@ import EvaluationParameters from '../style/evaluation_parameters';
|
|
|
15
15
|
import SourceFeatureState from '../source/source_state';
|
|
16
16
|
import {polygonIntersectsBox} from '../util/intersection_tests';
|
|
17
17
|
import {PossiblyEvaluated} from '../style/properties';
|
|
18
|
-
import {FeatureIndexArray} from './array_types';
|
|
18
|
+
import {FeatureIndexArray} from './array_types.g';
|
|
19
19
|
import {mat4} from 'gl-matrix';
|
|
20
20
|
|
|
21
21
|
import type StyleLayer from '../style/style_layer';
|
|
@@ -26,18 +26,18 @@ import type {FeatureState} from '../style-spec/expression';
|
|
|
26
26
|
import type {VectorTileFeature, VectorTileLayer} from '@mapbox/vector-tile';
|
|
27
27
|
|
|
28
28
|
type QueryParameters = {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
29
|
+
scale: number;
|
|
30
|
+
pixelPosMatrix: mat4;
|
|
31
|
+
transform: Transform;
|
|
32
|
+
tileSize: number;
|
|
33
|
+
queryGeometry: Array<Point>;
|
|
34
|
+
cameraQueryGeometry: Array<Point>;
|
|
35
|
+
queryPadding: number;
|
|
36
|
+
params: {
|
|
37
|
+
filter: FilterSpecification;
|
|
38
|
+
layers: Array<string>;
|
|
39
|
+
availableImages: Array<string>;
|
|
40
|
+
};
|
|
41
41
|
};
|
|
42
42
|
|
|
43
43
|
class FeatureIndex {
|
|
@@ -104,10 +104,10 @@ class FeatureIndex {
|
|
|
104
104
|
|
|
105
105
|
// Finds non-symbol features in this tile at a particular position.
|
|
106
106
|
query(
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
107
|
+
args: QueryParameters,
|
|
108
|
+
styleLayers: {[_: string]: StyleLayer},
|
|
109
|
+
serializedLayers: {[_: string]: any},
|
|
110
|
+
sourceFeatureState: SourceFeatureState
|
|
111
111
|
): {[_: string]: Array<{featureIndex: number; feature: GeoJSONFeature}>} {
|
|
112
112
|
this.loadVTLayers();
|
|
113
113
|
|
|
@@ -123,10 +123,10 @@ class FeatureIndex {
|
|
|
123
123
|
|
|
124
124
|
const cameraBounds = getBounds(args.cameraQueryGeometry);
|
|
125
125
|
const matching3D = this.grid3D.query(
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
126
|
+
cameraBounds.minX - queryPadding, cameraBounds.minY - queryPadding, cameraBounds.maxX + queryPadding, cameraBounds.maxY + queryPadding,
|
|
127
|
+
(bx1, by1, bx2, by2) => {
|
|
128
|
+
return polygonIntersectsBox(args.cameraQueryGeometry, bx1 - queryPadding, by1 - queryPadding, bx2 + queryPadding, by2 + queryPadding);
|
|
129
|
+
});
|
|
130
130
|
|
|
131
131
|
for (const key of matching3D) {
|
|
132
132
|
matching.push(key);
|
|
@@ -171,11 +171,11 @@ class FeatureIndex {
|
|
|
171
171
|
|
|
172
172
|
loadMatchingFeature(
|
|
173
173
|
result: {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
174
|
+
[_: string]: Array<{
|
|
175
|
+
featureIndex: number;
|
|
176
|
+
feature: GeoJSONFeature;
|
|
177
|
+
intersectionZ?: boolean | number;
|
|
178
|
+
}>;
|
|
179
179
|
},
|
|
180
180
|
bucketIndex: number,
|
|
181
181
|
sourceLayerIndex: number,
|
|
@@ -187,10 +187,10 @@ class FeatureIndex {
|
|
|
187
187
|
serializedLayers: {[_: string]: any},
|
|
188
188
|
sourceFeatureState?: SourceFeatureState,
|
|
189
189
|
intersectionTest?: (
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
190
|
+
feature: VectorTileFeature,
|
|
191
|
+
styleLayer: StyleLayer,
|
|
192
|
+
featureState: any,
|
|
193
|
+
id: string | number | void
|
|
194
194
|
) => boolean | number) {
|
|
195
195
|
|
|
196
196
|
const layerIDs = this.bucketLayerIDs[bucketIndex];
|
|
@@ -253,13 +253,13 @@ class FeatureIndex {
|
|
|
253
253
|
// Given a set of symbol indexes that have already been looked up,
|
|
254
254
|
// return a matching set of GeoJSONFeatures
|
|
255
255
|
lookupSymbolFeatures(symbolFeatureIndexes: Array<number>,
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
256
|
+
serializedLayers: {[_: string]: StyleLayer},
|
|
257
|
+
bucketIndex: number,
|
|
258
|
+
sourceLayerIndex: number,
|
|
259
|
+
filterSpec: FilterSpecification,
|
|
260
|
+
filterLayerIDs: Array<string>,
|
|
261
|
+
availableImages: Array<string>,
|
|
262
|
+
styleLayers: {[_: string]: StyleLayer}) {
|
|
263
263
|
const result = {};
|
|
264
264
|
this.loadVTLayers();
|
|
265
265
|
|
|
@@ -3,14 +3,14 @@ import {register} from '../util/web_worker_transfer';
|
|
|
3
3
|
import assert from 'assert';
|
|
4
4
|
|
|
5
5
|
type SerializedFeaturePositionMap = {
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
ids: Float64Array;
|
|
7
|
+
positions: Uint32Array;
|
|
8
8
|
};
|
|
9
9
|
|
|
10
10
|
type FeaturePosition = {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
index: number;
|
|
12
|
+
start: number;
|
|
13
|
+
end: number;
|
|
14
14
|
};
|
|
15
15
|
|
|
16
16
|
// A transferable data structure that maps feature ids to their indices and buffer offsets
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {LineIndexArray, TriangleIndexArray, LineStripIndexArray} from './array_types';
|
|
1
|
+
import {LineIndexArray, TriangleIndexArray, LineStripIndexArray} from './array_types.g';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* An index array stores Uint16 indices of vertexes in a corresponding vertex array. We use
|
|
@@ -5,7 +5,7 @@ import {VectorTile} from '@mapbox/vector-tile';
|
|
|
5
5
|
import loadGeometry from './load_geometry';
|
|
6
6
|
|
|
7
7
|
// Load a line feature from fixture tile.
|
|
8
|
-
const vt = new VectorTile(new Protobuf(fs.readFileSync(path.resolve(__dirname, '../../test/
|
|
8
|
+
const vt = new VectorTile(new Protobuf(fs.readFileSync(path.resolve(__dirname, '../../test/unit/assets/mbsv5-6-18-23.vector.pbf'))));
|
|
9
9
|
|
|
10
10
|
describe('loadGeometry', () => {
|
|
11
11
|
test('loadGeometry', () => {
|
|
@@ -3,7 +3,7 @@ import Color from '../style-spec/util/color';
|
|
|
3
3
|
import {supportsPropertyExpression} from '../style-spec/util/properties';
|
|
4
4
|
import {register} from '../util/web_worker_transfer';
|
|
5
5
|
import {PossiblyEvaluatedPropertyValue} from '../style/properties';
|
|
6
|
-
import {StructArrayLayout1f4, StructArrayLayout2f8, StructArrayLayout4f16, PatternLayoutArray} from './array_types';
|
|
6
|
+
import {StructArrayLayout1f4, StructArrayLayout2f8, StructArrayLayout4f16, PatternLayoutArray} from './array_types.g';
|
|
7
7
|
import {clamp} from '../util/util';
|
|
8
8
|
import patternAttributes from './bucket/pattern_attributes';
|
|
9
9
|
import EvaluationParameters from '../style/evaluation_parameters';
|
|
@@ -31,9 +31,9 @@ import type {FormattedSection} from '../style-spec/expression/types/formatted';
|
|
|
31
31
|
import type {VectorTileLayer} from '@mapbox/vector-tile';
|
|
32
32
|
|
|
33
33
|
export type BinderUniform = {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
name: string;
|
|
35
|
+
property: string;
|
|
36
|
+
binding: Uniform<any>;
|
|
37
37
|
};
|
|
38
38
|
|
|
39
39
|
function packColor(color: Color): [number, number] {
|
|
@@ -72,33 +72,33 @@ function packColor(color: Color): [number, number] {
|
|
|
72
72
|
*/
|
|
73
73
|
|
|
74
74
|
interface AttributeBinder {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
75
|
+
populatePaintArray(
|
|
76
|
+
length: number,
|
|
77
|
+
feature: Feature,
|
|
78
|
+
imagePositions: {[_: string]: ImagePosition},
|
|
79
|
+
canonical?: CanonicalTileID,
|
|
80
|
+
formattedSection?: FormattedSection
|
|
81
|
+
): void;
|
|
82
|
+
updatePaintArray(
|
|
83
|
+
start: number,
|
|
84
|
+
length: number,
|
|
85
|
+
feature: Feature,
|
|
86
|
+
featureState: FeatureState,
|
|
87
|
+
imagePositions: {[_: string]: ImagePosition}
|
|
88
|
+
): void;
|
|
89
|
+
upload(a: Context): void;
|
|
90
|
+
destroy(): void;
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
interface UniformBinder {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
94
|
+
uniformNames: Array<string>;
|
|
95
|
+
setUniform(
|
|
96
|
+
uniform: Uniform<any>,
|
|
97
|
+
globals: GlobalProperties,
|
|
98
|
+
currentValue: PossiblyEvaluatedPropertyValue<any>,
|
|
99
|
+
uniformName: string
|
|
100
|
+
): void;
|
|
101
|
+
getBinding(context: Context, location: WebGLUniformLocation, name: string): Partial<Uniform<any>>;
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
class ConstantBinder implements UniformBinder {
|
|
@@ -113,9 +113,9 @@ class ConstantBinder implements UniformBinder {
|
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
setUniform(
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
116
|
+
uniform: Uniform<any>,
|
|
117
|
+
globals: GlobalProperties,
|
|
118
|
+
currentValue: PossiblyEvaluatedPropertyValue<unknown>
|
|
119
119
|
): void {
|
|
120
120
|
uniform.set(currentValue.constantOr(this.value));
|
|
121
121
|
}
|
|
@@ -152,9 +152,9 @@ class CrossFadedConstantBinder implements UniformBinder {
|
|
|
152
152
|
setUniform(uniform: Uniform<any>, globals: GlobalProperties, currentValue: PossiblyEvaluatedPropertyValue<unknown>, uniformName: string) {
|
|
153
153
|
const pos =
|
|
154
154
|
uniformName === 'u_pattern_to' ? this.patternTo :
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
155
|
+
uniformName === 'u_pattern_from' ? this.patternFrom :
|
|
156
|
+
uniformName === 'u_pixel_ratio_to' ? this.pixelRatioTo :
|
|
157
|
+
uniformName === 'u_pixel_ratio_from' ? this.pixelRatioFrom : null;
|
|
158
158
|
if (pos) uniform.set(pos);
|
|
159
159
|
}
|
|
160
160
|
|
|
@@ -175,7 +175,7 @@ class SourceExpressionBinder implements AttributeBinder {
|
|
|
175
175
|
paintVertexBuffer: VertexBuffer;
|
|
176
176
|
|
|
177
177
|
constructor(expression: SourceExpression, names: Array<string>, type: string, PaintVertexArray: {
|
|
178
|
-
|
|
178
|
+
new (...args: any): StructArray;
|
|
179
179
|
}) {
|
|
180
180
|
this.expression = expression;
|
|
181
181
|
this.type = type;
|
|
@@ -245,7 +245,7 @@ class CompositeExpressionBinder implements AttributeBinder, UniformBinder {
|
|
|
245
245
|
paintVertexBuffer: VertexBuffer;
|
|
246
246
|
|
|
247
247
|
constructor(expression: CompositeExpression, names: Array<string>, type: string, useIntegerZoom: boolean, zoom: number, PaintVertexArray: {
|
|
248
|
-
|
|
248
|
+
new (...args: any): StructArray;
|
|
249
249
|
}) {
|
|
250
250
|
this.expression = expression;
|
|
251
251
|
this.uniformNames = names.map(name => `u_${name}_t`);
|
|
@@ -332,7 +332,7 @@ class CrossFadedCompositeBinder implements AttributeBinder {
|
|
|
332
332
|
paintVertexAttributes: Array<StructArrayMember>;
|
|
333
333
|
|
|
334
334
|
constructor(expression: CompositeExpression, type: string, useIntegerZoom: boolean, zoom: number, PaintVertexArray: {
|
|
335
|
-
|
|
335
|
+
new (...args: any): StructArray;
|
|
336
336
|
}, layerId: string) {
|
|
337
337
|
this.expression = expression;
|
|
338
338
|
this.type = type;
|
|
@@ -485,11 +485,11 @@ export default class ProgramConfiguration {
|
|
|
485
485
|
}
|
|
486
486
|
|
|
487
487
|
updatePaintArrays(
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
488
|
+
featureStates: FeatureStates,
|
|
489
|
+
featureMap: FeaturePositionMap,
|
|
490
|
+
vtLayer: VectorTileLayer,
|
|
491
|
+
layer: TypedStyleLayer,
|
|
492
|
+
imagePositions: {[_: string]: ImagePosition}
|
|
493
493
|
): boolean {
|
|
494
494
|
let dirty: boolean = false;
|
|
495
495
|
for (const id in featureStates) {
|
|
@@ -576,10 +576,10 @@ export default class ProgramConfiguration {
|
|
|
576
576
|
}
|
|
577
577
|
|
|
578
578
|
setUniforms(
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
579
|
+
context: Context,
|
|
580
|
+
binderUniforms: Array<BinderUniform>,
|
|
581
|
+
properties: any,
|
|
582
|
+
globals: GlobalProperties
|
|
583
583
|
) {
|
|
584
584
|
// Uniform state bindings are owned by the Program, but we set them
|
|
585
585
|
// from within the ProgramConfiguraton's binder members.
|
package/src/data/segment.ts
CHANGED
|
@@ -6,12 +6,12 @@ import type VertexArrayObject from '../render/vertex_array_object';
|
|
|
6
6
|
import type {StructArray} from '../util/struct_array';
|
|
7
7
|
|
|
8
8
|
export type Segment = {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
sortKey?: number;
|
|
10
|
+
vertexOffset: number;
|
|
11
|
+
primitiveOffset: number;
|
|
12
|
+
vertexLength: number;
|
|
13
|
+
primitiveLength: number;
|
|
14
|
+
vaos: {[_: string]: VertexArrayObject};
|
|
15
15
|
};
|
|
16
16
|
|
|
17
17
|
class SegmentVector {
|
|
@@ -23,10 +23,10 @@ class SegmentVector {
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
prepareSegment(
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
numVertices: number,
|
|
27
|
+
layoutVertexArray: StructArray,
|
|
28
|
+
indexArray: StructArray,
|
|
29
|
+
sortKey?: number
|
|
30
30
|
): Segment {
|
|
31
31
|
let segment: Segment = this.segments[this.segments.length - 1];
|
|
32
32
|
if (numVertices > SegmentVector.MAX_VERTEX_ARRAY_LENGTH) warnOnce(`Max vertices per segment is ${SegmentVector.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${numVertices}`);
|
|
@@ -56,10 +56,10 @@ class SegmentVector {
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
static simpleSegment(
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
vertexOffset: number,
|
|
60
|
+
primitiveOffset: number,
|
|
61
|
+
vertexLength: number,
|
|
62
|
+
primitiveLength: number
|
|
63
63
|
): SegmentVector {
|
|
64
64
|
return new SegmentVector([{
|
|
65
65
|
vertexOffset,
|
package/src/geo/edge_insets.ts
CHANGED
|
@@ -116,8 +116,8 @@ class EdgeInsets {
|
|
|
116
116
|
*/
|
|
117
117
|
export type PaddingOptions = {
|
|
118
118
|
/**
|
|
119
|
-
|
|
120
|
-
|
|
119
|
+
* @property {number} top Padding in pixels from the top of the map canvas.
|
|
120
|
+
*/
|
|
121
121
|
top: number;
|
|
122
122
|
/**
|
|
123
123
|
* @property {number} bottom Padding in pixels from the bottom of the map canvas.
|
package/src/geo/lng_lat.ts
CHANGED
|
@@ -161,11 +161,11 @@ class LngLat {
|
|
|
161
161
|
* var v3 = {lon: -122.420679, lat: 37.772537};
|
|
162
162
|
*/
|
|
163
163
|
export type LngLatLike = LngLat | {
|
|
164
|
-
|
|
165
|
-
|
|
164
|
+
lng: number;
|
|
165
|
+
lat: number;
|
|
166
166
|
} | {
|
|
167
|
-
|
|
168
|
-
|
|
167
|
+
lon: number;
|
|
168
|
+
lat: number;
|
|
169
169
|
} | [number, number];
|
|
170
170
|
|
|
171
171
|
export default LngLat;
|