@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,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
- }