@mapgis/mapbox-gl 16.0.0 → 16.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. package/dist/mapbox-gl.js +4 -4
  2. package/dist/mapbox-gl.js.map +1 -1
  3. package/package.json +4 -5
  4. package/.flowconfig +0 -61
  5. package/LICENSE.txt +0 -84
  6. package/README.md +0 -34
  7. package/build/banner.js +0 -4
  8. package/build/check-bundle-size.js +0 -140
  9. package/build/generate-access-token-script.js +0 -11
  10. package/build/generate-flow-typed-style-spec.js +0 -188
  11. package/build/generate-release-list.js +0 -21
  12. package/build/generate-struct-arrays.js +0 -237
  13. package/build/generate-style-code.js +0 -159
  14. package/build/mapbox-gl.js.flow +0 -3
  15. package/build/print-release-url.js +0 -6
  16. package/build/rollup_plugin_minify_style_spec.js +0 -20
  17. package/build/rollup_plugins.js +0 -80
  18. package/build/run-node +0 -3
  19. package/build/run-tap +0 -8
  20. package/build/test/build-tape.js +0 -19
  21. package/dist/mapbox-gl-csp-worker.js +0 -2
  22. package/dist/mapbox-gl-csp-worker.js.map +0 -1
  23. package/dist/mapbox-gl-csp.js +0 -2
  24. package/dist/mapbox-gl-csp.js.map +0 -1
  25. package/dist/mapbox-gl-dev.js +0 -68798
  26. package/dist/mapbox-gl-unminified.js +0 -45076
  27. package/dist/mapbox-gl-unminified.js.map +0 -1
  28. package/flow-typed/gl.js +0 -5
  29. package/flow-typed/jsdom.js +0 -18
  30. package/flow-typed/mapbox-gl-supported.js +0 -9
  31. package/flow-typed/mapbox-unitbezier.js +0 -14
  32. package/flow-typed/offscreen-canvas.js +0 -9
  33. package/flow-typed/pbf.js +0 -25
  34. package/flow-typed/point-geometry.js +0 -44
  35. package/flow-typed/potpack.js +0 -12
  36. package/flow-typed/sinon.js +0 -28
  37. package/flow-typed/vector-tile.js +0 -41
  38. package/src/css/mapbox-gl.css +0 -798
  39. package/src/css/svg/mapboxgl-ctrl-attrib.svg +0 -3
  40. package/src/css/svg/mapboxgl-ctrl-compass.svg +0 -4
  41. package/src/css/svg/mapboxgl-ctrl-fullscreen.svg +0 -3
  42. package/src/css/svg/mapboxgl-ctrl-geolocate.svg +0 -5
  43. package/src/css/svg/mapboxgl-ctrl-logo.svg +0 -20
  44. package/src/css/svg/mapboxgl-ctrl-shrink.svg +0 -3
  45. package/src/css/svg/mapboxgl-ctrl-zoom-in.svg +0 -3
  46. package/src/css/svg/mapboxgl-ctrl-zoom-out.svg +0 -3
  47. package/src/data/array_types.js +0 -1095
  48. package/src/data/bucket/circle_attributes.js +0 -9
  49. package/src/data/bucket/circle_bucket.js +0 -204
  50. package/src/data/bucket/fill_attributes.js +0 -9
  51. package/src/data/bucket/fill_bucket.js +0 -233
  52. package/src/data/bucket/fill_extrusion_attributes.js +0 -10
  53. package/src/data/bucket/fill_extrusion_bucket.js +0 -289
  54. package/src/data/bucket/heatmap_bucket.js +0 -17
  55. package/src/data/bucket/line_attributes.js +0 -10
  56. package/src/data/bucket/line_bucket.js +0 -556
  57. package/src/data/bucket/pattern_attributes.js +0 -10
  58. package/src/data/bucket/pattern_bucket_features.js +0 -60
  59. package/src/data/bucket/symbol_attributes.js +0 -117
  60. package/src/data/bucket/symbol_bucket.js +0 -972
  61. package/src/data/bucket.js +0 -123
  62. package/src/data/dem_data.js +0 -125
  63. package/src/data/extent.js +0 -18
  64. package/src/data/feature_index.js +0 -321
  65. package/src/data/feature_position_map.js +0 -125
  66. package/src/data/index_array_type.js +0 -16
  67. package/src/data/load_geometry.js +0 -48
  68. package/src/data/pos_attributes.js +0 -6
  69. package/src/data/program_configuration.js +0 -687
  70. package/src/data/raster_bounds_attributes.js +0 -7
  71. package/src/data/segment.js +0 -76
  72. package/src/geo/edge_insets.js +0 -102
  73. package/src/geo/lng_lat.js +0 -165
  74. package/src/geo/lng_lat_bounds.js +0 -267
  75. package/src/geo/mercator_coordinate.js +0 -153
  76. package/src/geo/transform.js +0 -864
  77. package/src/gl/color_mode.js +0 -34
  78. package/src/gl/context.js +0 -298
  79. package/src/gl/cull_face_mode.js +0 -26
  80. package/src/gl/depth_mode.js +0 -29
  81. package/src/gl/framebuffer.js +0 -44
  82. package/src/gl/index_buffer.js +0 -55
  83. package/src/gl/stencil_mode.js +0 -30
  84. package/src/gl/types.js +0 -84
  85. package/src/gl/value.js +0 -520
  86. package/src/gl/vertex_buffer.js +0 -119
  87. package/src/index.js +0 -201
  88. package/src/render/draw_background.js +0 -57
  89. package/src/render/draw_circle.js +0 -113
  90. package/src/render/draw_collision_debug.js +0 -49
  91. package/src/render/draw_custom.js +0 -49
  92. package/src/render/draw_debug.js +0 -127
  93. package/src/render/draw_fill.js +0 -126
  94. package/src/render/draw_fill_extrusion.js +0 -96
  95. package/src/render/draw_heatmap.js +0 -140
  96. package/src/render/draw_hillshade.js +0 -108
  97. package/src/render/draw_line.js +0 -98
  98. package/src/render/draw_raster.js +0 -125
  99. package/src/render/draw_symbol.js +0 -394
  100. package/src/render/glyph_atlas.js +0 -71
  101. package/src/render/glyph_manager.js +0 -182
  102. package/src/render/image_atlas.js +0 -149
  103. package/src/render/image_manager.js +0 -306
  104. package/src/render/line_atlas.js +0 -210
  105. package/src/render/painter.js +0 -653
  106. package/src/render/program/background_program.js +0 -103
  107. package/src/render/program/circle_program.js +0 -69
  108. package/src/render/program/clipping_mask_program.js +0 -20
  109. package/src/render/program/collision_program.js +0 -49
  110. package/src/render/program/debug_program.js +0 -35
  111. package/src/render/program/fill_extrusion_program.js +0 -122
  112. package/src/render/program/fill_program.js +0 -126
  113. package/src/render/program/heatmap_program.js +0 -83
  114. package/src/render/program/hillshade_program.js +0 -122
  115. package/src/render/program/line_program.js +0 -207
  116. package/src/render/program/pattern.js +0 -102
  117. package/src/render/program/program_uniforms.js +0 -42
  118. package/src/render/program/raster_program.js +0 -92
  119. package/src/render/program/symbol_program.js +0 -224
  120. package/src/render/program.js +0 -168
  121. package/src/render/texture.js +0 -122
  122. package/src/render/uniform_binding.js +0 -147
  123. package/src/render/vertex_array_object.js +0 -163
  124. package/src/shaders/README.md +0 -42
  125. package/src/shaders/_prelude.fragment.glsl +0 -17
  126. package/src/shaders/_prelude.vertex.glsl +0 -73
  127. package/src/shaders/background.fragment.glsl +0 -10
  128. package/src/shaders/background.vertex.glsl +0 -7
  129. package/src/shaders/background_pattern.fragment.glsl +0 -28
  130. package/src/shaders/background_pattern.vertex.glsl +0 -20
  131. package/src/shaders/circle.fragment.glsl +0 -39
  132. package/src/shaders/circle.vertex.glsl +0 -64
  133. package/src/shaders/clipping_mask.fragment.glsl +0 -3
  134. package/src/shaders/clipping_mask.vertex.glsl +0 -7
  135. package/src/shaders/collision_box.fragment.glsl +0 -21
  136. package/src/shaders/collision_box.vertex.glsl +0 -27
  137. package/src/shaders/collision_circle.fragment.glsl +0 -34
  138. package/src/shaders/collision_circle.vertex.glsl +0 -36
  139. package/src/shaders/debug.fragment.glsl +0 -9
  140. package/src/shaders/debug.vertex.glsl +0 -12
  141. package/src/shaders/encode_attribute.js +0 -17
  142. package/src/shaders/fill.fragment.glsl +0 -13
  143. package/src/shaders/fill.vertex.glsl +0 -13
  144. package/src/shaders/fill_extrusion.fragment.glsl +0 -9
  145. package/src/shaders/fill_extrusion.vertex.glsl +0 -66
  146. package/src/shaders/fill_extrusion_pattern.fragment.glsl +0 -45
  147. package/src/shaders/fill_extrusion_pattern.vertex.glsl +0 -79
  148. package/src/shaders/fill_outline.fragment.glsl +0 -17
  149. package/src/shaders/fill_outline.vertex.glsl +0 -17
  150. package/src/shaders/fill_outline_pattern.fragment.glsl +0 -43
  151. package/src/shaders/fill_outline_pattern.vertex.glsl +0 -44
  152. package/src/shaders/fill_pattern.fragment.glsl +0 -36
  153. package/src/shaders/fill_pattern.vertex.glsl +0 -39
  154. package/src/shaders/heatmap.fragment.glsl +0 -22
  155. package/src/shaders/heatmap.vertex.glsl +0 -54
  156. package/src/shaders/heatmap_texture.fragment.glsl +0 -14
  157. package/src/shaders/heatmap_texture.vertex.glsl +0 -11
  158. package/src/shaders/hillshade.fragment.glsl +0 -52
  159. package/src/shaders/hillshade.vertex.glsl +0 -11
  160. package/src/shaders/hillshade_prepare.fragment.glsl +0 -74
  161. package/src/shaders/hillshade_prepare.vertex.glsl +0 -15
  162. package/src/shaders/index.js +0 -20
  163. package/src/shaders/line.fragment.glsl +0 -30
  164. package/src/shaders/line.vertex.glsl +0 -85
  165. package/src/shaders/line_gradient.fragment.glsl +0 -34
  166. package/src/shaders/line_gradient.vertex.glsl +0 -87
  167. package/src/shaders/line_pattern.fragment.glsl +0 -74
  168. package/src/shaders/line_pattern.vertex.glsl +0 -99
  169. package/src/shaders/line_sdf.fragment.glsl +0 -45
  170. package/src/shaders/line_sdf.vertex.glsl +0 -98
  171. package/src/shaders/raster.fragment.glsl +0 -52
  172. package/src/shaders/raster.vertex.glsl +0 -21
  173. package/src/shaders/shaders.js +0 -180
  174. package/src/shaders/symbol_icon.fragment.glsl +0 -17
  175. package/src/shaders/symbol_icon.vertex.glsl +0 -94
  176. package/src/shaders/symbol_sdf.fragment.glsl +0 -52
  177. package/src/shaders/symbol_sdf.vertex.glsl +0 -115
  178. package/src/shaders/symbol_text_and_icon.fragment.glsl +0 -68
  179. package/src/shaders/symbol_text_and_icon.vertex.glsl +0 -116
  180. package/src/source/canvas_source.js +0 -238
  181. package/src/source/geojson_helper.js +0 -92
  182. package/src/source/geojson_source.js +0 -374
  183. package/src/source/geojson_worker_source.js +0 -357
  184. package/src/source/geojson_wrapper.js +0 -94
  185. package/src/source/image_source.js +0 -307
  186. package/src/source/load_tilejson.js +0 -39
  187. package/src/source/mbtiles_source.js +0 -115
  188. package/src/source/offline_database.js +0 -61
  189. package/src/source/offline_database_root.js +0 -62
  190. package/src/source/pixels_to_tile_units.js +0 -21
  191. package/src/source/query_features.js +0 -208
  192. package/src/source/raster_dem_tile_source.js +0 -138
  193. package/src/source/raster_dem_tile_worker_source.js +0 -62
  194. package/src/source/raster_tile_offline_source.js +0 -136
  195. package/src/source/raster_tile_source.js +0 -177
  196. package/src/source/rtl_text_plugin.js +0 -138
  197. package/src/source/source.js +0 -137
  198. package/src/source/source_cache.js +0 -957
  199. package/src/source/source_state.js +0 -159
  200. package/src/source/tile.js +0 -465
  201. package/src/source/tile_bounds.js +0 -38
  202. package/src/source/tile_cache.js +0 -212
  203. package/src/source/tile_id.js +0 -402
  204. package/src/source/vector_tile_source.js +0 -192
  205. package/src/source/vector_tile_worker_source.js +0 -216
  206. package/src/source/video_source.js +0 -203
  207. package/src/source/worker.js +0 -237
  208. package/src/source/worker_source.js +0 -106
  209. package/src/source/worker_tile.js +0 -224
  210. package/src/style/create_style_layer.js +0 -36
  211. package/src/style/evaluation_parameters.js +0 -62
  212. package/src/style/light.js +0 -130
  213. package/src/style/load_glyph_range.js +0 -38
  214. package/src/style/load_sprite.js +0 -67
  215. package/src/style/parse_glyph_pbf.js +0 -44
  216. package/src/style/pauseable_placement.js +0 -132
  217. package/src/style/properties.js +0 -753
  218. package/src/style/query_utils.js +0 -43
  219. package/src/style/style.js +0 -1361
  220. package/src/style/style_glyph.js +0 -17
  221. package/src/style/style_image.js +0 -137
  222. package/src/style/style_layer/background_style_layer.js +0 -21
  223. package/src/style/style_layer/background_style_layer_properties.js +0 -40
  224. package/src/style/style_layer/circle_style_layer.js +0 -98
  225. package/src/style/style_layer/circle_style_layer_properties.js +0 -63
  226. package/src/style/style_layer/custom_style_layer.js +0 -223
  227. package/src/style/style_layer/fill_extrusion_style_layer.js +0 -224
  228. package/src/style/style_layer/fill_extrusion_style_layer_properties.js +0 -50
  229. package/src/style/style_layer/fill_style_layer.js +0 -67
  230. package/src/style/style_layer/fill_style_layer_properties.js +0 -55
  231. package/src/style/style_layer/heatmap_style_layer.js +0 -69
  232. package/src/style/style_layer/heatmap_style_layer_properties.js +0 -44
  233. package/src/style/style_layer/hillshade_style_layer.js +0 -25
  234. package/src/style/style_layer/hillshade_style_layer_properties.js +0 -46
  235. package/src/style/style_layer/layer_properties.js.ejs +0 -69
  236. package/src/style/style_layer/line_style_layer.js +0 -151
  237. package/src/style/style_layer/line_style_layer_properties.js +0 -71
  238. package/src/style/style_layer/raster_style_layer.js +0 -21
  239. package/src/style/style_layer/raster_style_layer_properties.js +0 -50
  240. package/src/style/style_layer/symbol_style_layer.js +0 -190
  241. package/src/style/style_layer/symbol_style_layer_properties.js +0 -153
  242. package/src/style/style_layer/typed_style_layer.js +0 -17
  243. package/src/style/style_layer.js +0 -281
  244. package/src/style/style_layer_index.js +0 -80
  245. package/src/style/validate_style.js +0 -42
  246. package/src/style/zoom_history.js +0 -44
  247. package/src/style-spec/.eslintrc +0 -5
  248. package/src/style-spec/CHANGELOG.md +0 -438
  249. package/src/style-spec/README.md +0 -59
  250. package/src/style-spec/bin/gl-style-composite +0 -9
  251. package/src/style-spec/bin/gl-style-format +0 -22
  252. package/src/style-spec/bin/gl-style-migrate +0 -9
  253. package/src/style-spec/bin/gl-style-validate +0 -50
  254. package/src/style-spec/composite.js +0 -50
  255. package/src/style-spec/declass.js +0 -42
  256. package/src/style-spec/deref.js +0 -52
  257. package/src/style-spec/diff.js +0 -393
  258. package/src/style-spec/dist/.gitkeep +0 -0
  259. package/src/style-spec/empty.js +0 -29
  260. package/src/style-spec/error/parsing_error.js +0 -16
  261. package/src/style-spec/error/validation_error.js +0 -18
  262. package/src/style-spec/expression/compound_expression.js +0 -162
  263. package/src/style-spec/expression/definitions/assertion.js +0 -130
  264. package/src/style-spec/expression/definitions/at.js +0 -70
  265. package/src/style-spec/expression/definitions/case.js +0 -85
  266. package/src/style-spec/expression/definitions/coalesce.js +0 -93
  267. package/src/style-spec/expression/definitions/coercion.js +0 -133
  268. package/src/style-spec/expression/definitions/collator.js +0 -78
  269. package/src/style-spec/expression/definitions/comparison.js +0 -184
  270. package/src/style-spec/expression/definitions/format.js +0 -144
  271. package/src/style-spec/expression/definitions/format_section_override.js +0 -54
  272. package/src/style-spec/expression/definitions/image.js +0 -52
  273. package/src/style-spec/expression/definitions/in.js +0 -92
  274. package/src/style-spec/expression/definitions/index.js +0 -561
  275. package/src/style-spec/expression/definitions/interpolate.js +0 -267
  276. package/src/style-spec/expression/definitions/length.js +0 -61
  277. package/src/style-spec/expression/definitions/let.js +0 -72
  278. package/src/style-spec/expression/definitions/literal.js +0 -77
  279. package/src/style-spec/expression/definitions/match.js +0 -158
  280. package/src/style-spec/expression/definitions/number_format.js +0 -142
  281. package/src/style-spec/expression/definitions/step.js +0 -120
  282. package/src/style-spec/expression/definitions/var.js +0 -46
  283. package/src/style-spec/expression/definitions/within.js +0 -333
  284. package/src/style-spec/expression/evaluation_context.js +0 -59
  285. package/src/style-spec/expression/expression.js +0 -27
  286. package/src/style-spec/expression/index.js +0 -392
  287. package/src/style-spec/expression/is_constant.js +0 -59
  288. package/src/style-spec/expression/parsing_context.js +0 -233
  289. package/src/style-spec/expression/parsing_error.js +0 -13
  290. package/src/style-spec/expression/runtime_error.js +0 -17
  291. package/src/style-spec/expression/scope.js +0 -36
  292. package/src/style-spec/expression/stops.js +0 -39
  293. package/src/style-spec/expression/types/collator.js +0 -61
  294. package/src/style-spec/expression/types/formatted.js +0 -73
  295. package/src/style-spec/expression/types/resolved_image.js +0 -29
  296. package/src/style-spec/expression/types.js +0 -106
  297. package/src/style-spec/expression/values.js +0 -123
  298. package/src/style-spec/feature_filter/README.md +0 -55
  299. package/src/style-spec/feature_filter/convert.js +0 -208
  300. package/src/style-spec/feature_filter/index.js +0 -165
  301. package/src/style-spec/format.js +0 -51
  302. package/src/style-spec/function/convert.js +0 -254
  303. package/src/style-spec/function/index.js +0 -262
  304. package/src/style-spec/group_by_layout.js +0 -75
  305. package/src/style-spec/migrate/expressions.js +0 -39
  306. package/src/style-spec/migrate/v8.js +0 -203
  307. package/src/style-spec/migrate/v9.js +0 -26
  308. package/src/style-spec/migrate.js +0 -36
  309. package/src/style-spec/package.json +0 -41
  310. package/src/style-spec/read_style.js +0 -14
  311. package/src/style-spec/reference/latest.js +0 -3
  312. package/src/style-spec/reference/v8.json +0 -5808
  313. package/src/style-spec/rollup.config.js +0 -45
  314. package/src/style-spec/style-spec.js +0 -122
  315. package/src/style-spec/types.js +0 -438
  316. package/src/style-spec/util/color.js +0 -95
  317. package/src/style-spec/util/color_spaces.js +0 -139
  318. package/src/style-spec/util/deep_equal.js +0 -28
  319. package/src/style-spec/util/extend.js +0 -10
  320. package/src/style-spec/util/get_type.js +0 -17
  321. package/src/style-spec/util/interpolate.js +0 -22
  322. package/src/style-spec/util/properties.js +0 -15
  323. package/src/style-spec/util/ref_properties.js +0 -2
  324. package/src/style-spec/util/result.js +0 -19
  325. package/src/style-spec/util/unbundle_jsonlint.js +0 -24
  326. package/src/style-spec/validate/latest.js +0 -11
  327. package/src/style-spec/validate/validate.js +0 -75
  328. package/src/style-spec/validate/validate_array.js +0 -52
  329. package/src/style-spec/validate/validate_boolean.js +0 -15
  330. package/src/style-spec/validate/validate_color.js +0 -20
  331. package/src/style-spec/validate/validate_constants.js +0 -13
  332. package/src/style-spec/validate/validate_enum.js +0 -21
  333. package/src/style-spec/validate/validate_expression.js +0 -43
  334. package/src/style-spec/validate/validate_filter.js +0 -111
  335. package/src/style-spec/validate/validate_formatted.js +0 -11
  336. package/src/style-spec/validate/validate_function.js +0 -207
  337. package/src/style-spec/validate/validate_glyphs_url.js +0 -21
  338. package/src/style-spec/validate/validate_image.js +0 -11
  339. package/src/style-spec/validate/validate_layer.js +0 -134
  340. package/src/style-spec/validate/validate_layout_property.js +0 -6
  341. package/src/style-spec/validate/validate_light.js +0 -47
  342. package/src/style-spec/validate/validate_number.js +0 -29
  343. package/src/style-spec/validate/validate_object.js +0 -61
  344. package/src/style-spec/validate/validate_paint_property.js +0 -6
  345. package/src/style-spec/validate/validate_property.js +0 -64
  346. package/src/style-spec/validate/validate_source.js +0 -111
  347. package/src/style-spec/validate/validate_string.js +0 -15
  348. package/src/style-spec/validate_mapbox_api_supported.js +0 -171
  349. package/src/style-spec/validate_style.js +0 -39
  350. package/src/style-spec/validate_style.min.js +0 -78
  351. package/src/style-spec/visit.js +0 -77
  352. package/src/symbol/anchor.js +0 -26
  353. package/src/symbol/check_max_angle.js +0 -81
  354. package/src/symbol/clip_line.js +0 -71
  355. package/src/symbol/collision_feature.js +0 -217
  356. package/src/symbol/collision_index.js +0 -372
  357. package/src/symbol/cross_tile_symbol_index.js +0 -301
  358. package/src/symbol/get_anchors.js +0 -167
  359. package/src/symbol/grid_index.js +0 -335
  360. package/src/symbol/mergelines.js +0 -82
  361. package/src/symbol/one_em.js +0 -4
  362. package/src/symbol/opacity_state.js +0 -27
  363. package/src/symbol/placement.js +0 -1062
  364. package/src/symbol/projection.js +0 -450
  365. package/src/symbol/quads.js +0 -334
  366. package/src/symbol/shaping.js +0 -816
  367. package/src/symbol/symbol_layout.js +0 -772
  368. package/src/symbol/symbol_size.js +0 -113
  369. package/src/symbol/transform_text.js +0 -29
  370. package/src/types/callback.js +0 -17
  371. package/src/types/cancelable.js +0 -3
  372. package/src/types/tilejson.js +0 -17
  373. package/src/types/transferable.js +0 -3
  374. package/src/types/window.js +0 -172
  375. package/src/ui/anchor.js +0 -32
  376. package/src/ui/bind_handlers.js +0 -202
  377. package/src/ui/camera.js +0 -1152
  378. package/src/ui/control/attribution_control.js +0 -189
  379. package/src/ui/control/fps_control.js +0 -185
  380. package/src/ui/control/fullscreen_control.js +0 -147
  381. package/src/ui/control/geolocate_control.js +0 -594
  382. package/src/ui/control/logo_control.js +0 -92
  383. package/src/ui/control/navigation_control.js +0 -148
  384. package/src/ui/control/scale_control.js +0 -142
  385. package/src/ui/crs.js +0 -64
  386. package/src/ui/default_locale.js +0 -20
  387. package/src/ui/events.js +0 -806
  388. package/src/ui/handler/box_zoom.js +0 -175
  389. package/src/ui/handler/dblclick_zoom.js +0 -139
  390. package/src/ui/handler/drag_pan.js +0 -416
  391. package/src/ui/handler/drag_rotate.js +0 -378
  392. package/src/ui/handler/keyboard.js +0 -161
  393. package/src/ui/handler/scroll_zoom.js +0 -333
  394. package/src/ui/handler/touch_zoom_rotate.js +0 -293
  395. package/src/ui/hash.js +0 -147
  396. package/src/ui/map.js +0 -2883
  397. package/src/ui/marker.js +0 -607
  398. package/src/ui/offline_map.js +0 -91
  399. package/src/ui/popup.js +0 -530
  400. package/src/util/actor.js +0 -212
  401. package/src/util/ajax.js +0 -371
  402. package/src/util/browser/web_worker.js +0 -10
  403. package/src/util/browser/window.js +0 -5
  404. package/src/util/browser.js +0 -70
  405. package/src/util/classify_rings.js +0 -52
  406. package/src/util/color_ramp.js +0 -28
  407. package/src/util/config.js +0 -30
  408. package/src/util/debug.js +0 -12
  409. package/src/util/dictionary_coder.js +0 -30
  410. package/src/util/dispatcher.js +0 -70
  411. package/src/util/dom.js +0 -144
  412. package/src/util/evented.js +0 -174
  413. package/src/util/find_pole_of_inaccessibility.js +0 -129
  414. package/src/util/global_worker_pool.js +0 -17
  415. package/src/util/image.js +0 -142
  416. package/src/util/intersection_tests.js +0 -208
  417. package/src/util/is_char_in_unicode_block.js +0 -311
  418. package/src/util/mapbox.js +0 -486
  419. package/src/util/offscreen_canvas_supported.js +0 -14
  420. package/src/util/performance.js +0 -112
  421. package/src/util/primitives.js +0 -145
  422. package/src/util/resolve_tokens.js +0 -16
  423. package/src/util/script_detection.js +0 -328
  424. package/src/util/sku_token.js +0 -42
  425. package/src/util/smart_wrap.js +0 -55
  426. package/src/util/struct_array.js +0 -243
  427. package/src/util/struct_array.js.ejs +0 -112
  428. package/src/util/struct_array_layout.js.ejs +0 -98
  429. package/src/util/task_queue.js +0 -68
  430. package/src/util/throttle.js +0 -28
  431. package/src/util/throttled_invoker.js +0 -46
  432. package/src/util/tile_cover.js +0 -101
  433. package/src/util/tile_request_cache.js +0 -172
  434. package/src/util/util.js +0 -504
  435. package/src/util/vectortile_to_geojson.js +0 -54
  436. package/src/util/verticalize_punctuation.js +0 -114
  437. package/src/util/web_worker.js +0 -91
  438. package/src/util/web_worker_transfer.js +0 -266
  439. package/src/util/webp_supported.js +0 -69
  440. package/src/util/window.js +0 -102
  441. package/src/util/worker_pool.js +0 -47
@@ -1,123 +0,0 @@
1
- // @flow
2
-
3
- import type {CollisionBoxArray} from './array_types';
4
- import type Style from '../style/style';
5
- import type {TypedStyleLayer} from '../style/style_layer/typed_style_layer';
6
- import type FeatureIndex from './feature_index';
7
- import type Context from '../gl/context';
8
- import type {FeatureStates} from '../source/source_state';
9
- import type {ImagePosition} from '../render/image_atlas';
10
- import type {CanonicalTileID} from '../source/tile_id';
11
-
12
- export type BucketParameters<Layer: 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
21
- }
22
-
23
- export type PopulateParameters = {
24
- featureIndex: FeatureIndex,
25
- iconDependencies: {},
26
- patternDependencies: {},
27
- glyphDependencies: {},
28
- availableImages: Array<string>
29
- }
30
-
31
- export type IndexedFeature = {
32
- feature: VectorTileFeature,
33
- id: number | string,
34
- index: number,
35
- sourceLayerIndex: number,
36
- }
37
-
38
- export type BucketFeature = {|
39
- index: number,
40
- sourceLayerIndex: number,
41
- geometry: Array<Array<Point>>,
42
- properties: Object,
43
- type: 1 | 2 | 3,
44
- id?: any,
45
- +patterns: {[_: string]: {"min": string, "mid": string, "max": string}},
46
- sortKey?: number
47
- |};
48
-
49
- /**
50
- * The `Bucket` interface is the single point of knowledge about turning vector
51
- * tiles into WebGL buffers.
52
- *
53
- * `Bucket` is an abstract interface. An implementation exists for each style layer type.
54
- * Create a bucket via the `StyleLayer#createBucket` method.
55
- *
56
- * The concrete bucket types, using layout options from the style layer,
57
- * transform feature geometries into vertex and index data for use by the
58
- * vertex shader. They also (via `ProgramConfiguration`) use feature
59
- * properties and the zoom level to populate the attributes needed for
60
- * data-driven styling.
61
- *
62
- * Buckets are designed to be built on a worker thread and then serialized and
63
- * transferred back to the main thread for rendering. On the worker side, a
64
- * bucket's vertex, index, and attribute data is stored in `bucket.arrays:
65
- * ArrayGroup`. When a bucket's data is serialized and sent back to the main
66
- * thread, is gets deserialized (using `new Bucket(serializedBucketData)`, with
67
- * the array data now stored in `bucket.buffers: BufferGroup`. BufferGroups
68
- * hold the same data as ArrayGroups, but are tuned for consumption by WebGL.
69
- *
70
- * @private
71
- */
72
- export interface Bucket {
73
- layerIds: Array<string>;
74
- hasPattern: boolean;
75
- +layers: Array<any>;
76
- +stateDependentLayers: Array<any>;
77
- +stateDependentLayerIds: Array<string>;
78
- populate(features: Array<IndexedFeature>, options: PopulateParameters, canonical: CanonicalTileID): void;
79
- update(states: FeatureStates, vtLayer: VectorTileLayer, imagePositions: {[_: string]: ImagePosition}): void;
80
- isEmpty(): boolean;
81
-
82
- upload(context: Context): void;
83
- uploadPending(): boolean;
84
-
85
- /**
86
- * Release the WebGL resources associated with the buffers. Note that because
87
- * buckets are shared between layers having the same layout properties, they
88
- * must be destroyed in groups (all buckets for a tile, or all symbol buckets).
89
- *
90
- * @private
91
- */
92
- destroy(): void;
93
- }
94
-
95
- export function deserialize(input: Array<Bucket>, style: Style): {[_: string]: Bucket} {
96
- const output = {};
97
-
98
- // Guard against the case where the map's style has been set to null while
99
- // this bucket has been parsing.
100
- if (!style) return output;
101
-
102
- for (const bucket of input) {
103
- const layers = bucket.layerIds
104
- .map((id) => style.getLayer(id))
105
- .filter(Boolean);
106
-
107
- if (layers.length === 0) {
108
- continue;
109
- }
110
-
111
- // look up StyleLayer objects from layer ids (since we don't
112
- // want to waste time serializing/copying them from the worker)
113
- (bucket: any).layers = layers;
114
- if ((bucket: any).stateDependentLayerIds) {
115
- (bucket: any).stateDependentLayers = (bucket: any).stateDependentLayerIds.map((lId) => layers.filter((l) => l.id === lId)[0]);
116
- }
117
- for (const layer of layers) {
118
- output[layer.id] = bucket;
119
- }
120
- }
121
-
122
- return output;
123
- }
@@ -1,125 +0,0 @@
1
- // @flow
2
- import {RGBAImage} from '../util/image';
3
-
4
- import {warnOnce} from '../util/util';
5
- import {register} from '../util/web_worker_transfer';
6
-
7
- // DEMData is a data structure for decoding, backfilling, and storing elevation data for processing in the hillshade shaders
8
- // data can be populated either from a pngraw image tile or from serliazed data sent back from a worker. When data is initially
9
- // loaded from a image tile, we decode the pixel values using the appropriate decoding formula, but we store the
10
- // elevation data as an Int32 value. we add 65536 (2^16) to eliminate negative values and enable the use of
11
- // integer overflow when creating the texture used in the hillshadePrepare step.
12
-
13
- // DEMData also handles the backfilling of data from a tile's neighboring tiles. This is necessary because we use a pixel's 8
14
- // surrounding pixel values to compute the slope at that pixel, and we cannot accurately calculate the slope at pixels on a
15
- // tile's edge without backfilling from neighboring tiles.
16
-
17
- export default class DEMData {
18
- uid: string;
19
- data: Uint32Array;
20
- stride: number;
21
- dim: number;
22
- encoding: "mapbox" | "terrarium";
23
-
24
- // RGBAImage data has uniform 1px padding on all sides: square tile edge size defines stride
25
- // and dim is calculated as stride - 2.
26
- constructor(uid: string, data: RGBAImage, encoding: "mapbox" | "terrarium") {
27
- this.uid = uid;
28
- if (data.height !== data.width) throw new RangeError('DEM tiles must be square');
29
- if (encoding && encoding !== "mapbox" && encoding !== "terrarium") return warnOnce(
30
- `"${encoding}" is not a valid encoding type. Valid types include "mapbox" and "terrarium".`
31
- );
32
- this.stride = data.height;
33
- const dim = this.dim = data.height - 2;
34
- this.data = new Uint32Array(data.data.buffer);
35
- this.encoding = encoding || 'mapbox';
36
-
37
- // in order to avoid flashing seams between tiles, here we are initially populating a 1px border of pixels around the image
38
- // with the data of the nearest pixel from the image. this data is eventually replaced when the tile's neighboring
39
- // tiles are loaded and the accurate data can be backfilled using DEMData#backfillBorder
40
- for (let x = 0; x < dim; x++) {
41
- // left vertical border
42
- this.data[this._idx(-1, x)] = this.data[this._idx(0, x)];
43
- // right vertical border
44
- this.data[this._idx(dim, x)] = this.data[this._idx(dim - 1, x)];
45
- // left horizontal border
46
- this.data[this._idx(x, -1)] = this.data[this._idx(x, 0)];
47
- // right horizontal border
48
- this.data[this._idx(x, dim)] = this.data[this._idx(x, dim - 1)];
49
- }
50
- // corners
51
- this.data[this._idx(-1, -1)] = this.data[this._idx(0, 0)];
52
- this.data[this._idx(dim, -1)] = this.data[this._idx(dim - 1, 0)];
53
- this.data[this._idx(-1, dim)] = this.data[this._idx(0, dim - 1)];
54
- this.data[this._idx(dim, dim)] = this.data[this._idx(dim - 1, dim - 1)];
55
- }
56
-
57
- get(x: number, y: number) {
58
- const pixels = new Uint8Array(this.data.buffer);
59
- const index = this._idx(x, y) * 4;
60
- const unpack = this.encoding === "terrarium" ? this._unpackTerrarium : this._unpackMapbox;
61
- return unpack(pixels[index], pixels[index + 1], pixels[index + 2]);
62
- }
63
-
64
- getUnpackVector() {
65
- return this.encoding === "terrarium" ? [256.0, 1.0, 1.0 / 256.0, 32768.0] : [6553.6, 25.6, 0.1, 10000.0];
66
- }
67
-
68
- _idx(x: number, y: number) {
69
- if (x < -1 || x >= this.dim + 1 || y < -1 || y >= this.dim + 1) throw new RangeError('out of range source coordinates for DEM data');
70
- return (y + 1) * this.stride + (x + 1);
71
- }
72
-
73
- _unpackMapbox(r: number, g: number, b: number) {
74
- // unpacking formula for mapbox.terrain-rgb:
75
- // https://www.mapbox.com/help/access-elevation-data/#mapbox-terrain-rgb
76
- return ((r * 256 * 256 + g * 256.0 + b) / 10.0 - 10000.0);
77
- }
78
-
79
- _unpackTerrarium(r: number, g: number, b: number) {
80
- // unpacking formula for mapzen terrarium:
81
- // https://aws.amazon.com/public-datasets/terrain/
82
- return ((r * 256 + g + b / 256) - 32768.0);
83
- }
84
-
85
- getPixels() {
86
- return new RGBAImage({width: this.stride, height: this.stride}, new Uint8Array(this.data.buffer));
87
- }
88
-
89
- backfillBorder(borderTile: DEMData, dx: number, dy: number) {
90
- if (this.dim !== borderTile.dim) throw new Error('dem dimension mismatch');
91
-
92
- let xMin = dx * this.dim,
93
- xMax = dx * this.dim + this.dim,
94
- yMin = dy * this.dim,
95
- yMax = dy * this.dim + this.dim;
96
-
97
- switch (dx) {
98
- case -1:
99
- xMin = xMax - 1;
100
- break;
101
- case 1:
102
- xMax = xMin + 1;
103
- break;
104
- }
105
-
106
- switch (dy) {
107
- case -1:
108
- yMin = yMax - 1;
109
- break;
110
- case 1:
111
- yMax = yMin + 1;
112
- break;
113
- }
114
-
115
- const ox = -dx * this.dim;
116
- const oy = -dy * this.dim;
117
- for (let y = yMin; y < yMax; y++) {
118
- for (let x = xMin; x < xMax; x++) {
119
- this.data[this._idx(x, y)] = borderTile.data[this._idx(x + ox, y + oy)];
120
- }
121
- }
122
- }
123
- }
124
-
125
- register('DEMData', DEMData);
@@ -1,18 +0,0 @@
1
- // @flow
2
-
3
- /**
4
- * The maximum value of a coordinate in the internal tile coordinate system. Coordinates of
5
- * all source features normalized to this extent upon load.
6
- *
7
- * The value is a consequence of the following:
8
- *
9
- * * Vertex buffer store positions as signed 16 bit integers.
10
- * * One bit is lost for signedness to support tile buffers.
11
- * * One bit is lost because the line vertex buffer used to pack 1 bit of other data into the int.
12
- * * One bit is lost to support features extending past the extent on the right edge of the tile.
13
- * * This leaves us with 2^13 = 8192
14
- *
15
- * @private
16
- * @readonly
17
- */
18
- export default 8192;
@@ -1,321 +0,0 @@
1
- // @flow
2
-
3
- import Point from '@mapbox/point-geometry';
4
-
5
- import loadGeometry from './load_geometry';
6
- import EXTENT from './extent';
7
- import featureFilter from '../style-spec/feature_filter';
8
- import Grid from 'grid-index';
9
- import DictionaryCoder from '../util/dictionary_coder';
10
- import vt from '@mapbox/vector-tile';
11
- import Protobuf from 'pbf';
12
- import GeoJSONFeature from '../util/vectortile_to_geojson';
13
- import {arraysIntersect, mapObject} from '../util/util';
14
- import {OverscaledTileID, CanonicalTileID} from '../source/tile_id';
15
- import {register} from '../util/web_worker_transfer';
16
- import EvaluationParameters from '../style/evaluation_parameters';
17
- import SourceFeatureState from '../source/source_state';
18
- import {polygonIntersectsBox} from '../util/intersection_tests';
19
- import {PossiblyEvaluated} from '../style/properties';
20
-
21
- import type StyleLayer from '../style/style_layer';
22
- import type {FeatureFilter} from '../style-spec/feature_filter';
23
- import type Transform from '../geo/transform';
24
- import type {FilterSpecification, PromoteIdSpecification} from '../style-spec/types';
25
-
26
- import {FeatureIndexArray} from './array_types';
27
-
28
- type QueryParameters = {
29
- scale: number,
30
- pixelPosMatrix: Float32Array,
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
- }
42
-
43
- class FeatureIndex {
44
- tileID: OverscaledTileID;
45
- x: number;
46
- y: number;
47
- z: number;
48
- grid: Grid;
49
- grid3D: Grid;
50
- featureIndexArray: FeatureIndexArray;
51
- promoteId: ?PromoteIdSpecification;
52
-
53
- rawTileData: ArrayBuffer;
54
- bucketLayerIDs: Array<Array<string>>;
55
-
56
- vtLayers: {[_: string]: VectorTileLayer};
57
- sourceLayerCoder: DictionaryCoder;
58
-
59
- constructor(tileID: OverscaledTileID, promoteId?: ?PromoteIdSpecification) {
60
- this.tileID = tileID;
61
- this.x = tileID.canonical.x;
62
- this.y = tileID.canonical.y;
63
- this.z = tileID.canonical.z;
64
- this.grid = new Grid(EXTENT, 16, 0);
65
- this.grid3D = new Grid(EXTENT, 16, 0);
66
- this.featureIndexArray = new FeatureIndexArray();
67
- this.promoteId = promoteId;
68
- }
69
-
70
- insert(feature: VectorTileFeature, geometry: Array<Array<Point>>, featureIndex: number, sourceLayerIndex: number, bucketIndex: number, is3D?: boolean) {
71
- const key = this.featureIndexArray.length;
72
- this.featureIndexArray.emplaceBack(featureIndex, sourceLayerIndex, bucketIndex);
73
-
74
- const grid = is3D ? this.grid3D : this.grid;
75
-
76
- for (let r = 0; r < geometry.length; r++) {
77
- const ring = geometry[r];
78
-
79
- const bbox = [Infinity, Infinity, -Infinity, -Infinity];
80
- for (let i = 0; i < ring.length; i++) {
81
- const p = ring[i];
82
- bbox[0] = Math.min(bbox[0], p.x);
83
- bbox[1] = Math.min(bbox[1], p.y);
84
- bbox[2] = Math.max(bbox[2], p.x);
85
- bbox[3] = Math.max(bbox[3], p.y);
86
- }
87
-
88
- if (bbox[0] < EXTENT &&
89
- bbox[1] < EXTENT &&
90
- bbox[2] >= 0 &&
91
- bbox[3] >= 0) {
92
- grid.insert(key, bbox[0], bbox[1], bbox[2], bbox[3]);
93
- }
94
- }
95
- }
96
-
97
- loadVTLayers(): {[_: string]: VectorTileLayer} {
98
- if (!this.vtLayers) {
99
- this.vtLayers = new vt.VectorTile(new Protobuf(this.rawTileData)).layers;
100
- this.sourceLayerCoder = new DictionaryCoder(this.vtLayers ? Object.keys(this.vtLayers).sort() : ['_geojsonTileLayer']);
101
- }
102
- return this.vtLayers;
103
- }
104
-
105
- // Finds non-symbol features in this tile at a particular position.
106
- query(args: QueryParameters,
107
- styleLayers: {[_: string]: StyleLayer},
108
- serializedLayers: {[_: string]: Object},
109
- sourceFeatureState: SourceFeatureState):
110
- {[_: string]: Array<{ featureIndex: number, feature: GeoJSONFeature }>}
111
- {
112
- this.loadVTLayers();
113
-
114
- const params = args.params || {},
115
- pixelsToTileUnits = EXTENT / args.tileSize / args.scale,
116
- filter = featureFilter(params.filter);
117
-
118
- const queryGeometry = args.queryGeometry;
119
- const queryPadding = args.queryPadding * pixelsToTileUnits;
120
-
121
- const bounds = getBounds(queryGeometry);
122
- const matching = this.grid.query(bounds.minX - queryPadding, bounds.minY - queryPadding, bounds.maxX + queryPadding, bounds.maxY + queryPadding);
123
-
124
- const cameraBounds = getBounds(args.cameraQueryGeometry);
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
- });
130
-
131
- for (const key of matching3D) {
132
- matching.push(key);
133
- }
134
-
135
- matching.sort(topDownFeatureComparator);
136
-
137
- const result = {};
138
- let previousIndex;
139
- for (let k = 0; k < matching.length; k++) {
140
- const index = matching[k];
141
-
142
- // don't check the same feature more than once
143
- if (index === previousIndex) continue;
144
- previousIndex = index;
145
-
146
- const match = this.featureIndexArray.get(index);
147
- let featureGeometry = null;
148
- this.loadMatchingFeature(
149
- result,
150
- match.bucketIndex,
151
- match.sourceLayerIndex,
152
- match.featureIndex,
153
- filter,
154
- params.layers,
155
- params.availableImages,
156
- styleLayers,
157
- serializedLayers,
158
- sourceFeatureState,
159
- (feature: VectorTileFeature, styleLayer: StyleLayer, featureState: Object) => {
160
- if (!featureGeometry) {
161
- featureGeometry = loadGeometry(feature);
162
- }
163
-
164
- return styleLayer.queryIntersectsFeature(queryGeometry, feature, featureState, featureGeometry, this.z, args.transform, pixelsToTileUnits, args.pixelPosMatrix);
165
- }
166
- );
167
- }
168
-
169
- return result;
170
- }
171
-
172
- loadMatchingFeature(
173
- result: {[_: string]: Array<{ featureIndex: number, feature: GeoJSONFeature }>},
174
- bucketIndex: number,
175
- sourceLayerIndex: number,
176
- featureIndex: number,
177
- filter: FeatureFilter,
178
- filterLayerIDs: Array<string>,
179
- availableImages: Array<string>,
180
- styleLayers: {[_: string]: StyleLayer},
181
- serializedLayers: {[_: string]: Object},
182
- sourceFeatureState?: SourceFeatureState,
183
- intersectionTest?: (feature: VectorTileFeature, styleLayer: StyleLayer, featureState: Object, id: string | number | void) => boolean | number) {
184
-
185
- const layerIDs = this.bucketLayerIDs[bucketIndex];
186
- if (filterLayerIDs && !arraysIntersect(filterLayerIDs, layerIDs))
187
- return;
188
-
189
- const sourceLayerName = this.sourceLayerCoder.decode(sourceLayerIndex);
190
- const sourceLayer = this.vtLayers[sourceLayerName];
191
- const feature = sourceLayer.feature(featureIndex);
192
-
193
- if (!filter.filter(new EvaluationParameters(this.tileID.overscaledZ), feature))
194
- return;
195
-
196
- const id = this.getId(feature, sourceLayerName);
197
- const tilecrs = new CanonicalTileID(0, 0, 0)
198
-
199
- for (let l = 0; l < layerIDs.length; l++) {
200
- const layerID = layerIDs[l];
201
-
202
- if (filterLayerIDs && filterLayerIDs.indexOf(layerID) < 0) {
203
- continue;
204
- }
205
-
206
- const styleLayer = styleLayers[layerID];
207
-
208
- if (!styleLayer) continue;
209
-
210
- let featureState = {};
211
- if (id !== undefined && sourceFeatureState) {
212
- // `feature-state` expression evaluation requires feature state to be available
213
- featureState = sourceFeatureState.getState(styleLayer.sourceLayer || '_geojsonTileLayer', id);
214
- }
215
-
216
- const serializedLayer = serializedLayers[layerID];
217
-
218
- serializedLayer.paint = evaluateProperties(serializedLayer.paint, styleLayer.paint, feature, featureState, availableImages);
219
- serializedLayer.layout = evaluateProperties(serializedLayer.layout, styleLayer.layout, feature, featureState, availableImages);
220
-
221
- const intersectionZ = !intersectionTest || intersectionTest(feature, styleLayer, featureState);
222
- if (!intersectionZ) {
223
- // Only applied for non-symbol features
224
- continue;
225
- }
226
-
227
- const geojsonFeature = new GeoJSONFeature(feature, this.z, this.x, this.y, id, tilecrs.getCRS().getEpsgCode());
228
- (geojsonFeature: any).layer = serializedLayer;
229
- let layerResult = result[layerID];
230
- if (layerResult === undefined) {
231
- layerResult = result[layerID] = [];
232
- }
233
- layerResult.push({featureIndex, feature: geojsonFeature, intersectionZ});
234
- }
235
- }
236
-
237
- // Given a set of symbol indexes that have already been looked up,
238
- // return a matching set of GeoJSONFeatures
239
- lookupSymbolFeatures(symbolFeatureIndexes: Array<number>,
240
- serializedLayers: {[string]: StyleLayer},
241
- bucketIndex: number,
242
- sourceLayerIndex: number,
243
- filterSpec: FilterSpecification,
244
- filterLayerIDs: Array<string>,
245
- availableImages: Array<string>,
246
- styleLayers: {[_: string]: StyleLayer}) {
247
- const result = {};
248
- this.loadVTLayers();
249
-
250
- const filter = featureFilter(filterSpec);
251
-
252
- for (const symbolFeatureIndex of symbolFeatureIndexes) {
253
- this.loadMatchingFeature(
254
- result,
255
- bucketIndex,
256
- sourceLayerIndex,
257
- symbolFeatureIndex,
258
- filter,
259
- filterLayerIDs,
260
- availableImages,
261
- styleLayers,
262
- serializedLayers
263
- );
264
-
265
- }
266
- return result;
267
- }
268
-
269
- hasLayer(id: string) {
270
- for (const layerIDs of this.bucketLayerIDs) {
271
- for (const layerID of layerIDs) {
272
- if (id === layerID) return true;
273
- }
274
- }
275
-
276
- return false;
277
- }
278
-
279
- getId(feature: VectorTileFeature, sourceLayerId: string): string | number | void {
280
- let id = feature.id;
281
- if (this.promoteId) {
282
- const propName = typeof this.promoteId === 'string' ? this.promoteId : this.promoteId[sourceLayerId];
283
- id = feature.properties[propName];
284
- if (typeof id === 'boolean') id = Number(id);
285
- }
286
- return id;
287
- }
288
- }
289
-
290
- register(
291
- 'FeatureIndex',
292
- FeatureIndex,
293
- {omit: ['rawTileData', 'sourceLayerCoder']}
294
- );
295
-
296
- export default FeatureIndex;
297
-
298
- function evaluateProperties(serializedProperties, styleLayerProperties, feature, featureState, availableImages) {
299
- return mapObject(serializedProperties, (property, key) => {
300
- const prop = styleLayerProperties instanceof PossiblyEvaluated ? styleLayerProperties.get(key) : null;
301
- return prop && prop.evaluate ? prop.evaluate(feature, featureState, availableImages) : prop;
302
- });
303
- }
304
-
305
- function getBounds(geometry: Array<Point>) {
306
- let minX = Infinity;
307
- let minY = Infinity;
308
- let maxX = -Infinity;
309
- let maxY = -Infinity;
310
- for (const p of geometry) {
311
- minX = Math.min(minX, p.x);
312
- minY = Math.min(minY, p.y);
313
- maxX = Math.max(maxX, p.x);
314
- maxY = Math.max(maxY, p.y);
315
- }
316
- return {minX, minY, maxX, maxY};
317
- }
318
-
319
- function topDownFeatureComparator(a, b) {
320
- return b - a;
321
- }