maplibre-gl 2.0.0 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/build/generate-struct-arrays.ts +4 -4
  2. package/build/post-ts-build.js +1 -0
  3. package/build/release-notes.js +7 -32
  4. package/dist/maplibre-gl.d.ts +69 -195
  5. package/dist/maplibre-gl.js +4 -4
  6. package/dist/maplibre-gl.js.map +1 -1
  7. package/package.json +16 -15
  8. package/src/data/array_types.ts +21 -21
  9. package/src/data/bucket/circle_bucket.ts +1 -1
  10. package/src/data/bucket/fill_bucket.test.ts +2 -2
  11. package/src/data/bucket/fill_bucket.ts +1 -1
  12. package/src/data/bucket/fill_extrusion_bucket.ts +1 -1
  13. package/src/data/bucket/line_bucket.test.ts +2 -2
  14. package/src/data/bucket/line_bucket.ts +1 -1
  15. package/src/data/bucket/symbol_bucket.ts +1 -1
  16. package/src/data/bucket.ts +1 -1
  17. package/src/data/evaluation_feature.ts +1 -1
  18. package/src/data/feature_index.ts +3 -3
  19. package/src/data/load_geometry.ts +1 -1
  20. package/src/geo/edge_insets.ts +1 -1
  21. package/src/geo/transform.test.ts +1 -1
  22. package/src/geo/transform.ts +1 -1
  23. package/src/index.ts +5 -9
  24. package/src/render/draw_symbol.ts +1 -1
  25. package/src/source/geojson_source.test.ts +27 -0
  26. package/src/source/geojson_source.ts +1 -3
  27. package/src/source/geojson_wrapper.ts +1 -1
  28. package/src/source/query_features.test.ts +1 -1
  29. package/src/source/query_features.ts +1 -1
  30. package/src/source/source.ts +2 -2
  31. package/src/source/source_cache.test.ts +3 -3
  32. package/src/source/source_cache.ts +1 -1
  33. package/src/source/tile.ts +1 -1
  34. package/src/source/tile_id.ts +1 -1
  35. package/src/source/vector_tile_worker_source.test.ts +306 -0
  36. package/src/source/worker_tile.test.ts +2 -1
  37. package/src/style/query_utils.ts +1 -1
  38. package/src/style/style.ts +1 -1
  39. package/src/style/style_layer/circle_style_layer.ts +1 -1
  40. package/src/style/style_layer/fill_extrusion_style_layer.ts +1 -1
  41. package/src/style/style_layer/fill_style_layer.ts +1 -1
  42. package/src/style/style_layer/line_style_layer.ts +1 -1
  43. package/src/style/style_layer.ts +13 -16
  44. package/src/style-spec/expression/index.ts +1 -1
  45. package/src/style-spec/feature_filter/feature_filter.test.ts +1 -1
  46. package/src/style-spec/migrate.test.ts +112 -0
  47. package/src/style-spec/style-spec.ts +0 -3
  48. package/src/style-spec/validate_spec.test.ts +29 -0
  49. package/src/symbol/anchor.ts +1 -1
  50. package/src/symbol/check_max_angle.test.ts +1 -1
  51. package/src/symbol/check_max_angle.ts +1 -1
  52. package/src/symbol/clip_line.test.ts +1 -1
  53. package/src/symbol/clip_line.ts +1 -1
  54. package/src/symbol/collision_feature.test.ts +1 -1
  55. package/src/symbol/collision_feature.ts +1 -1
  56. package/src/symbol/collision_index.ts +1 -1
  57. package/src/symbol/get_anchors.test.ts +1 -1
  58. package/src/symbol/get_anchors.ts +1 -1
  59. package/src/symbol/mergelines.test.ts +1 -1
  60. package/src/symbol/path_interpolator.test.ts +1 -1
  61. package/src/symbol/path_interpolator.ts +1 -1
  62. package/src/symbol/placement.ts +1 -1
  63. package/src/symbol/projection.ts +1 -1
  64. package/src/symbol/quads.ts +1 -1
  65. package/src/symbol/symbol_layout.ts +1 -1
  66. package/src/ui/camera.test.ts +0 -8
  67. package/src/ui/camera.ts +5 -3
  68. package/src/ui/control/navigation_control.ts +1 -1
  69. package/src/ui/events.ts +1 -1
  70. package/src/ui/handler/box_zoom.ts +1 -1
  71. package/src/ui/handler/click_zoom.ts +1 -1
  72. package/src/ui/handler/handler_util.ts +1 -1
  73. package/src/ui/handler/map_event.ts +1 -1
  74. package/src/ui/handler/mouse.ts +1 -1
  75. package/src/ui/handler/scroll_zoom.ts +1 -1
  76. package/src/ui/handler/tap_drag_zoom.ts +1 -1
  77. package/src/ui/handler/tap_recognizer.ts +1 -1
  78. package/src/ui/handler/tap_zoom.ts +1 -1
  79. package/src/ui/handler/touch_pan.ts +1 -1
  80. package/src/ui/handler/touch_zoom_rotate.ts +1 -1
  81. package/src/ui/handler_inertia.ts +1 -1
  82. package/src/ui/handler_manager.ts +1 -1
  83. package/src/ui/map.ts +2 -2
  84. package/src/ui/marker.test.ts +1 -1
  85. package/src/ui/marker.ts +2 -1
  86. package/src/ui/popup.test.ts +1 -1
  87. package/src/ui/popup.ts +2 -2
  88. package/src/util/classify_rings.test.ts +1 -1
  89. package/src/util/classify_rings.ts +1 -1
  90. package/src/util/dom.ts +1 -1
  91. package/src/util/find_pole_of_inaccessibility.test.ts +1 -1
  92. package/src/util/find_pole_of_inaccessibility.ts +1 -1
  93. package/src/util/intersection_tests.ts +1 -1
  94. package/src/util/smart_wrap.ts +1 -1
  95. package/src/util/transferable_grid_index.test.ts +56 -0
  96. package/src/util/transferable_grid_index.ts +216 -0
  97. package/src/util/util.test.ts +1 -1
  98. package/src/util/util.ts +1 -1
  99. package/src/util/web_worker_transfer.ts +1 -17
  100. package/CHANGELOG.md +0 -2572
  101. package/src/types/non-typed-modules.d.ts +0 -47
  102. package/src/util/point.ts +0 -349
package/CHANGELOG.md DELETED
@@ -1,2572 +0,0 @@
1
- ## main
2
-
3
- ### Features and improvements
4
-
5
- - *...Add new stuff here...*
6
-
7
- ### 🐞 Bug fixes
8
-
9
- - *...Add new stuff here...*
10
-
11
- ## 2.0.0
12
-
13
- ### Features and improvements
14
-
15
- - Migrated the production code to typescript
16
- - ** Breaking Change ** removed `version` from the public API
17
- - ** Breaking Change ** stopped supporting IE (internet explorer)
18
- - ** Breaking Change ** removed all code related to `accessToken` and Mapbox specific urls starting with `mapbox://`. Telemetry and tracking code was removed.
19
- - ** Breaking Change ** removed `baseApiUrl` as it was used only for Mapbox related urls
20
- - ** Breaking Change ** typescript typings have changed:
21
- - `Style` => `StyleSpecification`
22
- - `AnyLayer` => `LayerSpecification`
23
- - `AnySourceData` => `SourceSpecification`
24
- - `MapboxEvent` => `MapLibreEvent`
25
- - `MapboxOptions` => `MapOptions`
26
- - `MapBoxZoomEvent` => `MapLibreZoomEvent`
27
- - `*SourceRaw` + `*SourceOptions` => `*SourceSpecification`
28
- - `*Source` (source implementation definition) were removed
29
- - `*Layer` => `*LayerSpecification`
30
- - `*Paint` => `*LayerSpecification['paint']`
31
- - `*Layout` => `*LayerSpecification['layout']`
32
- - `MapboxGeoJSONFeature` => `GeoJSONFeature`
33
- - Added `redraw` function to map (#206)
34
- - Improve attribution controls accessibility. See [#359](https://github.com/maplibre/maplibre-gl-js/issues/359)
35
- - Allow maxPitch value up to 85, use values greater than 60 at your own risk (#574)
36
- - `getImage` uses createImageBitmap when supported (#650)
37
-
38
- ### 🐞 Bug fixes
39
-
40
- - Fix warning due to strict comparison of SDF property in image sprite (#303)
41
- - Fix tile placeholder replacement to allow for placeholders to be in a URL more than once. (#348)
42
- - Fix type check for non dom environment. (#334)
43
- - Fix precision problem in patterns when overzoomed in OpenGL ES devices.
44
- - Fix padding-top of the popup to improve readability of popup text (#354).
45
- - Fix GeoJSONSource#loaded sometimes returning true while there are still pending loads (#669)
46
- - Fix MapDataEvent#isSourceLoaded being true in GeoJSONSource "dataloading" event handlers (#694)
47
- - Fix events being fired after Map#remove has been called when the WebGL context is lost and restored (#726)
48
- - Fix nested expressions types definition [#757](https://github.com/maplibre/maplibre-gl-js/pull/757)
49
-
50
- ## 1.15.2
51
-
52
- ### 🐞 Bug fixes
53
- - Fix breaking changes introduced in v1.15.0 by adoption dual naming scheme for CSS class names
54
-
55
- ## 1.15.1
56
-
57
- ### 🐞 Bug fixes
58
-
59
- - Add void return for some method declaration to match TS strict mode (#194)
60
- - Fix css leftovers (#83)
61
-
62
- ## 1.15.0
63
-
64
- ### Features and improvements
65
-
66
- - ** Breaking Change: ** Rename css classes (#83)
67
- - Added custom protocol support to allow overriding ajax calls (#29)
68
- - Added setTransformRequest to map (#159)
69
- - Publish @maplibre/maplibre-gl-style-spec v14.0.0 on NPM (#149)
70
- - Replace link to mapbox on LogoControl by link to maplibre (#151)
71
- - Migrate style spec files from mapbox to maplibre (#147)
72
- - Publish the MapLibre style spec in NPM (#140)
73
- - Replace mapboxgl with maplibregl in JSDocs inline examples (#134)
74
- - Bring in typescript definitions file (#24)
75
- - Update example links to https://maplibre.org/maplibre-gl-js-docs/ (#131)
76
- - Improve performance of layers with constant `*-sort-key` (#78)
77
-
78
- ### 🐞 Bug fixes
79
-
80
- - Prevented attribution button from submiting form (#178)
81
-
82
- ## 1.14.0
83
-
84
- ### Features and improvements
85
-
86
- - Rebranded to MapLibre
87
- - New logo
88
-
89
- ### 🐞 Bug fixes
90
-
91
- - Rename SVGs mapboxgl-ctrl-*.svg to maplibregl (#85)
92
- - fix ImageSource not working in FF/Safari (#87)
93
- - Update HTML debug files to use MapLibre in titles (#84)
94
- - fix CI checksize job to use maplibre name (#86)
95
- - Move output files from mapbox.* to maplibre.* (#75)
96
- - Remove mapbox specifics and branding from .github (#64)
97
- - Fix a bug where mapbox-gl-js is no longer licensed as open source, but we owe immeasurable gratitude to Mapbox for releasing all their initial code to the community under BSD-3 license.
98
-
99
- ## 1.13.0
100
-
101
- ### ✨ Features and improvements
102
-
103
- - Improve accessibility by fixing issues reported by WCAG 2.1. [#9991](https://github.com/mapbox/mapbox-gl-js/pull/9991)
104
- - Improve accessibility when opening a popup by immediately focusing on the content. [#9774](https://github.com/mapbox/mapbox-gl-js/pull/9774) (h/t @watofundefined)
105
- - Improve rendering performance of symbols with `symbol-sort-key`. [#9751](https://github.com/mapbox/mapbox-gl-js/pull/9751) (h/t @osvodef)
106
- - Add `Marker` `clickTolerance` option. [#9640](https://github.com/mapbox/mapbox-gl-js/pull/9640) (h/t @ChristopherChudzicki)
107
- - Add `Map` `hasControl` method. [#10035](https://github.com/mapbox/mapbox-gl-js/pull/10035)
108
- - Add `Popup` `setOffset` method. [#9946](https://github.com/mapbox/mapbox-gl-js/pull/9946) (h/t @jutaz)
109
- - Add `KeyboardHandler` `disableRotation` and `enableRotation` methods. [#10072](https://github.com/mapbox/mapbox-gl-js/pull/10072) (h/t @jmbott)
110
-
111
- ### 🐞 Bug fixes
112
-
113
- - Fix a bug where `queryRenderedFeatures` didn't properly expose the paint values if they were data-driven. [#10074](https://github.com/mapbox/mapbox-gl-js/pull/10074) (h/t @osvodef)
114
- - Fix a bug where attribution didn't update when layer visibility changed during zooming. [#9943](https://github.com/mapbox/mapbox-gl-js/pull/9943)
115
- - Fix a bug where hash control conflicted with external history manipulation (e.g. in single-page apps). [#9960](https://github.com/mapbox/mapbox-gl-js/pull/9960) (h/t @raegen)
116
- - Fix a bug where `fitBounds` had an unexpected result with non-zero bearing and uneven padding. [#9821](https://github.com/mapbox/mapbox-gl-js/pull/9821) (h/t @allison-strandberg)
117
- - Fix HTTP support when running GL JS against [Mapbox Atlas](https://www.mapbox.com/atlas). [#10090](https://github.com/mapbox/mapbox-gl-js/pull/10090)
118
- - Fix a bug where the `within` expression didn't work in `querySourceFeatures`. [#9933](https://github.com/mapbox/mapbox-gl-js/pull/9933)
119
- - Fix a bug where `Popup` content HTML element was removed on `setDOMContent`. [#10036](https://github.com/mapbox/mapbox-gl-js/pull/10036)
120
- - Fix a compatibility bug when `icon-image` is used as a legacy categorical function. [#10060](https://github.com/mapbox/mapbox-gl-js/pull/10060)
121
- - Reduce rapid memory growth in Safari by ensuring `Image` dataURI's are released. [#10118](https://github.com/mapbox/mapbox-gl-js/pull/10118)
122
-
123
- ### ⚠️ Note on IE11
124
-
125
- We intend to remove support for Internet Explorer 11 in a future release of GL JS later this year.
126
-
127
- ## 1.12.0
128
-
129
- ### ✨ Features and improvements
130
-
131
- * Add methods for changing a vector tile source dynamically (e.g. `setTiles`, `setUrl`). [#8048](https://github.com/mapbox/mapbox-gl-js/pull/8048) (h/t [@stepankuzmin](https://github.com/stepankuzmin))
132
- * Add a `filter` option for GeoJSON sources to filter out features prior to processing (e.g. before clustering). [#9864](https://github.com/mapbox/mapbox-gl-js/pull/9864)
133
- * Vastly increase precision of `line-gradient` for long lines. [#9694](https://github.com/mapbox/mapbox-gl-js/pull/9694)
134
- * Improve `raster-dem` sources to properly support the `maxzoom` option and overzooming. [#9789](https://github.com/mapbox/mapbox-gl-js/pull/9789) (h/t [@brendan-ward](@brendanhttps://github.com/ward))
135
-
136
- ### 🐞 Bug fixes
137
-
138
- * Fix a bug where bearing snap interfered with `easeTo` and `flyTo` animations, freezing the map. [#9884](https://github.com/mapbox/mapbox-gl-js/pull/9884) (h/t [@andycalder](https://github.com/andycalder))
139
- * Fix a bug where a fallback image was not used if it was added via `addImage`. [#9911](https://github.com/mapbox/mapbox-gl-js/pull/9911) (h/t [@francois2metz](https://github.com/francois2metz))
140
- * Fix a bug where `promoteId` option failed for fill extrusions with defined feature ids. [#9863](https://github.com/mapbox/mapbox-gl-js/pull/9863)
141
-
142
- ### 🛠️ Workflow
143
-
144
- * Renamed the default development branch from `master` to `main`.
145
-
146
- ## 1.11.1
147
-
148
- ### 🐞 Bug fixes
149
- * Fix a bug that caused `map.loaded()` to incorrectly return `false` after a click event. ([#9825](https://github.com/mapbox/mapbox-gl-js/pull/9825))
150
-
151
- ## 1.11.0
152
-
153
- ### ✨ Features and improvements
154
- * Add an option to scale the default `Marker` icon.([#9414](https://github.com/mapbox/mapbox-gl-js/pull/9414)) (h/t [adrianababakanian](https://github.com/adrianababakanian))
155
- * Improving the shader compilation speed by manually getting the run-time attributes and uniforms.([#9497](https://github.com/mapbox/mapbox-gl-js/pull/9497))
156
- * Added `clusterMinPoints` option for clustered GeoJSON sources that defines the minimum number of points to form a cluster.([#9748](https://github.com/mapbox/mapbox-gl-js/pull/9748))
157
-
158
- ### 🐞 Bug fixes
159
- * Fix a bug where map got stuck in a DragRotate interaction if it's mouseup occurred outside of the browser window or iframe.([#9512](https://github.com/mapbox/mapbox-gl-js/pull/9512))
160
- * Fix potential visual regression for `*-pattern` properties on AMD graphics card vendor.([#9681](https://github.com/mapbox/mapbox-gl-js/pull/9681))
161
- * Fix zooming with a double tap on iOS Safari 13.([#9757](https://github.com/mapbox/mapbox-gl-js/pull/9757))
162
- * Removed a misleading `geometry exceeds allowed extent` warning when using Mapbox Streets vector tiles.([#9753](https://github.com/mapbox/mapbox-gl-js/pull/9753))
163
- * Fix reference error when requiring the browser bundle in Node. ([#9749](https://github.com/mapbox/mapbox-gl-js/pull/9749))
164
-
165
- ## 1.10.2
166
-
167
- ### 🐞 Bug fixes
168
- * Fix zooming with a double tap in iOS Safari 13.([#9757](https://github.com/mapbox/mapbox-gl-js/pull/9757))
169
-
170
- ## 1.10.1
171
-
172
- ### 🐞 Bug fixes
173
- * Fix markers interrupting touch gestures ([#9675](https://github.com/mapbox/mapbox-gl-js/issues/9675), fixed by [#9683](https://github.com/mapbox/mapbox-gl-js/pull/9683))
174
- * Fix bug where `map.isMoving()` returned true while map was not moving ([#9647](https://github.com/mapbox/mapbox-gl-js/issues/9647), fixed by [#9679](https://github.com/mapbox/mapbox-gl-js/pull/9679))
175
- * Fix regression that prevented `touchmove` events from firing during gestures ([#9676](https://github.com/mapbox/mapbox-gl-js/issues/9676), fixed by [#9685](https://github.com/mapbox/mapbox-gl-js/pull/9685))
176
- * Fix `image` expression evaluation which was broken under certain conditions ([#9630](https://github.com/mapbox/mapbox-gl-js/issues/9630), fixed by [#9685](https://github.com/mapbox/mapbox-gl-js/pull/9668))
177
- * Fix nested `within` expressions in filters not evaluating correctly ([#9605](https://github.com/mapbox/mapbox-gl-js/issues/9605), fixed by [#9611](https://github.com/mapbox/mapbox-gl-js/pull/9611))
178
- * Fix potential `undefined` paint variable in `StyleLayer` ([#9688](https://github.com/mapbox/mapbox-gl-js/pull/9688)) (h/t [mannnick24](https://github.com/mannnick24))
179
-
180
- ## 1.10.0
181
-
182
- ### ✨ Features
183
- * Add `mapboxgl.prewarm()` and `mapboxgl.clearPrewarmedResources()` methods to allow developers to optimize load times for their maps ([#9391](https://github.com/mapbox/mapbox-gl-js/pull/9391))
184
- * Add `index-of` and `slice` expressions to search arrays and strings for the first occurrence of a specified value and return a section of the original array or string ([#9450](https://github.com/mapbox/mapbox-gl-js/pull/9450)) (h/t [lbutler](https://github.com/lbutler))
185
- * Correctly set RTL text plugin status if the plugin URL could not be loaded. This allows developers to add retry logic on network errors when loading the plugin ([#9489](https://github.com/mapbox/mapbox-gl-js/pull/9489))
186
-
187
- ### 🍏 Gestures
188
- This release significantly refactors and improves gesture handling on desktop and mobile. Three new touch gestures have been added: `two-finger swipe` to adjust pitch, `two-finger double tap` to zoom out, and `tap then drag` to adjust zoom with one finger ([#9365](https://github.com/mapbox/mapbox-gl-js/pull/9365)). In addition, this release brings the following changes and bug fixes:
189
-
190
- - It's now possible to interact with multiple maps on the same page at the same time ([#9365](https://github.com/mapbox/mapbox-gl-js/pull/9365))
191
- - Fix map jump when releasing one finger after pinch zoom ([#9136](https://github.com/mapbox/mapbox-gl-js/issues/9136))
192
- - Stop mousedown and touchstart from interrupting `easeTo` animations when interaction handlers are disabled ([#8725](https://github.com/mapbox/mapbox-gl-js/issues/8725))
193
- - Stop mouse wheel from interrupting animations when `map.scrollZoom` is disabled ([#9230](https://github.com/mapbox/mapbox-gl-js/issues/9230))
194
- - A camera change can no longer be prevented by disabling the interaction handler within the camera change event. Selectively prevent camera changes by listening to the `mousedown` or `touchstart` map event and calling [.preventDefault()](https://docs.mapbox.com/mapbox-gl-js/api/#mapmouseevent#preventdefault) ([#9365](https://github.com/mapbox/mapbox-gl-js/pull/9365))
195
- - Undocumented properties on the camera change events fired by the doubleClickZoom handler have been removed ([#9365](https://github.com/mapbox/mapbox-gl-js/pull/9365))
196
-
197
- ### 🐞 Improvements and bug fixes
198
- * Line labels now have improved collision detection, with greater precision in placement, reduced memory footprint, better placement under pitched camera orientations ([#9219](https://github.com/mapbox/mapbox-gl-js/pull/9219))
199
- * Fix `GlyphManager` continually re-requesting missing glyph ranges ([#8027](https://github.com/mapbox/mapbox-gl-js/issues/8027), fixed by [#9375](https://github.com/mapbox/mapbox-gl-js/pull/9375)) (h/t [oterral](https://github.com/oterral))
200
- * Avoid throwing errors when calling certain popup methods before the popup element is created ([#9433](https://github.com/mapbox/mapbox-gl-js/pull/9433))
201
- * Fix a bug where fill-extrusion features with colinear points were not returned by `map.queryRenderedFeatures(...)` ([#9454](https://github.com/mapbox/mapbox-gl-js/pull/9454))
202
- * Fix a bug where using feature state on a large input could cause a stack overflow error ([#9463](https://github.com/mapbox/mapbox-gl-js/pull/9463))
203
- * Fix exception when using `background-pattern` with data driven expressions ([#9518](https://github.com/mapbox/mapbox-gl-js/issues/9518), fixed by [#9520](https://github.com/mapbox/mapbox-gl-js/pull/9520))
204
- * Fix a bug where UI popups were potentially leaking event listeners ([#9498](https://github.com/mapbox/mapbox-gl-js/pull/9498)) (h/t [mbell697](https://github.com/mbell697))
205
- * Fix a bug where the `within` expression would return inconsistent values for points on tile boundaries ([#9411](https://github.com/mapbox/mapbox-gl-js/issues/9411), [#9428](https://github.com/mapbox/mapbox-gl-js/pull/9428))
206
- * Fix a bug where the `within` expression would incorrectly evaluate geometries that cross the antimeridian ([#9440](https://github.com/mapbox/mapbox-gl-js/pull/9440))
207
- * Fix possible undefined exception on paint variable of style layer ([#9437](https://github.com/mapbox/mapbox-gl-js/pull/9437)) (h/t [mannnick24](https://github.com/mannnick24))
208
- * Upgrade minimist to ^1.2.5 to get fix for security issue [CVE-2020-7598](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-7598) upstream ([#9425](https://github.com/mapbox/mapbox-gl-js/issues/9431), fixed by [#9425](https://github.com/mapbox/mapbox-gl-js/pull/9425)) (h/t [watson](https://github.com/watson))
209
-
210
- ## 1.9.1
211
-
212
- ### 🐞 Bug fixes
213
- * Fix a bug [#9477](https://github.com/mapbox/mapbox-gl-js/issues/9477) in `Map#fitBounds(..)` wherein the `padding` passed to options would get applied twice.
214
- * Fix rendering bug [#9479](https://github.com/mapbox/mapbox-gl-js/issues/9479) caused when data-driven `*-pattern` properties reference images added with `Map#addImage(..)`.
215
- * Fix a bug [#9468](https://github.com/mapbox/mapbox-gl-js/issues/9468) in which an exception would get thrown when updating symbol layer paint property using `setPaintProperty`.
216
-
217
- ## 1.9.0
218
- With this release, we're adding [a new changelog policy](./CONTRIBUTING.md#changelog-conventions) to our contribution guidelines.
219
-
220
- This release also fixes several long-standing bugs and unintentional rendering behavior with `line-pattern`. The fixes come with a visual change to how patterns added with `line-pattern` scale. Previously, patterns that became larger than the line would be clipped, sometimes distorting the pattern, particularly on mobile and retina devices. Now the pattern will be scaled to fit under all circumstances. [#9266](https://github.com/mapbox/mapbox-gl-js/pull/9266) showcases examples of the visual differences. For more information and to provide feedback on this change, see [#9394](https://github.com/mapbox/mapbox-gl-js/pull/9394).
221
-
222
- ### ✨ Features
223
- * Add `within` expression for testing whether an evaluated feature lies within a given GeoJSON object ([#9352](https://github.com/mapbox/mapbox-gl-js/pull/9352)).
224
- - We are aware of an edge case in which points with wrapped coordinates (e.g. longitude -185) are not evaluated properly. See ([#9442](https://github.com/mapbox/mapbox-gl-js/issues/9442)) for more information.
225
- - An example of the `within` expression:<br>
226
- `"icon-opacity": ["case", ["==", ["within", "some-polygon"], true], 1,
227
- ["==", ["within", "some-polygon"], false], 0]`
228
- * Map API functions such as `easeTo` and `flyTo` now support `padding: PaddingOptions` which lets developers shift a map's center of perspective when building floating sidebars ([#8638](https://github.com/mapbox/mapbox-gl-js/pull/8638))
229
-
230
- ### 🍏 Improvements
231
- * Results from `queryRenderedFeatures` now have evaluated property values rather than raw expressions ([#9198](https://github.com/mapbox/mapbox-gl-js/pull/9198))
232
- * Improve scaling of patterns used in `line-pattern` on all device resolutions and pixel ratios ([#9266](https://github.com/mapbox/mapbox-gl-js/pull/9266))
233
- * Slightly improve GPU memory footprint ([#9377](https://github.com/mapbox/mapbox-gl-js/pull/9377))
234
- * `LngLatBounds.extend` is more flexible because it now accepts objects with `lat` and `lon` properties as well as arrays of coordinates ([#9293](https://github.com/mapbox/mapbox-gl-js/pull/9293))
235
- * Reduce bundle size and improve visual quality of `showTileBoundaries` debug text ([#9267](https://github.com/mapbox/mapbox-gl-js/pull/9267))
236
-
237
- ### 🐞 Bug fixes
238
- * Correctly adjust patterns added with `addImage(id, image, pixelRatio)` by the asset pixel ratio, not the device pixel ratio ([#9372](https://github.com/mapbox/mapbox-gl-js/pull/9372))
239
- * Allow needle argument to `in` expression to be false ([#9295](https://github.com/mapbox/mapbox-gl-js/pull/9295))
240
- * Fix exception thrown when trying to set `feature-state` for a layer that has been removed, fixes [#8634](https://github.com/mapbox/mapbox-gl-js/issues/8634) ([#9305](https://github.com/mapbox/mapbox-gl-js/pull/9305))
241
- * Fix a bug where maps were not displaying inside elements with `dir=rtl` ([#9332](https://github.com/mapbox/mapbox-gl-js/pull/9332))
242
- * Fix a rendering error for very old versions of Chrome (ca. 2016) where text would appear much bigger than intended ([#9349](https://github.com/mapbox/mapbox-gl-js/pull/9349))
243
- * Prevent exception resulting from `line-dash-array` of empty length ([#9385](https://github.com/mapbox/mapbox-gl-js/pull/9385))
244
- * Fix a bug where `icon-image` expression that evaluates to an empty string (`''`) produced a warning ([#9380](https://github.com/mapbox/mapbox-gl-js/pull/9380))
245
- * Fix a bug where certain `popup` methods threw errors when accessing the container element before it was created, fixes [#9429](https://github.com/mapbox/mapbox-gl-js/issues/9429)([#9433](https://github.com/mapbox/mapbox-gl-js/pull/9433))
246
-
247
- ## 1.8.1
248
-
249
- * Fixed a bug where all labels showed up on a diagonal line on Windows when using an integrated Intel GPU from the Haswell generation ([#9327](https://github.com/mapbox/mapbox-gl-js/issues/9327), fixed by reverting [#9229](https://github.com/mapbox/mapbox-gl-js/pull/9229))
250
-
251
- ## 1.8.0
252
-
253
- ### ✨ Features and improvements
254
- * Reduce size of line atlas by removing unused channels ([#9232](https://github.com/mapbox/mapbox-gl-js/pull/9232))
255
- * Prevent empty buffers from being created for debug data when unused ([#9237](https://github.com/mapbox/mapbox-gl-js/pull/9237))
256
- * Add space between distance and unit in scale control ([#9276](https://github.com/mapbox/mapbox-gl-js/pull/9276)) (h/t [gely](https://api.github.com/users/gely)) and ([#9284](https://github.com/mapbox/mapbox-gl-js/pull/9284)) (h/t [pakastin](https://api.github.com/users/pakastin))
257
- * Add a `showAccuracyCircle` option to GeolocateControl that shows the accuracy of the user's location as a transparent circle. Mapbox GL JS will show this circle by default. ([#9253](https://github.com/mapbox/mapbox-gl-js/pull/9253)) (h/t [Meekohi](https://api.github.com/users/Meekohi))
258
- * Implemented a new tile coverage algorithm to enable level-of-detail support in a future release ([#8975](https://github.com/mapbox/mapbox-gl-js/pull/8975))
259
-
260
- ### 🐞 Bug fixes
261
- * `line-dasharray` is now ignored correctly when `line-pattern` is set ([#9189](https://github.com/mapbox/mapbox-gl-js/pull/9189))
262
- * Fix line distances breaking gradient across tile boundaries ([#9220](https://github.com/mapbox/mapbox-gl-js/pull/9220))
263
- * Fix a bug where lines with duplicate endpoints could disappear at zoom 18+ ([#9218](https://github.com/mapbox/mapbox-gl-js/pull/9218))
264
- * Fix a bug where Ctrl-click to drag rotate the map was disabled if the Alt, Cmd or Windows key is also pressed ([#9203](https://github.com/mapbox/mapbox-gl-js/pull/9203))
265
- * Pass errors to `getClusterExpansionZoom`, `getClusterChildren`, and `getClusterLeaves` callbacks ([#9251](https://github.com/mapbox/mapbox-gl-js/pull/9251))
266
- * Fix a rendering performance regression ([#9261](https://github.com/mapbox/mapbox-gl-js/pull/9261))
267
- * Fix visual artifact for `line-dasharray` ([#9246](https://github.com/mapbox/mapbox-gl-js/pull/9246))
268
- * Fixed a bug in the GeolocateControl which resulted in an error when `trackUserLocation` was `false` and the control was removed before the Geolocation API had returned a location ([#9291](https://github.com/mapbox/mapbox-gl-js/pull/9291))
269
- * Fix `promoteId` for line layers ([#9210](https://github.com/mapbox/mapbox-gl-js/pull/9210))
270
- * Improve accuracy of distance calculations ([#9202](https://github.com/mapbox/mapbox-gl-js/pull/9202)) (h/t [Meekohi](https://api.github.com/users/Meekohi))
271
-
272
-
273
- ## 1.7.0
274
-
275
- ### ✨ Features
276
- * Add `promoteId` option to use a feature property as ID for feature state ([#8987](https://github.com/mapbox/mapbox-gl-js/pull/8987))
277
- * Add a new constructor option to `mapboxgl.Popup`, `closeOnMove`, that closes the popup when the map's position changes ([#9163](https://github.com/mapbox/mapbox-gl-js/pull/9163))
278
- * Allow creating a map without a style (an empty one will be created automatically) ( h/t @stepankuzmin ) ([#8924](https://github.com/mapbox/mapbox-gl-js/pull/8924))
279
- * `map.once()` now allows specifying a layer id as a third parameter making it consistent with `map.on()` ([#8875](https://github.com/mapbox/mapbox-gl-js/pull/8875))
280
-
281
- ### 🍏 Improvements
282
- * Improve performance of raster layers on large screens ([#9050](https://github.com/mapbox/mapbox-gl-js/pull/9050))
283
- * Improve performance for hillshade and raster layers by implementing a progressive enhancement that utilizes `ImageBitmap` and `OffscreenCanvas` ([#8845](https://github.com/mapbox/mapbox-gl-js/pull/8845))
284
- * Improve performance for raster tile rendering by using the stencil buffer ([#9012](https://github.com/mapbox/mapbox-gl-js/pull/9012))
285
- * Update `symbol-avoid-edges` documentation to acknowledge the existence of global collision detection ([#9157](https://github.com/mapbox/mapbox-gl-js/pull/9157))
286
- * Remove reference to `in` function which has been replaced by the `in` expression ([#9102](https://github.com/mapbox/mapbox-gl-js/pull/9102))
287
-
288
- ### 🐞 Bug Fixes
289
- * Change the type of tile id key to string to prevent hash collisions ([#8979](https://github.com/mapbox/mapbox-gl-js/pull/8979))
290
- * Prevent changing bearing via URL hash when rotation is disabled ([#9156](https://github.com/mapbox/mapbox-gl-js/pull/9156))
291
- * Fix URL hash with no bearing causing map to fail to load ([#9170](https://github.com/mapbox/mapbox-gl-js/pull/9170))
292
- * Fix bug in `GeolocateControl` where multiple instances of the control on one page may result in the user location not being updated ([#9092](https://github.com/mapbox/mapbox-gl-js/pull/9092))
293
- * Fix query `fill-extrusions` made from polygons with coincident points and polygons with less than four points ([#9138](https://github.com/mapbox/mapbox-gl-js/pull/9138))
294
- * Fix bug where `symbol-sort-key` was not used for collisions that crossed tile boundaries ([#9054](https://github.com/mapbox/mapbox-gl-js/pull/9054))
295
- * Fix bug in `DragRotateHandler._onMouseUp` getting stuck in drag/rotate ([#9137](https://github.com/mapbox/mapbox-gl-js/pull/9137))
296
- * Fix "Click on Compass" on some mobile devices (add `clickTolerance` to `DragRotateHandler`) ([#9015](https://github.com/mapbox/mapbox-gl-js/pull/9015)) (h/t [Yanonix](https://github.com/Yanonix))
297
-
298
- ## 1.6.1
299
-
300
- ### 🐞 Bug Fixes
301
- * Fix style validation error messages not being displayed ([#9073](https://github.com/mapbox/mapbox-gl-js/pull/9073))
302
- * Fix deferred loading of rtl-text-plugin not working for labels created from GeoJSON sources ([#9091](https://github.com/mapbox/mapbox-gl-js/pull/9091))
303
- * Fix RTL text not being rendered with the rtl-text-plugin on pages that don't allow `script-src: blob:` in their CSP.([#9122](https://github.com/mapbox/mapbox-gl-js/pull/9122))
304
-
305
- ## 1.6.0
306
-
307
- ### ✨ Features
308
- * Add ability to insert images into text labels using an `image` expression within a `format` expression: `"text-field": ["format", "Some text", ["image", "my-image"], "some more text"]` ([#8904](https://github.com/mapbox/mapbox-gl-js/pull/8904))
309
- * Add support for stretchable images (aka nine-part or nine-patch images). Stretchable images can be used with `icon-text-fit` to draw resized images with unstretched corners and borders. ([#8997](https://github.com/mapbox/mapbox-gl-js/pull/8997))
310
- * Add `in` expression. It can check if a value is in an array (`["in", value, array]`) or a substring is in a string (`["in", substring, string]`) ([#8876](https://github.com/mapbox/mapbox-gl-js/pull/8876))
311
- * Add `minPitch` and `maxPitch` map options ([#8834](https://github.com/mapbox/mapbox-gl-js/pull/8834))
312
- * Add `rotation`, `rotationAlignment` and `pitchAlignment` options to markers ([#8836](https://github.com/mapbox/mapbox-gl-js/pull/8836)) (h/t [dburnsii](https://github.com/dburnsii))
313
- * Add methods to Popup to manipulate container class names ([#8759](https://github.com/mapbox/mapbox-gl-js/pull/8759)) (h/t [Ashot-KR](https://github.com/Ashot-KR))
314
- * Add configurable inertia settings for panning (h/t @aMoniker) ([#8887](https://github.com/mapbox/mapbox-gl-js/pull/8887))
315
- * Add ability to localize UI controls ([#8095](https://github.com/mapbox/mapbox-gl-js/pull/8095)) (h/t [dmytro-gokun](https://github.com/dmytro-gokun))
316
- * Add LatLngBounds.contains() method ([#7512](https://github.com/mapbox/mapbox-gl-js/issues/7512), fixed by [#8200](https://github.com/mapbox/mapbox-gl-js/pull/8200))
317
- * Add option to load rtl-text-plugin lazily ([#8865](https://github.com/mapbox/mapbox-gl-js/pull/8865))
318
- * Add `essential` parameter to AnimationOptions that can override `prefers-reduced-motion: reduce` ([#8743](https://github.com/mapbox/mapbox-gl-js/issues/8743), fixed by [#8883](https://github.com/mapbox/mapbox-gl-js/pull/8883))
319
-
320
- ### 🍏 Improvements
321
- * Allow rendering full world smaller than 512px. To restore the previous limit call `map.setMinZoom(0)` ([#9028](https://github.com/mapbox/mapbox-gl-js/pull/9028))
322
- * Add an es modules build for mapbox-gl-style-spec in dist/ ([#8247](https://github.com/mapbox/mapbox-gl-js/pull/8247)) (h/t [ahocevar](https://github.com/ahocevar))
323
- * Add 'image/webp,*/*' accept header to fetch/ajax image requests when webp supported ([#8262](https://github.com/mapbox/mapbox-gl-js/pull/8262))
324
- * Improve documentation for setStyle, getStyle, and isStyleLoaded ([#8807](https://github.com/mapbox/mapbox-gl-js/pull/8807))
325
-
326
- ### 🐞 Bug Fixes
327
- * Fix map rendering after addImage and removeImage are used to change a used image ([#9016](https://github.com/mapbox/mapbox-gl-js/pull/9016))
328
- * Fix visibility of controls in High Contrast mode in IE ([#8874](https://github.com/mapbox/mapbox-gl-js/pull/8874))
329
- * Fix customizable url hash string in IE 11 ([#8990](https://github.com/mapbox/mapbox-gl-js/pull/8990)) (h/t [pakastin](https://github.com/pakastin))
330
- * Allow expression stops up to zoom 24 instead of 22 ([#8908](https://github.com/mapbox/mapbox-gl-js/pull/8908)) (h/t [nicholas-l](https://github.com/nicholas-l))
331
- * Fix alignment of lines in really overscaled tiles ([#9024](https://github.com/mapbox/mapbox-gl-js/pull/9024))
332
- * Fix `Failed to execute 'shaderSource' on 'WebGLRenderingContext'` errors ([#9017](https://github.com/mapbox/mapbox-gl-js/pull/9017))
333
- * Make expression validation fail on NaN ([#8615](https://github.com/mapbox/mapbox-gl-js/pull/8615))
334
- * Fix setLayerZoomRange bug that caused tiles to be re-requested ([#7865](https://github.com/mapbox/mapbox-gl-js/issues/7865), fixed by [#8854](https://github.com/mapbox/mapbox-gl-js/pull/8854))
335
- * Fix `map.showTileBoundaries` rendering ([#7314](https://github.com/mapbox/mapbox-gl-js/pull/7314))
336
- * Fix using `generateId` in conjunction with `cluster` in a GeoJSONSource ([#8223](https://github.com/mapbox/mapbox-gl-js/issues/8223), fixed by [#8945](https://github.com/mapbox/mapbox-gl-js/pull/8945))
337
- * Fix opening popup on a marker from keyboard ([#6835](https://github.com/mapbox/mapbox-gl-js/pull/6835))
338
- * Fix error thrown when request aborted ([#7614](https://github.com/mapbox/mapbox-gl-js/issues/7614), fixed by [#9021](https://github.com/mapbox/mapbox-gl-js/pull/9021))
339
- * Fix attribution control when repeatedly removing and adding it ([#9052](https://github.com/mapbox/mapbox-gl-js/pull/9052))
340
-
341
- ## 1.5.1
342
- This patch introduces two workarounds that address longstanding issues related to unbounded memory growth in Safari, including [#8771](https://github.com/mapbox/mapbox-gl-js/issues/8771) and [#4695](https://github.com/mapbox/mapbox-gl-js/issues/4695). We’ve identified two memory leaks in Safari: one in the [CacheStorage](https://developer.mozilla.org/en-US/docs/Web/API/CacheStorage) API, addressed by [#8956](https://github.com/mapbox/mapbox-gl-js/pull/8956), and one in transferring data between web workers through [Transferables](https://developer.mozilla.org/en-US/docs/Web/API/Transferable), addressed by [#9003](https://github.com/mapbox/mapbox-gl-js/pull/9003).
343
-
344
- ### 🍏 Improvements
345
- * Implement workaround for memory leak in Safari when using the `CacheStorage` API. ( [#8856](https://github.com/mapbox/mapbox-gl-js/pull/8956))
346
- * Implement workaround for memory leak in Safari when using `Transferable` objects to transfer `ArrayBuffers` to WebWorkers. If GL-JS detetcts that it is running in Safari, the use of `Transferables` to transfer data to WebWorkers is disabled. ( [#9003](https://github.com/mapbox/mapbox-gl-js/pull/9003))
347
- * Improve animation performance when using `map.setData`. ([#8913](https://github.com/mapbox/mapbox-gl-js/pull/8913)) (h/t [msbarry](https://github.com/msbarry))
348
-
349
- ## 1.5.0
350
-
351
- ### ✨ Features
352
- * Add disabled icon to GeolocateControl if user denies geolocation permission. [#8871](https://github.com/mapbox/mapbox-gl-js/pull/8871))
353
- * Add `outofmaxbounds` event to GeolocateControl, which is emitted when the user is outside of `map.maxBounds` ([#8756](https://github.com/mapbox/mapbox-gl-js/pull/8756)) (h/t [MoradiDavijani](https://github.com/MoradiDavijani))
354
- * Add `mapboxgl.getRTLTextPluginStatus()` to query the current status of the `rtl-text-plugin` to make it easier to allow clearing the plugin when necessary. (ref. [#7869](https://github.com/mapbox/mapbox-gl-js/issues/7869)) ([#8864](https://github.com/mapbox/mapbox-gl-js/pull/8864))
355
- * Allow `hash` Map option to be set as a string, which sets the map hash in the url to a custom query parameter. ([#8603](https://github.com/mapbox/mapbox-gl-js/pull/8603)) (h/t [SebCorbin](https://github.com/SebCorbin))
356
-
357
- ### 🍏 Improvements
358
- * Fade symbols faster when zooming out quickly, reducing overlap. ([#8628](https://github.com/mapbox/mapbox-gl-js/pull/8628))
359
- * Reduce memory usage for vector tiles that contain long strings in feature properties. ( [#8863](https://github.com/mapbox/mapbox-gl-js/pull/8863))
360
-
361
- ### 🐞 Bug Fixes
362
- * Fix `text-variable-anchor` not trying multiple placements during collision with icons when `icon-text-fit` is enabled. ([#8803](https://github.com/mapbox/mapbox-gl-js/pull/8803))
363
- * Fix `icon-text-fit` not properly respecting vertical labels. ([#8835](https://github.com/mapbox/mapbox-gl-js/pull/8835))
364
- * Fix opacity interpolation for composition expressions. ([#8818](https://github.com/mapbox/mapbox-gl-js/pull/8818))
365
- * Fix rotate and pitch events being fired at the same time. ([#8872](https://github.com/mapbox/mapbox-gl-js/pull/8872))
366
- * Fix memory leaks that occured during tile loading and map removal.([#8813](https://github.com/mapbox/mapbox-gl-js/pull/8813) and [#8850](https://github.com/mapbox/mapbox-gl-js/pull/8850))
367
- * Fix web-worker transfer of `ArrayBuffers` in environments where `instanceof ArrayBuffer` fails.(e.g `cypress`) ([#8868](https://github.com/mapbox/mapbox-gl-js/pull/8868))
368
-
369
- ## 1.4.1
370
-
371
- ### 🐞 Bug Fixes
372
- * Fix the way that `coalesce` handles the `image` operator so available images are rendered properly ([#8839](https://github.com/mapbox/mapbox-gl-js/pull/8839))
373
- * Do not emit the `styleimagemissing` event for an empty string value ([#8840](https://github.com/mapbox/mapbox-gl-js/pull/8840))
374
- * Fix serialization of `ResolvedImage` type so `*-pattern` properties work properly ([#8833](https://github.com/mapbox/mapbox-gl-js/pull/8833))
375
-
376
- ## 1.4.0
377
-
378
- ### ✨ Features
379
- * Add `image` expression operator to determine image availability ([#8684](https://github.com/mapbox/mapbox-gl-js/pull/8684))
380
- * Enable `text-offset` with variable label placement ([#8642](https://github.com/mapbox/mapbox-gl-js/pull/8642))
381
-
382
- ### 🍏 Improvements
383
- * Faster loading and better look of raster terrain ([#8694](https://github.com/mapbox/mapbox-gl-js/pull/8694))
384
- * Improved code documentation around resizing and {get/set}RenderedWorldCopies and more ([#8748](https://github.com/mapbox/mapbox-gl-js/pull/8748), [#8754](https://github.com/mapbox/mapbox-gl-js/pull/8754))
385
- * Improve single vs. multi-touch zoom & pan interaction (#7196) ([#8100](https://github.com/mapbox/mapbox-gl-js/pull/8100))
386
-
387
- ### 🐞 Bug fixes
388
- * Fix rendering of `collisionBox` when `text-translate` or `icon-translate` is enabled ([#8659](https://github.com/mapbox/mapbox-gl-js/pull/8659))
389
- * Fix `TypeError` when reloading a source and immediately removing the map ([#8711](https://github.com/mapbox/mapbox-gl-js/pull/8711))
390
- * Adding tooltip to the geolocation control button ([#8735](https://github.com/mapbox/mapbox-gl-js/pull/8735)) (h/t [BAByrne](https://github.com/BAByrne))
391
- * Add `originalEvent` property to NavigationControl events ([#8693](https://github.com/mapbox/mapbox-gl-js/pull/8693)) (h/t [stepankuzmin](https://github.com/stepankuzmin))
392
- * Don't cancel follow mode in the GeolocateControl when resizing the map or rotating the screen ([#8736](https://github.com/mapbox/mapbox-gl-js/pull/8736))
393
- * Fix error when calling `Popup#trackPointer` before setting its content or location ([#8757](https://github.com/mapbox/mapbox-gl-js/pull/8757)) (h/t [zxwandrew](https://github.com/zxwandrew))
394
- * Respect newline characters when text-max-width is set to zero ([#8706](https://github.com/mapbox/mapbox-gl-js/pull/8706))
395
- * Update earcut to v2.2.0 to fix polygon tesselation errors ([#8772](https://github.com/mapbox/mapbox-gl-js/pull/8772))
396
- * Fix icon-fit with variable label placement ([#8755](https://github.com/mapbox/mapbox-gl-js/pull/8755))
397
- * Icons stretched with `icon-text-fit` are now sized correctly ([#8741](https://github.com/mapbox/mapbox-gl-js/pull/8741))
398
- * Collision detection for icons with `icon-text-fit` now works correctly ([#8741](https://github.com/mapbox/mapbox-gl-js/pull/8741))
399
-
400
- ## 1.3.2
401
-
402
- - Fix a SecurityError in Firefox >= 69 when accessing the cache [#8780](https://github.com/mapbox/mapbox-gl-js/pull/8780)
403
-
404
- ## 1.3.1
405
-
406
- ### 🐞 Bug Fixes
407
-
408
- - Fix a race condition that produced an error when a map was removed while reloading a source. [#8711](https://github.com/mapbox/mapbox-gl-js/pull/8711)
409
- - Fix a race condition were `render` event was sometimes not fired after `load` event in IE11. [#8708](https://github.com/mapbox/mapbox-gl-js/pull/8708)
410
-
411
- ## 1.3.0
412
-
413
- ### 🍏 Features
414
-
415
- - Introduce `text-writing-mode` symbol layer property to allow placing point labels vertically. [#8399](https://github.com/mapbox/mapbox-gl-js/pull/8399)
416
- - Extend variable text placement to work when `text/icon-allow-overlap` is set to `true`. [#8620](https://github.com/mapbox/mapbox-gl-js/pull/8620)
417
- - Allow `text-color` to be used in formatted expressions to be able to draw different parts of a label in different colors. [#8068](https://github.com/mapbox/mapbox-gl-js/pull/8068)
418
-
419
- ### ✨ Improvements
420
-
421
- - Improve tile loading logic to cancel requests more aggressively, improving performance when zooming or panning quickly. [#8633](https://github.com/mapbox/mapbox-gl-js/pull/8633)
422
- - Display outline on control buttons when focused (e.g. with a tab key) for better accessibility. [#8520](https://github.com/mapbox/mapbox-gl-js/pull/8520)
423
- - Improve the shape of line round joins. [#8275](https://github.com/mapbox/mapbox-gl-js/pull/8275)
424
- - Improve performance of processing line layers. [#8303](https://github.com/mapbox/mapbox-gl-js/pull/8303)
425
- - Improve legibility of info displayed with `map.showTileBoundaries = true`. [#8380](https://github.com/mapbox/mapbox-gl-js/pull/8380) (h/t [@andrewharvey](https://github.com/andrewharvey))
426
- - Add `MercatorCoordinate.meterInMercatorCoordinateUnits` method to make it easier to convert from meter units to coordinate values used in custom layers. [#8524](https://github.com/mapbox/mapbox-gl-js/pull/8524) (h/t [@andrewharvey](https://github.com/andrewharvey))
427
- - Improve conversion of legacy filters with duplicate values. [#8542](https://github.com/mapbox/mapbox-gl-js/pull/8542)
428
- - Move out documentation & examples website source to a separate `mapbox-gl-js-docs` repo. [#8582](https://github.com/mapbox/mapbox-gl-js/pull/8582)
429
-
430
- ### 🐞 Bug Fixes
431
-
432
- - Fix a bug where local CJK fonts would switch to server-generated ones in overzoomed tiles. [#8657](https://github.com/mapbox/mapbox-gl-js/pull/8657)
433
- - Fix precision issues in [deck.gl](https://deck.gl)-powered custom layers. [#8502](https://github.com/mapbox/mapbox-gl-js/pull/8502)
434
- - Fix a bug where fill and line layers wouldn't render correctly over fill extrusions when coming from the same source. [#8661](https://github.com/mapbox/mapbox-gl-js/pull/8661)
435
- - Fix map loading for documents loaded from Blob URLs. [#8612](https://github.com/mapbox/mapbox-gl-js/pull/8612)
436
- - Fix classification of relative file:// URLs when in documents loaded from a file URL. [#8612](https://github.com/mapbox/mapbox-gl-js/pull/8612)
437
- - Remove `esm` from package `dependencies` (so that it's not installed on `npm install mapbox-gl`). [#8586](https://github.com/mapbox/mapbox-gl-js/pull/8586) (h/t [@DatGreekChick](https://github.com/DatGreekChick))
438
-
439
- ## 1.2.1
440
-
441
- ### 🐞 Bug fixes
442
-
443
- * Fix bug in `NavigationControl` compass button that prevented it from rotating with the map ([#8605](https://github.com/mapbox/mapbox-gl-js/pull/8605))
444
-
445
- ## 1.2.0
446
-
447
- ### Features and improvements
448
- * Add `*-sort-key` layout property for circle, fill, and line layers, to dictate which features appear above others within a single layer([#8467](https://github.com/mapbox/mapbox-gl-js/pull/8467))
449
- * Add ability to instantiate maps with specific access tokens ([#8364](https://github.com/mapbox/mapbox-gl-js/pull/8364))
450
- * Accommodate `prefers-reduced-motion` settings in browser ([#8494](https://github.com/mapbox/mapbox-gl-js/pull/8494))
451
- * Add Map `visualizePitch` option that tilts the compass as the map pitches ([#8208](https://github.com/mapbox/mapbox-gl-js/issues/8208), fixed by [#8296](https://github.com/mapbox/mapbox-gl-js/pull/8296)) (h/t [pakastin](https://github.com/pakastin))
452
- * Make source options take precedence over TileJSON ([#8232](https://github.com/mapbox/mapbox-gl-js/pull/8232)) (h/t [jingsam](https://github.com/jingsam))
453
- * Make requirements for text offset properties more precise ([#8418](https://github.com/mapbox/mapbox-gl-js/pull/8418))
454
- * Expose `convertFilter` API in the style specification ([#8493](https://github.com/mapbox/mapbox-gl-js/pull/8493)
455
-
456
- ### Bug fixes
457
- * Fix changes to `text-variable-anchor`, such that previous anchor positions would take precedence only if they are present in the updated array (considered a bug fix, but is technically a breaking change from previous behavior) ([#8473](https://github.com/mapbox/mapbox-gl-js/pull/8473))
458
- * Fix rendering of opaque pass layers over heatmap and fill-extrusion layers ([#8440](https://github.com/mapbox/mapbox-gl-js/pull/8440))
459
- * Fix rendering of extraneous vertical line in vector tiles ([#8477](https://github.com/mapbox/mapbox-gl-js/issues/8477), fixed by [#8479](https://github.com/mapbox/mapbox-gl-js/pull/8479))
460
- * Turn off 'move' event listeners when removing a marker ([#8465](https://github.com/mapbox/mapbox-gl-js/pull/8465))
461
- * Fix class toggling on navigation control for IE ([#8495](https://github.com/mapbox/mapbox-gl-js/pull/8495)) (h/t [cs09g](https://github.com/cs09g))
462
- * Fix background rotation hovering on geolocate control ([#8367](https://github.com/mapbox/mapbox-gl-js/pull/8367)) (h/t [GuillaumeGomez](https://github.com/GuillaumeGomez))
463
- * Fix error in click events on markers where `startPos` is not defined ([#8462](https://github.com/mapbox/mapbox-gl-js/pull/8462)) (h/t [@msbarry](https://github.com/msbarry))
464
- * Fix malformed urls when using custom `baseAPIURL` of a certain form ([#8466](https://github.com/mapbox/mapbox-gl-js/pull/8466))
465
-
466
- ## 1.1.1
467
-
468
- ### 🐞 Bug fixes
469
-
470
- * Fix unbounded memory growth caused by failure to cancel requests to the cache ([#8472](https://github.com/mapbox/mapbox-gl-js/pull/8472))
471
- * Fix unbounded memory growth caused by failure to cancel requests in IE ([#8481](https://github.com/mapbox/mapbox-gl-js/issues/8481))
472
- * Fix performance of getting tiles from the cache ([#8489](https://github.com/mapbox/mapbox-gl-js/pull/8449))
473
-
474
- ## 1.1.0
475
-
476
- ### ✨ Minor features and improvements
477
- * Improve line rendering performance by using a more compact line attributes layout ([#8306](https://github.com/mapbox/mapbox-gl-js/pull/8306))
478
- * Improve data-driven symbol layers rendering performance ([#8295](https://github.com/mapbox/mapbox-gl-js/pull/8295))
479
- * Add the ability to disable validation during `queryRenderedFeatures` and `querySourceFeatures` calls, as a performance optimization ([#8211](https://github.com/mapbox/mapbox-gl-js/pull/8211)) (h/t [gorshkov-leonid](https://github.com/gorshkov-leonid))
480
- * Improve `setFilter` performance by caching keys in `groupByLayout` routine ([#8122](https://github.com/mapbox/mapbox-gl-js/pull/8122)) (h/t [vallendm](https://github.com/vallendm))
481
- * Improve rendering of symbol layers with `symbol-z-order: viewport-y`, when icons are allowed to overlap but not text ([#8180](https://github.com/mapbox/mapbox-gl-js/pull/8180))
482
- * Prefer breaking lines at a zero width space to allow better break point suggestions for Japanese labels ([#8255](https://github.com/mapbox/mapbox-gl-js/pull/8255))
483
- * Add a `WebGLRenderingContext` argument to `onRemove` function of `CustomLayerInterface`, to allow direct cleanup of related context ([#8156](https://github.com/mapbox/mapbox-gl-js/pull/8156)) (h/t [ogiermaitre](https://github.com/ogiermaitre))
484
- * Allow zoom speed customization by adding `setZoomRate` and `setWheelZoomRate` methods to `ScrollZoomHandler` ([#7863](https://github.com/mapbox/mapbox-gl-js/pull/7863)) (h/t [sf31](https://github.com/sf31))
485
- * Add `trackPointer` method to `Popup` API that continuously repositions the popup to the mouse cursor when the cursor is within the map ([#7786](https://github.com/mapbox/mapbox-gl-js/pull/7786))
486
- * Add `getElement` method to `Popup` to retrieve the popup's HTML element ([#8123](https://github.com/mapbox/mapbox-gl-js/pull/8123)) (h/t [bravecow](https://github.com/bravecow))
487
- * Add `fill-pattern` example to the documentation ([#8022](https://github.com/mapbox/mapbox-gl-js/pull/8022)) (h/t [flawyte](https://github.com/flawyte))
488
- * Update script detection for Unicode 12.1 ([#8158](https://github.com/mapbox/mapbox-gl-js/pull/8158))
489
- * Add `nofollow` to Mapbox logo & "Improve this map" links ([#8106](https://github.com/mapbox/mapbox-gl-js/pull/8106)) (h/t [viniciuskneves](https://github.com/viniciuskneves))
490
- * Include source name in invalid GeoJSON error ([#8113](https://github.com/mapbox/mapbox-gl-js/pull/8113)) (h/t [Zirak](https://github.com/Zirak))
491
-
492
- ### 🐞 Bug fixes
493
- * Fix `updateImage` not working as expected in Chrome ([#8199](https://github.com/mapbox/mapbox-gl-js/pull/8199))
494
- * Fix issues with double-tap zoom on touch devices ([#8086](https://github.com/mapbox/mapbox-gl-js/pull/8086))
495
- * Fix duplication of `movestart` events when zooming ([#8259](https://github.com/mapbox/mapbox-gl-js/pull/8259)) (h/t [bambielli-flex](https://github.com/bambielli-flex))
496
- * Fix validation of ``"format"`` expression failing when options are provided ([#8339](https://github.com/mapbox/mapbox-gl-js/pull/8339))
497
- * Fix `setPaintProperty` not working on `line-pattern` property ([#8289](https://github.com/mapbox/mapbox-gl-js/pull/8289))
498
- * Fix the GL context being left in unpredictable states when using custom layers ([#8132](https://github.com/mapbox/mapbox-gl-js/pull/8132))
499
- * Fix unnecessary updates to attribution control string ([#8082](https://github.com/mapbox/mapbox-gl-js/pull/8082)) (h/t [poletani](https://github.com/poletani))
500
- * Fix bugs in `findStopLessThanOrEqualTo` algorithm ([#8134](https://github.com/mapbox/mapbox-gl-js/pull/8134)) (h/t [Mike96Angelo](https://github.com/Mike96Angelo))
501
- * Fix map not displaying properly when inside an element with `text-align: center` ([#8227](https://github.com/mapbox/mapbox-gl-js/pull/8227)) (h/t [mc100s](https://github.com/mc100s))
502
- * Clarify in documentation that `Popup#maxWidth` accepts all `max-width` CSS values ([#8312](https://github.com/mapbox/mapbox-gl-js/pull/8312)) (h/t [viniciuskneves](https://github.com/viniciuskneves))
503
- * Fix location dot shadow not displaying ([#8119](https://github.com/mapbox/mapbox-gl-js/pull/8119)) (h/t [bravecow](https://github.com/bravecow))
504
- * Fix docs dev dependencies being mistakenly installed as package dependencies ([#8121](https://github.com/mapbox/mapbox-gl-js/pull/8121)) (h/t [bravecow](https://github.com/bravecow))
505
- * Various typo fixes ([#8230](https://github.com/mapbox/mapbox-gl-js/pull/8230), h/t [erictheise](https://github.com/erictheise)) ([#8236](https://github.com/mapbox/mapbox-gl-js/pull/8236), h/t [fredj](https://github.com/fredj))
506
- * Fix geolocate button CSS ([#8367](https://github.com/mapbox/mapbox-gl-js/pull/8367), h/t [GuillaumeGomez](https://github.com/GuillaumeGomez))
507
- * Fix caching for Mapbox tiles ([#8389](https://github.com/mapbox/mapbox-gl-js/pull/8389))
508
-
509
- ## 1.0.0
510
-
511
- ### ⚠️ Breaking changes
512
-
513
- This release replaces the existing “map views” pricing model in favor of a “map load” model. Learn more in [a recent blog post about these changes](https://blog.mapbox.com/new-pricing-46b7c26166e7).
514
-
515
- **By upgrading to this release, you are opting in to the new map loads pricing.**
516
-
517
- **Why is this change being made?**
518
-
519
- This change allows us to implement a more standardized and predictable method of billing GL JS map usage. You’ll be charged whenever your website or web application loads, not by when users pan and zoom around the map, incentivizing developers to create highly interactive map experiences. The new pricing structure also creates a significantly larger free tier to help developers get started building their applications with Mapbox tools while pay-as-you-go pricing and automatic volume discounts help your application scale with Mapbox. Session billing also aligns invoices with metrics web developers already track and makes it easier to compare usage with other mapping providers.
520
-
521
- **What is changing?**
522
- - Add SKU token to Mapbox API requests [#8276](https://github.com/mapbox/mapbox-gl-js/pull/8276)
523
-
524
- When (and only when) loading tiles from a Mapbox API with a Mapbox access token set (`mapboxgl.accessToken`), a query parameter named `sku` will be added to all requests for vector, raster and raster-dem tiles. Every map instance uses a unique `sku` value, which is refreshed every 12 hours. The token itself is comprised of a token version (always “1”), a sku ID (always “01”) and a random 10-digit base-62 number. The purpose of the token is to allow for metering of map sessions on the server-side. A session lasts from a new map instantiation until the map is destroyed or 12 hours passes, whichever comes first.
525
-
526
- For further information on the pricing changes, you can read our [blog post](https://blog.mapbox.com/new-pricing-46b7c26166e7) and check out our new [pricing page](https://www.mapbox.com/pricing), which has a price calculator. As always, you can also contact our team at [https://support.mapbox.com](https://support.mapbox.com).
527
-
528
- ## 0.54.1
529
-
530
- ### Bug fixes
531
-
532
- - Fix unbounded memory growth caused by failure to cancel requests in IE ([#8481](https://github.com/mapbox/mapbox-gl-js/issues/8481))
533
-
534
- ## 0.54.0
535
-
536
- ### Breaking changes
537
-
538
- - Turned `localIdeographFontFamily` map option on by default. This may change how CJK labels are rendered, but dramatically improves performance of CJK maps (because the browser no longer needs to download heavy amounts of font data from the server). Add `localIdeographFontFamily: false` to turn this off. [#8008](https://github.com/mapbox/mapbox-gl-js/pull/8008)
539
- - Added `Popup` `maxWidth` option, set to `"240px"` by default. [#7906](https://github.com/mapbox/mapbox-gl-js/pull/7906)
540
-
541
- ### Major features
542
-
543
- - Added support for updating and animating style images. [#7999](https://github.com/mapbox/mapbox-gl-js/pull/7999)
544
- - Added support for generating style images dynamically (e.g. for drawing icons based on feature properties). [#7987](https://github.com/mapbox/mapbox-gl-js/pull/7987)
545
- - Added antialiasing support for custom layers. [#7821](https://github.com/mapbox/mapbox-gl-js/pull/7821)
546
- - Added a new `mapbox-gl-csp.js` bundle for strict CSP environments where `worker-src: blob` is disallowed. [#8044](https://github.com/mapbox/mapbox-gl-js/pull/8044)
547
-
548
- ### Minor features and improvements
549
-
550
- - Improved performance of fill extrusions. [#7821](https://github.com/mapbox/mapbox-gl-js/pull/7821)
551
- - Improved performance of symbol layers. [#7967](https://github.com/mapbox/mapbox-gl-js/pull/7967)
552
- - Slightly improved rendering performance in general. [#7969](https://github.com/mapbox/mapbox-gl-js/pull/7969)
553
- - Slightly improved performance of HTML markers. [#8018](https://github.com/mapbox/mapbox-gl-js/pull/8018)
554
- - Improved diffing of styles with `"visibility": "visible"`. [#8005](https://github.com/mapbox/mapbox-gl-js/pull/8005)
555
- - Improved zoom buttons to grey out when reaching min/max zoom. [#8023](https://github.com/mapbox/mapbox-gl-js/pull/8023)
556
- - Added a title to fullscreen control button. [#8012](https://github.com/mapbox/mapbox-gl-js/pull/8012)
557
- - Added `rel="noopener"` attributes to links that lead to external websites (such as Mapbox logo and OpenStreetMap edit link) for improved security. [#7914](https://github.com/mapbox/mapbox-gl-js/pull/7914)
558
- - Added tile size info when `map.showTileBoundaries` is turned on. [#7963](https://github.com/mapbox/mapbox-gl-js/pull/7963)
559
- - Significantly improved load times of the benchmark suite. [#8066](https://github.com/mapbox/mapbox-gl-js/pull/8066)
560
- - Improved behavior of `canvasSource.pause` to be more reliable and able to render a single frame. [#8130](https://github.com/mapbox/mapbox-gl-js/pull/8130)
561
-
562
- ### Bug fixes
563
-
564
- - Fixed a bug in Mac Safari 12+ where controls would disappear until you interact with the map. [8193](https://github.com/mapbox/mapbox-gl-js/pull/8193)
565
- - Fixed a memory leak when calling `source.setData(url)` many times. [#8035](https://github.com/mapbox/mapbox-gl-js/pull/8035)
566
- - Fixed a bug where marker lost focus when dragging. [#7799](https://github.com/mapbox/mapbox-gl-js/pull/7799)
567
- - Fixed a bug where `map.getCenter()` returned a reference to an internal `LngLat` object instead of cloning it, leading to potential mutability bugs. [#7922](https://github.com/mapbox/mapbox-gl-js/pull/7922)
568
- - Fixed a bug where default HTML marker positioning was slightly off. [#8074](https://github.com/mapbox/mapbox-gl-js/pull/8074)
569
- - Fixed a bug where adding a fill extrusion layer for non-polygon layers would lead to visual artifacts. [#7685](https://github.com/mapbox/mapbox-gl-js/pull/7685)
570
- - Fixed intermittent Flow failures on CI. [#8061](https://github.com/mapbox/mapbox-gl-js/pull/8061)
571
- - Fixed a bug where calling `Map#removeFeatureState` does not remove the state from some tile zooms [#8087](https://github.com/mapbox/mapbox-gl-js/pull/8087)
572
- - Fixed a bug where `removeFeatureState` didn't work on features with `id` equal to `0`. [#8150](https://github.com/mapbox/mapbox-gl-js/pull/8150) (h/t [jutaz](https://github.com/jutaz))
573
-
574
- ## 0.53.1
575
-
576
- ### Bug fixes
577
- * Turn off telemetry for Mapbox Atlas ([#7945](https://github.com/mapbox/mapbox-gl-js/pull/7945))
578
- * Fix order of 3D features in query results (fix #7883) ([#7953](https://github.com/mapbox/mapbox-gl-js/pull/7953))
579
- * Fix RemovePaintState benchmarks ([#7930](https://github.com/mapbox/mapbox-gl-js/pull/7930))
580
-
581
- ## 0.53.0
582
-
583
- ### Features and improvements
584
- * Enable `fill-extrusion` querying with ray picking ([#7499](https://github.com/mapbox/mapbox-gl-js/pull/7499))
585
- * Add `clusterProperties` option for aggregated cluster properties ([#2412](https://github.com/mapbox/mapbox-gl-js/issues/2412), fixed by [#7584](https://github.com/mapbox/mapbox-gl-js/pull/7584))
586
- * Allow initial map bounds to be adjusted with `fitBounds` options. ([#7681](https://github.com/mapbox/mapbox-gl-js/pull/7681)) (h/t [elyobo](https://github.com/elyobo))
587
- * Remove popups on `Map#remove` ([#7749](https://github.com/mapbox/mapbox-gl-js/pull/7749)) (h/t [andycalder](https://github.com/andycalder))
588
- * Add `Map#removeFeatureState` ([#7761](https://github.com/mapbox/mapbox-gl-js/pull/7761))
589
- * Add `number-format` expression ([#7626](https://github.com/mapbox/mapbox-gl-js/pull/7626))
590
- * Add `symbol-sort-key` style property ([#7678](https://github.com/mapbox/mapbox-gl-js/pull/7678))
591
-
592
- ### Bug fixes
593
- * Upgrades Earcut to fix a rare bug in rendering polygons that contain a coincident chain of holes ([#7806](https://github.com/mapbox/mapbox-gl-js/issues/7806), fixed by [#7878](https://github.com/mapbox/mapbox-gl-js/pull/7878))
594
- * Allow `file://` protocol in XHR requests for Cordova/Ionic/etc ([#7818](https://github.com/mapbox/mapbox-gl-js/pull/7818))
595
- * Correctly handle WebP images in Edge 18 ([#7687](https://github.com/mapbox/mapbox-gl-js/pull/7687))
596
- * Fix bug which mistakenly requested WebP images in browsers that do not support WebP (#7817) ([#7819](https://github.com/mapbox/mapbox-gl-js/pull/7819))
597
- * Fix images not being aborted when dequeued ([#7655](https://github.com/mapbox/mapbox-gl-js/pull/7655))
598
- * Fix DEM layer memory leak ([#7690](https://github.com/mapbox/mapbox-gl-js/issues/7690), fixed by [#7691](https://github.com/mapbox/mapbox-gl-js/pull/7691))
599
- * Set correct color state before rendering custom layer ([#7711](https://github.com/mapbox/mapbox-gl-js/pull/7711))
600
- * Set `LngLat.toBounds()` default radius to 0 ([#7722](https://github.com/mapbox/mapbox-gl-js/issues/7722), fixed by [#7723](https://github.com/mapbox/mapbox-gl-js/pull/7723)) (h/t [cherniavskii](https://github.com/cherniavskii))
601
- * Fix race condition in `feature-state` dependent layers ([#7523](https://github.com/mapbox/mapbox-gl-js/issues/7523), fixed by [#7790](https://github.com/mapbox/mapbox-gl-js/pull/7790))
602
- * Prevent `map.repaint` from mistakenly enabling continuous repaints ([#7667](https://github.com/mapbox/mapbox-gl-js/pull/7667))
603
- * Prevent map shaking while zooming in on raster tiles ([#7426](https://github.com/mapbox/mapbox-gl-js/pull/7426))
604
- * Fix query point translation for multi-point geometry ([#6833](https://github.com/mapbox/mapbox-gl-js/issues/6833), fixed by [#7581](https://github.com/mapbox/mapbox-gl-js/pull/7581))
605
-
606
- ## 0.52.0
607
-
608
- ### Breaking changes
609
- * Canonicalize tile urls to `mapbox://` urls so they can be transformed with `config.API_URL` ([#7594](https://github.com/mapbox/mapbox-gl-js/pull/7594))
610
-
611
- ### Features and improvements
612
- * Add getter and setter for `config.API_URL` ([#7594](https://github.com/mapbox/mapbox-gl-js/pull/7594))
613
- * Allow user to define element other than map container for full screen control ([#7548](https://github.com/mapbox/mapbox-gl-js/pull/7548))
614
- * Add validation option to style setters ([#7604](https://github.com/mapbox/mapbox-gl-js/pull/7604))
615
- * Add 'idle' event: fires when no further rendering is expected without further interaction. ([#7625](https://github.com/mapbox/mapbox-gl-js/pull/7625))
616
-
617
- ### Bug fixes
618
- * Fire error when map.getLayoutProperty references missing layer ([#7537](https://github.com/mapbox/mapbox-gl-js/issues/7537), fixed by [#7539](https://github.com/mapbox/mapbox-gl-js/pull/7539))
619
- * Fix shaky sprites when zooming with scrolling ([#7558](https://github.com/mapbox/mapbox-gl-js/pull/7558))
620
- * Fix layout problems in attribution control ([#7608](https://github.com/mapbox/mapbox-gl-js/pull/7608)) (h/t [lucaswoj](https://github.com/lucaswoj))
621
- * Fixes resetting map's pitch to 0 if initial bounds is set ([#7617](https://github.com/mapbox/mapbox-gl-js/pull/7617)) (h/t [stepankuzmin](https://github.com/stepankuzmin))
622
- * Fix occasional failure to load images after multiple image request abortions [#7641](https://github.com/mapbox/mapbox-gl-js/pull/7641)
623
- * Update repo url to correct one ([#7486](https://github.com/mapbox/mapbox-gl-js/pull/7486)) (h/t [nicholas-l](https://github.com/nicholas-l))
624
- * Fix bug where symbols where sometimes not rendered immediately ([#7610](https://github.com/mapbox/mapbox-gl-js/pull/7610))
625
- * Fix bug where cameraForBounds returns incorrect CameraOptions with asymmetrical padding/offset ([#7517](https://github.com/mapbox/mapbox-gl-js/issues/7517), fixed by [#7518](https://github.com/mapbox/mapbox-gl-js/pull/7518)) (h/t [mike-marcacci](https://github.com/mike-marcacci))
626
- * Use diff+patch approach to map.setStyle when the parameter is a URL ([#4025](https://github.com/mapbox/mapbox-gl-js/issues/4025), fixed by [#7562](https://github.com/mapbox/mapbox-gl-js/pull/7562))
627
- * Begin touch zoom immediately when rotation disabled ([#7582](https://github.com/mapbox/mapbox-gl-js/pull/7582)) (h/t [msbarry](https://github.com/msbarry))
628
- * Fix symbol rendering under opaque fill layers ([#7612](https://github.com/mapbox/mapbox-gl-js/pull/7612))
629
- * Fix shaking by aligning raster sources to pixel grid only when map is idle ([7426](https://github.com/mapbox/mapbox-gl-js/pull/7426))
630
- * Fix raster layers in Edge 18 by disabling it's incomplete WebP support ([7687](https://github.com/mapbox/mapbox-gl-js/pull/7687))
631
- * Fix memory leak in hillshade layer ([7691](https://github.com/mapbox/mapbox-gl-js/pull/7691))
632
- * Fix disappearing custom layers ([7711](https://github.com/mapbox/mapbox-gl-js/pull/7711))
633
-
634
- ## 0.51.0
635
- November 7, 2018
636
-
637
- ### ✨ Features and improvements
638
- * Add initial bounds as map constructor option ([#5518](https://github.com/mapbox/mapbox-gl-js/pull/5518)) (h/t [stepankuzmin](https://github.com/stepankuzmin))
639
- * Improve performance on machines with > 8 cores ([#7407](https://github.com/mapbox/mapbox-gl-js/issues/7407), fixed by [#7430](https://github.com/mapbox/mapbox-gl-js/pull/7430))
640
- * Add `MercatorCoordinate` type ([#7488](https://github.com/mapbox/mapbox-gl-js/pull/7488))
641
- * Allow browser-native `contextmenu` to be enabled ([#2301](https://github.com/mapbox/mapbox-gl-js/issues/2301), fixed by [#7369](https://github.com/mapbox/mapbox-gl-js/pull/7369))
642
- * Add an unminified production build to the NPM package ([#7403](https://github.com/mapbox/mapbox-gl-js/pull/7403))
643
- * Add support for `LngLat` conversion from `{lat, lon}` ([#7507](https://github.com/mapbox/mapbox-gl-js/pull/7507)) (h/t [bfrengley](https://github.com/bfrengley))
644
- * Add tooltips for navigation controls ([#7373](https://github.com/mapbox/mapbox-gl-js/pull/7373))
645
- * Show attribution only for used sources ([#7384](https://github.com/mapbox/mapbox-gl-js/pull/7384))
646
- * Add telemetry event to log map loads ([#7431](https://github.com/mapbox/mapbox-gl-js/pull/7431))
647
- * **Tighten style validation**
648
- * Disallow expressions as stop values ([#7396](https://github.com/mapbox/mapbox-gl-js/pull/7396))
649
- * Disallow `feature-state` expressions in filters ([#7366](https://github.com/mapbox/mapbox-gl-js/pull/7366))
650
-
651
- ### 🐛 Bug fixes
652
- * Fix for GeoJSON geometries not working when coincident with tile boundaries([#7436](https://github.com/mapbox/mapbox-gl-js/issues/7436), fixed by [#7448](https://github.com/mapbox/mapbox-gl-js/pull/7448))
653
- * Fix depth buffer-related rendering issues on some Android devices. ([#7471](https://github.com/mapbox/mapbox-gl-js/pull/7471))
654
- * Fix positioning of compact attribution strings ([#7444](https://github.com/mapbox/mapbox-gl-js/pull/7444), [#7445](https://github.com/mapbox/mapbox-gl-js/pull/7445), and [#7391](https://github.com/mapbox/mapbox-gl-js/pull/7391))
655
- * Fix an issue with removing markers in mouse event callbacks ([#7442](https://github.com/mapbox/mapbox-gl-js/pull/7442)) (h/t [vbud](https://github.com/vbud))
656
- * Remove controls before destroying a map ([#7479](https://github.com/mapbox/mapbox-gl-js/pull/7479))
657
- * Fix display of Scale control values < 1 ([#7469](https://github.com/mapbox/mapbox-gl-js/pull/7469)) (h/t [MichaelHedman](https://github.com/MichaelHedman))
658
- * Fix an error when using location `hash` within iframes in IE11 ([#7411](https://github.com/mapbox/mapbox-gl-js/pull/7411))
659
- * Fix depth mode usage in custom layers ([#7432](https://github.com/mapbox/mapbox-gl-js/pull/7432)) (h/t [markusjohnsson](https://github.com/markusjohnsson))
660
- * Fix an issue with shaky sprite images during scroll zooms ([#7558](https://github.com/mapbox/mapbox-gl-js/pull/7558))
661
-
662
-
663
- ## 0.50.0
664
- October 10, 2018
665
-
666
- ### ✨ Features and improvements
667
- * 🎉 Add Custom Layers that can be rendered into with user-provided WebGL code ([#7039](https://github.com/mapbox/mapbox-gl-js/pull/7039))
668
- * Add WebGL face culling for increased performance ([#7178](https://github.com/mapbox/mapbox-gl-js/pull/7178))
669
- * Improve speed of expression evaluation ([#7334](https://github.com/mapbox/mapbox-gl-js/pull/7334))
670
- * Automatically coerce to string for `concat` expression and `text-field` property ([#6190](https://github.com/mapbox/mapbox-gl-js/issues/6190), fixed by [#7280](https://github.com/mapbox/mapbox-gl-js/pull/7280))
671
- * Add `fill-extrusion-vertical-gradient` property for controlling shading of fill extrusions ([#5768](https://github.com/mapbox/mapbox-gl-js/issues/5768), fixed by [#6841](https://github.com/mapbox/mapbox-gl-js/pull/6841))
672
- * Add update functionality for images provided via `ImageSource` ([#4050](https://github.com/mapbox/mapbox-gl-js/issues/4050), fixed by [#7342](https://github.com/mapbox/mapbox-gl-js/pull/7342)) (h/t [dcervelli](https://github.com/dcervelli))
673
-
674
-
675
-
676
- ### 🐛 Bug fixes
677
- * **Expressions**
678
- * Fix expressions that use `log2` and `log10` in IE11 ([#7318](https://github.com/mapbox/mapbox-gl-js/issues/7318), fixed by [#7320](https://github.com/mapbox/mapbox-gl-js/pull/7320))
679
- * Fix `let` expression stripping expected type during parsing ([#7300](https://github.com/mapbox/mapbox-gl-js/issues/7300), fixed by [#7301](https://github.com/mapbox/mapbox-gl-js/pull/7301))
680
- * Fix superfluous wrapping of literals in `literal` expression ([#7336](https://github.com/mapbox/mapbox-gl-js/issues/7336), fixed by [#7337](https://github.com/mapbox/mapbox-gl-js/pull/7337))
681
- * Allow calling `to-color` on values that are already of type `Color` ([#7260](https://github.com/mapbox/mapbox-gl-js/pull/7260))
682
- * Fix `to-array` for empty arrays (([#7261](https://github.com/mapbox/mapbox-gl-js/pull/7261)))
683
- * Fix identity functions for `text-field` when using formatted text ([#7351](https://github.com/mapbox/mapbox-gl-js/pull/7351))
684
- * Fix coercion of `null` to `0` in `to-number` expression ([#7083](https://github.com/mapbox/mapbox-gl-js/issues/7083), fixed by [#7274](https://github.com/mapbox/mapbox-gl-js/pull/7274))
685
- * **Canvas source**
686
- * Fix missing repeats of `CanvasSource` when it crosses the antimeridian ([#7273](https://github.com/mapbox/mapbox-gl-js/pull/7273))
687
- * Fix `CanvasSource` not respecting alpha values set on `canvas` element ([#7302](https://github.com/mapbox/mapbox-gl-js/issues/7302), fixed by [#7309](https://github.com/mapbox/mapbox-gl-js/pull/7309))
688
- * **Rendering**
689
- * Fix rendering of fill extrusions with really high heights ([#7292](https://github.com/mapbox/mapbox-gl-js/pull/7292))
690
- * Fix an error where the map state wouldn't return to `loaded` after certain runtime styling changes when there were errored tiles in the viewport ([#7355](https://github.com/mapbox/mapbox-gl-js/pull/7355))
691
- * Fix errors when rendering symbol layers without symbols ([#7241](https://github.com/mapbox/mapbox-gl-js/issues/7241), fixed by [#7253](https://github.com/mapbox/mapbox-gl-js/pull/7253))
692
- * Don't fade in symbols with `*-allow-overlap: true` when panning into the viewport ([#7172](https://github.com/mapbox/mapbox-gl-js/issues/7172), fixed by[#7244](https://github.com/mapbox/mapbox-gl-js/pull/7244))
693
- * **Library**
694
- * Fix disambiguation for `mouseover` event ([#7295](https://github.com/mapbox/mapbox-gl-js/issues/7295), fixed by [#7299](https://github.com/mapbox/mapbox-gl-js/pull/7299))
695
- * Fix silent failure of `getImage` if an SVG is requested ([#7312](https://github.com/mapbox/mapbox-gl-js/issues/7312), fixed by [#7313](https://github.com/mapbox/mapbox-gl-js/pull/7313))
696
- * Fix empty control group box shadow ([#7303](https://github.com/mapbox/mapbox-gl-js/issues/7303), fixed by [#7304](https://github.com/mapbox/mapbox-gl-js/pull/7304)) (h/t [Duder-onomy](https://github.com/Duder-onomy))
697
- * Fixed an issue where a wrong timestamp was sent for Mapbox turnstile events ([#7381](https://github.com/mapbox/mapbox-gl-js/pull/7381))
698
- * Fixed a bug that lead to attribution not showing up correctly in Internet Explorer ([#3945](https://github.com/mapbox/mapbox-gl-js/issues/3945), fixed by [#7391](https://github.com/mapbox/mapbox-gl-js/pull/7391))
699
-
700
-
701
- ## 0.49.0
702
- September 6, 2018
703
-
704
- ### ⚠️ Breaking changes
705
- * Use `client{Height/Width}` instead of `offset{Height/Width}` for map canvas sizing ([#6848](https://github.com/mapbox/mapbox-gl-js/issues/6848), fixed by [#7128](https://github.com/mapbox/mapbox-gl-js/pull/7128))
706
-
707
- ### 🐛 Bug fixes
708
- * Fix [Top Issues list](https://mapbox.github.io/top-issues/#!mapbox/mapbox-gl-js) for mapbox-gl-js ([#7108](https://github.com/mapbox/mapbox-gl-js/issues/7108), fixed by [#7112](https://github.com/mapbox/mapbox-gl-js/pull/7112))
709
- * Fix bug in which symbols with `icon-allow-overlap: true, text-allow-overlap: true, text-optional: false` would show icons when they shouldn't ([#7041](https://github.com/mapbox/mapbox-gl-js/pull/7041))
710
- * Fix bug where the map would not stop at the exact zoom level requested by Map#FlyTo (#7222) ([#7223](https://github.com/mapbox/mapbox-gl-js/pull/7223)) (h/t [benoitbzl](https://github.com/benoitbzl))
711
- * Keep map centered on the center point of a multi-touch gesture when zooming (#6722) ([#7191](https://github.com/mapbox/mapbox-gl-js/pull/7191)) (h/t [pakastin](https://github.com/pakastin))
712
- * Update the style-spec's old `gl-style-migrate` script to include conversion of legacy functions and filters to their expression equivalents ([#6927](https://github.com/mapbox/mapbox-gl-js/issues/6927), fixed by [#7095](https://github.com/mapbox/mapbox-gl-js/pull/7095))
713
- * Fix `icon-size` for small data-driven values ([#7125](https://github.com/mapbox/mapbox-gl-js/pull/7125))
714
- * Fix bug in the way AJAX requests load local files on iOS web view ([#6610](https://github.com/mapbox/mapbox-gl-js/pull/6610)) (h/t [oscarfonts](https://github.com/oscarfonts))
715
- * Fix bug in which canvas sources would not render in world wrapped tiles at the edge of the viewport ([#7271]https://github.com/mapbox/mapbox-gl-js/issues/7271), fixed by [#7273](https://github.com/mapbox/mapbox-gl-js/pull/7273))
716
-
717
- ### ✨ Features and improvements
718
- * Performance updates:
719
- * Improve time to first render by updating how feature ID maps are transferred to the main thread ([#7110](https://github.com/mapbox/mapbox-gl-js/issues/7110), fixed by [#7132](https://github.com/mapbox/mapbox-gl-js/pull/7132))
720
- * Reduce size of JSON transmitted from worker thread to main thread ([#7124](https://github.com/mapbox/mapbox-gl-js/pull/7124))
721
- * Improve image/glyph atlas packing algorithm ([#7171](https://github.com/mapbox/mapbox-gl-js/pull/7171))
722
- * Use murmur hash on symbol instance keys to reduce worker transfer costs ([#7127](https://github.com/mapbox/mapbox-gl-js/pull/7127))
723
- * Add GL state management for uniforms ([#6018](https://github.com/mapbox/mapbox-gl-js/pull/6018))
724
- * Add `symbol-z-order` symbol layout property to style spec ([#7219](https://github.com/mapbox/mapbox-gl-js/pull/7219))
725
- * Implement data-driven styling support for `*-pattern properties` ([#6289](https://github.com/mapbox/mapbox-gl-js/pull/6289))
726
- * Add `Map#fitScreenCoordinates` which fits viewport to two points, similar to `Map#fitBounds` but uses screen coordinates and supports non-zero map bearings ([#6894](https://github.com/mapbox/mapbox-gl-js/pull/6894))
727
- * Re-implement LAB/HSL color space interpolation for expressions ([#5326](https://github.com/mapbox/mapbox-gl-js/issues/5326), fixed by [#7123](https://github.com/mapbox/mapbox-gl-js/pull/7123))
728
- * Enable benchmark testing for Mapbox styles ([#7047](https://github.com/mapbox/mapbox-gl-js/pull/7047))
729
- * Allow `Map#setFeatureState` and `Map#getFeatureState` to accept numeric IDs ([#7106](https://github.com/mapbox/mapbox-gl-js/pull/7106)) (h/t [bfrengley](https://github.com/bfrengley))
730
-
731
- ## 0.48.0
732
- August 16, 2018
733
-
734
- ### ⚠️ Breaking changes
735
- * Treat tiles that error with status 404 as empty renderable tiles to prevent rendering duplicate features in some sparse tilesets ([#6803](https://github.com/mapbox/mapbox-gl-js/pull/6803))
736
-
737
- ### 🐛 Bug fixes
738
- * Fix issue where `text-max-angle` property was being calculated incorrectly internally, causing potential rendering errors when `"symbol-placement": line`
739
- * Require `feature.id` when using `Map#setFeatureState` ([#6974](https://github.com/mapbox/mapbox-gl-js/pull/6974))
740
- * Fix issue with removing the `GeolocateControl` when user location is being used ([#6977](https://github.com/mapbox/mapbox-gl-js/pull/6977)) (h/t [sergei-zelinsky](https://github.com/sergei-zelinsky))
741
- * Fix memory leak caused by a failure to remove all controls added to the map ([#7042](https://github.com/mapbox/mapbox-gl-js/pull/7042))
742
- * Fix bug where the build would fail when using mapbox-gl webpack 2 and UglifyJSPlugin ([#4359](https://github.com/mapbox/mapbox-gl-js/issues/4359), fixed by [#6956](https://api.github.com/repos/mapbox/mapbox-gl-js/pulls/6956))
743
- * Fix bug where fitBounds called with coordinates outside the bounds of Web Mercator resulted in uncaught error ([#6906](https://github.com/mapbox/mapbox-gl-js/issues/6906), fixed by [#6918](https://api.github.com/repos/mapbox/mapbox-gl-js/pulls/6918))
744
- * Fix bug wherein `Map#querySourceFeatures` was returning bad results on zooms > maxZoom ([#7061](https://github.com/mapbox/mapbox-gl-js/pull/7061))
745
- * Relax typing for equality and order expressions ([#6459](https://github.com/mapbox/mapbox-gl-js/issues/6459), fixed by [#6961](https://api.github.com/repos/mapbox/mapbox-gl-js/pulls/6961))
746
- * Fix bug where `queryPadding` for all layers in a source was set by the first layer, causing incorrect querying on other layers and, in some cases, incorrect firing of events associated with individual layers ([#6909](https://github.com/mapbox/mapbox-gl-js/pull/6909))
747
-
748
- ### ✨ Features and improvements
749
-
750
- * Performance Improvements:
751
- * Stop unnecessary serialization of symbol source features. ([#7013](https://github.com/mapbox/mapbox-gl-js/pull/7013))
752
- * Optimize calculation for getting visible tile coordinates ([#6998](https://github.com/mapbox/mapbox-gl-js/pull/6998))
753
- * Improve performance of creating `{Glyph/Image}Atlas`es ([#7091](https://github.com/mapbox/mapbox-gl-js/pull/7091))
754
- * Optimize and simplify tile retention logic ([#6995](https://github.com/mapbox/mapbox-gl-js/pull/6995))
755
- * Add a user turnstile event for users accessing Mapbox APIs ([#6980](https://github.com/mapbox/mapbox-gl-js/pull/6980))
756
- * Add support for autogenerating feature ids for GeoJSON sources so they can be used more easily with the `Map#setFeatureState` API ([#7043](https://www.github.com/mapbox/mapbox-gl-js/pull/7043))) ([#7091](https://github.com/mapbox/mapbox-gl-js/pull/7091))
757
- * Add ability to style symbol layers labels with multiple fonts and text sizes via `"format"` expression ([#6994](https://www.github.com/mapbox/mapbox-gl-js/pull/6994))
758
- * Add customAttribution option to AttributionControl ([#7033](https://github.com/mapbox/mapbox-gl-js/pull/7033)) (h/t [mklopets](https://github.com/mklopets))
759
- * Publish Flow type definitions alongside compiled bundle ([#7079](https://api.github.com/repos/mapbox/mapbox-gl-js/pulls/7079))
760
- * Introduce symbol cross fading when crossing integer zoom levels to prevent labels from disappearing before newly loaded tiles' labels can be rendered ([#6951](https://github.com/mapbox/mapbox-gl-js/pull/6951))
761
- * Improvements in label collision detection ([#6925](https://api.github.com/repos/mapbox/mapbox-gl-js/pulls/6925)))
762
-
763
- ## 0.47.0
764
-
765
- ### ✨ Features and improvements
766
- * Add configurable drag pan threshold ([#6809](https://github.com/mapbox/mapbox-gl-js/pull/6809)) (h/t [msbarry](https://github.com/msbarry))
767
- * Add `raster-resampling` raster paint property ([#6411](https://github.com/mapbox/mapbox-gl-js/pull/6411)) (h/t [andrewharvey](https://github.com/andrewharvey))
768
- * Add `symbol-placement: line-center` ([#6821](https://github.com/mapbox/mapbox-gl-js/pull/6821))
769
- * Add methods for inspecting GeoJSON clusters ([#3318](https://github.com/mapbox/mapbox-gl-js/issues/3318), fixed by [#6829](https://github.com/mapbox/mapbox-gl-js/pull/6829))
770
- * Add warning to geolocate control when unsupported ([#6923](https://github.com/mapbox/mapbox-gl-js/pull/6923)) (h/t [aendrew](https://github.com/aendrew))
771
- * Upgrade geojson-vt to 3.1.4 ([#6942](https://github.com/mapbox/mapbox-gl-js/pull/6942))
772
- * Include link to license in compiled bundle ([#6975](https://github.com/mapbox/mapbox-gl-js/pull/6975))
773
-
774
- ### 🐛 Bug fixes
775
- * Use updateData instead of re-creating buffers for repopulated paint arrays ([#6853](https://github.com/mapbox/mapbox-gl-js/pull/6853))
776
- * Fix ScrollZoom handler setting tr.zoom = NaN ([#6924](https://github.com/mapbox/mapbox-gl-js/pull/6924))
777
- - Failed to invert matrix error ([#6486](https://github.com/mapbox/mapbox-gl-js/issues/6486), fixed by [#6924](https://github.com/mapbox/mapbox-gl-js/pull/6924))
778
- - Fixing matrix errors ([#6782](https://github.com/mapbox/mapbox-gl-js/issues/6782), fixed by [#6924](https://github.com/mapbox/mapbox-gl-js/pull/6924))
779
- * Fix heatmap tile clipping when layers are ordered above it ([#6806](https://github.com/mapbox/mapbox-gl-js/issues/6806), fixed by [#6807](https://github.com/mapbox/mapbox-gl-js/pull/6807))
780
- * Fix video source in safari (macOS and iOS) ([#6443](https://github.com/mapbox/mapbox-gl-js/issues/6443), fixed by [#6811](https://github.com/mapbox/mapbox-gl-js/pull/6811))
781
- * Do not reload errored tiles ([#6813](https://github.com/mapbox/mapbox-gl-js/pull/6813))
782
- * Fix send / remove timing bug in Dispatcher ([#6756](https://github.com/mapbox/mapbox-gl-js/pull/6756), fixed by [#6826](https://github.com/mapbox/mapbox-gl-js/pull/6826))
783
- * Fix flyTo not zooming to exact given zoom ([#6828](https://github.com/mapbox/mapbox-gl-js/pull/6828))
784
- * Don't stop animation on map resize ([#6636](https://github.com/mapbox/mapbox-gl-js/pull/6636))
785
- * Fix map.getBounds() with rotated map ([#6875](https://github.com/mapbox/mapbox-gl-js/pull/6875)) (h/t [zoltan-mihalyi](https://github.com/zoltan-mihalyi))
786
- * Support collators in feature filter expressions. ([#6929](https://github.com/mapbox/mapbox-gl-js/pull/6929))
787
- * Fix Webpack production mode compatibility ([#6981](https://github.com/mapbox/mapbox-gl-js/pull/6981))
788
-
789
- ## 0.46.0
790
-
791
- ### ⚠️ Breaking changes
792
-
793
- * Align implicit type casting behavior of `match` expressions with with `case/==` ([#6684](https://github.com/mapbox/mapbox-gl-js/pull/6684))
794
-
795
- ### ✨ Features and improvements
796
-
797
- * :tada: Add `Map#setFeatureState` and `feature-state` expression to support interactive styling ([#6263](https://github.com/mapbox/mapbox-gl-js/pull/6263))
798
- * Create draggable `Marker` with `setDraggable` ([#6687](https://github.com/mapbox/mapbox-gl-js/pull/6687))
799
- * Add `Map#listImages` for listing all currently active sprites/images ([#6381](https://github.com/mapbox/mapbox-gl-js/issues/6381))
800
- * Add "crossSourceCollisions" option to disable cross-source collision detection ([#6566](https://github.com/mapbox/mapbox-gl-js/pull/6566))
801
- * Handle `text/icon-rotate` for symbols with `symbol-placement: point` ([#6075](https://github.com/mapbox/mapbox-gl-js/issues/6075))
802
- * Automatically compact Mapbox wordmark on narrow maps. ([#4282](https://github.com/mapbox/mapbox-gl-js/issues/4282)) (h/t [andrewharvey](https://github.com/andrewharvey))
803
- * Only show compacted AttributionControl on interactive displays ([#6506](https://github.com/mapbox/mapbox-gl-js/pull/6506)) (h/t [andrewharvey](https://github.com/andrewharvey))
804
- * Use postcss to inline svg files into css, reduce size of mapbox-gl.css ([#6513](https://github.com/mapbox/mapbox-gl-js/pull/6513)) (h/t [andrewharvey](https://github.com/andrewharvey))
805
- * Add support for GeoJSON attribution ([#6364](https://github.com/mapbox/mapbox-gl-js/pull/6364)) (h/t [andrewharvey](https://github.com/andrewharvey))
806
- * Add instructions for running individual unit and render tests ([#6686](https://github.com/mapbox/mapbox-gl-js/pull/6686))
807
- * Make Map constructor fail if WebGL init fails. ([#6744](https://github.com/mapbox/mapbox-gl-js/pull/6744)) (h/t [uforic](https://github.com/uforic))
808
- * Add browser fallback code for `collectResourceTiming: true` in web workers ([#6721](https://github.com/mapbox/mapbox-gl-js/pull/6721))
809
- * Remove ignored usage of gl.lineWidth ([#5541](https://github.com/mapbox/mapbox-gl-js/pull/5541))
810
- * Split new bounds calculation out of fitBounds into new method ([#6683](https://github.com/mapbox/mapbox-gl-js/pull/6683))
811
- * Allow integration tests to be organized in an arbitrarily deep directory structure ([#3920](https://github.com/mapbox/mapbox-gl-js/issues/3920))
812
- * Make "Missing Mapbox GL JS CSS" a console warning ([#5786](https://github.com/mapbox/mapbox-gl-js/issues/5786))
813
- * Add rel="noopener" to Mapbox attribution link. ([#6729](https://github.com/mapbox/mapbox-gl-js/pull/6729)) (h/t [gorbypark](https://github.com/gorbypark))
814
- * Update to deep equality check in example code ([#6599](https://github.com/mapbox/mapbox-gl-js/pull/6599)) (h/t [jonsadka](https://github.com/jonsadka))
815
- * Upgrades!
816
- - Upgrade ESM dependency to ^3.0.39 ([#6750](https://github.com/mapbox/mapbox-gl-js/pull/6750))
817
- - Ditch gl-matrix fork in favor of the original package ([#6751](https://github.com/mapbox/mapbox-gl-js/pull/6751))
818
- - Update to latest sinon ([#6771](https://github.com/mapbox/mapbox-gl-js/pull/6771))
819
- - Upgrade to Flow 0.69 ([#6594](https://github.com/mapbox/mapbox-gl-js/pull/6594))
820
- - Update to mapbox-gl-supported 1.4.0 ([#6773](https://github.com/mapbox/mapbox-gl-js/pull/6773))
821
-
822
- ### 🐛 Bug fixes
823
-
824
- * `collectResourceTiming: true` generates error on iOS9 Safari, IE 11 ([#6690](https://github.com/mapbox/mapbox-gl-js/issues/6690))
825
- * Fix PopupOptions flow type declarations ([#6670](https://github.com/mapbox/mapbox-gl-js/pull/6670)) (h/t [TimPetricola](https://github.com/TimPetricola))
826
- * Add className option to Popup constructor ([#6502](https://github.com/mapbox/mapbox-gl-js/pull/6502)) (h/t [Ashot-KR](https://github.com/Ashot-KR))
827
- * GeoJSON MultiLineStrings with `lineMetrics=true` only rendered first line ([#6649](https://github.com/mapbox/mapbox-gl-js/issues/6649))
828
- * Provide target property for mouseenter/over/leave/out events ([#6623](https://github.com/mapbox/mapbox-gl-js/issues/6623))
829
- * Don't break on sources whose name contains "." ([#6660](https://github.com/mapbox/mapbox-gl-js/issues/6660))
830
- * Rotate and pitch with navigationControl broke in v0.45 ([#6650](https://github.com/mapbox/mapbox-gl-js/issues/6650))
831
- * Zero-width lines remained visible ([#6769](https://github.com/mapbox/mapbox-gl-js/pull/6769))
832
- * Heatmaps inappropriately clipped at tile boundaries ([#6806](https://github.com/mapbox/mapbox-gl-js/issues/6806))
833
- * Use named exports for style-spec entrypoint module ([#6601](https://github.com/mapbox/mapbox-gl-js/issues/6601)
834
- * Don't fire click event if default is prevented on mousedown for a drag event ([#6697](https://github.com/mapbox/mapbox-gl-js/pull/6697), fixes [#6642](https://github.com/mapbox/mapbox-gl-js/issues/6642))
835
- * Double clicking to zoom in breaks map dragging/panning in Edge ([#6740](https://github.com/mapbox/mapbox-gl-js/issues/6740)) (h/t [GUI](https://github.com/GUI))
836
- * \*-transition properties cannot be set with setPaintProperty() ([#6706](https://github.com/mapbox/mapbox-gl-js/issues/6706))
837
- * Marker with `a` element does not open the url when clicked ([#6730](https://github.com/mapbox/mapbox-gl-js/issues/6730))
838
- * `setRTLTextPlugin` fails with relative URLs ([#6719](https://github.com/mapbox/mapbox-gl-js/issues/6719))
839
- * Collision detection incorrect for symbol layers that share the same layout properties ([#6548](https://github.com/mapbox/mapbox-gl-js/pull/6548))
840
- * Fix a possible crash when calling queryRenderedFeatures after querySourceFeatures
841
- ([#6559](https://github.com/mapbox/mapbox-gl-js/pull/6559))
842
- * Fix a collision detection issue that could cause labels to temporarily be placed too densely during rapid panning ([#5654](https://github.com/mapbox/mapbox-gl-js/issues/5654))
843
-
844
- ## 0.45.0
845
-
846
- ### ⚠️ Breaking changes
847
-
848
- * `Evented#fire` and `Evented#listens` are now marked as private. Though `Evented` is still exported, and `fire` and `listens` are still functional, we encourage you to seek alternatives; a future version may remove their API accessibility or change its behavior. If you are writing a class that needs event emitting functionality, consider using [`EventEmitter`](https://nodejs.org/api/events.html#events_class_eventemitter) or similar libraries instead.
849
- * The `"to-string"` expression operator now converts `null` to an empty string rather than to `"null"`. [#6534](https://github.com/mapbox/mapbox-gl-js/pull/6534)
850
-
851
- ### ✨ Features and improvements
852
-
853
- * :rainbow: Add `line-gradient` property [#6303](https://github.com/mapbox/mapbox-gl-js/pull/6303)
854
- * Add `abs`, `round`, `floor`, and `ceil` expression operators [#6496](https://github.com/mapbox/mapbox-gl-js/pull/6496)
855
- * Add `collator` expression for controlling case and diacritic sensitivity in string comparisons [#6270](https://github.com/mapbox/mapbox-gl-js/pull/6270)
856
- - Rename `caseSensitive` and `diacriticSensitive` expressions to `case-sensitive` and `diacritic-sensitive` for consistency [#6598](https://github.com/mapbox/mapbox-gl-js/pull/6598)
857
- - Prevent `collator` expressions for evaluating as constant to account for potential environment-specific differences in expression evaluation [#6596](https://github.com/mapbox/mapbox-gl-js/pull/6596)
858
- * Add CSS linting to test suite (h/t @jasonbarry) [#6071](https://github.com/mapbox/mapbox-gl-js/pull/6071)
859
- * Add support for configurable maxzoom in `raster-dem` tilesets [#6103](https://github.com/mapbox/mapbox-gl-js/pull/6103)
860
- * Add `Map#isZooming` and `Map#isRotating` methods [#6128](https://github.com/mapbox/mapbox-gl-js/pull/6128), [#6183](https://github.com/mapbox/mapbox-gl-js/pull/6183)
861
- * Add support for Mapzen Terrarium tiles in `raster-dem` sources [#6110](https://github.com/mapbox/mapbox-gl-js/pull/6110)
862
- * Add `preventDefault` method on `mousedown`, `touchstart`, and `dblclick` events [#6218](https://github.com/mapbox/mapbox-gl-js/pull/6218)
863
- * Add `originalEvent` property on `zoomend` and `moveend` for user-initiated scroll events (h/t @stepankuzmin) [#6175](https://github.com/mapbox/mapbox-gl-js/pull/6175)
864
- * Accept arguments of type `value` in [`"length"` expressions](https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-length) [#6244](https://github.com/mapbox/mapbox-gl-js/pull/6244)
865
- * Introduce `MapWheelEvent`[#6237](https://github.com/mapbox/mapbox-gl-js/pull/6237)
866
- * Add setter for `ScaleControl` units (h/t @ryanhamley) [#6138](https://github.com/mapbox/mapbox-gl-js/pull/6138), [#6274](https://github.com/mapbox/mapbox-gl-js/pull/6274)
867
- * Add `open` event for `Popup` [#6311](https://github.com/mapbox/mapbox-gl-js/pull/6311)
868
- * Explicit `"object"` type assertions are no longer required when using expressions [#6235](https://github.com/mapbox/mapbox-gl-js/pull/6235)
869
- * Add `anchor` option to `Marker` [#6350](https://github.com/mapbox/mapbox-gl-js/pull/6350)
870
- * `HTMLElement` is now passed to `Marker` as part of the `options` object, but the old function signature is still supported for backwards compatibility [#6356](https://github.com/mapbox/mapbox-gl-js/pull/6356)
871
- * Add support for custom colors when using the default `Marker` SVG element (h/t @andrewharvey) [#6416](https://github.com/mapbox/mapbox-gl-js/pull/6416)
872
- * Allow `CanvasSource` initialization from `HTMLElement` [#6424](https://github.com/mapbox/mapbox-gl-js/pull/6424)
873
- * Add `is-supported-script` expression [6260](https://github.com/mapbox/mapbox-gl-js/pull/6260)
874
-
875
- ### 🐛 Bug fixes
876
-
877
- * Align `raster-dem` tiles to pixel grid to eliminate blurry rendering on some devices [#6059](https://github.com/mapbox/mapbox-gl-js/pull/6059)
878
- * Fix label collision circle debug drawing on overzoomed tiles [#6073](https://github.com/mapbox/mapbox-gl-js/pull/6073)
879
- * Improve error reporting for some failed requests [#6126](https://github.com/mapbox/mapbox-gl-js/pull/6126), [#6032](https://github.com/mapbox/mapbox-gl-js/pull/6032)
880
- * Fix several `Map#queryRenderedFeatures` bugs:
881
- - account for `{text, icon}-offset` when querying[#6135](https://github.com/mapbox/mapbox-gl-js/pull/6135)
882
- - correctly query features that extend across tile boundaries [#5756](https://github.com/mapbox/mapbox-gl-js/pull/6283)
883
- - fix querying of `circle` layer features with `-pitch-scaling: 'viewport'` or `-pitch-alignment: 'map'` [#6036](https://github.com/mapbox/mapbox-gl-js/pull/6036)
884
- - eliminate flicker effects when using query results to set a hover effect by switching from tile-based to viewport-based symbol querying [#6497](https://github.com/mapbox/mapbox-gl-js/pull/6497)
885
- * Preserve browser history state when updating the `Map` hash [#6140](https://github.com/mapbox/mapbox-gl-js/pull/6140)
886
- * Fix undefined behavior when `Map#addLayer` is invoked with an `id` of a preexisting layer [#6147](https://github.com/mapbox/mapbox-gl-js/pull/6147)
887
- * Fix bug where `icon-image` would not be rendered if `text-field` is an empty string [#6164](https://github.com/mapbox/mapbox-gl-js/pull/6164)
888
- * Ensure all camera methods fire `rotatestart` and `rotateend` events [#6187](https://github.com/mapbox/mapbox-gl-js/pull/6187)
889
- * Always hide duplicate labels [#6166](https://github.com/mapbox/mapbox-gl-js/pull/6166)
890
- * Fix `DragHandler` bugs where a left-button mouse click would end a right-button drag rotate and a drag gesture would not end if the control key is down on `mouseup` [#6193](https://github.com/mapbox/mapbox-gl-js/pull/6193)
891
- * Add support for calling `{DragPanHandler, DragRotateHandler}#disable` while a gesture is in progress [#6232](https://github.com/mapbox/mapbox-gl-js/pull/6232)
892
- * Fix `GeolocateControl` user location dot sizing when `Map`'s `<div>` inherits `box-sizing: border-box;` (h/t @andrewharvey) [#6227](https://github.com/mapbox/mapbox-gl-js/pull/6232)
893
- * Fix bug causing an off-by-one error in `array` expression error messages (h/t @drewbo) [#6269](https://github.com/mapbox/mapbox-gl-js/pull/6269)
894
- * Improve error message when an invalid access token triggers a 401 error [#6283](https://github.com/mapbox/mapbox-gl-js/pull/6283)
895
- * Fix bug where lines with `line-width` larger than the sprite height of the `line-pattern` property would render other sprite images [#6246](https://github.com/mapbox/mapbox-gl-js/pull/6246)
896
- * Fix broken touch events for `DragPanHandler` on mobile using Edge (note that zoom/rotate/pitch handlers still do not support Edge touch events [#1928](https://github.com/mapbox/mapbox-gl-js/pull/1928)) [#6325](https://github.com/mapbox/mapbox-gl-js/pull/6325)
897
- * Fix race condition in `VectorTileWorkerSource#reloadTile` causing a rendering timeout [#6308](https://github.com/mapbox/mapbox-gl-js/issues/6308)
898
- * Fix bug causing redundant `gl.stencilFunc` calls due to incorrect state checking (h/t @yangdonglai) [#6330](https://github.com/mapbox/mapbox-gl-js/pull/6330)
899
- * Fix bug where `mousedown` or `touchstart` would cancel camera animations in non-interactive maps [#6338](https://github.com/mapbox/mapbox-gl-js/pull/6338)
900
- * Fix bug causing a full-screen flicker when the map is pitched and a symbol layer uses non-zero `text-translate` [#6365](https://github.com/mapbox/mapbox-gl-js/issues/6365)
901
- * Fix bug in `to-rgba` expression causing division by zero [6388](https://github.com/mapbox/mapbox-gl-js/pull/6388)
902
- * Fix bug in cross-fading for `*-pattern` properties with non-integer zoom stops [#6430](https://github.com/mapbox/mapbox-gl-js/pull/6430)
903
- * Fix bug where calling `Map#remove` on a map with constructor option `hash: true` throws an error (h/t @allthesignals) [#6490](https://github.com/mapbox/mapbox-gl-js/pull/6497)
904
- * Fix bug causing flickering when panning across the anti-meridian [#6438](https://github.com/mapbox/mapbox-gl-js/pull/6438)
905
- * Fix error when using tiles of non-power-of-two size [#6444](https://github.com/mapbox/mapbox-gl-js/pull/6444)
906
- * Fix bug causing `Map#moveLayer(layerId, beforeId)` to remove the layer when `layerId === beforeId` [#6542](https://github.com/mapbox/mapbox-gl-js/pull/6542)
907
- - Fix Rollup build for style-spec module [6575](https://github.com/mapbox/mapbox-gl-js/pull/6575)
908
- - Fix bug causing `Map#querySourceFeatures` to throw an `Uncaught TypeError`(https://github.com/mapbox/mapbox-gl-js/pull/6555)
909
- - Fix issue where label collision detection was inaccurate for some symbol layers that shared layout properties with another layer [#6558](https://github.com/mapbox/mapbox-gl-js/pull/6558)
910
- - Restore `target` property for `mouse{enter,over,leave,out}` events [#6623](https://github.com/mapbox/mapbox-gl-js/pull/6623)
911
-
912
- ## 0.44.2
913
-
914
- ### 🐛 Bug fixes
915
-
916
- * Workaround a breaking change in Safari causing page to scroll/zoom in response to user actions intended to pan/zoom the map [#6095](https://github.com/mapbox/mapbox-gl-js/issues/6095). (N.B., not to be confused with the workaround from April 2017 dealing with the same breaking change in Chrome [#4259](https://github.com/mapbox/mapbox-gl-js/issues/6095). See also https://github.com/WICG/interventions/issues/18, https://bugs.webkit.org/show_bug.cgi?id=182521, https://bugs.chromium.org/p/chromium/issues/detail?id=639227 .)
917
-
918
- ## 0.44.1
919
-
920
- ### 🐛 Bug fixes
921
-
922
- * Fix bug causing features from symbol layers to be omitted from `map.queryRenderedFeatures()` [#6074](https://github.com/mapbox/mapbox-gl-js/issues/6074)
923
- * Fix error triggered by simultaneous scroll-zooming and drag-panning. [#6106](https://github.com/mapbox/mapbox-gl-js/issues/6106)
924
- * Fix bug wherein drag-panning failed to resume after a brief pause [#6063](https://github.com/mapbox/mapbox-gl-js/issues/6063)
925
-
926
- ## 0.44.0
927
-
928
- ### ✨ Features and improvements
929
-
930
- * The CSP policy of a page using mapbox-gl-js no longer needs to include `script-src 'unsafe-eval'` [#559](https://github.com/mapbox/mapbox-gl-js/issues/559)
931
- * Add `LngLatBounds#isEmpty()` method [#5917](https://github.com/mapbox/mapbox-gl-js/pull/5917)
932
- * Updated to flow 0.62.0 [#5923](https://github.com/mapbox/mapbox-gl-js/issues/5923)
933
- * Make compass and zoom controls optional ([#5348](https://github.com/mapbox/mapbox-gl-js/pull/5348)) (h/t @matijs)
934
- * Add `collectResourceTiming` option to the enable collection of [Resource Timing](https://developer.mozilla.org/en-US/docs/Web/API/Resource_Timing_API/Using_the_Resource_Timing_API) data for requests that are made from Web Workers. ([#5948](https://github.com/mapbox/mapbox-gl-js/issues/5948))
935
- * Improve user location dot appearance across browsers ([#5498](https://github.com/mapbox/mapbox-gl-js/pull/5498)) (h/t @jasonbarry)
936
-
937
- ### 🐛 Bug fixes
938
-
939
- * Fix error triggered by `==` and `!=` expressions [#5947](https://github.com/mapbox/mapbox-gl-js/issues/5947)
940
- * Image sources honor `renderWorldCopies` [#5932](https://github.com/mapbox/mapbox-gl-js/pull/5932)
941
- * Fix transitions to default fill-outline-color [#5953](https://github.com/mapbox/mapbox-gl-js/issues/5953)
942
- * Fix transitions for light properties [#5982](https://github.com/mapbox/mapbox-gl-js/issues/5982)
943
- * Fix minor symbol collisions on pitched maps [#5913](https://github.com/mapbox/mapbox-gl-js/pull/5913)
944
- * Fix memory leaks after `Map#remove()` [#5943](https://github.com/mapbox/mapbox-gl-js/pull/5943), [#5951](https://github.com/mapbox/mapbox-gl-js/pull/5951)
945
- * Fix bug wherein `GeoJSONSource#setData()` caused labels to fade out and back in ([#6002](https://github.com/mapbox/mapbox-gl-js/issues/6002))
946
- * Fix bug that could cause incorrect collisions for labels placed very near to each other at low zoom levels ([#5993](https://github.com/mapbox/mapbox-gl-js/issues/5993))
947
- * Fix bug causing `move` events to be fired out of sync with actual map movements ([#6005](https://github.com/mapbox/mapbox-gl-js/pull/6005))
948
- * Fix bug wherein `Map` did not fire `mouseover` events ([#6000](https://github.com/mapbox/mapbox-gl-js/pull/6000)] (h/t @jay-manday)
949
- * Fix bug causing blurry rendering of raster tiles ([#4552](https://github.com/mapbox/mapbox-gl-js/issues/4552))
950
- * Fix potential memory leak caused by removing layers ([#5995](https://github.com/mapbox/mapbox-gl-js/issues/5995))
951
- * Fix bug causing attribution icon to appear incorrectly in compact maps not using Mapbox data ([#6042](https://github.com/mapbox/mapbox-gl-js/pull/6042))
952
- * Fix positioning of default marker element ([#6012](https://github.com/mapbox/mapbox-gl-js/pull/6012)) (h/t @andrewharvey)
953
-
954
- ## 0.43.0 (December 21, 2017)
955
-
956
- ### ⚠️ Breaking changes
957
-
958
- * It is now an error to attempt to remove a source that is in use [#5562](https://github.com/mapbox/mapbox-gl-js/pull/5562)
959
- * It is now an error if the layer specified by the `before` parameter to `moveLayer` does not exist [#5679](https://github.com/mapbox/mapbox-gl-js/pull/5679)
960
- * `"colorSpace": "hcl"` now uses shortest-path interpolation for hue [#5811](https://github.com/mapbox/mapbox-gl-js/issues/5811)
961
-
962
- ### ✨ Features and improvements
963
-
964
- * Introduce client-side hillshading with `raster-dem` source type and `hillshade` layer type [#5286](https://github.com/mapbox/mapbox-gl-js/pull/5286)
965
- * GeoJSON sources take 2x less memory and generate tiles 20%–100% faster [#5799](https://github.com/mapbox/mapbox-gl-js/pull/5799)
966
- * Enable data-driven values for text-font [#5698](https://github.com/mapbox/mapbox-gl-js/pull/5698)
967
- * Enable data-driven values for heatmap-radius [#5898](https://github.com/mapbox/mapbox-gl-js/pull/5898)
968
- * Add getter and setter for offset on marker [#5759](https://github.com/mapbox/mapbox-gl-js/pull/5759)
969
- * Add `Map#hasImage` [#5775](https://github.com/mapbox/mapbox-gl-js/pull/5775)
970
- * Improve typing for `==` and `!=` expressions [#5840](https://github.com/mapbox/mapbox-gl-js/pull/5840)
971
- * Made `coalesce` expressions more useful [#5755](https://github.com/mapbox/mapbox-gl-js/issues/5755)
972
- * Enable implicit type assertions for array types [#5738](https://github.com/mapbox/mapbox-gl-js/pull/5738)
973
- * Improve hash control precision [#5767](https://github.com/mapbox/mapbox-gl-js/pull/5767)
974
- * `supported()` now returns false on old IE 11 versions that don't support Web Worker blob URLs [#5801](https://github.com/mapbox/mapbox-gl-js/pull/5801)
975
- * Remove flow globals TileJSON and Transferable [#5668](https://github.com/mapbox/mapbox-gl-js/pull/5668)
976
- * Improve performance of image, video, and canvas sources [#5845](https://github.com/mapbox/mapbox-gl-js/pull/5845)
977
-
978
- ### 🐛 Bug fixes
979
-
980
- * Fix popups and markers lag during pan animation [#4670](https://github.com/mapbox/mapbox-gl-js/issues/4670)
981
- * Fix fading of symbol layers caused by setData [#5716](https://github.com/mapbox/mapbox-gl-js/issues/5716)
982
- * Fix behavior of `to-rgba` and `rgba` expressions [#5778](https://github.com/mapbox/mapbox-gl-js/pull/5778), [#5866](https://github.com/mapbox/mapbox-gl-js/pull/5866)
983
- * Fix cross-fading of `*-pattern` and `line-dasharray` [#5791](https://github.com/mapbox/mapbox-gl-js/pull/5791)
984
- * Fix `colorSpace` function property [#5843](https://github.com/mapbox/mapbox-gl-js/pull/5843)
985
- * Fix style diffing when changing GeoJSON source properties [#5731](https://github.com/mapbox/mapbox-gl-js/issues/5731)
986
- * Fix missing labels when zooming out from overzoomed tile [#5827](https://github.com/mapbox/mapbox-gl-js/issues/5827)
987
- * Fix missing labels when zooming out and quickly using setData [#5837](https://github.com/mapbox/mapbox-gl-js/issues/5837)
988
- * Handle NaN as input to step and interpolate expressions [#5757](https://github.com/mapbox/mapbox-gl-js/pull/5757)
989
- * Clone property values on input and output [#5806](https://github.com/mapbox/mapbox-gl-js/pull/5806)
990
- * Bump geojson-rewind dependency [#5769](https://github.com/mapbox/mapbox-gl-js/pull/5769)
991
- * Allow setting Marker's popup before LngLat [#5893](https://github.com/mapbox/mapbox-gl-js/pull/5893)
992
-
993
- ## 0.42.2 (November 21, 2017)
994
-
995
- ### 🐛 Bug fixes
996
-
997
- - Add box-sizing to the "mapboxgl-ctrl-scale"-class [#5715](https://github.com/mapbox/mapbox-gl-js/pull/5715)
998
- - Fix rendering in Safari [#5712](https://github.com/mapbox/mapbox-gl-js/issues/5712)
999
- - Fix "Cannot read property 'hasTransition' of undefined" error [#5714](https://github.com/mapbox/mapbox-gl-js/issues/5714)
1000
- - Fix misplaced raster tiles [#5713](https://github.com/mapbox/mapbox-gl-js/issues/5713)
1001
- - Fix raster tile fading [#5722](https://github.com/mapbox/mapbox-gl-js/issues/5722)
1002
- - Ensure that an unset filter is undefined rather than null [#5727](https://github.com/mapbox/mapbox-gl-js/pull/5727)
1003
- - Restore pitch-with-rotate to nav control [#5725](https://github.com/mapbox/mapbox-gl-js/pull/5725)
1004
- - Validate container option in map constructor [#5695](https://github.com/mapbox/mapbox-gl-js/pull/5695)
1005
- - Fix queryRenderedFeatures behavior for features displayed in multiple layers [#5172](https://github.com/mapbox/mapbox-gl-js/issues/5172)
1006
-
1007
- ## 0.42.1 (November 17, 2017)
1008
-
1009
- ### 🐛 Bug fixes
1010
-
1011
- - Workaround for map flashing bug on Chrome 62+ with Intel Iris Graphics 6100 cards [#5704](https://github.com/mapbox/mapbox-gl-js/pull/5704)
1012
- - Rerender map when `map.showCollisionBoxes` is set to `false` [#5673](https://github.com/mapbox/mapbox-gl-js/pull/5673)
1013
- - Fix transitions from property default values [#5682](https://github.com/mapbox/mapbox-gl-js/pull/5682)
1014
- - Fix runtime updating of `heatmap-color` [#5682](https://github.com/mapbox/mapbox-gl-js/pull/5682)
1015
- - Fix mobile Safari `history.replaceState` error [#5613](https://github.com/mapbox/mapbox-gl-js/pull/5613)
1016
-
1017
- ### ✨ Features and improvements
1018
-
1019
- - Provide default element for Marker class [#5661](https://github.com/mapbox/mapbox-gl-js/pull/5661)
1020
-
1021
- ## 0.42.0 (November 10, 2017)
1022
-
1023
- ### ⚠️ Breaking changes
1024
-
1025
- - Require that `heatmap-color` use expressions instead of stop functions [#5624](https://github.com/mapbox/mapbox-gl-js/issues/5624)
1026
- - Remove support for validating and migrating v6 styles
1027
- - Remove support for validating v7 styles [#5604](https://github.com/mapbox/mapbox-gl-js/pull/5604)
1028
- - Remove support for including `{tokens}` in expressions for `text-field` and `icon-image` [#5599](https://github.com/mapbox/mapbox-gl-js/issues/5599)
1029
- - Split `curve` expression into `step` and `interpolate` expressions [#5542](https://github.com/mapbox/mapbox-gl-js/pull/5542)
1030
- - Disallow interpolation in expressions for `line-dasharray` [#5519](https://github.com/mapbox/mapbox-gl-js/pull/5519)
1031
-
1032
- ### ✨ Features and improvements
1033
-
1034
- - Improve label collision detection [#5150](https://github.com/mapbox/mapbox-gl-js/pull/5150)
1035
- - Labels from different sources will now collide with each other
1036
- - Collisions caused by rotation and pitch are now smoothly transitioned with a fade
1037
- - Improved algorithm for fewer erroneous collisions, denser label placement, and greater label stability during rotation
1038
- - Add `sqrt` expression [#5493](https://github.com/mapbox/mapbox-gl-js/pull/5493)
1039
-
1040
- ### 🐛 Bug fixes and error reporting improvements
1041
-
1042
- - Fix viewport calculations for `fitBounds` when both zooming and padding change [#4846](https://github.com/mapbox/mapbox-gl-js/issues/4846)
1043
- - Fix WebGL "range out of bounds for buffer" error caused by sorted symbol layers [#5620](https://github.com/mapbox/mapbox-gl-js/issues/5620)
1044
- - Fix symbol fading across tile reloads [#5491](https://github.com/mapbox/mapbox-gl-js/issues/5491)
1045
- - Change tile rendering order to better match GL Native [#5601](https://github.com/mapbox/mapbox-gl-js/pull/5601)
1046
- - Ensure no errors are triggered when calling `queryRenderedFeatures` on a heatmap layer [#5594](https://github.com/mapbox/mapbox-gl-js/pull/5594)
1047
- - Fix bug causing `queryRenderedSymbols` to return results from different sources [#5554](https://github.com/mapbox/mapbox-gl-js/issues/5554)
1048
- - Fix CJK rendering issues [#5544](https://github.com/mapbox/mapbox-gl-js/issues/5544), [#5546](https://github.com/mapbox/mapbox-gl-js/issues/5546)
1049
- - Account for `circle-stroke-width` in `queryRenderedFeatures` [#5514](https://github.com/mapbox/mapbox-gl-js/pull/5514)
1050
- - Fix rendering of fill layers atop raster layers [#5513](https://github.com/mapbox/mapbox-gl-js/pull/5513)
1051
- - Fix rendering of circle layers with a `circle-stroke-opacity` of 0 [#5496](https://github.com/mapbox/mapbox-gl-js/issues/5496)
1052
- - Fix memory leak caused by actor callbacks [#5443](https://github.com/mapbox/mapbox-gl-js/issues/5443)
1053
- - Fix source cache size for raster sources with tile sizes other than 512px [#4313](https://github.com/mapbox/mapbox-gl-js/issues/4313)
1054
- - Validate that zoom expressions only appear at the top level of an expression [#5609](https://github.com/mapbox/mapbox-gl-js/issues/5609)
1055
- - Validate that step and interpolate expressions don't have any duplicate stops [#5605](https://github.com/mapbox/mapbox-gl-js/issues/5605)
1056
- - Fix rendering for `icon-text-fit` with a data-driven `text-size` [#5632](https://github.com/mapbox/mapbox-gl-js/pull/5632)
1057
- - Improve validation to catch uses of deprecated function syntax [#5667](https://github.com/mapbox/mapbox-gl-js/pull/5667)
1058
- - Permit altitude coordinates in `position` field in GeoJSON [#5608](https://github.com/mapbox/mapbox-gl-js/pull/5608)
1059
-
1060
- ## 0.41.0 (October 11, 2017)
1061
-
1062
- ### :warning: Breaking changes
1063
- - Removed support for paint classes [#3643](https://github.com/mapbox/mapbox-gl-js/pull/3643). Instead, use runtime styling APIs or `Map#setStyle`.
1064
- - Reverted the `canvas` source `contextType` option added in 0.40.0 [#5449](https://github.com/mapbox/mapbox-gl-js/pull/5449)
1065
-
1066
- ### :bug: Bug fixes
1067
- - Clip raster tiles to avoid tile overlap [#5105](https://github.com/mapbox/mapbox-gl-js/pull/5105)
1068
- - Guard for offset edgecase in flyTo [#5331](https://github.com/mapbox/mapbox-gl-js/pull/5331)
1069
- - Ensure the map is updated after the sprite loads [#5367](https://github.com/mapbox/mapbox-gl-js/pull/5367)
1070
- - Limit animation duration on flyTo with maxDuration option [#5349](https://github.com/mapbox/mapbox-gl-js/pull/5349)
1071
- - Make double-tapping on make zoom in by a factor of 2 on iOS [#5274](https://github.com/mapbox/mapbox-gl-js/pull/5274)
1072
- - Fix rendering error with translucent raster tiles [#5380](https://github.com/mapbox/mapbox-gl-js/pull/5380)
1073
- - Error if invalid 'before' argument is passed to Map#addLayer [#5401](https://github.com/mapbox/mapbox-gl-js/pull/5401)
1074
- - Revert CanvasSource intermediary image buffer fix [#5449](https://github.com/mapbox/mapbox-gl-js/pull/5449)
1075
-
1076
- ### :sparkles: Features and improvements
1077
- - Use setData operation when diffing geojson sources [#5332](https://github.com/mapbox/mapbox-gl-js/pull/5332)
1078
- - Return early from draw calls on layers where opacity=0 [#5429](https://github.com/mapbox/mapbox-gl-js/pull/5429)
1079
- - A [heatmap](https://www.mapbox.com/mapbox-gl-js/example/heatmap-layer/) layer type is now available. This layer type allows you to visualize and explore massive datasets of points, reflecting the shape and density of data well while also looking beautiful. See [the blog post](https://blog.mapbox.com/sneak-peek-at-heatmaps-in-mapbox-gl-73b41d4b16ae) for further details.
1080
- ![](https://cdn-images-1.medium.com/max/1600/1*Dme5MAgdA3pYdTRHUQzvLw.png)
1081
- - The value of a style property or filter can now be an [expression](http://www.mapbox.com/mapbox-gl-js/style-spec/#expressions). Expressions are a way of doing data-driven and zoom-driven styling that provides more flexibility and control, and unifies property and filter syntax.
1082
-
1083
- Previously, data-driven and zoom-driven styling relied on stop functions: you specify a feature property and a set of input-output pairs that essentially define a “scale” for how the style should be calculated based on the feature property. For example, the following would set circle colors on a green-to-red scale based on the value of `feature.properties.population`:
1084
-
1085
- ```
1086
- "circle-color": {
1087
- "property": "population",
1088
- "stops": [
1089
- [0, "green"],
1090
- [1000000, "red"]
1091
- ]
1092
- }
1093
- ```
1094
-
1095
- This approach is powerful, but we’ve seen a number of use cases that stop functions don't satisfy. Expressions provide the flexibility to address use cases like these:
1096
-
1097
- **Multiple feature properties**
1098
- Using more than one feature property to calculate a given style property. E.g., styling land polygon colors based on both `feature.properties.land_use_category` and `feature.properties.elevation`.
1099
-
1100
- **Arithmetic**
1101
- For some use cases it’s necessary to do some arithmetic on the input data. One example is sizing circles to represent quantitative data. Since a circle’s visual size on the screen is really its area (and A=πr^2), the right way to scale `circle-radius` is `square_root(feature.properties.input_data_value)`. Another example is unit conversions: feature data may include properties that are in some particular unit. Displaying such data in units appropriate to, say, a user’s preference or location, requires being able to do simple arithmetic (multiplication, division) on whatever value is in the data.
1102
-
1103
- **Conditional logic**
1104
- This is a big one: basic if-then logic, for example to decide exactly what text to display for a label based on which properties are available in the feature or even the length of the name. A key example of this is properly supporting bilingual labels, where we have to decide whether to show local + English, local-only, or English-only, based on the data that’s available for each feature.
1105
-
1106
- **String manipulation**
1107
- More dynamic control over label text with things like uppercase/lowercase/title case transforms, localized number formatting, etc. Without this functionality, crafting and iterating on label content entails a large data-prep burden.
1108
-
1109
- **Filters**
1110
- Style layer filters had similar limitations. Moreover, they use a different syntax, even though their job is very similar to that of data-driven styling functions: filters say, “here’s how to look at a feature and decide whether to draw it,” and data-driven style functions say, “here’s how to look at a feature and decide how to size/color/place it.” Expressions provide a unified syntax for defining parts of a style that need to be calculated dynamically from feature data.
1111
-
1112
- For information on the syntax and behavior of expressions, please see [the documentation](http://www.mapbox.com/mapbox-gl-js/style-spec/#expressions).
1113
-
1114
- ### :wrench: Development workflow improvements
1115
- - Made the performance benchmarking runner more informative and statistically robust
1116
-
1117
- ## 0.40.1 (September 18, 2017)
1118
-
1119
- ### :bug: Bug fixes
1120
- - Fix bug causing flicker when zooming in on overzoomed tiles [#5295](https://github.com/mapbox/mapbox-gl-js/pull/5295)
1121
- - Remove erroneous call to Tile#redoPlacement for zoom-only or low pitch camera changes [#5284](https://github.com/mapbox/mapbox-gl-js/pull/5284)
1122
- - Fix bug where `CanvasSource` coordinates were flipped and improve performance for non-animated `CanvasSource`s [#5303](https://github.com/mapbox/mapbox-gl-js/pull/5303)
1123
- - Fix bug causing map not to render on some cases on Internet Explorer 11 [#5321](https://github.com/mapbox/mapbox-gl-js/pull/5321)
1124
- - Remove upper limit on `fill-extrusion-height` property [#5320](https://github.com/mapbox/mapbox-gl-js/pull/5320)
1125
-
1126
- ## 0.40.0 (September 13, 2017)
1127
-
1128
- ### :warning: Breaking changes
1129
- - `Map#addImage` now requires the image as an `HTMLImageElement`, `ImageData`, or object with `width`, `height`, and
1130
- `data` properties with the same format as `ImageData`. It no longer accepts a raw `ArrayBufferView` in the second
1131
- argument and `width` and `height` options in the third argument.
1132
- - `canvas` sources now require a `contextType` option specifying the drawing context associated with the source canvas. [#5155](https://github.com/mapbox/mapbox-gl-js/pull/5155)
1133
-
1134
-
1135
- ### :sparkles: Features and improvements
1136
- - Correct rendering for multiple `fill-extrusion` layers on the same map [#5101](https://github.com/mapbox/mapbox-gl-js/pull/5101)
1137
- - Add an `icon-anchor` property to symbol layers [#5183](https://github.com/mapbox/mapbox-gl-js/pull/5183)
1138
- - Add a per-map `transformRequest` option, allowing users to provide a callback that transforms resource request URLs [#5021](https://github.com/mapbox/mapbox-gl-js/pull/5021)
1139
- - Add data-driven styling support for
1140
- - `text-max-width` [#5067](https://github.com/mapbox/mapbox-gl-js/pull/5067)
1141
- - `text-letter-spacing` [#5071](https://github.com/mapbox/mapbox-gl-js/pull/5071)
1142
- - `line-join` [#5020](https://github.com/mapbox/mapbox-gl-js/pull/5020)
1143
- - Add support for SDF icons in `Map#addImage()` [#5181](https://github.com/mapbox/mapbox-gl-js/pull/5181)
1144
- - Added nautical miles unit to ScaleControl [#5238](https://github.com/mapbox/mapbox-gl-js/pull/5238) (h/t @fmairesse)
1145
- - Eliminate the map-wide limit on the number of glyphs and sprites that may be used in a style [#141](https://github.com/mapbox/mapbox-gl-js/issues/141). (Fixed by [#5190](https://github.com/mapbox/mapbox-gl-js/pull/5190), see also [mapbox-gl-native#9213](https://github.com/mapbox/mapbox-gl-native/pull/9213)
1146
- - Numerous performance optimizations (including [#5108](https://github.com/mapbox/mapbox-gl-js/pull/5108) h/t @pirxpilot)
1147
-
1148
-
1149
- ### :bug: Bug fixes
1150
- - Add missing documentation for mouseenter, mouseover, mouseleave events [#4772](https://github.com/mapbox/mapbox-gl-js/issues/4772)
1151
- - Add missing documentation for `Marker#getElement()` method [#5242](https://github.com/mapbox/mapbox-gl-js/pull/5242)
1152
- - Fix bug wherein removing canvas source with animate=true leaves map in render loop [#5097](https://github.com/mapbox/mapbox-gl-js/issues/5097)
1153
- - Fix fullscreen detection on Firefox [#5272](https://github.com/mapbox/mapbox-gl-js/pull/5272)
1154
- - Fix z-fighting on overlapping fills within the same layer [#3320](https://github.com/mapbox/mapbox-gl-js/issues/3320)
1155
- - Fix handling of fractional values for `layer.minzoom` [#2929](https://github.com/mapbox/mapbox-gl-js/issues/2929)
1156
- - Clarify coordinate ordering in documentation for `center` option [#5042](https://github.com/mapbox/mapbox-gl-js/pull/5042) (h/t @karthikb351)
1157
- - Fix output of stop functions where two stops have the same input value [#5020](https://github.com/mapbox/mapbox-gl-js/pull/5020) (h/t @edpop )
1158
- - Fix bug wherein using `Map#addLayer()` with an inline source would mutate its input [#4040](https://github.com/mapbox/mapbox-gl-js/issues/4040)
1159
- - Fix invalid css keyframes selector [#5075](https://github.com/mapbox/mapbox-gl-js/pull/5075) (h/t @aar0nr)
1160
- - Fix GPU-specific bug wherein canvas sources caused an error [#4262](https://github.com/mapbox/mapbox-gl-js/issues/4262)
1161
- - Fix a race condition in symbol layer handling that caused sporadic uncaught errors [#5185](https://github.com/mapbox/mapbox-gl-js/pull/5185)
1162
- - Fix bug causing line labels to render incorrectly on overzoomed tiles [#5120](https://github.com/mapbox/mapbox-gl-js/pull/5120)
1163
- - Fix bug wherein `NavigationControl` triggered mouse events unexpectedly [#5148](https://github.com/mapbox/mapbox-gl-js/issues/5148)
1164
- - Fix bug wherein clicking on the `NavigationControl` compass caused an error in IE 11 [#4784](https://github.com/mapbox/mapbox-gl-js/issues/4784)
1165
- - Remove dependency on GPL-3-licensed `fast-stable-stringify` module [#5152](https://github.com/mapbox/mapbox-gl-js/issues/5152)
1166
- - Fix bug wherein layer-specific an event listener produced an error after its target layer was removed from the map [#5145](https://github.com/mapbox/mapbox-gl-js/issues/5145)
1167
- - Fix `Marker#togglePopup()` failing to return the marker instance [#5116](https://github.com/mapbox/mapbox-gl-js/issues/5116)
1168
- - Fix bug wherein a marker's position failed to adapt to the marker element's size changing [#5133](https://github.com/mapbox/mapbox-gl-js/issues/5133)
1169
- - Fix rendering bug affecting Broadcom GPUs [#5073](https://github.com/mapbox/mapbox-gl-js/pull/5073)
1170
-
1171
- ### :wrench: Development workflow improvements
1172
- - Add (and now require) Flow type annotations throughout the majority of the codebase.
1173
- - Migrate to CircleCI 2.0 [#4939](https://github.com/mapbox/mapbox-gl-js/pull/4939)
1174
-
1175
-
1176
- ## 0.39.1 (July 24, 2017)
1177
-
1178
- ### :bug: Bug fixes
1179
- - Fix packaging issue in 0.39.0 [#5025](https://github.com/mapbox/mapbox-gl-js/issues/5025)
1180
- - Correctly evaluate enum-based identity functions [#5023](https://github.com/mapbox/mapbox-gl-js/issues/5023)
1181
-
1182
- ## 0.39.0 (July 21, 2017)
1183
-
1184
- ### :warning: Breaking changes
1185
-
1186
- - `GeolocateControl` breaking changes #4479
1187
- * The option `watchPosition` has been replaced with `trackUserLocation`
1188
- * The camera operation has changed from `jumpTo` (not animated) to `fitBounds` (animated). An effect of this is the map pitch is no longer reset, although the bearing is still reset to 0.
1189
- * The accuracy of the geolocation provided by the device is used to set the view (previously it was fixed at zoom level 17). The `maxZoom` can be controlled via the new `fitBoundsOptions` option (defaults to 15).
1190
- - Anchor `Marker`s at their center by default #5019 @andrewharvey
1191
- - Increase `significantRotateThreshold` for the `TouchZoomRotateHandler` #4971, @dagjomar
1192
-
1193
- ### :sparkles: Features and improvements
1194
- - Improve performance of updating GeoJSON sources #4069, @ezheidtmann
1195
- - Improve rendering speed of extrusion layers #4818
1196
- - Improve line label legibility in pitched views #4781
1197
- - Improve line label legibility on curved lines #4853
1198
- - Add user location tracking capability to `GeolocateControl` #4479, @andrewharvey
1199
- * New option `showUserLocation` to draw a "dot" as a `Marker` on the map at the user's location
1200
- * An active lock and background state are introduced with `trackUserLocation`. When in active lock the camera will update to follow the user location, however if the camera is changed by the API or UI then the control will enter the background state where it won't update the camera to follow the user location.
1201
- * New option `fitBoundsOptions` to control the camera operation
1202
- * New `trackuserlocationstart` and `trackuserlocationend` events
1203
- * New `LngLat.toBounds` method to extend a point location by a given radius to a `LngLatBounds` object
1204
- - Include main CSS file in `package.json` #4809, @tomscholz
1205
- - Add property function (data-driven styling) support for `line-width` #4773
1206
- - Add property function (data-driven styling) support for `text-anchor` #4997
1207
- - Add property function (data-driven styling) support for `text-justify` #5000
1208
- - Add `maxTileCacheSize` option #4778, @jczaplew
1209
- - Add new `icon-pitch-alignment` and `circle-pitch-alignment` properties #4869 #4871
1210
- - Add `Map#getMaxBounds` method #4890, @andrewharvey @lamuertepeluda
1211
- - Add option (`localIdeographFontFamily`) to use TinySDF to avoid loading expensive CJK glyphs #4895
1212
- - If `config.API_URL` includes a path prepend it to the request URL #4995
1213
- - Bump `supercluster` version to expose `cluster_id` property on clustered sources #5002
1214
-
1215
- ### :bug: Bug fixes
1216
- - Do not display `FullscreenControl` on unsupported devices #4838, @stepankuzmin
1217
- - Fix yarn build on Windows machines #4887
1218
- - Prevent potential memory leaks by dispatching `loadData` to the same worker every time #4877
1219
- - Fix bug preventing the rtlTextPlugin from loading before the initial style `load` #4870
1220
- - Fix bug causing runtime-stying to not take effect in some situations #4893
1221
- - Prevent requests of vertical glyphs for labels that can't be verticalized #4720
1222
- - Fix character detection for Zanabazar Square #4940
1223
- - Fix `LogoControl` logic to update correctly, and hide the `<div>` instead of removing it from the DOM when it is not needed #4842
1224
- - Fix `GeoJSONSource#serialize` to include all options
1225
- - Fix error handling in `GlyphSource#getSimpleGlyphs`#4992
1226
- - Fix bug causing `setStyle` to reload raster tiles #4852
1227
- - Fix bug causing symbol layers not to render on devices with non-integer device pixel ratios #4989
1228
- - Fix bug where `Map#queryRenderedFeatures` would error when returning no results #4993
1229
- - Fix bug where `Map#areTilesLoaded` would always be false on `sourcedata` events for reloading tiles #4987
1230
- - Fix bug causing categorical property functions to error on non-ascending order stops #4996
1231
-
1232
- ### :hammer_and_wrench: Development workflow changes
1233
- - Use flow to type much of the code base #4629 #4903 #4909 #4910 #4911 #4913 #4915 #4918 #4932 #4933 #4948 #4949 #4955 #4966 #4967 #4973 :muscle: @jfirebaugh @vicapow
1234
- - Use style specification to generate flow type #4958
1235
- - Explicitly list which files to publish in `package.json` #4819 @tomscholz
1236
- - Move render test ignores to a separate file #4977
1237
- - Add code of conduct #5015 :sparkling_heart:
1238
-
1239
- ## 0.38.0 (June 9, 2017)
1240
-
1241
- #### New features :sparkles:
1242
-
1243
- - Attenuate label size scaling with distance, improving readability of pitched maps [#4547](https://github.com/mapbox/mapbox-gl-js/pull/4547)
1244
-
1245
- #### Bug fixes :beetle:
1246
-
1247
- - Skip rendering for patterned layers when pattern is missing [#4687](https://github.com/mapbox/mapbox-gl-js/pull/4687)
1248
- - Fix bug with map failing to rerender after `webglcontextlost` event [#4725](https://github.com/mapbox/mapbox-gl-js/pull/4725) @cdawi
1249
- - Clamp zoom level in `flyTo` to within the map's specified min- and maxzoom to prevent undefined behavior [#4726](https://github.com/mapbox/mapbox-gl-js/pull/4726) @ IvanSanchez
1250
- - Fix wordmark rendering in IE [#4741](https://github.com/mapbox/mapbox-gl-js/pull/4741)
1251
- - Fix slight pixelwise symbol rendering bugs caused by incorrect sprite calculations [#4737](https://github.com/mapbox/mapbox-gl-js/pull/4737)
1252
- - Prevent exceptions thrown by certain `flyTo` calls [#4761](https://github.com/mapbox/mapbox-gl-js/pull/4761)
1253
- - Fix "Improve this map" link [#4685](https://github.com/mapbox/mapbox-gl-js/pull/4685)
1254
- - Tweak `queryRenderedSymbols` logic to better account for pitch scaling [#4792](https://github.com/mapbox/mapbox-gl-js/pull/4792)
1255
- - Fix for symbol layers sometimes failing to render, most frequently in Safari [#4795](https://github.com/mapbox/mapbox-gl-js/pull/4795)
1256
- - Apply `text-keep-upright` after `text-offset` to keep labels upright when intended [#4779](https://github.com/mapbox/mapbox-gl-js/pull/4779) **[Potentially breaking :warning: but considered a bugfix]**
1257
- - Prevent exceptions thrown by empty GeoJSON tiles [4803](https://github.com/mapbox/mapbox-gl-js/pull/4803)
1258
-
1259
- #### Accessibility improvements :sound:
1260
-
1261
- - Add `aria-label` to popup close button [#4799](https://github.com/mapbox/mapbox-gl-js/pull/4799) @andrewharvey
1262
-
1263
- #### Development workflow + testing improvements :wrench:
1264
-
1265
- - Fix equality assertion bug in tests [#4731](https://github.com/mapbox/mapbox-gl-js/pull/4731) @IvanSanchez
1266
- - Benchmark results page improvements [#4746](https://github.com/mapbox/mapbox-gl-js/pull/4746)
1267
- - Require node version >=6.4.0, enabling the use of more ES6 features [#4752](https://github.com/mapbox/mapbox-gl-js/pull/4752)
1268
- - Document missing `pitchWithRotate` option [#4800](https://github.com/mapbox/mapbox-gl-js/pull/4800) @simast
1269
- - Move Github-specific Markdown files into subdirectory [#4806](https://github.com/mapbox/mapbox-gl-js/pull/4806) @tomscholz
1270
-
1271
- ## 0.37.0 (May 2nd, 2017)
1272
-
1273
- #### :warning: Breaking changes
1274
-
1275
- - Removed `LngLat#wrapToBestWorld`
1276
-
1277
- #### New features :rocket:
1278
-
1279
- - Improve popup/marker positioning #4577
1280
- - Add `Map#isStyleLoaded` and `Map#areTilesLoaded` events #4321
1281
- - Support offline sprites using `file:` protocol #4649 @oscarfonts
1282
-
1283
- #### Bug fixes :bug:
1284
-
1285
- - Fix fullscreen control in Firefox #4666
1286
- - Fix rendering artifacts that caused tile boundaries to be visible in some cases #4636
1287
- - Fix default calculation for categorical zoom-and-property functions #4657
1288
- - Fix scaling of images on retina screens #4645
1289
- - Rendering error when a transparent image is added via `Map#addImage` #4644
1290
- - Fix an issue with rendering lines with duplicate points #4634
1291
- - Fix error when switching from data-driven styles to a constant paint value #4611
1292
- - Add check to make sure invalid bounds on tilejson don't error out #4641
1293
-
1294
- #### Development workflow improvements :computer:
1295
-
1296
- - Add flowtype interfaces and definitions @vicapow
1297
- - Add stylelinting to ensure `mapboxgl-` prefix on all classes #4584 @asantos3026
1298
-
1299
- ## 0.36.0 (April 19, 2017)
1300
-
1301
- #### New features :sparkles:
1302
-
1303
- - Replace LogoControl logo with the new Mapbox logo #4598
1304
-
1305
- #### Bug fixes :bug:
1306
-
1307
- - Fix bug with the BoxZoomHandler that made it glitchy if it is enabled after the DragPanHandler #4528
1308
- - Fix undefined behavior in `fill_outline` shaders #4600
1309
- - Fix `Camera#easeTo` interpolation on pitched maps #4540
1310
- - Choose property function interpolation method by the `property`'s type #4614
1311
-
1312
- #### Development workflow improvements :nerd_face:
1313
-
1314
- - Fix crash on missing `style.json` in integration tests
1315
- - `gl-style-composite` is now executable in line with the other tools @andrewharvey #4595
1316
- - `gl-style-composite` utility now throws an error if a name conflict would occur between layers @andrewharvey #4595
1317
-
1318
- ## 0.35.1 (April 12, 2017)
1319
-
1320
- #### Bug fixes :bug:
1321
-
1322
- - Add `.json` extension to style-spec `require` statements for webpack compatibility #4563 @orangemug
1323
- - Fix documentation type for `Map#fitBounde` #4569 @andrewharvey
1324
- - Fix bug causing {Image,Video,Canvas}Source to throw exception if latitude is outside of +/-85.05113 #4574
1325
- - Fix bug causing overzoomed raster tiles to disappear from map #4567
1326
- - Fix bug causing queryRenderedFeatures to crash on polygon features that have an `id` field. #4581
1327
-
1328
- ## 0.35.0 (April 7, 2017)
1329
-
1330
- #### New features :rocket:
1331
- - Use anisotropic filtering to improve rendering of raster tiles on pitched maps #1064
1332
- - Add `pitchstart` and `pitchend` events #2449
1333
- - Add an optional `layers` parameter to `Map#on` #1002
1334
- - Add data-driven styling support for `text-offset` #4495
1335
- - Add data-driven styling support for `text-rotate` #3516
1336
- - Add data-driven styling support for `icon-image` #4304
1337
- - Add data-driven styling support for `{text,icon}-size` #4455
1338
-
1339
- #### Bug fixes :bug:
1340
- - Suppress error messages in JS console due to missing tiles #1800
1341
- - Fix bug wherein `GeoJSONSource#setData()` could cause unnecessary DOM updates #4447
1342
- - Fix bug wherein `Map#flyTo` did not respect the `renderWorldCopies` setting #4449
1343
- - Fix regression in browserify support # 4453
1344
- - Fix bug causing poor touch event behavior on mobile devices #4259
1345
- - Fix bug wherein duplicate stops in property functions could cause an infinite loop #4498
1346
- - Respect image height/width in `addImage` api #4531
1347
- - Fix bug preventing correct behavior of `shift+zoom` #3334
1348
- - Fix bug preventing image source from rendering when coordinate area is too large #4550
1349
- - Show image source on horizontally wrapped worlds #4555
1350
- - Fix bug in the handling of `refreshedExpiredTiles` option #4549
1351
- - Support the TileJSON `bounds` property #1775
1352
-
1353
- #### Development workflow improvements :computer:
1354
- - Upgrade flow to 0.42.0 (#4500)
1355
-
1356
-
1357
- ## 0.34.0 (March 17, 2017)
1358
-
1359
- #### New features :rocket:
1360
- - Add `Map#addImage` and `Map#removeImage` API to allow adding icon images at runtime #4404
1361
- - Simplify non-browserify bundler usage by making the distribution build the main entrypoint #4423
1362
-
1363
- #### Bug fixes :bug:
1364
- - Fix issue where coincident start/end points of LineStrings were incorrectly rendered as joined #4413
1365
- - Fix bug causing `queryRenderedFeatures` to fail in cases where both multiple sources and data-driven paint properties were present #4417
1366
- - Fix bug where tile request errors caused `map.loaded()` to incorrectly return `false` #4425
1367
-
1368
- #### Testing improvements :white_check_mark:
1369
- - Improve test coverage across several core modules #4432 #4431 #4422 #4244 :bowing_man:
1370
-
1371
- ## 0.33.1 (March 10, 2017)
1372
-
1373
- #### Bug fixes :bug:
1374
- - Prevent Mapbox logo from being added to the map more than once #4386
1375
- - Add `type='button'` to `FullscreenControl` to prevent button from acting as a form submit #4397
1376
- - Fix issue where map would continue to rotate if `Ctrl` key is released before the click during a `DragRotate` event #4389
1377
- - Remove double `options.easing` description from the `Map#fitBounds` documentation #4402
1378
-
1379
-
1380
- ## 0.33.0 (March 8, 2017)
1381
-
1382
- #### :warning: Breaking changes
1383
- - Automatically add Mapbox wordmark when required by Mapbox TOS #3933
1384
- - Increase default `maxZoom` from 20 to 22 #4333
1385
- - Deprecate `tiledata` and `tiledataloading` events in favor of `sourcedata` and `sourcedataloading`. #4347
1386
- - `mapboxgl.util` is no longer exported #1408
1387
- - `"type": "categorical"` is now required for all categorical functions. Previously, some forms of "implicitly" categorical functions worked, and others did not. #3717
1388
-
1389
- #### :white_check_mark: New features
1390
- - Add property functions support for most symbol paint properties #4074, #4186, #4226
1391
- - Add ability to specify default property value for undefined or invalid property values used in property functions. #4175
1392
- - Improve `Map#fitBounds` to accept different values for top, bottom, left, and right `padding` #3890
1393
- - Add a `FullscreenControl` for displaying a fullscreen map #3977
1394
-
1395
- #### :beetle: Bug fixes
1396
- - Fix validation error on categorical zoom-and-property functions #4220
1397
- - Fix bug causing expired resources to be re-requested causing an infinite loop #4255
1398
- - Fix problem where `MapDataEvent#isSourceLoaded` always returned false #4254
1399
- - Resolve an issue where tiles in the source cache were prematurely deleted, resulting in tiles flickering when zooming in and out and #4311
1400
- - Make sure `MapEventData` is passed through on calls `Map#flyTo` #4342
1401
- - Fix incorrect returned values for `Map#isMoving` #4350
1402
- - Fix categorical functions not allowing boolean stop domain values #4195
1403
- - Fix piecewise-constant functions to allow non-integer zoom levels. #4196
1404
- - Fix issues with `$id` in filters #4236 #4237
1405
- - Fix a race condition with polygon centroid algorithm causing tiles not to load in some cases. #4273
1406
- - Throw a meaningful error when giving non-array `layers` parameter to `queryRenderedFeatures` #4331
1407
- - Throw a meaningful error when supplying invalid `minZoom` and `maxZoom` values #4324
1408
- - Fix a memory leak when using the RTL Text plugin #4248
1409
-
1410
- #### Dev workflow changes
1411
- - Merged the [Mapbox GL style specification](https://github.com/mapbox/mapbox-gl-style-spec) repo to this one (now under `src/style-spec` and `test/unit/style-spec`).
1412
-
1413
- ## 0.32.1 (Jan 26, 2017)
1414
-
1415
- #### Bug Fixes
1416
-
1417
- - Fix bug causing [`mapbox-gl-rtl-text` plugin](https://github.com/mapbox/mapbox-gl-rtl-text) to not work #4055
1418
-
1419
- ## 0.32.0 (Jan 26, 2017)
1420
-
1421
- #### Deprecation Notices
1422
-
1423
- - [Style classes](https://www.mapbox.com/mapbox-gl-style-spec/#layer-paint.*) are deprecated and will be removed in an upcoming release of Mapbox GL JS.
1424
-
1425
- #### New Features
1426
-
1427
- - Add `Map#isSourceLoaded` method #4033
1428
- - Automatically reload tiles based on their `Expires` and `Cache-Control` HTTP headers #3944
1429
- - Add `around=center` option to `scrollZoom` and `touchZoomRotate` interaction handlers #3876
1430
- - Add support for [`mapbox-gl-rtl-text` plugin](https://github.com/mapbox/mapbox-gl-rtl-text) to support right-to-left scripts #3758
1431
- - Add `canvas` source type #3765
1432
- - Add `Map#isMoving` method #2792
1433
-
1434
- #### Bug Fixes
1435
-
1436
- - Fix bug causing garbled text on zoom #3962
1437
- - Fix bug causing crash in Firefox and Mobile Safari when rendering a large map #4037
1438
- - Fix bug causing raster tiles to flicker during zoom #2467
1439
- - Fix bug causing exception when unsetting and resetting fill-outline-color #3657
1440
- - Fix memory leak when removing raster sources #3951
1441
- - Fix bug causing exception when when zooming in / out on empty GeoJSON tile #3985
1442
- - Fix line join artifacts at very sharp angles #4008
1443
-
1444
- ## 0.31.0 (Jan 10 2017)
1445
-
1446
- #### New Features
1447
-
1448
- - Add `renderWorldCopies` option to the `Map` constructor to give users control over whether multiple worlds are rendered in a map #3885
1449
-
1450
- #### Bug Fixes
1451
-
1452
- - Fix performance regression triggered when `Map` pitch or bearing is changed #3938
1453
- - Fix null pointer exception caused by trying to clear an `undefined` source #3903
1454
-
1455
- #### Miscellaneous
1456
-
1457
- - Incorporate integration tests formerly at [`mapbox-gl-test-suite`](https://github.com/mapbox/mapbox-gl-test-suite) into this repository #3834
1458
-
1459
- ## 0.30.0 (Jan 5 2017)
1460
-
1461
- #### New Features
1462
-
1463
- - Fire an error when map canvas is larger than allowed by `gl.MAX_RENDERBUFFER_SIZE` #2893
1464
- - Improve error messages when referencing a nonexistent layer id #2597
1465
- - Fire an error when layer uses a `geojson` source and specifies a `source-layer` #3896
1466
- - Add inline source declaration syntax #3857
1467
- - Improve line breaking behavior #3887
1468
-
1469
- #### Performance Improvements
1470
-
1471
- - Improve `Map#setStyle` performance in some cases #3853
1472
-
1473
- #### Bug Fixes
1474
-
1475
- - Fix unexpected popup positioning when some offsets are unspecified #3367
1476
- - Fix incorrect interpolation in functions #3838
1477
- - Fix incorrect opacity when multiple backgrounds are rendered #3819
1478
- - Fix exception thrown when instantiating geolocation control in Safari #3844
1479
- - Fix exception thrown when setting `showTileBoundaries` with no sources #3849
1480
- - Fix incorrect rendering of transparent parts of raster layers in some cases #3723
1481
- - Fix non-terminating render loop when zooming in in some cases #3399
1482
-
1483
- ## 0.29.0 (December 20 2016)
1484
-
1485
- #### New Features
1486
-
1487
- - Add support for property functions for many style properties on line layers #3033
1488
- - Make `Map#setStyle` smoothly transition to the new style #3621
1489
- - Add `styledata`, `sourcedata`, `styledataloading`, and `sourcedataloading` events
1490
- - Add `isSourceLoaded` and `source` properties to `MapDataEvent` #3590
1491
- - Remove "max zoom" cap of 20 #3683
1492
- - Add `circle-stroke-*` style properties #3672
1493
- - Add a more helpful error message when the specified `container` element doesn't exist #3719
1494
- - Add `watchPosition` option to `GeolocateControl` #3739
1495
- - Add `positionOptions` option to `GeolocateControl` #3739
1496
- - Add `aria-label` to map canvas #3782
1497
- - Adjust multipoint symbol rendering behavior #3763
1498
- - Add support for property functions for `icon-offset` #3791
1499
- - Improved antialiasing on pitched lines #3790
1500
- - Allow attribution control to collapse to an ⓘ button on smaller screens #3783
1501
- - Improve line breaking algorithm #3743
1502
-
1503
- #### Performance Improvements
1504
-
1505
- - Fix memory leak when calling `Map#removeSource` #3602
1506
- - Reduce bundle size by adding custom build of `gl-matrix` #3734
1507
- - Improve performance of projection code #3721
1508
- - Improve performance of style function evaluation #3816
1509
-
1510
- #### Bug fixes
1511
-
1512
- - Fix exception thrown when using `line-color` property functions #3639
1513
- - Fix exception thrown when removing a layer and then adding another layer with the same id but different type #3655
1514
- - Fix exception thrown when passing a single point to `Map#fitBounds` #3655
1515
- - Fix exception thrown occasionally during rapid map mutations #3681
1516
- - Fix rendering defects on pitch=0 on some systems #3740
1517
- - Fix unnecessary CPU usage when displaying a raster layer #3764
1518
- - Fix bug causing sprite after `Map#setStyle` #3829
1519
- - Fix bug preventing `Map` from emitting a `contextmenu` event on Windows browsers #3822
1520
-
1521
- ## 0.28.0 (November 17 2016)
1522
-
1523
- #### New features and improvements
1524
-
1525
- - Performance improvements for `Map#addLayer` and `Map#removeLayer` #3584
1526
- - Add method for changing layer order at runtime - `Map#moveLayer` #3584
1527
- - Update vertical punctuation logic to Unicode 9.0 standard #3608
1528
-
1529
- #### Bug fixes
1530
-
1531
- - Fix data-driven `fill-opacity` rendering when using a `fill-pattern` #3598
1532
- - Fix line rendering artifacts #3627
1533
- - Fix incorrect rendering of opaque fills on top of transparent fills #2628
1534
- - Prevent `AssertionErrors` from pitching raster layers by only calling `Worker#redoPlacement` on vector and GeoJSON sources #3624
1535
- - Restore IE11 compatability #3635
1536
- - Fix symbol placement for cached tiles #3637
1537
-
1538
-
1539
- ## 0.27.0 (November 11 2016)
1540
-
1541
- #### ⚠️ Breaking changes ⚠️
1542
-
1543
- - Replace `fill-extrude-height` and `fill-extrude-base` properties of `fill` render type with a separate `fill-extrusion` type (with corresponding `fill-extrusion-height` and `fill-extrusion-base` properties), solving problems with render parity and runtime switching between flat and extruded fills. https://github.com/mapbox/mapbox-gl-style-spec/issues/554
1544
- - Change the units for extrusion height properties (`fill-extrusion-height`, `fill-extrusion-base`) from "magic numbers" to meters. #3509
1545
- - Remove `mapboxgl.Control` class and change the way custom controls should be implemented. #3497
1546
- - Remove `mapboxgl.util` functions: `inherit`, `extendAll`, `debounce`, `coalesce`, `startsWith`, `supportsGeolocation`. #3441 #3571
1547
- - **`mapboxgl.util` is deprecated** and will be removed in the next release. #1408
1548
-
1549
- #### New features and improvements
1550
-
1551
- - Tons of **performance improvements** that combined make rendering **up to 3 times faster**, especially for complex styles. #3485 #3489 #3490 #3491 #3498 #3499 #3501 #3510 #3514 #3515 #3486 #3527 #3574 ⚡️⚡️⚡️
1552
- - 🈯 Added **vertical text writing mode** for languages that support it. #3438
1553
- - 🈯 Improved **line breaking of Chinese and Japanese text** in point-placed labels. #3420
1554
- - Reduce the default number of worker threads (`mapboxgl.workerCount`) for better performance. #3565
1555
- - Automatically use `categorical` style function type when input values are strings. #3384
1556
- - Improve control buttons accessibility. #3492
1557
- - Remove geolocation button if geolocation is disabled (e.g. the page is not served through `https`). #3571
1558
- - Added `Map#getMaxZoom` and `Map#getMinZoom` methods #3592
1559
-
1560
- #### Bugfixes
1561
-
1562
- - Fix several line dash rendering bugs. #3451
1563
- - Fix intermittent map flicker when using image sources. #3522
1564
- - Fix incorrect rendering of semitransparent `background` layers. #3521
1565
- - Fix broken `raster-fade-duration` property. #3532
1566
- - Fix handling of extrusion heights with negative values (by clamping to `0`). #3463
1567
- - Fix GeoJSON sources not placing labels/icons correctly after map rotation. #3366
1568
- - Fix icon/label placement not respecting order for layers with numeric names. #3404
1569
- - Fix `queryRenderedFeatures` working incorrectly on colliding labels. #3459
1570
- - Fix a bug where changing extrusion properties at runtime sometimes threw an error. #3487 #3468
1571
- - Fix a bug where `map.loaded()` always returned `true` when using raster tile sources. #3302
1572
- - Fix a bug where moving the map out of bounds sometimes threw `failed to invert matrix` error. #3518
1573
- - Fixed `queryRenderedFeatures` throwing an error if no parameters provided. #3542
1574
- - Fixed a bug where using multiple `\n` in a text field resulted in an error. #3570
1575
-
1576
- #### Misc
1577
-
1578
- - 🐞 Fix `npm install mapbox-gl` pulling in all `devDependencies`, leading to an extremely slow install. #3377
1579
- - Switch the codebase to ES6. #3388 #3408 #3415 #3421
1580
- - A lot of internal refactoring to make the codebase simpler and more maintainable.
1581
- - Various documentation fixes. #3440
1582
-
1583
- ## 0.26.0 (October 13 2016)
1584
-
1585
- #### New Features & Improvements
1586
-
1587
- * Add `fill-extrude-height` and `fill-extrude-base` style properties (3d buildings) :cityscape: #3223
1588
- * Add customizable `colorSpace` interpolation to functions #3245
1589
- * Add `identity` function type #3274
1590
- * Add depth testing for symbols with `'pitch-alignment': 'map'` #3243
1591
- * Add `dataloading` events for styles and sources #3306
1592
- * Add `Control` suffix to all controls :warning: BREAKING CHANGE :warning: #3355
1593
- * Calculate style layer `ref`s automatically and get rid of user-specified `ref`s :warning: BREAKING CHANGE :warning: #3486
1594
-
1595
- #### Performance Improvements
1596
-
1597
- * Ensure removing style or source releases all tile resources #3359
1598
-
1599
- #### Bugfixes
1600
-
1601
- * Fix bug causing an error when `Marker#setLngLat` is called #3294
1602
- * Fix bug causing incorrect coordinates in `touchend` on Android Chrome #3319
1603
- * Fix bug causing incorrect popup positioning at top of screen #3333
1604
- * Restore `tile` property to `data` events fired when a tile is removed #3328
1605
- * Fix bug causing "Improve this map" link to not preload map location #3356
1606
-
1607
- ## 0.25.1 (September 30 2016)
1608
-
1609
- #### Bugfixes
1610
-
1611
- * Fix bug causing attribution to not be shown #3278
1612
- * Fix bug causing exceptions when symbol text has a trailing newline #3281
1613
-
1614
- ## 0.25.0 (September 29 2016)
1615
-
1616
- #### Breaking Changes
1617
-
1618
- * `Evented#off` now require two arguments; omitting the second argument in order to unbind all listeners for an event
1619
- type is no longer supported, as it could cause unintended unbinding of internal listeners.
1620
-
1621
- #### New Features & Improvements
1622
-
1623
- * Consolidate undocumented data lifecycle events into `data` and `dataloading` events (#3255)
1624
- * Add `auto` value for style spec properties (#3203)
1625
-
1626
- #### Bugfixes
1627
-
1628
- * Fix bug causing "Map#queryRenderedFeatures" to return no features after map rotation or filter change (#3233)
1629
- * Change webpack build process (#3235) :warning: BREAKING CHANGE :warning:
1630
- * Improved error messages for `LngLat#convert` (#3232)
1631
- * Fix bug where the `tiles` field is omitted from the `RasterTileSource#serialize` method (#3259)
1632
- * Comply with HTML spec by replacing the `div` within the `Navigation` control `<button>` with a `span` element (#3268)
1633
- * Fix bug causing `Marker` instances to be translated to non-whole pixel coordinates that caused blurriness (#3270)
1634
-
1635
- #### Performance Improvements
1636
-
1637
- * Avoid unnecessary style validation (#3224)
1638
- * Share a single blob URL between all workers (#3239)
1639
-
1640
- ## 0.24.0 (September 19 2016)
1641
-
1642
- #### New Features & Improvements
1643
-
1644
- * Allow querystrings in `mapbox://` URLs #3113
1645
- * Allow "drag rotate" interaction to control pitch #3105
1646
- * Improve performance by decreasing `Worker` script `Blob` size #3158
1647
- * Improve vector tile performance #3067
1648
- * Decrease size of distributed library by removing `package.json` #3174
1649
- * Add support for new lines in `text-field` #3179
1650
- * Make keyboard navigation smoother #3190
1651
- * Make mouse wheel zooming smoother #3189
1652
- * Add better error message when calling `Map#queryRenderedFeatures` on nonexistent layer #3196
1653
- * Add support for imperial units on `Scale` control #3160
1654
- * Add map's pitch to URL hash #3218
1655
-
1656
- #### Bugfixes
1657
-
1658
- * Fix exception thrown when using box zoom handler #3078
1659
- * Ensure style filters cannot be mutated by reference #3093
1660
- * Fix exceptions thrown when opening marker-bound popup by click #3104
1661
- * Fix bug causing fills with transparent colors and patterns to not render #3107
1662
- * Fix order of latitudes in `Map#getBounds` #3081
1663
- * Fix incorrect evaluation of zoom-and-property functions #2827 #3155
1664
- * Fix incorrect evaluation of property functions #2828 #3155
1665
- * Fix bug causing garbled text rendering when multiple maps are rendered on the page #3086
1666
- * Fix rendering defects caused by `Map#setFilter` and map rotation on iOS 10 #3207
1667
- * Fix bug causing image and video sources to disappear when zooming in #3010
1668
-
1669
-
1670
- ## 0.23.0 (August 25 2016)
1671
-
1672
- #### New Features & Improvements
1673
-
1674
- * Add support for `line-color` property functions #2938
1675
- * Add `Scale` control #2940 #3042
1676
- * Improve polygon label placement by rendering labels at the pole of inaccessability #3038
1677
- * Add `Popup` `offset` option #1962
1678
- * Add `Marker#bindPopup` method #3056
1679
-
1680
- #### Performance Improvements
1681
-
1682
- * Improve performance of pages with multiple maps using a shared `WebWorker` pool #2952
1683
-
1684
- #### Bugfixes
1685
-
1686
- * Make `LatLngBounds` obey its documented argument order (`southwest`, `northeast`), allowing bounds across the dateline #2414 :warning: **BREAKING CHANGE** :warning:
1687
- * Fix bug causing `fill-opacity` property functions to not render as expected #3061
1688
-
1689
- ## 0.22.1 (August 18 2016)
1690
-
1691
- #### New Features & Improvements
1692
-
1693
- * Reduce library size by using minified version of style specification #2998
1694
- * Add a warning when rendering artifacts occur due to too many symbols or glyphs being rendered in a tile #2966
1695
-
1696
- #### Bugfixes
1697
-
1698
- * Fix bug causing exception to be thrown by `Map#querySourceFeatures` #3022
1699
- * Fix bug causing `Map#loaded` to return true while there are outstanding tile updates #2847
1700
-
1701
- ## 0.22.0 (August 11 2016)
1702
-
1703
- #### Breaking Changes
1704
-
1705
- * The `GeoJSONSource`, `VideoSource`, `ImageSource` constructors are now private. Please use `map.addSource({...})` to create sources and `map.getSource(...).setData(...)` to update GeoJSON sources. #2667
1706
- * `Map#onError` has been removed. You may catch errors by listening for the `error` event. If no listeners are bound to `error`, error messages will be printed to the console. #2852
1707
-
1708
- #### New Features & Improvements
1709
-
1710
- * Increase max glyph atlas size to accomodate alphabets with large numbers of characters #2930
1711
- * Add support for filtering features on GeoJSON / vector tile `$id` #2888
1712
- * Update geolocate icon #2973
1713
- * Add a `close` event to `Popup`s #2953
1714
- * Add a `offset` option to `Marker` #2885
1715
- * Print `error` events without any listeners to the console #2852
1716
- * Refactored `Source` interface to prepare for custom source types #2667
1717
-
1718
- #### Bugfixes
1719
-
1720
- * Fix opacity property-functions for fill layers #2971
1721
- * Fix `DataCloneError` in Firefox and IE11 #2559
1722
- * Fix bug preventing camera animations from being triggered in `moveend` listeners #2944
1723
- * Fix bug preventing `fill-outline-color` from being unset #2964
1724
- * Fix webpack support #2887
1725
- * Prevent buttons in controls from acting like form submit buttons #2935
1726
- * Fix bug preventing map interactions near two controls in the same corner #2932
1727
- * Fix crash resulting for large style batch queue #2926
1728
-
1729
- ## 0.21.0 (July 13 2016)
1730
-
1731
- #### Breaking Changes
1732
-
1733
- * GeoJSON polygon inner rings are now rewound for compliance with the [v2 vector tile](https://github.com/mapbox/vector-tile-spec/blob/master/2.1/README.md#4344-polygon-geometry-type). This may affect some uses of `line-offset`, reversing the direction of the offset. #2889
1734
-
1735
- #### New Features & Improvements
1736
-
1737
- * Add `text-pitch-alignment` style property #2668
1738
- * Allow query parameters on `mapbox://` URLs #2702
1739
- * Add `icon-text-fit` and `icon-text-fit-padding` style properties #2720
1740
- * Enable property functions for `icon-rotate` #2738
1741
- * Enable property functions for `fill-opacity` #2733
1742
- * Fire `Map#mouseout` events #2777
1743
- * Allow query parameters on all sprite URLs #2772
1744
- * Increase sprite atlas size to 1024px square, allowing more and larger sprites #2802
1745
- * Add `Marker` class #2725 #2810
1746
- * Add `{quadkey}` URL parameter #2805
1747
- * Add `circle-pitch-scale` style property #2821
1748
-
1749
- #### Bugfixes
1750
-
1751
- * Fix rendering of layers with large numbers of features #2794
1752
- * Fix exceptions thrown during drag-rotate interactions #2840
1753
- * Fix error when adding and removing a layer within the same update cycle #2845
1754
- * Fix false "Geometry exceeds allowed extent" warnings #2568
1755
- * Fix `Map#loaded` returning true while there are outstanding tile updates #2847
1756
- * Fix style validation error thrown while removing a filter #2847
1757
- * Fix event data object not being passed for double click events #2814
1758
- * Fix multipolygons disappearing from map at certain zoom levels #2704
1759
- * Fix exceptions caused by `queryRenderedFeatures` in Safari and Firefox #2822
1760
- * Fix `mapboxgl#supported()` returning `true` in old versions of IE11 mapbox/mapbox-gl-supported#1
1761
-
1762
- ## 0.20.1 (June 21 2016)
1763
-
1764
- #### Bugfixes
1765
-
1766
- * Fixed exception thrown when changing `*-translate` properties via `setPaintProperty` (#2762)
1767
-
1768
- ## 0.20.0 (June 10 2016)
1769
-
1770
- #### New Features & Improvements
1771
-
1772
- * Add limited WMS support #2612
1773
- * Add `workerCount` constructor option #2666
1774
- * Improve performance of `locationPoint` and `pointLocation` #2690
1775
- * Remove "Not using VertexArrayObject extension" warning messages #2707
1776
- * Add `version` property to mapboxgl #2660
1777
- * Support property functions in `circle-opacity` and `circle-blur` #2693
1778
-
1779
- #### Bugfixes
1780
-
1781
- * Fix exception thrown by "drag rotate" handler #2680
1782
- * Return an empty array instead of an empty object from `queryRenderedFeatures` #2694
1783
- * Fix bug causing map to not render in IE
1784
-
1785
- ## 0.19.1 (June 2 2016)
1786
-
1787
- #### Bugfixes
1788
-
1789
- * Fix rendering of polygons with more than 35k vertices #2657
1790
-
1791
- ## 0.19.0 (May 31 2016)
1792
-
1793
- #### New Features & Improvements
1794
-
1795
- * Allow use of special characters in property field names #2547
1796
- * Improve rendering speeds on fill layers #1606
1797
- * Add data driven styling support for `fill-color` and `fill-outline-color` #2629
1798
- * Add `has` and `!has` filter operators mapbox/feature-filter#15
1799
- * Improve keyboard handlers with held-down keys #2530
1800
- * Support 'tms' tile scheme #2565
1801
- * Add `trackResize` option to `Map` #2591
1802
-
1803
- #### Bugfixes
1804
-
1805
- * Scale circles when map is displayed at a pitch #2541
1806
- * Fix background pattern rendering bug #2557
1807
- * Fix bug that prevented removal of a `fill-pattern` from a fill layer #2534
1808
- * Fix `line-pattern` and `fill-pattern`rendering #2596
1809
- * Fix some platform specific rendering bugs #2553
1810
- * Return empty object from `queryRenderedFeatures` before the map is loaded #2621
1811
- * Fix "there is no texture bound to the unit 1" warnings #2509
1812
- * Allow transitioned values to be unset #2561
1813
-
1814
- ## 0.18.0 (April 13 2016)
1815
-
1816
- #### New Features & Improvements
1817
-
1818
- * Implement zoom-and-property functions for `circle-color` and `circle-size` #2454
1819
- * Dedupe attributions that are substrings of others #2453
1820
- * Misc performance improvements #2483 #2488
1821
-
1822
- #### Bugfixes
1823
-
1824
- * Fix errors when unsetting and resetting a style property #2464
1825
- * Fix errors when updating paint properties while using classes #2496
1826
- * Fix errors caused by race condition in unserializeBuckets #2497
1827
- * Fix overzoomed tiles in wrapped worlds #2482
1828
- * Fix errors caused by mutating a filter object after calling `Map#setFilter` #2495
1829
-
1830
- ## 0.17.0 (April 13 2016)
1831
-
1832
- #### Breaking Changes
1833
-
1834
- * Remove `map.batch` in favor of automatically batching style mutations (i.e. calls to `Map#setLayoutProperty`, `Map#setPaintProperty`, `Map#setFilter`, `Map#setClasses`, etc.) and applying them once per frame, significantly improving performance when updating the style frequently #2355 #2380
1835
- * Remove `util.throttle` #2345
1836
-
1837
- #### New Features & Improvements
1838
-
1839
- * Improve performance of all style mutation methods by only recalculating affected properties #2339
1840
- * Improve fading of labels and icons #2376
1841
- * Improve rendering performance by reducing work done on the main thread #2394
1842
- * Validate filters passed to `Map#queryRenderedFeatures` and `Map#querySourceFeatures` #2349
1843
- * Display a warning if a vector tile's geometry extent is larger than supported #2383
1844
- * Implement property functions (i.e. data-driven styling) for `circle-color` and `circle-size` #1932
1845
- * Add `Popup#setDOMContent` method #2436
1846
-
1847
- #### Bugfixes
1848
-
1849
- * Fix a performance regression caused by using 1 `WebWorker` instead of `# cpus - 1` `WebWorker`s, slowing down tile loading times #2408
1850
- * Fix a bug in which `Map#queryRenderedFeatures` would sometimes return features that had been removed #2353
1851
- * Fix `clusterMaxZoom` option on `GeoJSONSource` not working as expected #2374
1852
- * Fix anti-aliased rendering for pattern fills #2372
1853
- * Fix exception caused by calling `Map#queryRenderedFeatures` or `Map#querySourceFeatures` with no arguments
1854
- * Fix exception caused by calling `Map#setLayoutProperty` for `text-field` or `icon-image` #2407
1855
-
1856
- ## 0.16.0 (March 24 2016)
1857
-
1858
- #### Breaking Changes
1859
-
1860
- * Replace `Map#featuresAt` and `Map#featuresIn` with `Map#queryRenderedFeatures` and `map.querySourceFeatures` (#2224)
1861
- * Replace `featuresAt` and `featuresIn` with `queryRenderedFeatures`
1862
- * Make `queryRenderedFeatures` synchronous, remove the callback and use the return value.
1863
- * Rename `layer` parameter to `layers` and make it an array of layer names.
1864
- * Remove the `radius` parameter. `radius` was used with `featuresAt` to account for style properties like `line-width` and `circle-radius`. `queryRenderedFeatures` accounts for these style properties. If you need to query a larger area, use a bounding box query instead of a point query.
1865
- * Remove the `includeGeometry` parameter because `queryRenderedFeatures` always includes geometries.
1866
- * `Map#debug` is renamed to `Map#showTileBoundaries` (#2284)
1867
- * `Map#collisionDebug` is renamed to `Map#showCollisionBoxes` (#2284)
1868
-
1869
- #### New Features & Improvements
1870
-
1871
- * Improve overall rendering performance. (#2221)
1872
- * Improve performance of `GeoJSONSource#setData`. (#2222)
1873
- * Add `Map#setMaxBounds` method (#2234)
1874
- * Add `isActive` and `isEnabled` methods to interaction handlers (#2238)
1875
- * Add `Map#setZoomBounds` method (#2243)
1876
- * Add touch events (#2195)
1877
- * Add `map.queryRenderedFeatures` to query the styled and rendered representations of features (#2224)
1878
- * Add `map.querySourceFeatures` to get features directly from vector tiles, independent of the style (#2224)
1879
- * Add `mapboxgl.Geolocate` control (#1939)
1880
- * Make background patterns render seamlessly across tile boundaries (#2305)
1881
-
1882
- #### Bugfixes
1883
-
1884
- * Fix calls to `setFilter`, `setLayoutProperty`, and `setLayerZoomRange` on ref children (#2228)
1885
- * Fix `undefined` bucket errors after `setFilter` calls (#2244)
1886
- * Fix bugs causing hidden symbols to be rendered (#2246, #2276)
1887
- * Fix raster flickering (#2236)
1888
- * Fix `queryRenderedFeatures` precision at high zoom levels (#2292)
1889
- * Fix holes in GeoJSON data caused by unexpected winding order (#2285)
1890
- * Fix bug causing deleted features to be returned by `queryRenderedFeatures` (#2306)
1891
- * Fix bug causing unexpected fill patterns to be rendered (#2307)
1892
- * Fix popup location with preceding sibling elements (#2311)
1893
- * Fix polygon anti-aliasing (#2319)
1894
- * Fix slivers between non-adjacent polygons (#2319)
1895
- * Fix keyboard shortcuts causing page to scroll (#2312)
1896
-
1897
- ## 0.15.0 (March 1 2016)
1898
-
1899
- #### New Features & Improvements
1900
-
1901
- * Add `ImageSource#setCoordinates` and `VideoSource#setCoordinates` (#2184)
1902
-
1903
- #### Bugfixes
1904
-
1905
- * Fix flickering on raster layers (#2211)
1906
- * Fix browser hang when zooming quickly on raster layers (#2211)
1907
-
1908
- ## 0.14.3 (Feb 25 2016)
1909
-
1910
- #### New Features & Improvements
1911
-
1912
- * Improve responsiveness of zooming out by using cached parent tiles (#2168)
1913
- * Improve contextual clues on style API validation (#2170)
1914
- * Improve performance of methods including `setData` (#2174)
1915
-
1916
- #### Bugfixes
1917
-
1918
- * Fix incorrectly sized line dashes (#2099)
1919
- * Fix bug in which `in` feature filter drops features (#2166)
1920
- * Fix bug preventing `Map#load` from firing when tile "Not Found" errors occured (#2176)
1921
- * Fix rendering artifacts on mobile GPUs (#2117)
1922
-
1923
- ## 0.14.2 (Feb 19 2016)
1924
-
1925
- #### Bugfixes
1926
-
1927
- * Look for loaded parent tiles in cache
1928
- * Set tile cache size based on viewport size (#2137)
1929
- * Fix tile render order for layer-by-layer
1930
- * Remove source update throttling (#2139)
1931
- * Make panning while zooming more linear (#2070)
1932
- * Round points created during bucket creation (#2067)
1933
- * Correct bounds for a rotated or tilted map (#1842)
1934
- * Fix overscaled featuresAt (#2103)
1935
- * Allow using `tileSize: 512` as a switch to trade retina support for 512px raster tiles
1936
- * Fix the serialization of paint classes (#2107)
1937
- * Fixed bug where unsetting style properties could mutate the value of other style properties (#2105)
1938
- * Less slanted dashed lines near sharp corners (#967)
1939
- * Fire map#load if no initial style is set (#2042)
1940
-
1941
- ## 0.14.1 (Feb 10 2016)
1942
-
1943
- #### Bugfixes
1944
-
1945
- * Fix incorrectly rotated symbols along lines near tile boundries (#2062)
1946
- * Fix broken rendering when a fill layer follows certain symbol layers (#2092)
1947
-
1948
- ## 0.14.0 (Feb 8 2016)
1949
-
1950
- #### Breaking Changes
1951
-
1952
- * Switch `GeoJSONSource` clustering options from being measured in extent-units to pixels (#2026)
1953
-
1954
- #### New Features & Improvements
1955
-
1956
- * Improved error message for invalid colors (#2006)
1957
- * Added support for tiles with variable extents (#2010)
1958
- * Improved `filter` performance and maximum size (#2024)
1959
- * Changed circle rendering such that all geometry nodes are drawn, not just the geometry's outer ring (#2027)
1960
- * Added `Map#getStyle` method (#1982)
1961
-
1962
- #### Bugfixes
1963
-
1964
- * Fixed bug causing WebGL contexts to be "used up" by calling `mapboxgl.supported()` (#2018)
1965
- * Fixed non-deterministic symbol z-order sorting (#2023)
1966
- * Fixed garbled labels while zooming (#2012)
1967
- * Fixed icon jumping when touching trackpad with two fingers (#1990)
1968
- * Fixed overzoomed collision debug labels (#2033)
1969
- * Fixed dashes sliding along their line during zooming (#2039)
1970
- * Fixed overscaled `minzoom` setting for GeoJSON sources (#1651)
1971
- * Fixed overly-strict function validation for duplicate stops (#2075)
1972
- * Fixed crash due to `performance.now` not being present on some browsers (#2056)
1973
- * Fixed the unsetting of paint properties (#2037)
1974
- * Fixed bug causing multiple interaction handler event listeners to be attached (#2069)
1975
- * Fixed bug causing only a single debug box to be drawn (#2034)
1976
-
1977
- ## 0.13.1 (Jan 27 2016)
1978
-
1979
- #### Bugfixes
1980
-
1981
- * Fixed broken npm package due to outdated bundled modules
1982
-
1983
- ## 0.13.0 (Jan 27 2016)
1984
-
1985
- #### Bugfixes
1986
-
1987
- * Fixed easeTo pan, zoom, and rotate when initial rotation != 0 (#1950)
1988
- * Fixed rendering of tiles with an extent != 4096 (#1952)
1989
- * Fixed missing icon collision boxes (#1978)
1990
- * Fixed null `Tile#buffers` errors (#1987)
1991
-
1992
- #### New Features & Improvements
1993
-
1994
- * Added `symbol-avoid-edges` style property (#1951)
1995
- * Improved `symbol-max-angle` check algorithm (#1959)
1996
- * Added marker clustering! (#1931)
1997
- * Added zoomstart, zoom, and zoomend events (#1958)
1998
- * Disabled drag on mousedown when using boxzoom (#1907)
1999
-
2000
- ## 0.12.4 (Jan 19 2016)
2001
-
2002
- #### Bugfixes
2003
-
2004
- * Fix elementGroups null value errors (#1933)
2005
- * Fix some glyph atlas overflow cases (#1923)
2006
-
2007
- ## 0.12.3 (Jan 14 2016)
2008
-
2009
- #### API Improvements
2010
- * Support inline attribution options in map options (#1865)
2011
- * Improve flyTo options (#1854, #1429)
2012
-
2013
- #### Bugfixes
2014
- * Fix flickering with overscaled tiles (#1921)
2015
- * Remove Node.remove calls for IE browser compatibility (#1900)
2016
- * Match patterns at tile boundaries (#1908)
2017
- * Fix Tile#positionAt, fix query tests (#1899)
2018
- * Fix flickering on streets (#1875)
2019
- * Fix text-max-angle property (#1870)
2020
- * Fix overscaled line patterns (#1856)
2021
- * Fix patterns and icons for mismatched pixelRatios (#1851)
2022
- * Fix missing labels when text size 0 at max zoom (#1809)
2023
- * Use linear interp when pixel ratios don't match (#1601)
2024
- * Fix blank areas, flickering in raster layers (#1876, #675)
2025
- * Fix labels slipping/cropping at tile bounds (#757)
2026
-
2027
- #### UX Improvements
2028
- * Improve touch handler perceived performance (#1844)
2029
-
2030
- ## 0.12.2 (Dec 22 2015)
2031
-
2032
- #### API Improvements
2033
-
2034
- * Support LngLat.convert([w, s, e, n]) (#1812)
2035
- * Invalid GeoJSON is now handled better
2036
-
2037
- #### Bugfixes
2038
-
2039
- * Fixed `Popup#addTo` when the popup is already open (#1811)
2040
- * Fixed warping when rotating / zooming really fast
2041
- * `Map#flyTo` now flies across the antimeridan if shorter (#1853)
2042
-
2043
- ## 0.12.1 (Dec 8 2015)
2044
-
2045
- #### Breaking changes
2046
-
2047
- * Reversed the direction of `line-offset` (#1808)
2048
- * Renamed `Pinch` interaction handler to `TouchZoomRotate` (#1777)
2049
- * Made `Map#update` and `Map#render` private methods (#1798)
2050
- * Made `Map#remove` remove created DOM elements (#1789)
2051
-
2052
- #### API Improvements
2053
-
2054
- * Added an method to disable touch rotation (#1777)
2055
- * Added a `position` option for `Attribution` (#1689)
2056
-
2057
- #### Bugfixes
2058
-
2059
- * Ensure tile loading errors are properly reported (#1799)
2060
- * Ensure re-adding a previously removed pop-up works (#1477)
2061
-
2062
- #### UX Improvements
2063
-
2064
- * Don't round zoom level during double-click interaction (#1640)
2065
-
2066
- ## 0.12.0 (Dec 2 2015)
2067
-
2068
- #### API Improvements
2069
-
2070
- * Added `line-offset` style property (#1778)
2071
-
2072
- ## 0.11.5 (Dec 1 2015)
2073
-
2074
- #### Bugfixes
2075
-
2076
- * Fixed unstable symbol layer render order when adding / removing layers (#1558)
2077
- * Fire map loaded event even if raster tiles have errors
2078
- * Fix panning animation during easeTo with zoom change
2079
- * Fix pitching animation during flyTo
2080
- * Fix pitching animation during easeTo
2081
- * Prevent rotation from firing `mouseend` events (#1104)
2082
-
2083
- #### API Improvements
2084
-
2085
- * Fire `mousedown` and `mouseup` events (#1411)
2086
- * Fire `movestart` and `moveend` when panning (#1658)
2087
- * Added drag events (#1442)
2088
- * Request webp images for mapbox:// raster tiles in chrome (#1725)
2089
-
2090
- #### UX Improvements
2091
-
2092
- * Added inertia to map rotation (#620)
2093
-
2094
- ## 0.11.4 (Nov 16 2015)
2095
-
2096
- #### Bugfixes
2097
-
2098
- * Fix alpha blending of alpha layers (#1684)
2099
-
2100
- ## 0.11.3 (Nov 10 2015)
2101
-
2102
- #### Bugfixes
2103
-
2104
- * Fix GeoJSON rendering and performance (#1685)
2105
-
2106
- #### UX Improvements
2107
-
2108
- * Use SVG assets for UI controls (#1657)
2109
- * Zoom out with shift + dblclick (#1666)
2110
-
2111
- ## 0.11.2 (Oct 29 2015)
2112
-
2113
- * Misc performance improvements
2114
-
2115
- #### Bugfixes
2116
-
2117
- * Fix sprites on systems with non-integer `devicePixelRatio`s (#1029 #1475 #1476)
2118
- * Fix layer minZoom being ignored if not less than source maxZoom
2119
- * Fix symbol placement at the start of a line (#1461)
2120
- * Fix `raster-opacity` on non-tile sources (#1270)
2121
- * Ignore boxzoom on shift-click (#1655)
2122
-
2123
- #### UX Improvements
2124
-
2125
- * Enable line breaks on common punctuation (#1115)
2126
-
2127
- #### API Improvements
2128
-
2129
- * Add toString and toArray methods to LngLat, LngLatBounds (#1571)
2130
- * Add `Transform#resize` method
2131
- * Add `Map#getLayer` method (#1183)
2132
- * Add `Transform#unmodified` property (#1452)
2133
- * Propagate WebGL context events (#1612)
2134
-
2135
- ## 0.11.1 (Sep 30 2015)
2136
-
2137
- #### Bugfixes
2138
-
2139
- * Add statistics and checkboxes to debug page
2140
- * Fix `Map#featuresAt` for non-4096 vector sources (#1529)
2141
- * Don't fire `mousemove` on drag-pan
2142
- * Fix maxBounds constrains (#1539)
2143
- * Fix maxBounds infinite loop (#1538)
2144
- * Fix memory leak in worker
2145
- * Assert valid `TileCoord`, fix wrap calculation in `TileCoord#cover` (#1483)
2146
- * Abort raster tile load if not in viewport (#1490)
2147
-
2148
- #### API Improvements
2149
-
2150
- * Add `Map` event listeners for `mouseup`, `contextmenu` (right click) (#1532)
2151
-
2152
-
2153
- ## 0.11.0 (Sep 11 2015)
2154
-
2155
- #### API Improvements
2156
-
2157
- * Add `Map#featuresIn`: a bounding-box feature query
2158
- * Emit stylesheet validation errors (#1436)
2159
-
2160
- #### UX Improvements
2161
-
2162
- * Handle v8 style `center`, `zoom`, `bearing`, `pitch` (#1452)
2163
- * Improve circle type styling (#1446)
2164
- * Improve dashed and patterned line antialiasing
2165
-
2166
- #### Bugfixes
2167
-
2168
- * Load images in a way that respects Cache-Control headers
2169
- * Filter for rtree matches to those crossing bbox
2170
- * Log errors by default (#1463)
2171
- * Fixed modification of `text-size` via `setLayoutProperty` (#1451)
2172
- * Throw on lat > 90 || < -90. (#1443)
2173
- * Fix circle clipping bug (#1457)
2174
-
2175
-
2176
- ## 0.10.0 (Aug 21 2015)
2177
-
2178
- #### Breaking changes
2179
-
2180
- * Switched to [longitude, latitude] coordinate order, matching GeoJSON. We anticipate that mapbox-gl-js will be widely used
2181
- with GeoJSON, and in the long term having a coordinate order that is consistent with GeoJSON will lead to less confusion
2182
- and impedance mismatch than will a [latitude, longitude] order.
2183
-
2184
- The following APIs were renamed:
2185
-
2186
- * `LatLng` was renamed to `LngLat`
2187
- * `LatLngBounds` was renamed to `LngLatBounds`
2188
- * `Popup#setLatLng` was renamed to `Popup#setLngLat`
2189
- * `Popup#getLatLng` was renamed to `Popup#getLngLat`
2190
- * The `latLng` property of Map events was renamed `lngLat`
2191
-
2192
- The following APIs now expect array coordinates in [longitude, latitude] order:
2193
-
2194
- * `LngLat.convert`
2195
- * `LngLatBounds.convert`
2196
- * `Popup#setLngLat`
2197
- * The `center` and `maxBounds` options of the `Map` constructor
2198
- * The arguments to `Map#setCenter`, `Map#fitBounds`, `Map#panTo`, and `Map#project`
2199
- * The `center` option of `Map#jumpTo`, `Map#easeTo`, and `Map#flyTo`
2200
- * The `around` option of `Map#zoomTo`, `Map#rotateTo`, and `Map#easeTo`
2201
- * The `coordinates` properties of video and image sources
2202
-
2203
- * Updated to mapbox-gl-style-spec v8.0.0 ([Changelog](https://github.com/mapbox/mapbox-gl-style-spec/blob/v8.0.0/CHANGELOG.md)). Styles are
2204
- now expected to be version 8. You can use the [gl-style-migrate](https://github.com/mapbox/mapbox-gl-style-lint#migrations)
2205
- utility to update existing styles.
2206
-
2207
- * The format for `mapbox://` style and glyphs URLs has changed. For style URLs, you should now use the format
2208
- `mapbox://styles/:username/:style`. The `:style` portion of the URL no longer contains a username. For font URLs, you
2209
- should now use the format `mapbox://fonts/:username/{fontstack}/{range}.pbf`.
2210
- * Mapbox default styles are now hosted via the Styles API rather than www.mapbox.com. You can make use of the Styles API
2211
- with a `mapbox://` style URL pointing to a v8 style, e.g. `mapbox://styles/mapbox/streets-v8`.
2212
- * The v8 satellite style (`mapbox://styles/mapbox/satellite-v8`) is now a plain satellite style, and not longer supports labels
2213
- or contour lines via classes. For a labeled satellite style, use `mapbox://styles/mapbox/satellite-hybrid`.
2214
-
2215
- * Removed `mbgl.config.HTTP_URL` and `mbgl.config.FORCE_HTTPS`; https is always used when connecting to the Mapbox API.
2216
- * Renamed `mbgl.config.HTTPS_URL` to `mbgl.config.API_URL`.
2217
-
2218
- #### Bugfixes
2219
-
2220
- * Don't draw halo when halo-width is 0 (#1381)
2221
- * Reverted shader changes that degraded performance on IE
2222
-
2223
- #### API Improvements
2224
-
2225
- * You can now unset layout and paint properties via the `setLayoutProperty` and `setPaintProperty` APIs
2226
- by passing `undefined` as a property value.
2227
- * The `layer` option of `featuresAt` now supports an array of layers.
2228
-
2229
- ## 0.9.0 (Jul 29 2015)
2230
-
2231
- * `glyphs` URL now normalizes without the `/v4/` prefix for `mapbox://` urls. Legacy behavior for `mapbox://fontstacks` is still maintained (#1385)
2232
- * Expose `geojson-vt` options for GeoJSON sources (#1271)
2233
- * bearing snaps to "North" within a tolerance of 7 degrees (#1059)
2234
- * Now you can directly mutate the minzoom and maxzoom layer properties with `map.setLayerZoomRange(layerId, minzoom, maxzoom)`
2235
- * Exposed `mapboxgl.Control`, a base class used by all UI controls
2236
- * Refactored handlers to be individually included in Map options, or enable/disable them individually at runtime, e.g. `map.scrollZoom.disable()`.
2237
- * New feature: Batch operations can now be done at once, improving performance for calling multiple style functions: (#1352)
2238
-
2239
- ```js
2240
- style.batch(function(s) {
2241
- s.addLayer({ id: 'first', type: 'symbol', source: 'streets' });
2242
- s.addLayer({ id: 'second', type: 'symbol', source: 'streets' });
2243
- s.addLayer({ id: 'third', type: 'symbol', source: 'terrain' });
2244
- s.setPaintProperty('first', 'text-color', 'black');
2245
- s.setPaintProperty('first', 'text-halo-color', 'white');
2246
- });
2247
- ```
2248
- * Improved documentation
2249
- * `featuresAt` performance improvements by exposing `includeGeometry` option
2250
- * Better label placement along lines (#1283)
2251
- * Improvements to round linejoins on semi-transparent lines (mapbox/mapbox-gl-native#1771)
2252
- * Round zoom levels for raster tile loading (2a2aec)
2253
- * Source#reload cannot be called if source is not loaded (#1198)
2254
- * Events bubble to the canvas container for custom overlays (#1301)
2255
- * Move handlers are now bound on mousedown and touchstart events
2256
- * map.featuresAt() now works across the dateline
2257
-
2258
- ## 0.8.1 (Jun 16 2015)
2259
-
2260
- * No code changes; released only to correct a build issue in 0.8.0.
2261
-
2262
- ## 0.8.0 (Jun 15 2015)
2263
-
2264
- #### Breaking changes
2265
-
2266
- * `map.setView(latlng, zoom, bearing)` has been removed. Use
2267
- [`map.jumpTo(options)`](https://www.mapbox.com/mapbox-gl-js/api/#map/jumpto) instead:
2268
-
2269
- ```js
2270
- map.setView([40, -74.50], 9) // 0.7.0 or earlier
2271
- map.jumpTo({center: [40, -74.50], zoom: 9}); // now
2272
- ```
2273
- * [`map.easeTo`](https://www.mapbox.com/mapbox-gl-js/api/#map/easeto) and
2274
- [`map.flyTo`](https://www.mapbox.com/mapbox-gl-js/api/#map/flyto) now accept a single
2275
- options object rather than positional parameters:
2276
-
2277
- ```js
2278
- map.easeTo([40, -74.50], 9, null, {duration: 400}); // 0.7.0 or earlier
2279
- map.easeTo({center: [40, -74.50], zoom: 9, duration: 400}); // now
2280
- ```
2281
- * `mapboxgl.Source` is no longer exported. Use `map.addSource()` instead. See the
2282
- [GeoJSON line](https://www.mapbox.com/mapbox-gl-js/example/geojson-line/) or
2283
- [GeoJSON markers](https://www.mapbox.com/mapbox-gl-js/example/geojson-markers/)
2284
- examples.
2285
- * `mapboxgl.util.supported()` moved to [`mapboxgl.supported()`](https://www.mapbox.com/mapbox-gl-js/api/#mapboxgl/supported).
2286
-
2287
- #### UX improvements
2288
-
2289
- * Add perspective rendering (#1049)
2290
- * Better and faster labelling (#1079)
2291
- * Add touch interactions support on mobile devices (#949)
2292
- * Viewport-relative popup arrows (#1065)
2293
- * Normalize mousewheel zooming speed (#1060)
2294
- * Add proper handling of GeoJSON features that cross the date line (#1275)
2295
- * Sort overlapping symbols in the y direction (#470)
2296
- * Control buttons are now on a 30 pixel grid (#1143)
2297
- * Improve GeoJSON processing performance
2298
-
2299
- #### API Improvements
2300
-
2301
- * Switch to JSDoc for documentation
2302
- * Bundling with browserify is now supported
2303
- * Validate incoming map styles (#1054)
2304
- * Add `Map` `setPitch` `getPitch`
2305
- * Add `Map` `dblclick` event. (#1168)
2306
- * Add `Map` `getSource` (660a8c1)
2307
- * Add `Map` `setFilter` and `getFilter` (#985)
2308
- * Add `Map` `failIfMajorPerformanceCaveat` option (#1082)
2309
- * Add `Map` `preserveDrawingBuffer` option (#1232)
2310
- * Add `VideoSource` `getVideo()` (#1162)
2311
- * Support vector tiles with extents other than 4096 (#1227)
2312
- * Use a DOM hierarchy that supports evented overlays (#1217)
2313
- * Pass `latLng` to the event object (#1068)
2314
-
2315
- #### UX Bugfixes
2316
-
2317
- * Fix rendering glitch on iOS 8 (#750)
2318
- * Fix line triangulation errors (#1120, #992)
2319
- * Support unicode range 65280-65535 (#1108)
2320
- * Fix cracks between fill patterns (#972)
2321
- * Fix angle of icons aligned with lines (37a498a)
2322
- * Fix dashed line bug for overscaled tiles (#1132)
2323
- * Fix icon artifacts caused by sprite neighbors (#1195)
2324
-
2325
- #### API Bugfixes
2326
-
2327
- * Don't fire spurious `moveend` events on mouseup (#1107)
2328
- * Fix a race condition in `featuresAt` (#1220)
2329
- * Fix for brittle fontstack name convention (#1070)
2330
- * Fix broken `Popup` `setHTML` (#1272)
2331
- * Fix an issue with cross-origin image requests (#1269)
2332
-
2333
-
2334
- ## 0.7.0 (Mar 3 2015)
2335
-
2336
- #### Breaking
2337
-
2338
- * Rename `Map` `hover` event to `mousemove`.
2339
- * Change `featuresAt` to return GeoJSON objects, including geometry (#1010)
2340
- * Remove `Map` `canvas` and `container` properties, add `getCanvas` and `getContainer` methods instead
2341
-
2342
- #### UX Improvements
2343
-
2344
- * Improve line label density
2345
- * Add boxzoom interaction (#1038)
2346
- * Add keyboard interaction (#1034)
2347
- * Faster `GeoJSONSource` `setData` without flickering (#973)
2348
-
2349
- #### API Improvements
2350
-
2351
- * Add Popup component (#325)
2352
- * Add layer API (#1022)
2353
- * Add filter API (#985)
2354
- * More efficient filter API (#1018)
2355
- * Accept plain old JS object for `addSource` (#1021)
2356
- * Reparse overscaled tiles
2357
-
2358
- #### Bugfixes
2359
-
2360
- * Fix `featuresAt` for LineStrings (#1006)
2361
- * Fix `tileSize` argument to `GeoJSON` worker (#987)
2362
- * Remove extraneous files from the npm package (#1024)
2363
- * Hide "improve map" link in print (#988)
2364
-
2365
-
2366
- ## 0.6.0 (Feb 9 2015)
2367
-
2368
- #### Bugfixes
2369
-
2370
- * Add wrapped padding to sprite for repeating images (#972)
2371
- * Clear color buffers before rendering (#966)
2372
- * Make line-opacity work with line-image (#970)
2373
- * event.toElement fallback for Firefox (#932)
2374
- * skip duplicate vertices at ends of lines (#776)
2375
- * allow characters outside \w to be used in token
2376
- * Clear old tiles when new GeoJSON is loaded (#905)
2377
-
2378
- #### Improvements
2379
-
2380
- * Added `map.setPaintProperty()`, `map.getPaintProperty()`, `map.setLayoutProperty()`, and `map.getLayoutProperty()`.
2381
- * Switch to ESLint and more strict code rules (#957)
2382
- * Grab 2x raster tiles if retina (#754)
2383
- * Support for mapbox:// style URLs (#875)
2384
-
2385
- #### Breaking
2386
-
2387
- * Updated to mapbox-gl-style-spec v7.0.0 ([Changelog](https://github.com/mapbox/mapbox-gl-style-spec/blob/a2b0b561ce16015a1ef400dc870326b1b5255091/CHANGELOG.md)). Styles are
2388
- now expected to be version 7. You can use the [gl-style-migrate](https://github.com/mapbox/mapbox-gl-style-lint#migrations)
2389
- utility to update existing styles.
2390
- * HTTP_URL and HTTPS_URL config options must no longer include a `/v4` path prefix.
2391
- * `addClass`, `removeClass`, `setClasses`, `hasClass`, and `getClasses` are now methods
2392
- on Map.
2393
- * `Style#cascade` is now private, pending a public style mutation API (#755).
2394
- * The format for `featuresAt` results changed. Instead of result-per-geometry-cross-layer,
2395
- each result has a `layers` array with all layers that contain the feature. This avoids
2396
- duplication of geometry and properties in the result set.
2397
-
2398
-
2399
- ## 0.5.2 (Jan 07 2015)
2400
-
2401
- #### Bugfixes
2402
-
2403
- * Remove tiles for unused sources (#863)
2404
- * Fix fill pattern alignment
2405
-
2406
- #### Improvements
2407
-
2408
- * Add GeoJSONSource maxzoom option (#760)
2409
- * Return ref layers in featuresAt (#847)
2410
- * Return any extra layer keys provided in the stylesheet in featuresAt
2411
- * Faster protobuf parsing
2412
-
2413
- ## 0.5.1 (Dec 19 2014)
2414
-
2415
- #### Bugfixes
2416
-
2417
- * Fix race conditions with style loading/rendering
2418
- * Fix race conditions with setStyle
2419
- * Fix map.remove()
2420
- * Fix featuresAt properties
2421
-
2422
- ## 0.5.0 (Dec 17 2014)
2423
-
2424
- #### Bugfixes
2425
-
2426
- * Fix multiple calls to setStyle
2427
-
2428
- #### Improvements
2429
-
2430
- * `featuresAt` now returns additional information
2431
- * Complete style/source/tile event suite:
2432
- style.load, style.error, style.change,
2433
- source.add, source.remove, source.load, source.error, source.change,
2434
- tile.add, tile.remove, tile.load, tile.error
2435
- * Vastly improved performance and correctness for GeoJSON sources
2436
- * Map#setStyle accepts a style URL
2437
- * Support {prefix} in tile URL templates
2438
- * Provide a source map with minified source
2439
-
2440
- #### Breaking
2441
-
2442
- * Results format for `featuresAt` changed
2443
-
2444
- ## 0.4.2 (Nov 14 2014)
2445
-
2446
- #### Bugfixes
2447
-
2448
- - Ensure only one easing is active at a time (#807)
2449
- - Don't require style to perform easings (#817)
2450
- - Fix raster tiles sometimes not showing up (#761)
2451
-
2452
- #### Improvements
2453
-
2454
- - Internet Explorer 11 support (experimental)
2455
-
2456
- ## 0.4.1 (Nov 10 2014)
2457
-
2458
- #### Bugfixes
2459
-
2460
- - Interpolate to the closest bearing when doing rotation animations (#818)
2461
-
2462
- ## 0.4.0 (Nov 4 2014)
2463
-
2464
- #### Breaking
2465
-
2466
- - Updated to mapbox-gl-style-spec v6.0.0 ([Changelog](https://github.com/mapbox/mapbox-gl-style-spec/blob/v6.0.0/CHANGELOG.md)). Styles are
2467
- now expected to be version 6. You can use the [gl-style-migrate](https://github.com/mapbox/mapbox-gl-style-lint#migrations)
2468
- utility to update existing styles.
2469
-
2470
- ## 0.3.2 (Oct 23 2014)
2471
-
2472
- #### Bugfixes
2473
-
2474
- - Fix worker initialization with deferred or async scripts
2475
-
2476
- #### Improvements
2477
-
2478
- - Added map.remove()
2479
- - CDN assets are now served with gzip compression
2480
-
2481
- ## 0.3.1 (Oct 06 2014)
2482
-
2483
- #### Bugfixes
2484
-
2485
- - Fixed iteration over arrays with for/in
2486
- - Made browserify deps non-dev (#752)
2487
-
2488
- ## 0.3.0 (Sep 23 2014)
2489
-
2490
- #### Breaking
2491
-
2492
- - Updated to mapbox-gl-style-spec v0.0.5 ([Changelog](https://github.com/mapbox/mapbox-gl-style-spec/blob/v0.0.5/CHANGELOG.md)). Styles are
2493
- now expected to be version 5. You can use the [gl-style-migrate](https://github.com/mapbox/mapbox-gl-style-lint#migrations)
2494
- utility to update existing styles.
2495
- - Removed support for composite layers for performance reasons. [#523](https://github.com/mapbox/mapbox-gl-js/issues/523#issuecomment-51731405)
2496
- - `raster-hue-rotate` units are now degrees.
2497
-
2498
- ### Improvements
2499
-
2500
- - Added LatLng#wrap
2501
- - Added support for Mapbox fontstack API.
2502
- - Added support for remote, non-Mapbox TileJSON sources and inline TileJSON sources (#535, #698).
2503
- - Added support for `symbol-avoid-edges` property to allow labels to be placed across tile edges.
2504
- - Fixed mkdir issue on Windows (#674).
2505
- - Fixed drawing beveled line joins without overlap.
2506
-
2507
- #### Bugfixes
2508
-
2509
- - Fixed performance when underzooming a layer's minzoom.
2510
- - Fixed `raster-opacity` for regular raster layers.
2511
- - Fixed various corner cases of easing functions.
2512
- - Do not modify original stylesheet (#728).
2513
- - Inherit video source from source (#699).
2514
- - Fixed interactivity for geojson layers.
2515
- - Stop dblclick on navigation so the map does not pan (#715).
2516
-
2517
- ## 0.2.2 (Aug 12 2014)
2518
-
2519
- #### Breaking
2520
-
2521
- - `map.setBearing()` no longer supports a second argument. Use `map.rotateTo` with an `offset` option and duration 0
2522
- if you need to rotate around a point other than the map center.
2523
-
2524
- #### Improvements
2525
-
2526
- - Improved `GeoJSONSource` to also accept URL as `data` option, eliminating a huge performance bottleneck in case of large GeoJSON files.
2527
- [#669](https://github.com/mapbox/mapbox-gl-js/issues/669) [#671](https://github.com/mapbox/mapbox-gl-js/issues/671)
2528
- - Switched to a different fill outlines rendering approach. [#668](https://github.com/mapbox/mapbox-gl-js/issues/668)
2529
- - Made the minified build 12% smaller gzipped (66 KB now).
2530
- - Added `around` option to `Map` `zoomTo`/`rotateTo`.
2531
- - Made the permalink hash more compact.
2532
- - Bevel linejoins no longer overlap and look much better when drawn with transparency.
2533
-
2534
- #### Bugfixes
2535
-
2536
- - Fixed the **broken minified build**. [#679](https://github.com/mapbox/mapbox-gl-js/issues/679)
2537
- - Fixed **blurry icons** rendering. [#666](https://github.com/mapbox/mapbox-gl-js/issues/666)
2538
- - Fixed `util.supports` WebGL detection producing false positives in some cases. [#677](https://github.com/mapbox/mapbox-gl-js/issues/677)
2539
- - Fixed invalid font configuration completely blocking tile rendering. [#662](https://github.com/mapbox/mapbox-gl-js/issues/662)
2540
- - Fixed `Map` `project`/`unproject` to properly accept array-form values.
2541
- - Fixed sprite loading race condition. [#593](https://github.com/mapbox/mapbox-gl-js/issues/593)
2542
- - Fixed `GeoJSONSource` `setData` not updating the map until zoomed or panned. [#676](https://github.com/mapbox/mapbox-gl-js/issues/676)
2543
-
2544
- ## 0.2.1 (Aug 8 2014)
2545
-
2546
- #### Breaking
2547
-
2548
- - Changed `Navigation` control signature: now it doesn't need `map` in constructor
2549
- and gets added with `map.addControl(nav)` or `nav.addTo(map)`.
2550
- - Updated CSS classes to have consistent naming prefixed with `mapboxgl-`.
2551
-
2552
- #### Improvements
2553
-
2554
- - Added attribution control (present by default, disable by passing `attributionControl: false` in options).
2555
- - Added rotation by dragging the compass control.
2556
- - Added grabbing cursors for the map by default.
2557
- - Added `util.inherit` and `util.debounce` functions.
2558
- - Changed the default debug page style to OSM Bright.
2559
- - Token replacements now support dashes.
2560
- - Improved navigation control design.
2561
-
2562
- #### Bugfixes
2563
-
2564
- - Fixed compass control to rotate its icon with the map.
2565
- - Fixed navigation control cursors.
2566
- - Fixed inertia going to the wrong direction in a rotated map.
2567
- - Fixed inertia race condition where error was sometimes thrown after erratic panning/zooming.
2568
-
2569
-
2570
- ## 0.2.0 (Aug 6 2014)
2571
-
2572
- - First public release.