maplibre-gl 2.1.0 → 2.1.4

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.
Files changed (308) hide show
  1. package/build/{banner.js → banner.ts} +1 -1
  2. package/build/generate-query-test-fixtures.ts +123 -0
  3. package/build/generate-shaders.ts +35 -0
  4. package/build/generate-struct-arrays.ts +7 -7
  5. package/build/generate-style-code.ts +8 -8
  6. package/build/generate-style-spec.ts +5 -4
  7. package/build/generate-typings.ts +16 -0
  8. package/build/readme.md +8 -18
  9. package/build/release-notes.js +9 -13
  10. package/build/{rollup_plugin_minify_style_spec.js → rollup_plugin_minify_style_spec.ts} +4 -3
  11. package/build/{rollup_plugins.js → rollup_plugins.ts} +12 -26
  12. package/dist/maplibre-gl-dev.js +54885 -0
  13. package/dist/maplibre-gl.css +1 -1
  14. package/dist/maplibre-gl.d.ts +1537 -1011
  15. package/dist/maplibre-gl.js +3 -3
  16. package/dist/maplibre-gl.js.map +1 -1
  17. package/package.json +83 -107
  18. package/postinstall.js +5 -0
  19. package/src/css/maplibre-gl.css +28 -28
  20. package/src/data/{array_types.ts → array_types.g.ts} +0 -0
  21. package/src/data/bucket/circle_bucket.ts +1 -1
  22. package/src/data/bucket/fill_bucket.test.ts +1 -1
  23. package/src/data/bucket/fill_bucket.ts +4 -4
  24. package/src/data/bucket/fill_extrusion_bucket.ts +1 -1
  25. package/src/data/bucket/line_bucket.test.ts +1 -1
  26. package/src/data/bucket/line_bucket.ts +6 -6
  27. package/src/data/bucket/symbol_bucket.test.ts +16 -16
  28. package/src/data/bucket/symbol_bucket.ts +53 -53
  29. package/src/data/bucket.ts +43 -43
  30. package/src/data/dem_data.ts +12 -12
  31. package/src/data/evaluation_feature.ts +10 -10
  32. package/src/data/feature_index.ts +37 -37
  33. package/src/data/feature_position_map.ts +5 -5
  34. package/src/data/index_array_type.ts +1 -1
  35. package/src/data/load_geometry.test.ts +1 -1
  36. package/src/data/program_configuration.ts +46 -46
  37. package/src/data/segment.ts +14 -14
  38. package/src/geo/edge_insets.ts +2 -2
  39. package/src/geo/lng_lat.ts +4 -4
  40. package/src/geo/lng_lat_bounds.ts +35 -35
  41. package/src/geo/mercator_coordinate.ts +5 -5
  42. package/src/geo/transform.test.ts +1 -1
  43. package/src/geo/transform.ts +14 -14
  44. package/src/gl/context.ts +3 -3
  45. package/src/gl/types.ts +19 -19
  46. package/src/gl/value.ts +6 -6
  47. package/src/gl/vertex_buffer.test.ts +1 -1
  48. package/src/index.ts +24 -9
  49. package/src/render/draw_circle.ts +8 -8
  50. package/src/render/draw_collision_debug.ts +5 -5
  51. package/src/render/draw_line.ts +4 -4
  52. package/src/render/draw_symbol.ts +21 -21
  53. package/src/render/glyph_atlas.ts +12 -12
  54. package/src/render/glyph_manager.test.ts +10 -21
  55. package/src/render/glyph_manager.ts +33 -32
  56. package/src/render/image_manager.ts +4 -4
  57. package/src/render/painter.ts +11 -11
  58. package/src/render/program/background_program.ts +29 -29
  59. package/src/render/program/circle_program.ts +10 -10
  60. package/src/render/program/clipping_mask_program.ts +1 -1
  61. package/src/render/program/collision_program.ts +9 -9
  62. package/src/render/program/debug_program.ts +4 -4
  63. package/src/render/program/fill_extrusion_program.ts +31 -31
  64. package/src/render/program/fill_program.ts +29 -29
  65. package/src/render/program/heatmap_program.ts +12 -12
  66. package/src/render/program/hillshade_program.ts +12 -12
  67. package/src/render/program/line_program.ts +38 -38
  68. package/src/render/program/pattern.ts +28 -28
  69. package/src/render/program/raster_program.ts +21 -21
  70. package/src/render/program/symbol_program.ts +96 -96
  71. package/src/render/program.ts +25 -25
  72. package/src/render/texture.ts +9 -9
  73. package/src/render/uniform_binding.ts +1 -1
  74. package/src/render/vertex_array_object.ts +13 -13
  75. package/src/shaders/_prelude.fragment.glsl.g.ts +2 -0
  76. package/src/shaders/_prelude.vertex.glsl.g.ts +2 -0
  77. package/src/shaders/background.fragment.glsl.g.ts +2 -0
  78. package/src/shaders/background.vertex.glsl.g.ts +2 -0
  79. package/src/shaders/background_pattern.fragment.glsl.g.ts +2 -0
  80. package/src/shaders/background_pattern.vertex.glsl.g.ts +2 -0
  81. package/src/shaders/circle.fragment.glsl.g.ts +2 -0
  82. package/src/shaders/circle.vertex.glsl.g.ts +2 -0
  83. package/src/shaders/clipping_mask.fragment.glsl.g.ts +2 -0
  84. package/src/shaders/clipping_mask.vertex.glsl.g.ts +2 -0
  85. package/src/shaders/collision_box.fragment.glsl.g.ts +2 -0
  86. package/src/shaders/collision_box.vertex.glsl.g.ts +2 -0
  87. package/src/shaders/collision_circle.fragment.glsl.g.ts +2 -0
  88. package/src/shaders/collision_circle.vertex.glsl.g.ts +2 -0
  89. package/src/shaders/debug.fragment.glsl.g.ts +2 -0
  90. package/src/shaders/debug.vertex.glsl.g.ts +2 -0
  91. package/src/shaders/fill.fragment.glsl.g.ts +2 -0
  92. package/src/shaders/fill.vertex.glsl.g.ts +2 -0
  93. package/src/shaders/fill_extrusion.fragment.glsl.g.ts +2 -0
  94. package/src/shaders/fill_extrusion.vertex.glsl.g.ts +2 -0
  95. package/src/shaders/fill_extrusion_pattern.fragment.glsl.g.ts +2 -0
  96. package/src/shaders/fill_extrusion_pattern.vertex.glsl.g.ts +2 -0
  97. package/src/shaders/fill_outline.fragment.glsl.g.ts +2 -0
  98. package/src/shaders/fill_outline.vertex.glsl.g.ts +2 -0
  99. package/src/shaders/fill_outline_pattern.fragment.glsl.g.ts +2 -0
  100. package/src/shaders/fill_outline_pattern.vertex.glsl.g.ts +2 -0
  101. package/src/shaders/fill_pattern.fragment.glsl.g.ts +2 -0
  102. package/src/shaders/fill_pattern.vertex.glsl.g.ts +2 -0
  103. package/src/shaders/heatmap.fragment.glsl.g.ts +2 -0
  104. package/src/shaders/heatmap.vertex.glsl.g.ts +2 -0
  105. package/src/shaders/heatmap_texture.fragment.glsl.g.ts +2 -0
  106. package/src/shaders/heatmap_texture.vertex.glsl.g.ts +2 -0
  107. package/src/shaders/hillshade.fragment.glsl.g.ts +2 -0
  108. package/src/shaders/hillshade.vertex.glsl.g.ts +2 -0
  109. package/src/shaders/hillshade_prepare.fragment.glsl.g.ts +2 -0
  110. package/src/shaders/hillshade_prepare.vertex.glsl.g.ts +2 -0
  111. package/src/shaders/line.fragment.glsl.g.ts +2 -0
  112. package/src/shaders/line.vertex.glsl.g.ts +2 -0
  113. package/src/shaders/line_gradient.fragment.glsl.g.ts +2 -0
  114. package/src/shaders/line_gradient.vertex.glsl.g.ts +2 -0
  115. package/src/shaders/line_pattern.fragment.glsl.g.ts +2 -0
  116. package/src/shaders/line_pattern.vertex.glsl.g.ts +2 -0
  117. package/src/shaders/line_sdf.fragment.glsl.g.ts +2 -0
  118. package/src/shaders/line_sdf.vertex.glsl.g.ts +2 -0
  119. package/src/shaders/raster.fragment.glsl.g.ts +2 -0
  120. package/src/shaders/raster.vertex.glsl.g.ts +2 -0
  121. package/src/shaders/shaders.ts +52 -55
  122. package/src/shaders/symbol_icon.fragment.glsl.g.ts +2 -0
  123. package/src/shaders/symbol_icon.vertex.glsl.g.ts +2 -0
  124. package/src/shaders/symbol_sdf.fragment.glsl.g.ts +2 -0
  125. package/src/shaders/symbol_sdf.vertex.glsl.g.ts +2 -0
  126. package/src/shaders/symbol_text_and_icon.fragment.glsl.g.ts +2 -0
  127. package/src/shaders/symbol_text_and_icon.vertex.glsl.g.ts +2 -0
  128. package/src/source/canvas_source.test.ts +11 -12
  129. package/src/source/canvas_source.ts +4 -4
  130. package/src/source/geojson_worker_source.ts +23 -23
  131. package/src/source/geojson_wrapper.ts +8 -8
  132. package/src/source/image_source.test.ts +2 -2
  133. package/src/source/image_source.ts +6 -6
  134. package/src/source/pixels_to_tile_units.ts +6 -6
  135. package/src/source/query_features.ts +20 -20
  136. package/src/source/raster_dem_tile_source.test.ts +2 -2
  137. package/src/source/raster_tile_source.test.ts +2 -2
  138. package/src/source/rtl_text_plugin.ts +10 -10
  139. package/src/source/source.ts +29 -29
  140. package/src/source/source_cache.test.ts +32 -0
  141. package/src/source/source_cache.ts +7 -5
  142. package/src/source/source_state.ts +1 -1
  143. package/src/source/tile.test.ts +3 -3
  144. package/src/source/tile.ts +15 -15
  145. package/src/source/tile_cache.test.ts +6 -4
  146. package/src/source/tile_cache.ts +6 -6
  147. package/src/source/tile_id.test.ts +0 -1
  148. package/src/source/vector_tile_source.test.ts +16 -5
  149. package/src/source/vector_tile_source.ts +2 -3
  150. package/src/source/vector_tile_worker_source.test.ts +4 -4
  151. package/src/source/vector_tile_worker_source.ts +5 -5
  152. package/src/source/worker.test.ts +1 -1
  153. package/src/source/worker.ts +22 -22
  154. package/src/source/worker_source.ts +56 -56
  155. package/src/source/worker_tile.ts +4 -4
  156. package/src/style/evaluation_parameters.ts +3 -3
  157. package/src/style/format_section_override.test.ts +1 -1
  158. package/src/style/light.ts +10 -10
  159. package/src/style/load_glyph_range.test.ts +3 -5
  160. package/src/style/load_glyph_range.ts +6 -6
  161. package/src/style/load_sprite.ts +4 -4
  162. package/src/style/pauseable_placement.ts +1 -1
  163. package/src/style/properties.ts +69 -69
  164. package/src/style/query_utils.ts +7 -7
  165. package/src/style/style.test.ts +22 -15
  166. package/src/style/style.ts +29 -29
  167. package/src/style/style_glyph.ts +8 -8
  168. package/src/style/style_image.ts +58 -58
  169. package/src/style/style_layer/background_style_layer.ts +2 -2
  170. package/src/style/style_layer/{background_style_layer_properties.ts → background_style_layer_properties.g.ts} +0 -0
  171. package/src/style/style_layer/circle_style_layer.ts +10 -10
  172. package/src/style/style_layer/{circle_style_layer_properties.ts → circle_style_layer_properties.g.ts} +0 -0
  173. package/src/style/style_layer/custom_style_layer.ts +17 -17
  174. package/src/style/style_layer/fill_extrusion_style_layer.ts +10 -10
  175. package/src/style/style_layer/{fill_extrusion_style_layer_properties.ts → fill_extrusion_style_layer_properties.g.ts} +0 -0
  176. package/src/style/style_layer/fill_style_layer.ts +9 -9
  177. package/src/style/style_layer/{fill_style_layer_properties.ts → fill_style_layer_properties.g.ts} +0 -0
  178. package/src/style/style_layer/heatmap_style_layer.ts +2 -2
  179. package/src/style/style_layer/{heatmap_style_layer_properties.ts → heatmap_style_layer_properties.g.ts} +0 -0
  180. package/src/style/style_layer/hillshade_style_layer.ts +2 -2
  181. package/src/style/style_layer/{hillshade_style_layer_properties.ts → hillshade_style_layer_properties.g.ts} +0 -0
  182. package/src/style/style_layer/line_style_layer.ts +9 -9
  183. package/src/style/style_layer/{line_style_layer_properties.ts → line_style_layer_properties.g.ts} +0 -0
  184. package/src/style/style_layer/raster_style_layer.ts +2 -2
  185. package/src/style/style_layer/{raster_style_layer_properties.ts → raster_style_layer_properties.g.ts} +0 -0
  186. package/src/style/style_layer/symbol_style_layer.ts +7 -7
  187. package/src/style/style_layer/{symbol_style_layer_properties.ts → symbol_style_layer_properties.g.ts} +0 -0
  188. package/src/style/style_layer.ts +10 -10
  189. package/src/style/style_layer_index.ts +3 -3
  190. package/src/style/validate_style.ts +15 -15
  191. package/src/style-spec/error/validation_error.ts +1 -1
  192. package/src/style-spec/expression/compound_expression.ts +3 -3
  193. package/src/style-spec/expression/definitions/format.ts +11 -11
  194. package/src/style-spec/expression/definitions/interpolate.ts +5 -5
  195. package/src/style-spec/expression/definitions/match.ts +2 -2
  196. package/src/style-spec/expression/definitions/number_format.ts +11 -11
  197. package/src/style-spec/expression/expression.ts +8 -8
  198. package/src/style-spec/expression/index.ts +97 -97
  199. package/src/style-spec/expression/parsing_context.ts +11 -11
  200. package/src/style-spec/expression/types/collator.ts +9 -9
  201. package/src/style-spec/expression/types/resolved_image.ts +2 -2
  202. package/src/style-spec/expression/types.ts +14 -14
  203. package/src/style-spec/expression/values.ts +1 -1
  204. package/src/style-spec/feature_filter/index.ts +66 -66
  205. package/src/style-spec/function/convert.ts +3 -3
  206. package/src/style-spec/style-spec.ts +44 -44
  207. package/src/style-spec/util/color_spaces.ts +8 -8
  208. package/src/style-spec/util/result.ts +4 -4
  209. package/src/style-spec/validate/validate_filter.ts +58 -58
  210. package/src/style-spec/validate/validate_source.ts +63 -63
  211. package/src/style-spec/visit.ts +11 -11
  212. package/src/symbol/collision_feature.test.ts +1 -1
  213. package/src/symbol/collision_feature.ts +10 -10
  214. package/src/symbol/collision_index.ts +26 -26
  215. package/src/symbol/cross_tile_symbol_index.ts +17 -17
  216. package/src/symbol/get_anchors.ts +16 -16
  217. package/src/symbol/grid_index.ts +7 -7
  218. package/src/symbol/placement.ts +72 -72
  219. package/src/symbol/projection.ts +30 -30
  220. package/src/symbol/quads.ts +30 -30
  221. package/src/symbol/shaping.ts +160 -160
  222. package/src/symbol/symbol_layout.ts +119 -119
  223. package/src/symbol/symbol_size.ts +29 -29
  224. package/src/symbol/symbol_style_layer.test.ts +1 -1
  225. package/src/types/cancelable.ts +1 -1
  226. package/src/types/tilejson.ts +13 -13
  227. package/src/ui/anchor.ts +1 -1
  228. package/src/ui/camera.test.ts +9 -9
  229. package/src/ui/camera.ts +18 -18
  230. package/src/ui/control/attribution_control.test.ts +51 -16
  231. package/src/ui/control/attribution_control.ts +35 -16
  232. package/src/ui/control/control.ts +40 -40
  233. package/src/ui/control/fullscreen_control.ts +1 -1
  234. package/src/ui/control/geolocate_control.test.ts +1 -1
  235. package/src/ui/control/geolocate_control.ts +102 -102
  236. package/src/ui/control/logo_control.test.ts +5 -4
  237. package/src/ui/control/navigation_control.ts +3 -3
  238. package/src/ui/control/scale_control.test.ts +2 -2
  239. package/src/ui/control/scale_control.ts +5 -5
  240. package/src/ui/events.ts +289 -200
  241. package/src/ui/handler/box_zoom.test.ts +1 -1
  242. package/src/ui/handler/box_zoom.ts +1 -1
  243. package/src/ui/handler/dblclick_zoom.test.ts +1 -1
  244. package/src/ui/handler/drag_pan.test.ts +1 -1
  245. package/src/ui/handler/drag_rotate.test.ts +1 -1
  246. package/src/ui/handler/keyboard.test.ts +1 -1
  247. package/src/ui/handler/keyboard.ts +51 -51
  248. package/src/ui/handler/map_event.test.ts +1 -1
  249. package/src/ui/handler/map_event.ts +1 -1
  250. package/src/ui/handler/mouse.ts +1 -1
  251. package/src/ui/handler/mouse_rotate.test.ts +1 -1
  252. package/src/ui/handler/scroll_zoom.test.ts +3 -2
  253. package/src/ui/handler/scroll_zoom.ts +9 -9
  254. package/src/ui/handler/shim/drag_pan.ts +4 -4
  255. package/src/ui/handler/shim/drag_rotate.ts +1 -1
  256. package/src/ui/handler/shim/touch_zoom_rotate.ts +1 -1
  257. package/src/ui/handler/tap_recognizer.ts +4 -4
  258. package/src/ui/handler/touch_pan.ts +2 -2
  259. package/src/ui/handler/touch_zoom_rotate.test.ts +1 -1
  260. package/src/ui/handler/touch_zoom_rotate.ts +1 -1
  261. package/src/ui/handler_inertia.ts +6 -6
  262. package/src/ui/handler_manager.ts +44 -44
  263. package/src/ui/map/isMoving.test.ts +1 -1
  264. package/src/ui/map/isRotating.test.ts +1 -1
  265. package/src/ui/map/isZooming.test.ts +1 -1
  266. package/src/ui/map.test.ts +26 -14
  267. package/src/ui/map.ts +107 -102
  268. package/src/ui/map_events.test.ts +1 -1
  269. package/src/ui/marker.test.ts +12 -12
  270. package/src/ui/marker.ts +37 -37
  271. package/src/ui/popup.test.ts +7 -7
  272. package/src/ui/popup.ts +9 -9
  273. package/src/util/actor.test.ts +41 -10
  274. package/src/util/actor.ts +8 -8
  275. package/src/util/ajax.test.ts +29 -21
  276. package/src/util/ajax.ts +51 -30
  277. package/src/util/browser.ts +1 -1
  278. package/src/util/classify_rings.test.ts +1 -1
  279. package/src/util/color_ramp.ts +5 -5
  280. package/src/util/config.ts +2 -2
  281. package/src/util/dispatcher.ts +1 -1
  282. package/src/util/dom.ts +2 -2
  283. package/src/util/evented.ts +1 -1
  284. package/src/util/find_pole_of_inaccessibility.ts +3 -3
  285. package/src/util/image.ts +5 -5
  286. package/src/util/performance.ts +7 -7
  287. package/src/util/request_manager.ts +4 -4
  288. package/src/util/resolve_tokens.ts +4 -4
  289. package/src/util/struct_array.test.ts +1 -1
  290. package/src/util/struct_array.ts +15 -15
  291. package/src/util/task_queue.ts +3 -3
  292. package/src/util/tile_request_cache.ts +3 -3
  293. package/src/util/transferable_grid_index.ts +4 -4
  294. package/src/util/util.ts +8 -8
  295. package/src/util/web_worker.ts +4 -68
  296. package/src/util/web_worker_transfer.test.ts +3 -0
  297. package/src/util/web_worker_transfer.ts +21 -17
  298. package/src/util/worker_pool.ts +1 -1
  299. package/build/.eslintrc +0 -21
  300. package/build/glsl_to_js.js +0 -12
  301. package/build/post-ts-build.js +0 -43
  302. package/build/release-notes.md.ejs +0 -8
  303. package/build/test/build-tape.js +0 -17
  304. package/build/web_worker_replacement.js +0 -5
  305. package/dist/package.json +0 -1
  306. package/src/style-spec/validate_spec.test.ts +0 -29
  307. package/src/symbol/shaping.test.ts +0 -392
  308. package/src/types/glsl.d.ts +0 -4
@@ -3,7 +3,7 @@ import path from 'path';
3
3
  import Protobuf from 'pbf';
4
4
  import {VectorTile} from '@mapbox/vector-tile';
5
5
  import SymbolBucket from './symbol_bucket';
6
- import {CollisionBoxArray} from '../../data/array_types';
6
+ import {CollisionBoxArray} from '../../data/array_types.g';
7
7
  import {performSymbolLayout} from '../../symbol/symbol_layout';
8
8
  import {Placement} from '../../symbol/placement';
9
9
  import Transform from '../../geo/transform';
@@ -11,16 +11,16 @@ import {OverscaledTileID} from '../../source/tile_id';
11
11
  import Tile from '../../source/tile';
12
12
  import CrossTileSymbolIndex from '../../symbol/cross_tile_symbol_index';
13
13
  import FeatureIndex from '../../data/feature_index';
14
- import {createSymbolBucket, createSymbolIconBucket} from '../../../test/util/create_symbol_layer';
14
+ import {createSymbolBucket, createSymbolIconBucket} from '../../../test/unit/lib/create_symbol_layer';
15
15
  import {RGBAImage} from '../../util/image';
16
16
  import {ImagePosition} from '../../render/image_atlas';
17
17
  import {IndexedFeature, PopulateParameters} from '../bucket';
18
18
  import {StyleImage} from '../../style/style_image';
19
- import glyphs from '../../../test/fixtures/fontstack-glyphs.json';
19
+ import glyphs from '../../../test/unit/assets/fontstack-glyphs.json';
20
20
  import {StyleGlyph} from '../../style/style_glyph';
21
21
 
22
22
  // Load a point feature from fixture tile.
23
- const vt = new VectorTile(new Protobuf(fs.readFileSync(path.resolve(__dirname, '../../../test/fixtures/mbsv5-6-18-23.vector.pbf'))));
23
+ const vt = new VectorTile(new Protobuf(fs.readFileSync(path.resolve(__dirname, '../../../test/unit/assets/mbsv5-6-18-23.vector.pbf'))));
24
24
  const feature = vt.layers.place_label.feature(10);
25
25
 
26
26
  /*eslint new-cap: 0*/
@@ -139,12 +139,12 @@ describe('SymbolBucket', () => {
139
139
  const options = {iconDependencies: {}, glyphDependencies: {}} as PopulateParameters;
140
140
 
141
141
  bucket.populate(
142
- [
143
- createIndexedFeature(0, 0, 'a'),
144
- createIndexedFeature(1, 1, 'b'),
145
- createIndexedFeature(2, 2, 'a')
146
- ] as any as IndexedFeature[],
147
- options, undefined
142
+ [
143
+ createIndexedFeature(0, 0, 'a'),
144
+ createIndexedFeature(1, 1, 'b'),
145
+ createIndexedFeature(2, 2, 'a')
146
+ ] as any as IndexedFeature[],
147
+ options, undefined
148
148
  );
149
149
 
150
150
  const icons = options.iconDependencies as any;
@@ -179,12 +179,12 @@ describe('SymbolBucket', () => {
179
179
  const options = {iconDependencies: {}, glyphDependencies: {}} as PopulateParameters;
180
180
 
181
181
  bucket.populate(
182
- [
183
- createIndexedFeature(0, 0, 'a'),
184
- createIndexedFeature(1, 1, 'b'),
185
- createIndexedFeature(2, 2, 'a')
186
- ] as any as IndexedFeature[],
187
- options, undefined
182
+ [
183
+ createIndexedFeature(0, 0, 'a'),
184
+ createIndexedFeature(1, 1, 'b'),
185
+ createIndexedFeature(2, 2, 'a')
186
+ ] as any as IndexedFeature[],
187
+ options, undefined
188
188
  );
189
189
 
190
190
  const icons = options.iconDependencies as any;
@@ -14,7 +14,7 @@ import {SymbolLayoutArray,
14
14
  SymbolInstanceArray,
15
15
  GlyphOffsetArray,
16
16
  SymbolLineVertexArray
17
- } from '../array_types';
17
+ } from '../array_types.g';
18
18
 
19
19
  import Point from '@mapbox/point-geometry';
20
20
  import SegmentVector from '../segment';
@@ -46,7 +46,7 @@ import type {
46
46
  IndexedFeature,
47
47
  PopulateParameters
48
48
  } from '../bucket';
49
- import type {CollisionBoxArray, CollisionBox, SymbolInstance} from '../array_types';
49
+ import type {CollisionBoxArray, CollisionBox, SymbolInstance} from '../array_types.g';
50
50
  import type {StructArray, StructArrayMember, ViewType} from '../../util/struct_array';
51
51
  import SymbolStyleLayer, {getOverlapMode} from '../../style/style_layer/symbol_style_layer';
52
52
  import type Context from '../../gl/context';
@@ -59,41 +59,41 @@ import type {ImagePosition} from '../../render/image_atlas';
59
59
  import type {VectorTileLayer} from '@mapbox/vector-tile';
60
60
 
61
61
  export type SingleCollisionBox = {
62
- x1: number;
63
- y1: number;
64
- x2: number;
65
- y2: number;
66
- anchorPointX: number;
67
- anchorPointY: number;
62
+ x1: number;
63
+ y1: number;
64
+ x2: number;
65
+ y2: number;
66
+ anchorPointX: number;
67
+ anchorPointY: number;
68
68
  };
69
69
 
70
70
  export type CollisionArrays = {
71
- textBox?: SingleCollisionBox;
72
- verticalTextBox?: SingleCollisionBox;
73
- iconBox?: SingleCollisionBox;
74
- verticalIconBox?: SingleCollisionBox;
75
- textFeatureIndex?: number;
76
- verticalTextFeatureIndex?: number;
77
- iconFeatureIndex?: number;
78
- verticalIconFeatureIndex?: number;
71
+ textBox?: SingleCollisionBox;
72
+ verticalTextBox?: SingleCollisionBox;
73
+ iconBox?: SingleCollisionBox;
74
+ verticalIconBox?: SingleCollisionBox;
75
+ textFeatureIndex?: number;
76
+ verticalTextFeatureIndex?: number;
77
+ iconFeatureIndex?: number;
78
+ verticalIconFeatureIndex?: number;
79
79
  };
80
80
 
81
81
  export type SymbolFeature = {
82
- sortKey: number | void;
83
- text: Formatted | void;
84
- icon: ResolvedImage;
85
- index: number;
86
- sourceLayerIndex: number;
87
- geometry: Array<Array<Point>>;
88
- properties: any;
89
- type: 'Point' | 'LineString' | 'Polygon';
90
- id?: any;
82
+ sortKey: number | void;
83
+ text: Formatted | void;
84
+ icon: ResolvedImage;
85
+ index: number;
86
+ sourceLayerIndex: number;
87
+ geometry: Array<Array<Point>>;
88
+ properties: any;
89
+ type: 'Point' | 'LineString' | 'Polygon';
90
+ id?: any;
91
91
  };
92
92
 
93
93
  export type SortKeyRange = {
94
- sortKey: number;
95
- symbolInstanceStart: number;
96
- symbolInstanceEnd: number;
94
+ sortKey: number;
95
+ symbolInstanceStart: number;
96
+ symbolInstanceEnd: number;
97
97
  };
98
98
 
99
99
  // Opacity arrays are frequently updated but don't contain a lot of information, so we pack them
@@ -244,12 +244,12 @@ class CollisionBuffers {
244
244
  collisionVertexBuffer: VertexBuffer;
245
245
 
246
246
  constructor(LayoutArray: {
247
- new (...args: any): StructArray;
247
+ new (...args: any): StructArray;
248
248
  },
249
- layoutAttributes: Array<StructArrayMember>,
250
- IndexArray: {
251
- new (...args: any): TriangleIndexArray | LineIndexArray;
252
- }) {
249
+ layoutAttributes: Array<StructArrayMember>,
250
+ IndexArray: {
251
+ new (...args: any): TriangleIndexArray | LineIndexArray;
252
+ }) {
253
253
  this.layoutVertexArray = new LayoutArray();
254
254
  this.layoutAttributes = layoutAttributes;
255
255
  this.indexArray = new IndexArray();
@@ -624,17 +624,17 @@ class SymbolBucket implements Bucket {
624
624
  }
625
625
 
626
626
  addSymbols(arrays: SymbolBuffers,
627
- quads: Array<SymbolQuad>,
628
- sizeVertex: any,
629
- lineOffset: [number, number],
630
- alongLine: boolean,
631
- feature: SymbolFeature,
632
- writingMode: WritingMode,
633
- labelAnchor: Anchor,
634
- lineStartIndex: number,
635
- lineLength: number,
636
- associatedIconIndex: number,
637
- canonical: CanonicalTileID) {
627
+ quads: Array<SymbolQuad>,
628
+ sizeVertex: any,
629
+ lineOffset: [number, number],
630
+ alongLine: boolean,
631
+ feature: SymbolFeature,
632
+ writingMode: WritingMode,
633
+ labelAnchor: Anchor,
634
+ lineStartIndex: number,
635
+ lineLength: number,
636
+ associatedIconIndex: number,
637
+ canonical: CanonicalTileID) {
638
638
  const indexArray = arrays.indexArray;
639
639
  const layoutVertexArray = arrays.layoutVertexArray;
640
640
 
@@ -766,15 +766,15 @@ class SymbolBucket implements Bucket {
766
766
  // These flat arrays are meant to be quicker to iterate over than the source
767
767
  // CollisionBoxArray
768
768
  _deserializeCollisionBoxesForSymbol(
769
- collisionBoxArray: CollisionBoxArray,
770
- textStartIndex: number,
771
- textEndIndex: number,
772
- verticalTextStartIndex: number,
773
- verticalTextEndIndex: number,
774
- iconStartIndex: number,
775
- iconEndIndex: number,
776
- verticalIconStartIndex: number,
777
- verticalIconEndIndex: number
769
+ collisionBoxArray: CollisionBoxArray,
770
+ textStartIndex: number,
771
+ textEndIndex: number,
772
+ verticalTextStartIndex: number,
773
+ verticalTextEndIndex: number,
774
+ iconStartIndex: number,
775
+ iconEndIndex: number,
776
+ verticalIconStartIndex: number,
777
+ verticalIconEndIndex: number
778
778
  ): CollisionArrays {
779
779
 
780
780
  const collisionArrays = {} as CollisionArrays;
@@ -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
- index: number;
14
- layers: Array<Layer>;
15
- zoom: number;
16
- pixelRatio: number;
17
- overscaling: number;
18
- collisionBoxArray: CollisionBoxArray;
19
- sourceLayerIndex: number;
20
- sourceID: string;
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
- featureIndex: FeatureIndex;
25
- iconDependencies: {};
26
- patternDependencies: {};
27
- glyphDependencies: {};
28
- availableImages: Array<string>;
24
+ featureIndex: FeatureIndex;
25
+ iconDependencies: {};
26
+ patternDependencies: {};
27
+ glyphDependencies: {};
28
+ availableImages: Array<string>;
29
29
  };
30
30
 
31
31
  export type IndexedFeature = {
32
- feature: VectorTileFeature;
33
- id: number | string;
34
- index: number;
35
- sourceLayerIndex: number;
32
+ feature: VectorTileFeature;
33
+ id: number | string;
34
+ index: number;
35
+ sourceLayerIndex: number;
36
36
  };
37
37
 
38
38
  export type BucketFeature = {
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;
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
- 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
- /**
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
- destroy(): void;
96
+ destroy(): void;
97
97
  }
98
98
 
99
99
  export function deserialize(input: Array<Bucket>, style: Style): {[_: string]: Bucket} {
@@ -95,21 +95,21 @@ export default class DEMData {
95
95
  yMax = dy * this.dim + this.dim;
96
96
 
97
97
  switch (dx) {
98
- case -1:
99
- xMin = xMax - 1;
100
- break;
101
- case 1:
102
- xMax = xMin + 1;
103
- break;
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
- case -1:
108
- yMin = yMax - 1;
109
- break;
110
- case 1:
111
- yMax = yMin + 1;
112
- break;
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
- 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;
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
- 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
- };
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
- args: QueryParameters,
108
- styleLayers: {[_: string]: StyleLayer},
109
- serializedLayers: {[_: string]: any},
110
- sourceFeatureState: SourceFeatureState
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
- 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
- });
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
- [_: string]: Array<{
175
- featureIndex: number;
176
- feature: GeoJSONFeature;
177
- intersectionZ?: boolean | number;
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
- feature: VectorTileFeature,
191
- styleLayer: StyleLayer,
192
- featureState: any,
193
- id: string | number | void
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
- serializedLayers: {[_: string]: StyleLayer},
257
- bucketIndex: number,
258
- sourceLayerIndex: number,
259
- filterSpec: FilterSpecification,
260
- filterLayerIDs: Array<string>,
261
- availableImages: Array<string>,
262
- styleLayers: {[_: string]: StyleLayer}) {
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
- ids: Float64Array;
7
- positions: Uint32Array;
6
+ ids: Float64Array;
7
+ positions: Uint32Array;
8
8
  };
9
9
 
10
10
  type FeaturePosition = {
11
- index: number;
12
- start: number;
13
- end: number;
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/fixtures/mbsv5-6-18-23.vector.pbf'))));
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', () => {