@mapgis/mapbox-gl 16.0.1 → 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 (434) hide show
  1. package/dist/mapbox-gl.js +3 -3
  2. package/dist/mapbox-gl.js.map +1 -1
  3. package/package.json +1 -1
  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/flow-typed/gl.js +0 -5
  22. package/flow-typed/jsdom.js +0 -18
  23. package/flow-typed/mapbox-gl-supported.js +0 -9
  24. package/flow-typed/mapbox-unitbezier.js +0 -14
  25. package/flow-typed/offscreen-canvas.js +0 -9
  26. package/flow-typed/pbf.js +0 -25
  27. package/flow-typed/point-geometry.js +0 -44
  28. package/flow-typed/potpack.js +0 -12
  29. package/flow-typed/sinon.js +0 -28
  30. package/flow-typed/vector-tile.js +0 -41
  31. package/src/css/mapbox-gl.css +0 -798
  32. package/src/css/svg/mapboxgl-ctrl-attrib.svg +0 -3
  33. package/src/css/svg/mapboxgl-ctrl-compass.svg +0 -4
  34. package/src/css/svg/mapboxgl-ctrl-fullscreen.svg +0 -3
  35. package/src/css/svg/mapboxgl-ctrl-geolocate.svg +0 -5
  36. package/src/css/svg/mapboxgl-ctrl-logo.svg +0 -20
  37. package/src/css/svg/mapboxgl-ctrl-shrink.svg +0 -3
  38. package/src/css/svg/mapboxgl-ctrl-zoom-in.svg +0 -3
  39. package/src/css/svg/mapboxgl-ctrl-zoom-out.svg +0 -3
  40. package/src/data/array_types.js +0 -1095
  41. package/src/data/bucket/circle_attributes.js +0 -9
  42. package/src/data/bucket/circle_bucket.js +0 -204
  43. package/src/data/bucket/fill_attributes.js +0 -9
  44. package/src/data/bucket/fill_bucket.js +0 -233
  45. package/src/data/bucket/fill_extrusion_attributes.js +0 -10
  46. package/src/data/bucket/fill_extrusion_bucket.js +0 -289
  47. package/src/data/bucket/heatmap_bucket.js +0 -17
  48. package/src/data/bucket/line_attributes.js +0 -10
  49. package/src/data/bucket/line_bucket.js +0 -556
  50. package/src/data/bucket/pattern_attributes.js +0 -10
  51. package/src/data/bucket/pattern_bucket_features.js +0 -60
  52. package/src/data/bucket/symbol_attributes.js +0 -117
  53. package/src/data/bucket/symbol_bucket.js +0 -972
  54. package/src/data/bucket.js +0 -123
  55. package/src/data/dem_data.js +0 -125
  56. package/src/data/extent.js +0 -18
  57. package/src/data/feature_index.js +0 -321
  58. package/src/data/feature_position_map.js +0 -125
  59. package/src/data/index_array_type.js +0 -16
  60. package/src/data/load_geometry.js +0 -48
  61. package/src/data/pos_attributes.js +0 -6
  62. package/src/data/program_configuration.js +0 -687
  63. package/src/data/raster_bounds_attributes.js +0 -7
  64. package/src/data/segment.js +0 -76
  65. package/src/geo/edge_insets.js +0 -102
  66. package/src/geo/lng_lat.js +0 -165
  67. package/src/geo/lng_lat_bounds.js +0 -267
  68. package/src/geo/mercator_coordinate.js +0 -153
  69. package/src/geo/transform.js +0 -864
  70. package/src/gl/color_mode.js +0 -34
  71. package/src/gl/context.js +0 -298
  72. package/src/gl/cull_face_mode.js +0 -26
  73. package/src/gl/depth_mode.js +0 -29
  74. package/src/gl/framebuffer.js +0 -44
  75. package/src/gl/index_buffer.js +0 -55
  76. package/src/gl/stencil_mode.js +0 -30
  77. package/src/gl/types.js +0 -84
  78. package/src/gl/value.js +0 -520
  79. package/src/gl/vertex_buffer.js +0 -119
  80. package/src/index.js +0 -201
  81. package/src/render/draw_background.js +0 -57
  82. package/src/render/draw_circle.js +0 -113
  83. package/src/render/draw_collision_debug.js +0 -49
  84. package/src/render/draw_custom.js +0 -49
  85. package/src/render/draw_debug.js +0 -127
  86. package/src/render/draw_fill.js +0 -126
  87. package/src/render/draw_fill_extrusion.js +0 -96
  88. package/src/render/draw_heatmap.js +0 -140
  89. package/src/render/draw_hillshade.js +0 -108
  90. package/src/render/draw_line.js +0 -98
  91. package/src/render/draw_raster.js +0 -125
  92. package/src/render/draw_symbol.js +0 -394
  93. package/src/render/glyph_atlas.js +0 -71
  94. package/src/render/glyph_manager.js +0 -182
  95. package/src/render/image_atlas.js +0 -149
  96. package/src/render/image_manager.js +0 -306
  97. package/src/render/line_atlas.js +0 -210
  98. package/src/render/painter.js +0 -653
  99. package/src/render/program/background_program.js +0 -103
  100. package/src/render/program/circle_program.js +0 -69
  101. package/src/render/program/clipping_mask_program.js +0 -20
  102. package/src/render/program/collision_program.js +0 -49
  103. package/src/render/program/debug_program.js +0 -35
  104. package/src/render/program/fill_extrusion_program.js +0 -122
  105. package/src/render/program/fill_program.js +0 -126
  106. package/src/render/program/heatmap_program.js +0 -83
  107. package/src/render/program/hillshade_program.js +0 -122
  108. package/src/render/program/line_program.js +0 -207
  109. package/src/render/program/pattern.js +0 -102
  110. package/src/render/program/program_uniforms.js +0 -42
  111. package/src/render/program/raster_program.js +0 -92
  112. package/src/render/program/symbol_program.js +0 -224
  113. package/src/render/program.js +0 -168
  114. package/src/render/texture.js +0 -122
  115. package/src/render/uniform_binding.js +0 -147
  116. package/src/render/vertex_array_object.js +0 -163
  117. package/src/shaders/README.md +0 -42
  118. package/src/shaders/_prelude.fragment.glsl +0 -17
  119. package/src/shaders/_prelude.vertex.glsl +0 -73
  120. package/src/shaders/background.fragment.glsl +0 -10
  121. package/src/shaders/background.vertex.glsl +0 -7
  122. package/src/shaders/background_pattern.fragment.glsl +0 -28
  123. package/src/shaders/background_pattern.vertex.glsl +0 -20
  124. package/src/shaders/circle.fragment.glsl +0 -39
  125. package/src/shaders/circle.vertex.glsl +0 -64
  126. package/src/shaders/clipping_mask.fragment.glsl +0 -3
  127. package/src/shaders/clipping_mask.vertex.glsl +0 -7
  128. package/src/shaders/collision_box.fragment.glsl +0 -21
  129. package/src/shaders/collision_box.vertex.glsl +0 -27
  130. package/src/shaders/collision_circle.fragment.glsl +0 -34
  131. package/src/shaders/collision_circle.vertex.glsl +0 -36
  132. package/src/shaders/debug.fragment.glsl +0 -9
  133. package/src/shaders/debug.vertex.glsl +0 -12
  134. package/src/shaders/encode_attribute.js +0 -17
  135. package/src/shaders/fill.fragment.glsl +0 -13
  136. package/src/shaders/fill.vertex.glsl +0 -13
  137. package/src/shaders/fill_extrusion.fragment.glsl +0 -9
  138. package/src/shaders/fill_extrusion.vertex.glsl +0 -66
  139. package/src/shaders/fill_extrusion_pattern.fragment.glsl +0 -45
  140. package/src/shaders/fill_extrusion_pattern.vertex.glsl +0 -79
  141. package/src/shaders/fill_outline.fragment.glsl +0 -17
  142. package/src/shaders/fill_outline.vertex.glsl +0 -17
  143. package/src/shaders/fill_outline_pattern.fragment.glsl +0 -43
  144. package/src/shaders/fill_outline_pattern.vertex.glsl +0 -44
  145. package/src/shaders/fill_pattern.fragment.glsl +0 -36
  146. package/src/shaders/fill_pattern.vertex.glsl +0 -39
  147. package/src/shaders/heatmap.fragment.glsl +0 -22
  148. package/src/shaders/heatmap.vertex.glsl +0 -54
  149. package/src/shaders/heatmap_texture.fragment.glsl +0 -14
  150. package/src/shaders/heatmap_texture.vertex.glsl +0 -11
  151. package/src/shaders/hillshade.fragment.glsl +0 -52
  152. package/src/shaders/hillshade.vertex.glsl +0 -11
  153. package/src/shaders/hillshade_prepare.fragment.glsl +0 -74
  154. package/src/shaders/hillshade_prepare.vertex.glsl +0 -15
  155. package/src/shaders/index.js +0 -20
  156. package/src/shaders/line.fragment.glsl +0 -30
  157. package/src/shaders/line.vertex.glsl +0 -85
  158. package/src/shaders/line_gradient.fragment.glsl +0 -34
  159. package/src/shaders/line_gradient.vertex.glsl +0 -87
  160. package/src/shaders/line_pattern.fragment.glsl +0 -74
  161. package/src/shaders/line_pattern.vertex.glsl +0 -99
  162. package/src/shaders/line_sdf.fragment.glsl +0 -45
  163. package/src/shaders/line_sdf.vertex.glsl +0 -98
  164. package/src/shaders/raster.fragment.glsl +0 -52
  165. package/src/shaders/raster.vertex.glsl +0 -21
  166. package/src/shaders/shaders.js +0 -180
  167. package/src/shaders/symbol_icon.fragment.glsl +0 -17
  168. package/src/shaders/symbol_icon.vertex.glsl +0 -94
  169. package/src/shaders/symbol_sdf.fragment.glsl +0 -52
  170. package/src/shaders/symbol_sdf.vertex.glsl +0 -115
  171. package/src/shaders/symbol_text_and_icon.fragment.glsl +0 -68
  172. package/src/shaders/symbol_text_and_icon.vertex.glsl +0 -116
  173. package/src/source/canvas_source.js +0 -238
  174. package/src/source/geojson_helper.js +0 -92
  175. package/src/source/geojson_source.js +0 -374
  176. package/src/source/geojson_worker_source.js +0 -357
  177. package/src/source/geojson_wrapper.js +0 -94
  178. package/src/source/image_source.js +0 -307
  179. package/src/source/load_tilejson.js +0 -39
  180. package/src/source/mbtiles_source.js +0 -115
  181. package/src/source/offline_database.js +0 -61
  182. package/src/source/offline_database_root.js +0 -62
  183. package/src/source/pixels_to_tile_units.js +0 -21
  184. package/src/source/query_features.js +0 -208
  185. package/src/source/raster_dem_tile_source.js +0 -138
  186. package/src/source/raster_dem_tile_worker_source.js +0 -62
  187. package/src/source/raster_tile_offline_source.js +0 -136
  188. package/src/source/raster_tile_source.js +0 -177
  189. package/src/source/rtl_text_plugin.js +0 -138
  190. package/src/source/source.js +0 -137
  191. package/src/source/source_cache.js +0 -957
  192. package/src/source/source_state.js +0 -159
  193. package/src/source/tile.js +0 -465
  194. package/src/source/tile_bounds.js +0 -38
  195. package/src/source/tile_cache.js +0 -212
  196. package/src/source/tile_id.js +0 -402
  197. package/src/source/vector_tile_source.js +0 -192
  198. package/src/source/vector_tile_worker_source.js +0 -216
  199. package/src/source/video_source.js +0 -203
  200. package/src/source/worker.js +0 -237
  201. package/src/source/worker_source.js +0 -106
  202. package/src/source/worker_tile.js +0 -224
  203. package/src/style/create_style_layer.js +0 -36
  204. package/src/style/evaluation_parameters.js +0 -62
  205. package/src/style/light.js +0 -130
  206. package/src/style/load_glyph_range.js +0 -38
  207. package/src/style/load_sprite.js +0 -67
  208. package/src/style/parse_glyph_pbf.js +0 -44
  209. package/src/style/pauseable_placement.js +0 -132
  210. package/src/style/properties.js +0 -753
  211. package/src/style/query_utils.js +0 -43
  212. package/src/style/style.js +0 -1361
  213. package/src/style/style_glyph.js +0 -17
  214. package/src/style/style_image.js +0 -137
  215. package/src/style/style_layer/background_style_layer.js +0 -21
  216. package/src/style/style_layer/background_style_layer_properties.js +0 -40
  217. package/src/style/style_layer/circle_style_layer.js +0 -98
  218. package/src/style/style_layer/circle_style_layer_properties.js +0 -63
  219. package/src/style/style_layer/custom_style_layer.js +0 -223
  220. package/src/style/style_layer/fill_extrusion_style_layer.js +0 -224
  221. package/src/style/style_layer/fill_extrusion_style_layer_properties.js +0 -50
  222. package/src/style/style_layer/fill_style_layer.js +0 -67
  223. package/src/style/style_layer/fill_style_layer_properties.js +0 -55
  224. package/src/style/style_layer/heatmap_style_layer.js +0 -69
  225. package/src/style/style_layer/heatmap_style_layer_properties.js +0 -44
  226. package/src/style/style_layer/hillshade_style_layer.js +0 -25
  227. package/src/style/style_layer/hillshade_style_layer_properties.js +0 -46
  228. package/src/style/style_layer/layer_properties.js.ejs +0 -69
  229. package/src/style/style_layer/line_style_layer.js +0 -151
  230. package/src/style/style_layer/line_style_layer_properties.js +0 -71
  231. package/src/style/style_layer/raster_style_layer.js +0 -21
  232. package/src/style/style_layer/raster_style_layer_properties.js +0 -50
  233. package/src/style/style_layer/symbol_style_layer.js +0 -190
  234. package/src/style/style_layer/symbol_style_layer_properties.js +0 -153
  235. package/src/style/style_layer/typed_style_layer.js +0 -17
  236. package/src/style/style_layer.js +0 -281
  237. package/src/style/style_layer_index.js +0 -80
  238. package/src/style/validate_style.js +0 -42
  239. package/src/style/zoom_history.js +0 -44
  240. package/src/style-spec/.eslintrc +0 -5
  241. package/src/style-spec/CHANGELOG.md +0 -438
  242. package/src/style-spec/README.md +0 -59
  243. package/src/style-spec/bin/gl-style-composite +0 -9
  244. package/src/style-spec/bin/gl-style-format +0 -22
  245. package/src/style-spec/bin/gl-style-migrate +0 -9
  246. package/src/style-spec/bin/gl-style-validate +0 -50
  247. package/src/style-spec/composite.js +0 -50
  248. package/src/style-spec/declass.js +0 -42
  249. package/src/style-spec/deref.js +0 -52
  250. package/src/style-spec/diff.js +0 -393
  251. package/src/style-spec/dist/.gitkeep +0 -0
  252. package/src/style-spec/empty.js +0 -29
  253. package/src/style-spec/error/parsing_error.js +0 -16
  254. package/src/style-spec/error/validation_error.js +0 -18
  255. package/src/style-spec/expression/compound_expression.js +0 -162
  256. package/src/style-spec/expression/definitions/assertion.js +0 -130
  257. package/src/style-spec/expression/definitions/at.js +0 -70
  258. package/src/style-spec/expression/definitions/case.js +0 -85
  259. package/src/style-spec/expression/definitions/coalesce.js +0 -93
  260. package/src/style-spec/expression/definitions/coercion.js +0 -133
  261. package/src/style-spec/expression/definitions/collator.js +0 -78
  262. package/src/style-spec/expression/definitions/comparison.js +0 -184
  263. package/src/style-spec/expression/definitions/format.js +0 -144
  264. package/src/style-spec/expression/definitions/format_section_override.js +0 -54
  265. package/src/style-spec/expression/definitions/image.js +0 -52
  266. package/src/style-spec/expression/definitions/in.js +0 -92
  267. package/src/style-spec/expression/definitions/index.js +0 -561
  268. package/src/style-spec/expression/definitions/interpolate.js +0 -267
  269. package/src/style-spec/expression/definitions/length.js +0 -61
  270. package/src/style-spec/expression/definitions/let.js +0 -72
  271. package/src/style-spec/expression/definitions/literal.js +0 -77
  272. package/src/style-spec/expression/definitions/match.js +0 -158
  273. package/src/style-spec/expression/definitions/number_format.js +0 -142
  274. package/src/style-spec/expression/definitions/step.js +0 -120
  275. package/src/style-spec/expression/definitions/var.js +0 -46
  276. package/src/style-spec/expression/definitions/within.js +0 -333
  277. package/src/style-spec/expression/evaluation_context.js +0 -59
  278. package/src/style-spec/expression/expression.js +0 -27
  279. package/src/style-spec/expression/index.js +0 -392
  280. package/src/style-spec/expression/is_constant.js +0 -59
  281. package/src/style-spec/expression/parsing_context.js +0 -233
  282. package/src/style-spec/expression/parsing_error.js +0 -13
  283. package/src/style-spec/expression/runtime_error.js +0 -17
  284. package/src/style-spec/expression/scope.js +0 -36
  285. package/src/style-spec/expression/stops.js +0 -39
  286. package/src/style-spec/expression/types/collator.js +0 -61
  287. package/src/style-spec/expression/types/formatted.js +0 -73
  288. package/src/style-spec/expression/types/resolved_image.js +0 -29
  289. package/src/style-spec/expression/types.js +0 -106
  290. package/src/style-spec/expression/values.js +0 -123
  291. package/src/style-spec/feature_filter/README.md +0 -55
  292. package/src/style-spec/feature_filter/convert.js +0 -208
  293. package/src/style-spec/feature_filter/index.js +0 -165
  294. package/src/style-spec/format.js +0 -51
  295. package/src/style-spec/function/convert.js +0 -254
  296. package/src/style-spec/function/index.js +0 -262
  297. package/src/style-spec/group_by_layout.js +0 -75
  298. package/src/style-spec/migrate/expressions.js +0 -39
  299. package/src/style-spec/migrate/v8.js +0 -203
  300. package/src/style-spec/migrate/v9.js +0 -26
  301. package/src/style-spec/migrate.js +0 -36
  302. package/src/style-spec/package.json +0 -41
  303. package/src/style-spec/read_style.js +0 -14
  304. package/src/style-spec/reference/latest.js +0 -3
  305. package/src/style-spec/reference/v8.json +0 -5808
  306. package/src/style-spec/rollup.config.js +0 -45
  307. package/src/style-spec/style-spec.js +0 -122
  308. package/src/style-spec/types.js +0 -438
  309. package/src/style-spec/util/color.js +0 -95
  310. package/src/style-spec/util/color_spaces.js +0 -139
  311. package/src/style-spec/util/deep_equal.js +0 -28
  312. package/src/style-spec/util/extend.js +0 -10
  313. package/src/style-spec/util/get_type.js +0 -17
  314. package/src/style-spec/util/interpolate.js +0 -22
  315. package/src/style-spec/util/properties.js +0 -15
  316. package/src/style-spec/util/ref_properties.js +0 -2
  317. package/src/style-spec/util/result.js +0 -19
  318. package/src/style-spec/util/unbundle_jsonlint.js +0 -24
  319. package/src/style-spec/validate/latest.js +0 -11
  320. package/src/style-spec/validate/validate.js +0 -75
  321. package/src/style-spec/validate/validate_array.js +0 -52
  322. package/src/style-spec/validate/validate_boolean.js +0 -15
  323. package/src/style-spec/validate/validate_color.js +0 -20
  324. package/src/style-spec/validate/validate_constants.js +0 -13
  325. package/src/style-spec/validate/validate_enum.js +0 -21
  326. package/src/style-spec/validate/validate_expression.js +0 -43
  327. package/src/style-spec/validate/validate_filter.js +0 -111
  328. package/src/style-spec/validate/validate_formatted.js +0 -11
  329. package/src/style-spec/validate/validate_function.js +0 -207
  330. package/src/style-spec/validate/validate_glyphs_url.js +0 -21
  331. package/src/style-spec/validate/validate_image.js +0 -11
  332. package/src/style-spec/validate/validate_layer.js +0 -134
  333. package/src/style-spec/validate/validate_layout_property.js +0 -6
  334. package/src/style-spec/validate/validate_light.js +0 -47
  335. package/src/style-spec/validate/validate_number.js +0 -29
  336. package/src/style-spec/validate/validate_object.js +0 -61
  337. package/src/style-spec/validate/validate_paint_property.js +0 -6
  338. package/src/style-spec/validate/validate_property.js +0 -64
  339. package/src/style-spec/validate/validate_source.js +0 -111
  340. package/src/style-spec/validate/validate_string.js +0 -15
  341. package/src/style-spec/validate_mapbox_api_supported.js +0 -171
  342. package/src/style-spec/validate_style.js +0 -39
  343. package/src/style-spec/validate_style.min.js +0 -78
  344. package/src/style-spec/visit.js +0 -77
  345. package/src/symbol/anchor.js +0 -26
  346. package/src/symbol/check_max_angle.js +0 -81
  347. package/src/symbol/clip_line.js +0 -71
  348. package/src/symbol/collision_feature.js +0 -217
  349. package/src/symbol/collision_index.js +0 -372
  350. package/src/symbol/cross_tile_symbol_index.js +0 -301
  351. package/src/symbol/get_anchors.js +0 -167
  352. package/src/symbol/grid_index.js +0 -335
  353. package/src/symbol/mergelines.js +0 -82
  354. package/src/symbol/one_em.js +0 -4
  355. package/src/symbol/opacity_state.js +0 -27
  356. package/src/symbol/placement.js +0 -1062
  357. package/src/symbol/projection.js +0 -450
  358. package/src/symbol/quads.js +0 -334
  359. package/src/symbol/shaping.js +0 -816
  360. package/src/symbol/symbol_layout.js +0 -772
  361. package/src/symbol/symbol_size.js +0 -113
  362. package/src/symbol/transform_text.js +0 -29
  363. package/src/types/callback.js +0 -17
  364. package/src/types/cancelable.js +0 -3
  365. package/src/types/tilejson.js +0 -17
  366. package/src/types/transferable.js +0 -3
  367. package/src/types/window.js +0 -172
  368. package/src/ui/anchor.js +0 -32
  369. package/src/ui/bind_handlers.js +0 -202
  370. package/src/ui/camera.js +0 -1152
  371. package/src/ui/control/attribution_control.js +0 -189
  372. package/src/ui/control/fps_control.js +0 -185
  373. package/src/ui/control/fullscreen_control.js +0 -147
  374. package/src/ui/control/geolocate_control.js +0 -594
  375. package/src/ui/control/logo_control.js +0 -92
  376. package/src/ui/control/navigation_control.js +0 -148
  377. package/src/ui/control/scale_control.js +0 -142
  378. package/src/ui/crs.js +0 -64
  379. package/src/ui/default_locale.js +0 -20
  380. package/src/ui/events.js +0 -806
  381. package/src/ui/handler/box_zoom.js +0 -175
  382. package/src/ui/handler/dblclick_zoom.js +0 -139
  383. package/src/ui/handler/drag_pan.js +0 -416
  384. package/src/ui/handler/drag_rotate.js +0 -378
  385. package/src/ui/handler/keyboard.js +0 -161
  386. package/src/ui/handler/scroll_zoom.js +0 -333
  387. package/src/ui/handler/touch_zoom_rotate.js +0 -293
  388. package/src/ui/hash.js +0 -147
  389. package/src/ui/map.js +0 -2883
  390. package/src/ui/marker.js +0 -607
  391. package/src/ui/offline_map.js +0 -91
  392. package/src/ui/popup.js +0 -530
  393. package/src/util/actor.js +0 -212
  394. package/src/util/ajax.js +0 -371
  395. package/src/util/browser/web_worker.js +0 -10
  396. package/src/util/browser/window.js +0 -5
  397. package/src/util/browser.js +0 -70
  398. package/src/util/classify_rings.js +0 -52
  399. package/src/util/color_ramp.js +0 -28
  400. package/src/util/config.js +0 -30
  401. package/src/util/debug.js +0 -12
  402. package/src/util/dictionary_coder.js +0 -30
  403. package/src/util/dispatcher.js +0 -70
  404. package/src/util/dom.js +0 -144
  405. package/src/util/evented.js +0 -174
  406. package/src/util/find_pole_of_inaccessibility.js +0 -129
  407. package/src/util/global_worker_pool.js +0 -17
  408. package/src/util/image.js +0 -142
  409. package/src/util/intersection_tests.js +0 -208
  410. package/src/util/is_char_in_unicode_block.js +0 -311
  411. package/src/util/mapbox.js +0 -486
  412. package/src/util/offscreen_canvas_supported.js +0 -14
  413. package/src/util/performance.js +0 -112
  414. package/src/util/primitives.js +0 -145
  415. package/src/util/resolve_tokens.js +0 -16
  416. package/src/util/script_detection.js +0 -328
  417. package/src/util/sku_token.js +0 -42
  418. package/src/util/smart_wrap.js +0 -55
  419. package/src/util/struct_array.js +0 -243
  420. package/src/util/struct_array.js.ejs +0 -112
  421. package/src/util/struct_array_layout.js.ejs +0 -98
  422. package/src/util/task_queue.js +0 -68
  423. package/src/util/throttle.js +0 -28
  424. package/src/util/throttled_invoker.js +0 -46
  425. package/src/util/tile_cover.js +0 -101
  426. package/src/util/tile_request_cache.js +0 -172
  427. package/src/util/util.js +0 -504
  428. package/src/util/vectortile_to_geojson.js +0 -54
  429. package/src/util/verticalize_punctuation.js +0 -114
  430. package/src/util/web_worker.js +0 -91
  431. package/src/util/web_worker_transfer.js +0 -266
  432. package/src/util/webp_supported.js +0 -69
  433. package/src/util/window.js +0 -102
  434. package/src/util/worker_pool.js +0 -47
@@ -1,52 +0,0 @@
1
- // @flow
2
-
3
- import quickselect from 'quickselect';
4
-
5
- import {calculateSignedArea} from './util';
6
-
7
- import type Point from '@mapbox/point-geometry';
8
-
9
- // classifies an array of rings into polygons with outer rings and holes
10
- export default function classifyRings(rings: Array<Array<Point>>, maxRings: number) {
11
- const len = rings.length;
12
-
13
- if (len <= 1) return [rings];
14
-
15
- const polygons = [];
16
- let polygon,
17
- ccw;
18
-
19
- for (let i = 0; i < len; i++) {
20
- const area = calculateSignedArea(rings[i]);
21
- if (area === 0) continue;
22
-
23
- (rings[i]: any).area = Math.abs(area);
24
-
25
- if (ccw === undefined) ccw = area < 0;
26
-
27
- if (ccw === area < 0) {
28
- if (polygon) polygons.push(polygon);
29
- polygon = [rings[i]];
30
-
31
- } else {
32
- (polygon: any).push(rings[i]);
33
- }
34
- }
35
- if (polygon) polygons.push(polygon);
36
-
37
- // Earcut performance degrades with the # of rings in a polygon. For this
38
- // reason, we limit strip out all but the `maxRings` largest rings.
39
- if (maxRings > 1) {
40
- for (let j = 0; j < polygons.length; j++) {
41
- if (polygons[j].length <= maxRings) continue;
42
- quickselect(polygons[j], maxRings, 1, polygons[j].length - 1, compareAreas);
43
- polygons[j] = polygons[j].slice(0, maxRings);
44
- }
45
- }
46
-
47
- return polygons;
48
- }
49
-
50
- function compareAreas(a, b) {
51
- return b.area - a.area;
52
- }
@@ -1,28 +0,0 @@
1
- // @flow
2
-
3
- import {RGBAImage} from './image';
4
-
5
- import type {StylePropertyExpression} from '../style-spec/expression/index';
6
-
7
- /**
8
- * Given an expression that should evaluate to a color ramp, return
9
- * a 256x1 px RGBA image representing that ramp expression.
10
- *
11
- * @private
12
- */
13
- export default function renderColorRamp(expression: StylePropertyExpression, colorRampEvaluationParameter: string): RGBAImage {
14
- const colorRampData = new Uint8Array(256 * 4);
15
- const evaluationGlobals = {};
16
- for (let i = 0, j = 0; i < 256; i++, j += 4) {
17
- evaluationGlobals[colorRampEvaluationParameter] = i / 255;
18
- const pxColor = expression.evaluate((evaluationGlobals: any));
19
- // the colors are being unpremultiplied because Color uses
20
- // premultiplied values, and the Texture class expects unpremultiplied ones
21
- colorRampData[j + 0] = Math.floor(pxColor.r * 255 / pxColor.a);
22
- colorRampData[j + 1] = Math.floor(pxColor.g * 255 / pxColor.a);
23
- colorRampData[j + 2] = Math.floor(pxColor.b * 255 / pxColor.a);
24
- colorRampData[j + 3] = Math.floor(pxColor.a * 255);
25
- }
26
-
27
- return new RGBAImage({width: 256, height: 1}, colorRampData);
28
- }
@@ -1,30 +0,0 @@
1
- // @flow strict
2
-
3
- type Config = {|
4
- API_URL: string,
5
- EVENTS_URL: ?string,
6
- FEEDBACK_URL: string,
7
- REQUIRE_ACCESS_TOKEN: boolean,
8
- ACCESS_TOKEN: ?string,
9
- MAX_PARALLEL_IMAGE_REQUESTS: number
10
- |};
11
-
12
- const config: Config = {
13
- API_URL: 'https://api.mapbox.com',
14
- get EVENTS_URL() {
15
- if (!this.API_URL) { return null; }
16
- if (this.API_URL.indexOf('https://api.mapbox.cn') === 0) {
17
- return 'https://events.mapbox.cn/events/v2';
18
- } else if (this.API_URL.indexOf('https://api.mapbox.com') === 0) {
19
- return 'https://events.mapbox.com/events/v2';
20
- } else {
21
- return null;
22
- }
23
- },
24
- FEEDBACK_URL: 'https://apps.mapbox.com/feedback',
25
- REQUIRE_ACCESS_TOKEN: true,
26
- ACCESS_TOKEN: null,
27
- MAX_PARALLEL_IMAGE_REQUESTS: 16
28
- };
29
-
30
- export default config;
package/src/util/debug.js DELETED
@@ -1,12 +0,0 @@
1
- // @flow
2
- import {extend} from './util';
3
-
4
- /**
5
- * This is a private namespace for utility functions that will get automatically stripped
6
- * out in production builds.
7
- */
8
- export const Debug = {
9
- extend(dest: Object, ...sources: Array<?Object>): Object {
10
- return extend(dest, ...sources);
11
- }
12
- };
@@ -1,30 +0,0 @@
1
- // @flow strict
2
-
3
- import assert from 'assert';
4
-
5
- class DictionaryCoder {
6
- _stringToNumber: {[_: string]: number };
7
- _numberToString: Array<string>;
8
-
9
- constructor(strings: Array<string>) {
10
- this._stringToNumber = {};
11
- this._numberToString = [];
12
- for (let i = 0; i < strings.length; i++) {
13
- const string = strings[i];
14
- this._stringToNumber[string] = i;
15
- this._numberToString[i] = string;
16
- }
17
- }
18
-
19
- encode(string: string) {
20
- assert(string in this._stringToNumber);
21
- return this._stringToNumber[string];
22
- }
23
-
24
- decode(n: number) {
25
- assert(n < this._numberToString.length);
26
- return this._numberToString[n];
27
- }
28
- }
29
-
30
- export default DictionaryCoder;
@@ -1,70 +0,0 @@
1
- // @flow
2
-
3
- import {uniqueId, asyncAll} from './util';
4
- import Actor from './actor';
5
- import assert from 'assert';
6
-
7
- import type WorkerPool from './worker_pool';
8
-
9
- /**
10
- * Responsible for sending messages from a {@link Source} to an associated
11
- * {@link WorkerSource}.
12
- *
13
- * @private
14
- */
15
- class Dispatcher {
16
- workerPool: WorkerPool;
17
- actors: Array<Actor>;
18
- currentActor: number;
19
- id: number;
20
-
21
- // exposed to allow stubbing in unit tests
22
- static Actor: Class<Actor>;
23
-
24
- constructor(workerPool: WorkerPool, parent: any) {
25
- this.workerPool = workerPool;
26
- this.actors = [];
27
- this.currentActor = 0;
28
- this.id = uniqueId();
29
- const workers = this.workerPool.acquire(this.id);
30
- for (let i = 0; i < workers.length; i++) {
31
- const worker = workers[i];
32
- const actor = new Dispatcher.Actor(worker, parent, this.id);
33
- actor.name = `Worker ${i}`;
34
- this.actors.push(actor);
35
- }
36
- assert(this.actors.length);
37
- }
38
-
39
- /**
40
- * Broadcast a message to all Workers.
41
- * @private
42
- */
43
- broadcast(type: string, data: mixed, cb?: Function) {
44
- assert(this.actors.length);
45
- cb = cb || function () {};
46
- asyncAll(this.actors, (actor, done) => {
47
- actor.send(type, data, done);
48
- }, cb);
49
- }
50
-
51
- /**
52
- * Acquires an actor to dispatch messages to. The actors are distributed in round-robin fashion.
53
- * @returns An actor object backed by a web worker for processing messages.
54
- */
55
- getActor(): Actor {
56
- assert(this.actors.length);
57
- this.currentActor = (this.currentActor + 1) % this.actors.length;
58
- return this.actors[this.currentActor];
59
- }
60
-
61
- remove() {
62
- this.actors.forEach((actor) => { actor.remove(); });
63
- this.actors = [];
64
- this.workerPool.release(this.id);
65
- }
66
- }
67
-
68
- Dispatcher.Actor = Actor;
69
-
70
- export default Dispatcher;
package/src/util/dom.js DELETED
@@ -1,144 +0,0 @@
1
- // @flow strict
2
-
3
- import Point from '@mapbox/point-geometry';
4
-
5
- import window from './window';
6
- import assert from 'assert';
7
-
8
- const DOM = {};
9
- export default DOM;
10
-
11
- DOM.create = function (tagName: string, className: ?string, container?: HTMLElement) {
12
- const el = window.document.createElement(tagName);
13
- if (className !== undefined) el.className = className;
14
- if (container) container.appendChild(el);
15
- return el;
16
- };
17
-
18
- DOM.createNS = function (namespaceURI: string, tagName: string) {
19
- const el = window.document.createElementNS(namespaceURI, tagName);
20
- return el;
21
- };
22
-
23
- const docStyle = window.document.documentElement.style;
24
-
25
- function testProp(props) {
26
- if (!docStyle) return props[0];
27
- for (let i = 0; i < props.length; i++) {
28
- if (props[i] in docStyle) {
29
- return props[i];
30
- }
31
- }
32
- return props[0];
33
- }
34
-
35
- const selectProp = testProp(['userSelect', 'MozUserSelect', 'WebkitUserSelect', 'msUserSelect']);
36
- let userSelect;
37
-
38
- DOM.disableDrag = function () {
39
- if (docStyle && selectProp) {
40
- userSelect = docStyle[selectProp];
41
- docStyle[selectProp] = 'none';
42
- }
43
- };
44
-
45
- DOM.enableDrag = function () {
46
- if (docStyle && selectProp) {
47
- docStyle[selectProp] = userSelect;
48
- }
49
- };
50
-
51
- const transformProp = testProp(['transform', 'WebkitTransform']);
52
-
53
- DOM.setTransform = function(el: HTMLElement, value: string) {
54
- // https://github.com/facebook/flow/issues/7754
55
- // $FlowFixMe
56
- el.style[transformProp] = value;
57
- };
58
-
59
- // Feature detection for {passive: false} support in add/removeEventListener.
60
- let passiveSupported = false;
61
-
62
- try {
63
- // https://github.com/facebook/flow/issues/285
64
- // $FlowFixMe
65
- const options = Object.defineProperty({}, "passive", {
66
- get() { // eslint-disable-line
67
- passiveSupported = true;
68
- }
69
- });
70
- window.addEventListener("test", options, options);
71
- window.removeEventListener("test", options, options);
72
- } catch (err) {
73
- passiveSupported = false;
74
- }
75
-
76
- DOM.addEventListener = function(target: *, type: *, callback: *, options: {passive?: boolean, capture?: boolean} = {}) {
77
- if ('passive' in options && passiveSupported) {
78
- target.addEventListener(type, callback, options);
79
- } else {
80
- target.addEventListener(type, callback, options.capture);
81
- }
82
- };
83
-
84
- DOM.removeEventListener = function(target: *, type: *, callback: *, options: {passive?: boolean, capture?: boolean} = {}) {
85
- if ('passive' in options && passiveSupported) {
86
- target.removeEventListener(type, callback, options);
87
- } else {
88
- target.removeEventListener(type, callback, options.capture);
89
- }
90
- };
91
-
92
- // Suppress the next click, but only if it's immediate.
93
- const suppressClick: MouseEventListener = function (e) {
94
- e.preventDefault();
95
- e.stopPropagation();
96
- window.removeEventListener('click', suppressClick, true);
97
- };
98
-
99
- DOM.suppressClick = function() {
100
- window.addEventListener('click', suppressClick, true);
101
- window.setTimeout(() => {
102
- window.removeEventListener('click', suppressClick, true);
103
- }, 0);
104
- };
105
-
106
- DOM.mousePos = function (el: HTMLElement, e: MouseEvent | window.TouchEvent | Touch) {
107
- const rect = el.getBoundingClientRect();
108
- const t = window.TouchEvent && (e instanceof window.TouchEvent) ? e.touches[0] : e;
109
- return new Point(
110
- t.clientX - rect.left - el.clientLeft,
111
- t.clientY - rect.top - el.clientTop
112
- );
113
- };
114
-
115
- DOM.touchPos = function (el: HTMLElement, e: TouchEvent) {
116
- const rect = el.getBoundingClientRect(),
117
- points = [];
118
- const touches = (e.type === 'touchend') ? e.changedTouches : e.touches;
119
- for (let i = 0; i < touches.length; i++) {
120
- points.push(new Point(
121
- touches[i].clientX - rect.left - el.clientLeft,
122
- touches[i].clientY - rect.top - el.clientTop
123
- ));
124
- }
125
- return points;
126
- };
127
-
128
- DOM.mouseButton = function (e: MouseEvent) {
129
- assert(e.type === 'mousedown' || e.type === 'mouseup');
130
- if (typeof window.InstallTrigger !== 'undefined' && e.button === 2 && e.ctrlKey &&
131
- window.navigator.platform.toUpperCase().indexOf('MAC') >= 0) {
132
- // Fix for https://github.com/mapbox/mapbox-gl-js/issues/3131:
133
- // Firefox (detected by InstallTrigger) on Mac determines e.button = 2 when
134
- // using Control + left click
135
- return 0;
136
- }
137
- return e.button;
138
- };
139
-
140
- DOM.remove = function(node: HTMLElement) {
141
- if (node.parentNode) {
142
- node.parentNode.removeChild(node);
143
- }
144
- };
@@ -1,174 +0,0 @@
1
- // @flow
2
-
3
- import {extend} from './util';
4
-
5
- type Listener = (Object) => any;
6
- type Listeners = {[_: string]: Array<Listener> };
7
-
8
- function _addEventListener(type: string, listener: Listener, listenerList: Listeners) {
9
- const listenerExists = listenerList[type] && listenerList[type].indexOf(listener) !== -1;
10
- if (!listenerExists) {
11
- listenerList[type] = listenerList[type] || [];
12
- listenerList[type].push(listener);
13
- }
14
- }
15
-
16
- function _removeEventListener(type: string, listener: Listener, listenerList: Listeners) {
17
- if (listenerList && listenerList[type]) {
18
- const index = listenerList[type].indexOf(listener);
19
- if (index !== -1) {
20
- listenerList[type].splice(index, 1);
21
- }
22
- }
23
- }
24
-
25
- export class Event {
26
- +type: string;
27
-
28
- constructor(type: string, data: Object = {}) {
29
- extend(this, data);
30
- this.type = type;
31
- }
32
- }
33
-
34
- interface ErrorLike {
35
- message: string;
36
- }
37
-
38
- export class ErrorEvent extends Event {
39
- error: ErrorLike;
40
-
41
- constructor(error: ErrorLike, data: Object = {}) {
42
- super('error', extend({error}, data));
43
- }
44
- }
45
-
46
- /**
47
- * Methods mixed in to other classes for event capabilities.
48
- *
49
- * @mixin Evented
50
- */
51
- export class Evented {
52
- _listeners: Listeners;
53
- _oneTimeListeners: Listeners;
54
- _eventedParent: ?Evented;
55
- _eventedParentData: ?(Object | () => Object);
56
-
57
- /**
58
- * Adds a listener to a specified event type.
59
- *
60
- * @param {string} type The event type to add a listen for.
61
- * @param {Function} listener The function to be called when the event is fired.
62
- * The listener function is called with the data object passed to `fire`,
63
- * extended with `target` and `type` properties.
64
- * @returns {Object} `this`
65
- */
66
- on(type: *, listener: Listener): this {
67
- this._listeners = this._listeners || {};
68
- _addEventListener(type, listener, this._listeners);
69
-
70
- return this;
71
- }
72
-
73
- /**
74
- * Removes a previously registered event listener.
75
- *
76
- * @param {string} type The event type to remove listeners for.
77
- * @param {Function} listener The listener function to remove.
78
- * @returns {Object} `this`
79
- */
80
- off(type: *, listener: Listener) {
81
- _removeEventListener(type, listener, this._listeners);
82
- _removeEventListener(type, listener, this._oneTimeListeners);
83
-
84
- return this;
85
- }
86
-
87
- /**
88
- * Adds a listener that will be called only once to a specified event type.
89
- *
90
- * The listener will be called first time the event fires after the listener is registered.
91
- *
92
- * @param {string} type The event type to listen for.
93
- * @param {Function} listener The function to be called when the event is fired the first time.
94
- * @returns {Object} `this`
95
- */
96
- once(type: *, listener: Listener) {
97
- this._oneTimeListeners = this._oneTimeListeners || {};
98
- _addEventListener(type, listener, this._oneTimeListeners);
99
-
100
- return this;
101
- }
102
-
103
- fire(event: Event, properties?: Object) {
104
- // Compatibility with (type: string, properties: Object) signature from previous versions.
105
- // See https://github.com/mapbox/mapbox-gl-js/issues/6522,
106
- // https://github.com/mapbox/mapbox-gl-draw/issues/766
107
- if (typeof event === 'string') {
108
- event = new Event(event, properties || {});
109
- }
110
-
111
- const type = event.type;
112
-
113
- if (this.listens(type)) {
114
- (event: any).target = this;
115
-
116
- // make sure adding or removing listeners inside other listeners won't cause an infinite loop
117
- const listeners = this._listeners && this._listeners[type] ? this._listeners[type].slice() : [];
118
- for (const listener of listeners) {
119
- listener.call(this, event);
120
- }
121
-
122
- const oneTimeListeners = this._oneTimeListeners && this._oneTimeListeners[type] ? this._oneTimeListeners[type].slice() : [];
123
- for (const listener of oneTimeListeners) {
124
- _removeEventListener(type, listener, this._oneTimeListeners);
125
- listener.call(this, event);
126
- }
127
-
128
- const parent = this._eventedParent;
129
- if (parent) {
130
- extend(
131
- event,
132
- typeof this._eventedParentData === 'function' ? this._eventedParentData() : this._eventedParentData
133
- );
134
- parent.fire(event);
135
- }
136
-
137
- // To ensure that no error events are dropped, print them to the
138
- // console if they have no listeners.
139
- } else if (event instanceof ErrorEvent) {
140
- console.error(event.error);
141
- }
142
-
143
- return this;
144
- }
145
-
146
- /**
147
- * Returns a true if this instance of Evented or any forwardeed instances of Evented have a listener for the specified type.
148
- *
149
- * @param {string} type The event type
150
- * @returns {boolean} `true` if there is at least one registered listener for specified event type, `false` otherwise
151
- * @private
152
- */
153
- listens(type: string) {
154
- return (
155
- (this._listeners && this._listeners[type] && this._listeners[type].length > 0) ||
156
- (this._oneTimeListeners && this._oneTimeListeners[type] && this._oneTimeListeners[type].length > 0) ||
157
- (this._eventedParent && this._eventedParent.listens(type))
158
- );
159
- }
160
-
161
- /**
162
- * Bubble all events fired by this instance of Evented to this parent instance of Evented.
163
- *
164
- * @private
165
- * @returns {Object} `this`
166
- * @private
167
- */
168
- setEventedParent(parent: ?Evented, data?: Object | () => Object) {
169
- this._eventedParent = parent;
170
- this._eventedParentData = data;
171
-
172
- return this;
173
- }
174
- }
@@ -1,129 +0,0 @@
1
- // @flow
2
-
3
- import Queue from 'tinyqueue';
4
-
5
- import Point from '@mapbox/point-geometry';
6
- import {distToSegmentSquared} from './intersection_tests';
7
-
8
- /**
9
- * Finds an approximation of a polygon's Pole Of Inaccessibiliy https://en.wikipedia.org/wiki/Pole_of_inaccessibility
10
- * This is a copy of http://github.com/mapbox/polylabel adapted to use Points
11
- *
12
- * @param polygonRings first item in array is the outer ring followed optionally by the list of holes, should be an element of the result of util/classify_rings
13
- * @param precision Specified in input coordinate units. If 0 returns after first run, if > 0 repeatedly narrows the search space until the radius of the area searched for the best pole is less than precision
14
- * @param debug Print some statistics to the console during execution
15
- * @returns Pole of Inaccessibiliy.
16
- * @private
17
- */
18
- export default function (polygonRings: Array<Array<Point>>, precision?: number = 1, debug?: boolean = false): Point {
19
- // find the bounding box of the outer ring
20
- let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;
21
- const outerRing = polygonRings[0];
22
- for (let i = 0; i < outerRing.length; i++) {
23
- const p = outerRing[i];
24
- if (!i || p.x < minX) minX = p.x;
25
- if (!i || p.y < minY) minY = p.y;
26
- if (!i || p.x > maxX) maxX = p.x;
27
- if (!i || p.y > maxY) maxY = p.y;
28
- }
29
-
30
- const width = maxX - minX;
31
- const height = maxY - minY;
32
- const cellSize = Math.min(width, height);
33
- let h = cellSize / 2;
34
-
35
- // a priority queue of cells in order of their "potential" (max distance to polygon)
36
- const cellQueue = new Queue([], compareMax);
37
-
38
- if (cellSize === 0) return new Point(minX, minY);
39
-
40
- // cover polygon with initial cells
41
- for (let x = minX; x < maxX; x += cellSize) {
42
- for (let y = minY; y < maxY; y += cellSize) {
43
- cellQueue.push(new Cell(x + h, y + h, h, polygonRings));
44
- }
45
- }
46
-
47
- // take centroid as the first best guess
48
- let bestCell = getCentroidCell(polygonRings);
49
- let numProbes = cellQueue.length;
50
-
51
- while (cellQueue.length) {
52
- // pick the most promising cell from the queue
53
- const cell = cellQueue.pop();
54
-
55
- // update the best cell if we found a better one
56
- if (cell.d > bestCell.d || !bestCell.d) {
57
- bestCell = cell;
58
- if (debug) console.log('found best %d after %d probes', Math.round(1e4 * cell.d) / 1e4, numProbes);
59
- }
60
-
61
- // do not drill down further if there's no chance of a better solution
62
- if (cell.max - bestCell.d <= precision) continue;
63
-
64
- // split the cell into four cells
65
- h = cell.h / 2;
66
- cellQueue.push(new Cell(cell.p.x - h, cell.p.y - h, h, polygonRings));
67
- cellQueue.push(new Cell(cell.p.x + h, cell.p.y - h, h, polygonRings));
68
- cellQueue.push(new Cell(cell.p.x - h, cell.p.y + h, h, polygonRings));
69
- cellQueue.push(new Cell(cell.p.x + h, cell.p.y + h, h, polygonRings));
70
- numProbes += 4;
71
- }
72
-
73
- if (debug) {
74
- console.log(`num probes: ${numProbes}`);
75
- console.log(`best distance: ${bestCell.d}`);
76
- }
77
-
78
- return bestCell.p;
79
- }
80
-
81
- function compareMax(a, b) {
82
- return b.max - a.max;
83
- }
84
-
85
- function Cell(x, y, h, polygon) {
86
- this.p = new Point(x, y);
87
- this.h = h; // half the cell size
88
- this.d = pointToPolygonDist(this.p, polygon); // distance from cell center to polygon
89
- this.max = this.d + this.h * Math.SQRT2; // max distance to polygon within a cell
90
- }
91
-
92
- // signed distance from point to polygon outline (negative if point is outside)
93
- function pointToPolygonDist(p, polygon) {
94
- let inside = false;
95
- let minDistSq = Infinity;
96
-
97
- for (let k = 0; k < polygon.length; k++) {
98
- const ring = polygon[k];
99
-
100
- for (let i = 0, len = ring.length, j = len - 1; i < len; j = i++) {
101
- const a = ring[i];
102
- const b = ring[j];
103
-
104
- if ((a.y > p.y !== b.y > p.y) &&
105
- (p.x < (b.x - a.x) * (p.y - a.y) / (b.y - a.y) + a.x)) inside = !inside;
106
-
107
- minDistSq = Math.min(minDistSq, distToSegmentSquared(p, a, b));
108
- }
109
- }
110
-
111
- return (inside ? 1 : -1) * Math.sqrt(minDistSq);
112
- }
113
-
114
- // get polygon centroid
115
- function getCentroidCell(polygon) {
116
- let area = 0;
117
- let x = 0;
118
- let y = 0;
119
- const points = polygon[0];
120
- for (let i = 0, len = points.length, j = len - 1; i < len; j = i++) {
121
- const a = points[i];
122
- const b = points[j];
123
- const f = a.x * b.y - b.x * a.y;
124
- x += (a.x + b.x) * f;
125
- y += (a.y + b.y) * f;
126
- area += f * 3;
127
- }
128
- return new Cell(x / area, y / area, 0, polygon);
129
- }
@@ -1,17 +0,0 @@
1
- // @flow
2
-
3
- import WorkerPool from './worker_pool';
4
-
5
- let globalWorkerPool;
6
-
7
- /**
8
- * Creates (if necessary) and returns the single, global WorkerPool instance
9
- * to be shared across each Map
10
- * @private
11
- */
12
- export default function getGlobalWorkerPool () {
13
- if (!globalWorkerPool) {
14
- globalWorkerPool = new WorkerPool();
15
- }
16
- return globalWorkerPool;
17
- }