- Fix bug causing
mapbox-gl-rtl-textplugin to not work #4055
- Style classes are deprecated and will be removed in an upcoming release of Mapbox GL JS.
- Add
Map#isSourceLoadedmethod #4033 - Automatically reload tiles based on their
ExpiresandCache-ControlHTTP headers #3944 - Add
around=centeroption toscrollZoomandtouchZoomRotateinteraction handlers #3876 - Add support for
mapbox-gl-rtl-textplugin to support right-to-left scripts #3758 - Add
canvassource type #3765 - Add
Map#isMovingmethod #2792
- Fix bug causing garbled text on zoom #3962
- Fix bug causing crash in Firefox and Mobile Safari when rendering a large map #4037
- Fix bug causing raster tiles to flicker during zoom #2467
- Fix bug causing exception when unsetting and resetting fill-outline-color #3657
- Fix memory leak when removing raster sources #3951
- Fix bug causing exception when when zooming in / out on empty GeoJSON tile #3985
- Fix line join artifacts at very sharp angles #4008
- Add
renderWorldCopiesoption to theMapconstructor to give users control over whether multiple worlds are rendered in a map #3885
- Fix performance regression triggered when
Mappitch or bearing is changed #3938 - Fix null pointer exception caused by trying to clear an
undefinedsource #3903
- Incorporate integration tests formerly at
mapbox-gl-test-suiteinto this repository #3834
- Fire an error when map canvas is larger than allowed by
gl.MAX_RENDERBUFFER_SIZE#2893 - Improve error messages when referencing a nonexistent layer id #2597
- Fire an error when layer uses a
geojsonsource and specifies asource-layer#3896 - Add inline source declaration syntax #3857
- Improve line breaking behavior #3887
- Improve
Map#setStyleperformance in some cases #3853
- Fix unexpected popup positioning when some offsets are unspecified #3367
- Fix incorrect interpolation in functions #3838
- Fix incorrect opacity when multiple backgrounds are rendered #3819
- Fix exception thrown when instantiating geolocation control in Safari #3844
- Fix exception thrown when setting
showTileBoundarieswith no sources #3849 - Fix incorrect rendering of transparent parts of raster layers in some cases #3723
- Fix non-terminating render loop when zooming in in some cases #3399
- Add support for property functions for many style properties on line layers #3033
- Make
Map#setStylesmoothly transition to the new style #3621 - Add
styledata,sourcedata,styledataloading, andsourcedataloadingevents - Add
isSourceLoadedandsourceproperties toMapDataEvent#3590 - Remove "max zoom" cap of 20 #3683
- Add
circle-stroke-*style properties #3672 - Add a more helpful error message when the specified
containerelement doesn't exist #3719 - Add
watchPositionoption toGeolocateControl#3739 - Add
positionOptionsoption toGeolocateControl#3739 - Add
aria-labelto map canvas #3782 - Adjust multipoint symbol rendering behavior #3763
- Add support for property functions for
icon-offset#3791 - Improved antialiasing on pitched lines #3790
- Allow attribution control to collapse to an ⓘ button on smaller screens #3783
- Improve line breaking algorithm #3743
- Fix memory leak when calling
Map#removeSource#3602 - Reduce bundle size by adding custom build of
gl-matrix#3734 - Improve performance of projection code #3721
- Improve performance of style function evaluation #3816
- Fix exception thrown when using
line-colorproperty functions #3639 - Fix exception thrown when removing a layer and then adding another layer with the same id but different type #3655
- Fix exception thrown when passing a single point to
Map#fitBounds#3655 - Fix exception thrown occasionally during rapid map mutations #3681
- Fix rendering defects on pitch=0 on some systems #3740
- Fix unnecessary CPU usage when displaying a raster layer #3764
- Fix bug causing sprite after
Map#setStyle#3829 - Fix bug preventing
Mapfrom emitting acontextmenuevent on Windows browsers #3822
- Performance improvements for
Map#addLayerandMap#removeLayer#3584 - Add method for changing layer order at runtime -
Map#moveLayer#3584 - Update vertical punctuation logic to Unicode 9.0 standard #3608
- Fix data-driven
fill-opacityrendering when using afill-pattern#3598 - Fix line rendering artifacts #3627
- Fix incorrect rendering of opaque fills on top of transparent fills #2628
- Prevent
AssertionErrorsfrom pitching raster layers by only callingWorker#redoPlacementon vector and GeoJSON sources #3624 - Restore IE11 compatability #3635
- Fix symbol placement for cached tiles #3637
- Replace
fill-extrude-heightandfill-extrude-baseproperties offillrender type with a separatefill-extrusiontype (with correspondingfill-extrusion-heightandfill-extrusion-baseproperties), solving problems with render parity and runtime switching between flat and extruded fills. mapbox/mapbox-gl-style-spec#554 - Change the units for extrusion height properties (
fill-extrusion-height,fill-extrusion-base) from "magic numbers" to meters. #3509 - Remove
mapboxgl.Controlclass and change the way custom controls should be implemented. #3497 - Remove
mapboxgl.utilfunctions:inherit,extendAll,debounce,coalesce,startsWith,supportsGeolocation. #3441 #3571 mapboxgl.utilis deprecated and will be removed in the next release. #1408
- 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 ⚡️⚡️⚡️
- 🈯 Added vertical text writing mode for languages that support it. #3438
- 🈯 Improved line breaking of Chinese and Japanese text in point-placed labels. #3420
- Reduce the default number of worker threads (
mapboxgl.workerCount) for better performance. #3565 - Automatically use
categoricalstyle function type when input values are strings. #3384 - Improve control buttons accessibility. #3492
- Remove geolocation button if geolocation is disabled (e.g. the page is not served through
https). #3571 - Added
Map#getMaxZoomandMap#getMinZoommethods #3592
- Fix several line dash rendering bugs. #3451
- Fix intermittent map flicker when using image sources. #3522
- Fix incorrect rendering of semitransparent
backgroundlayers. #3521 - Fix broken
raster-fade-durationproperty. #3532 - Fix handling of extrusion heights with negative values (by clamping to
0). #3463 - Fix GeoJSON sources not placing labels/icons correctly after map rotation. #3366
- Fix icon/label placement not respecting order for layers with numeric names. #3404
- Fix
queryRenderedFeaturesworking incorrectly on colliding labels. #3459 - Fix a bug where changing extrusion properties at runtime sometimes threw an error. #3487 #3468
- Fix a bug where
map.loaded()always returnedtruewhen using raster tile sources. #3302 - Fix a bug where moving the map out of bounds sometimes threw
failed to invert matrixerror. #3518 - Fixed
queryRenderedFeaturesthrowing an error if no parameters provided. #3542 - Fixed a bug where using multiple
\nin a text field resulted in an error. #3570
- 🐞 Fix
npm install mapbox-glpulling in alldevDependencies, leading to an extremely slow install. #3377 - Switch the codebase to ES6. #3388 #3408 #3415 #3421
- A lot of internal refactoring to make the codebase simpler and more maintainable.
- Various documentation fixes. #3440
- Add
fill-extrude-heightandfill-extrude-basestyle properties (3d buildings) 🏙️ #3223 - Add customizable
colorSpaceinterpolation to functions #3245 - Add
identityfunction type #3274 - Add depth testing for symbols with
'pitch-alignment': 'map'#3243 - Add
dataloadingevents for styles and sources #3306 - Add
Controlsuffix to all controls⚠️ BREAKING CHANGE⚠️ #3355 - Calculate style layer
refs automatically and get rid of user-specifiedrefs⚠️ BREAKING CHANGE⚠️ #3486
- Ensure removing style or source releases all tile resources #3359
- Fix bug causing an error when
Marker#setLngLatis called #3294 - Fix bug causing incorrect coordinates in
touchendon Android Chrome #3319 - Fix bug causing incorrect popup positioning at top of screen #3333
- Restore
tileproperty todataevents fired when a tile is removed #3328 - Fix bug causing "Improve this map" link to not preload map location #3356
- Fix bug causing attribution to not be shown #3278
- Fix bug causing exceptions when symbol text has a trailing newline #3281
Evented#offnow require two arguments; omitting the second argument in order to unbind all listeners for an event type is no longer supported, as it could cause unintended unbinding of internal listeners.
- Consolidate undocumented data lifecycle events into
dataanddataloadingevents (#3255) - Add
autovalue for style spec properties (#3203)
- Fix bug causing "Map#queryRenderedFeatures" to return no features after map rotation or filter change (#3233)
- Change webpack build process (#3235)
⚠️ BREAKING CHANGE⚠️ - Improved error messages for
LngLat#convert(#3232) - Fix bug where the
tilesfield is omitted from theRasterTileSource#serializemethod (#3259) - Comply with HTML spec by replacing the
divwithin theNavigationcontrol<button>with aspanelement (#3268) - Fix bug causing
Markerinstances to be translated to non-whole pixel coordinates that caused blurriness (#3270)
- Avoid unnecessary style validation (#3224)
- Share a single blob URL between all workers (#3239)
- Allow querystrings in
mapbox://URLs #3113 - Allow "drag rotate" interaction to control pitch #3105
- Improve performance by decreasing
WorkerscriptBlobsize #3158 - Improve vector tile performance #3067
- Decrease size of distributed library by removing
package.json#3174 - Add support for new lines in
text-field#3179 - Make keyboard navigation smoother #3190
- Make mouse wheel zooming smoother #3189
- Add better error message when calling
Map#queryRenderedFeatureson nonexistent layer #3196 - Add support for imperial units on
Scalecontrol #3160 - Add map's pitch to URL hash #3218
- Fix exception thrown when using box zoom handler #3078
- Ensure style filters cannot be mutated by reference #3093
- Fix exceptions thrown when opening marker-bound popup by click #3104
- Fix bug causing fills with transparent colors and patterns to not render #3107
- Fix order of latitudes in
Map#getBounds#3081 - Fix incorrect evaluation of zoom-and-property functions #2827 #3155
- Fix incorrect evaluation of property functions #2828 #3155
- Fix bug causing garbled text rendering when multiple maps are rendered on the page #3086
- Fix rendering defects caused by
Map#setFilterand map rotation on iOS 10 #3207 - Fix bug causing image and video sources to disappear when zooming in #3010
- Add support for
line-colorproperty functions #2938 - Add
Scalecontrol #2940 #3042 - Improve polygon label placement by rendering labels at the pole of inaccessability #3038
- Add
Popupoffsetoption #1962 - Add
Marker#bindPopupmethod #3056
- Improve performance of pages with multiple maps using a shared
WebWorkerpool #2952
- Make
LatLngBoundsobey its documented argument order (southwest,northeast), allowing bounds across the dateline #2414⚠️ BREAKING CHANGE⚠️ - Fix bug causing
fill-opacityproperty functions to not render as expected #3061
- Reduce library size by using minified version of style specification #2998
- Add a warning when rendering artifacts occur due to too many symbols or glyphs being rendered in a tile #2966
- Fix bug causing exception to be thrown by
Map#querySourceFeatures#3022 - Fix bug causing
Map#loadedto return true while there are outstanding tile updates #2847
- The
GeoJSONSource,VideoSource,ImageSourceconstructors are now private. Please usemap.addSource({...})to create sources andmap.getSource(...).setData(...)to update GeoJSON sources. #2667 Map#onErrorhas been removed. You may catch errors by listening for theerrorevent. If no listeners are bound toerror, error messages will be printed to the console. #2852
- Increase max glyph atlas size to accomodate alphabets with large numbers of characters #2930
- Add support for filtering features on GeoJSON / vector tile
$id#2888 - Update geolocate icon #2973
- Add a
closeevent toPopups #2953 - Add a
offsetoption toMarker#2885 - Print
errorevents without any listeners to the console #2852 - Refactored
Sourceinterface to prepare for custom source types #2667
- Fix opacity property-functions for fill layers #2971
- Fix
DataCloneErrorin Firefox and IE11 #2559 - Fix bug preventing camera animations from being triggered in
moveendlisteners #2944 - Fix bug preventing
fill-outline-colorfrom being unset #2964 - Fix webpack support #2887
- Prevent buttons in controls from acting like form submit buttons #2935
- Fix bug preventing map interactions near two controls in the same corner #2932
- Fix crash resulting for large style batch queue #2926
- GeoJSON polygon inner rings are now rewound for compliance with the v2 vector tile. This may affect some uses of
line-offset, reversing the direction of the offset. #2889
- Add
text-pitch-alignmentstyle property #2668 - Allow query parameters on
mapbox://URLs #2702 - Add
icon-text-fitandicon-text-fit-paddingstyle properties #2720 - Enable property functions for
icon-rotate#2738 - Enable property functions for
fill-opacity#2733 - Fire
Map#mouseoutevents #2777 - Allow query parameters on all sprite URLs #2772
- Increase sprite atlas size to 1024px square, allowing more and larger sprites #2802
- Add
Markerclass #2725 #2810 - Add
{quadkey}URL parameter #2805 - Add
circle-pitch-scalestyle property #2821
- Fix rendering of layers with large numbers of features #2794
- Fix exceptions thrown during drag-rotate interactions #2840
- Fix error when adding and removing a layer within the same update cycle #2845
- Fix false "Geometry exceeds allowed extent" warnings #2568
- Fix
Map#loadedreturning true while there are outstanding tile updates #2847 - Fix style validation error thrown while removing a filter #2847
- Fix event data object not being passed for double click events #2814
- Fix multipolygons disappearing from map at certain zoom levels #2704
- Fix exceptions caused by
queryRenderedFeaturesin Safari and Firefox #2822 - Fix
mapboxgl#supported()returningtruein old versions of IE11 mapbox/mapbox-gl-supported#1
- Fixed exception thrown when changing
*-translateproperties viasetPaintProperty(#2762)
- Add limited WMS support #2612
- Add
workerCountconstructor option #2666 - Improve performance of
locationPointandpointLocation#2690 - Remove "Not using VertexArrayObject extension" warning messages #2707
- Add
versionproperty to mapboxgl #2660 - Support property functions in
circle-opacityandcircle-blur#2693
- Fix exception thrown by "drag rotate" handler #2680
- Return an empty array instead of an empty object from
queryRenderedFeatures#2694 - Fix bug causing map to not render in IE
- Fix rendering of polygons with more than 35k vertices #2657
- Allow use of special characters in property field names #2547
- Improve rendering speeds on fill layers #1606
- Add data driven styling support for
fill-colorandfill-outline-color#2629 - Add
hasand!hasfilter operators mapbox/feature-filter#15 - Improve keyboard handlers with held-down keys #2530
- Support 'tms' tile scheme #2565
- Add
trackResizeoption toMap#2591
- Scale circles when map is displayed at a pitch #2541
- Fix background pattern rendering bug #2557
- Fix bug that prevented removal of a
fill-patternfrom a fill layer #2534 - Fix
line-patternandfill-patternrendering #2596 - Fix some platform specific rendering bugs #2553
- Return empty object from
queryRenderedFeaturesbefore the map is loaded #2621 - Fix "there is no texture bound to the unit 1" warnings #2509
- Allow transitioned values to be unset #2561
- Implement zoom-and-property functions for
circle-colorandcircle-size#2454 - Dedupe attributions that are substrings of others #2453
- Misc performance improvements #2483 #2488
- Fix errors when unsetting and resetting a style property #2464
- Fix errors when updating paint properties while using classes #2496
- Fix errors caused by race condition in unserializeBuckets #2497
- Fix overzoomed tiles in wrapped worlds #2482
- Fix errors caused by mutating a filter object after calling
Map#setFilter#2495
- Remove
map.batchin favor of automatically batching style mutations (i.e. calls toMap#setLayoutProperty,Map#setPaintProperty,Map#setFilter,Map#setClasses, etc.) and applying them once per frame, significantly improving performance when updating the style frequently #2355 #2380 - Remove
util.throttle#2345
- Improve performance of all style mutation methods by only recalculating affected properties #2339
- Improve fading of labels and icons #2376
- Improve rendering performance by reducing work done on the main thread #2394
- Validate filters passed to
Map#queryRenderedFeaturesandMap#querySourceFeatures#2349 - Display a warning if a vector tile's geometry extent is larger than supported #2383
- Implement property functions (i.e. data-driven styling) for
circle-colorandcircle-size#1932 - Add
Popup#setDOMContentmethod #2436
- Fix a performance regression caused by using 1
WebWorkerinstead of# cpus - 1WebWorkers, slowing down tile loading times #2408 - Fix a bug in which
Map#queryRenderedFeatureswould sometimes return features that had been removed #2353 - Fix
clusterMaxZoomoption onGeoJSONSourcenot working as expected #2374 - Fix anti-aliased rendering for pattern fills #2372
- Fix exception caused by calling
Map#queryRenderedFeaturesorMap#querySourceFeatureswith no arguments - Fix exception caused by calling
Map#setLayoutPropertyfortext-fieldoricon-image#2407
- Replace
Map#featuresAtandMap#featuresInwithMap#queryRenderedFeaturesandmap.querySourceFeatures(#2224)- Replace
featuresAtandfeaturesInwithqueryRenderedFeatures - Make
queryRenderedFeaturessynchronous, remove the callback and use the return value. - Rename
layerparameter tolayersand make it an array of layer names. - Remove the
radiusparameter.radiuswas used withfeaturesAtto account for style properties likeline-widthandcircle-radius.queryRenderedFeaturesaccounts for these style properties. If you need to query a larger area, use a bounding box query instead of a point query. - Remove the
includeGeometryparameter becausequeryRenderedFeaturesalways includes geometries.
- Replace
Map#debugis renamed toMap#showTileBoundaries(#2284)Map#collisionDebugis renamed toMap#showCollisionBoxes(#2284)
- Improve overall rendering performance. (#2221)
- Improve performance of
GeoJSONSource#setData. (#2222) - Add
Map#setMaxBoundsmethod (#2234) - Add
isActiveandisEnabledmethods to interaction handlers (#2238) - Add
Map#setZoomBoundsmethod (#2243) - Add touch events (#2195)
- Add
map.queryRenderedFeaturesto query the styled and rendered representations of features (#2224) - Add
map.querySourceFeaturesto get features directly from vector tiles, independent of the style (#2224) - Add
mapboxgl.Geolocatecontrol (#1939) - Make background patterns render seamlessly across tile boundaries (#2305)
- Fix calls to
setFilter,setLayoutProperty, andsetLayerZoomRangeon ref children (#2228) - Fix
undefinedbucket errors aftersetFiltercalls (#2244) - Fix bugs causing hidden symbols to be rendered (#2246, #2276)
- Fix raster flickering (#2236)
- Fix
queryRenderedFeaturesprecision at high zoom levels (#2292) - Fix holes in GeoJSON data caused by unexpected winding order (#2285)
- Fix bug causing deleted features to be returned by
queryRenderedFeatures(#2306) - Fix bug causing unexpected fill patterns to be rendered (#2307)
- Fix popup location with preceding sibling elements (#2311)
- Fix polygon anti-aliasing (#2319)
- Fix slivers between non-adjacent polygons (#2319)
- Fix keyboard shortcuts causing page to scroll (#2312)
- Add
ImageSource#setCoordinatesandVideoSource#setCoordinates(#2184)
- Fix flickering on raster layers (#2211)
- Fix browser hang when zooming quickly on raster layers (#2211)
- Improve responsiveness of zooming out by using cached parent tiles (#2168)
- Improve contextual clues on style API validation (#2170)
- Improve performance of methods including
setData(#2174)
- Fix incorrectly sized line dashes (#2099)
- Fix bug in which
infeature filter drops features (#2166) - Fix bug preventing
Map#loadfrom firing when tile "Not Found" errors occured (#2176) - Fix rendering artifacts on mobile GPUs (#2117)
- Look for loaded parent tiles in cache
- Set tile cache size based on viewport size (#2137)
- Fix tile render order for layer-by-layer
- Remove source update throttling (#2139)
- Make panning while zooming more linear (#2070)
- Round points created during bucket creation (#2067)
- Correct bounds for a rotated or tilted map (#1842)
- Fix overscaled featuresAt (#2103)
- Allow using
tileSize: 512as a switch to trade retina support for 512px raster tiles - Fix the serialization of paint classes (#2107)
- Fixed bug where unsetting style properties could mutate the value of other style properties (#2105)
- Less slanted dashed lines near sharp corners (#967)
- Fire map#load if no initial style is set (#2042)
- Fix incorrectly rotated symbols along lines near tile boundries (#2062)
- Fix broken rendering when a fill layer follows certain symbol layers (#2092)
- Switch
GeoJSONSourceclustering options from being measured in extent-units to pixels (#2026)
- Improved error message for invalid colors (#2006)
- Added support for tiles with variable extents (#2010)
- Improved
filterperformance and maximum size (#2024) - Changed circle rendering such that all geometry nodes are drawn, not just the geometry's outer ring (#2027)
- Added
Map#getStylemethod (#1982)
- Fixed bug causing WebGL contexts to be "used up" by calling
mapboxgl.supported()(#2018) - Fixed non-deterministic symbol z-order sorting (#2023)
- Fixed garbled labels while zooming (#2012)
- Fixed icon jumping when touching trackpad with two fingers (#1990)
- Fixed overzoomed collision debug labels (#2033)
- Fixed dashes sliding along their line during zooming (#2039)
- Fixed overscaled
minzoomsetting for GeoJSON sources (#1651) - Fixed overly-strict function validation for duplicate stops (#2075)
- Fixed crash due to
performance.nownot being present on some browsers (#2056) - Fixed the unsetting of paint properties (#2037)
- Fixed bug causing multiple interaction handler event listeners to be attached (#2069)
- Fixed bug causing only a single debug box to be drawn (#2034)
- Fixed broken npm package due to outdated bundled modules
- Fixed easeTo pan, zoom, and rotate when initial rotation != 0 (#1950)
- Fixed rendering of tiles with an extent != 4096 (#1952)
- Fixed missing icon collision boxes (#1978)
- Fixed null
Tile#bufferserrors (#1987)
- Added
symbol-avoid-edgesstyle property (#1951) - Improved
symbol-max-anglecheck algorithm (#1959) - Added marker clustering! (#1931)
- Added zoomstart, zoom, and zoomend events (#1958)
- Disabled drag on mousedown when using boxzoom (#1907)
- Fix elementGroups null value errors (#1933)
- Fix some glyph atlas overflow cases (#1923)
- Support inline attribution options in map options (#1865)
- Improve flyTo options (#1854, #1429)
- Fix flickering with overscaled tiles (#1921)
- Remove Node.remove calls for IE browser compatibility (#1900)
- Match patterns at tile boundaries (#1908)
- Fix Tile#positionAt, fix query tests (#1899)
- Fix flickering on streets (#1875)
- Fix text-max-angle property (#1870)
- Fix overscaled line patterns (#1856)
- Fix patterns and icons for mismatched pixelRatios (#1851)
- Fix missing labels when text size 0 at max zoom (#1809)
- Use linear interp when pixel ratios don't match (#1601)
- Fix blank areas, flickering in raster layers (#1876, #675)
- Fix labels slipping/cropping at tile bounds (#757)
- Improve touch handler perceived performance (#1844)
- Support LngLat.convert([w, s, e, n]) (#1812)
- Invalid GeoJSON is now handled better
- Fixed
Popup#addTowhen the popup is already open (#1811) - Fixed warping when rotating / zooming really fast
Map#flyTonow flies across the antimeridan if shorter (#1853)
- Reversed the direction of
line-offset(#1808) - Renamed
Pinchinteraction handler toTouchZoomRotate(#1777) - Made
Map#updateandMap#renderprivate methods (#1798) - Made
Map#removeremove created DOM elements (#1789)
- Added an method to disable touch rotation (#1777)
- Added a
positionoption forAttribution(#1689)
- Ensure tile loading errors are properly reported (#1799)
- Ensure re-adding a previously removed pop-up works (#1477)
- Don't round zoom level during double-click interaction (#1640)
- Added
line-offsetstyle property (#1778)
- Fixed unstable symbol layer render order when adding / removing layers (#1558)
- Fire map loaded event even if raster tiles have errors
- Fix panning animation during easeTo with zoom change
- Fix pitching animation during flyTo
- Fix pitching animation during easeTo
- Prevent rotation from firing
mouseendevents (#1104)
- Fire
mousedownandmouseupevents (#1411) - Fire
movestartandmoveendwhen panning (#1658) - Added drag events (#1442)
- Request webp images for mapbox:// raster tiles in chrome (#1725)
- Added inertia to map rotation (#620)
- Fix alpha blending of alpha layers (#1684)
- Fix GeoJSON rendering and performance (#1685)
- Use SVG assets for UI controls (#1657)
- Zoom out with shift + dblclick (#1666)
- Misc performance improvements
- Fix sprites on systems with non-integer
devicePixelRatios (#1029 #1475 #1476) - Fix layer minZoom being ignored if not less than source maxZoom
- Fix symbol placement at the start of a line (#1461)
- Fix
raster-opacityon non-tile sources (#1270) - Ignore boxzoom on shift-click (#1655)
- Enable line breaks on common punctuation (#1115)
- Add toString and toArray methods to LngLat, LngLatBounds (#1571)
- Add
Transform#resizemethod - Add
Map#getLayermethod (#1183) - Add
Transform#unmodifiedproperty (#1452) - Propagate WebGL context events (#1612)
- Add statistics and checkboxes to debug page
- Fix
Map#featuresAtfor non-4096 vector sources (#1529) - Don't fire
mousemoveon drag-pan - Fix maxBounds constrains (#1539)
- Fix maxBounds infinite loop (#1538)
- Fix memory leak in worker
- Assert valid
TileCoord, fix wrap calculation inTileCoord#cover(#1483) - Abort raster tile load if not in viewport (#1490)
- Add
Mapevent listeners formouseup,contextmenu(right click) (#1532)
- Add
Map#featuresIn: a bounding-box feature query - Emit stylesheet validation errors (#1436)
- Handle v8 style
center,zoom,bearing,pitch(#1452) - Improve circle type styling (#1446)
- Improve dashed and patterned line antialiasing
- Load images in a way that respects Cache-Control headers
- Filter for rtree matches to those crossing bbox
- Log errors by default (#1463)
- Fixed modification of
text-sizeviasetLayoutProperty(#1451) - Throw on lat > 90 || < -90. (#1443)
- Fix circle clipping bug (#1457)
-
Switched to [longitude, latitude] coordinate order, matching GeoJSON. We anticipate that mapbox-gl-js will be widely used with GeoJSON, and in the long term having a coordinate order that is consistent with GeoJSON will lead to less confusion and impedance mismatch than will a [latitude, longitude] order.
The following APIs were renamed:
LatLngwas renamed toLngLatLatLngBoundswas renamed toLngLatBoundsPopup#setLatLngwas renamed toPopup#setLngLatPopup#getLatLngwas renamed toPopup#getLngLat- The
latLngproperty of Map events was renamedlngLat
The following APIs now expect array coordinates in [longitude, latitude] order:
LngLat.convertLngLatBounds.convertPopup#setLngLat- The
centerandmaxBoundsoptions of theMapconstructor - The arguments to
Map#setCenter,Map#fitBounds,Map#panTo, andMap#project - The
centeroption ofMap#jumpTo,Map#easeTo, andMap#flyTo - The
aroundoption ofMap#zoomTo,Map#rotateTo, andMap#easeTo - The
coordinatesproperties of video and image sources
-
Updated to mapbox-gl-style-spec v8.0.0 (Changelog). Styles are now expected to be version 8. You can use the gl-style-migrate utility to update existing styles.
-
The format for
mapbox://style and glyphs URLs has changed. For style URLs, you should now use the formatmapbox://styles/:username/:style. The:styleportion of the URL no longer contains a username. For font URLs, you should now use the formatmapbox://fonts/:username/{fontstack}/{range}.pbf. -
Mapbox default styles are now hosted via the Styles API rather than www.mapbox.com. You can make use of the Styles API with a
mapbox://style URL pointing to a v8 style, e.g.mapbox://styles/mapbox/streets-v8. -
The v8 satellite style (
mapbox://styles/mapbox/satellite-v8) is now a plain satellite style, and not longer supports labels or contour lines via classes. For a labeled satellite style, usemapbox://styles/mapbox/satellite-hybrid. -
Removed
mbgl.config.HTTP_URLandmbgl.config.FORCE_HTTPS; https is always used when connecting to the Mapbox API. -
Renamed
mbgl.config.HTTPS_URLtombgl.config.API_URL.
- Don't draw halo when halo-width is 0 (#1381)
- Reverted shader changes that degraded performance on IE
- You can now unset layout and paint properties via the
setLayoutPropertyandsetPaintPropertyAPIs by passingundefinedas a property value. - The
layeroption offeaturesAtnow supports an array of layers.
-
glyphsURL now normalizes without the/v4/prefix formapbox://urls. Legacy behavior formapbox://fontstacksis still maintained (#1385) -
Expose
geojson-vtoptions for GeoJSON sources (#1271) -
bearing snaps to "North" within a tolerance of 7 degrees (#1059)
-
Now you can directly mutate the minzoom and maxzoom layer properties with
map.setLayerZoomRange(layerId, minzoom, maxzoom) -
Exposed
mapboxgl.Control, a base class used by all UI controls -
Refactored handlers to be individually included in Map options, or enable/disable them individually at runtime, e.g.
map.scrollZoom.disable(). -
New feature: Batch operations can now be done at once, improving performance for calling multiple style functions: (#1352)
style.batch(function(s) { s.addLayer({ id: 'first', type: 'symbol', source: 'streets' }); s.addLayer({ id: 'second', type: 'symbol', source: 'streets' }); s.addLayer({ id: 'third', type: 'symbol', source: 'terrain' }); s.setPaintProperty('first', 'text-color', 'black'); s.setPaintProperty('first', 'text-halo-color', 'white'); });
-
Improved documentation
-
featuresAtperformance improvements by exposingincludeGeometryoption -
Better label placement along lines (#1283)
-
Improvements to round linejoins on semi-transparent lines (mapbox/mapbox-gl-native#1771)
-
Round zoom levels for raster tile loading (2a2aec)
-
Source#reload cannot be called if source is not loaded (#1198)
-
Events bubble to the canvas container for custom overlays (#1301)
-
Move handlers are now bound on mousedown and touchstart events
-
map.featuresAt() now works across the dateline
- No code changes; released only to correct a build issue in 0.8.0.
-
map.setView(latlng, zoom, bearing)has been removed. Usemap.jumpTo(options)instead:map.setView([40, -74.50], 9) // 0.7.0 or earlier map.jumpTo({center: [40, -74.50], zoom: 9}); // now
-
map.easeToandmap.flyTonow accept a single options object rather than positional parameters:map.easeTo([40, -74.50], 9, null, {duration: 400}); // 0.7.0 or earlier map.easeTo({center: [40, -74.50], zoom: 9, duration: 400}); // now
-
mapboxgl.Sourceis no longer exported. Usemap.addSource()instead. See the GeoJSON line or GeoJSON markers examples. -
mapboxgl.util.supported()moved tomapboxgl.supported().
- Add perspective rendering (#1049)
- Better and faster labelling (#1079)
- Add touch interactions support on mobile devices (#949)
- Viewport-relative popup arrows (#1065)
- Normalize mousewheel zooming speed (#1060)
- Add proper handling of GeoJSON features that cross the date line (#1275)
- Sort overlapping symbols in the y direction (#470)
- Control buttons are now on a 30 pixel grid (#1143)
- Improve GeoJSON processing performance
- Switch to JSDoc for documentation
- Bundling with browserify is now supported
- Validate incoming map styles (#1054)
- Add
MapsetPitchgetPitch - Add
Mapdblclickevent. (#1168) - Add
MapgetSource(660a8c1) - Add
MapsetFilterandgetFilter(#985) - Add
MapfailIfMajorPerformanceCaveatoption (#1082) - Add
MappreserveDrawingBufferoption (#1232) - Add
VideoSourcegetVideo()(#1162) - Support vector tiles with extents other than 4096 (#1227)
- Use a DOM hierarchy that supports evented overlays (#1217)
- Pass
latLngto the event object (#1068)
- Fix rendering glitch on iOS 8 (#750)
- Fix line triangulation errors (#1120, #992)
- Support unicode range 65280-65535 (#1108)
- Fix cracks between fill patterns (#972)
- Fix angle of icons aligned with lines (37a498a)
- Fix dashed line bug for overscaled tiles (#1132)
- Fix icon artifacts caused by sprite neighbors (#1195)
- Don't fire spurious
moveendevents on mouseup (#1107) - Fix a race condition in
featuresAt(#1220) - Fix for brittle fontstack name convention (#1070)
- Fix broken
PopupsetHTML(#1272) - Fix an issue with cross-origin image requests (#1269)
- Rename
Maphoverevent tomousemove. - Change
featuresAtto return GeoJSON objects, including geometry (#1010) - Remove
Mapcanvasandcontainerproperties, addgetCanvasandgetContainermethods instead
- Improve line label density
- Add boxzoom interaction (#1038)
- Add keyboard interaction (#1034)
- Faster
GeoJSONSourcesetDatawithout flickering (#973)
- Add Popup component (#325)
- Add layer API (#1022)
- Add filter API (#985)
- More efficient filter API (#1018)
- Accept plain old JS object for
addSource(#1021) - Reparse overscaled tiles
- Fix
featuresAtfor LineStrings (#1006) - Fix
tileSizeargument toGeoJSONworker (#987) - Remove extraneous files from the npm package (#1024)
- Hide "improve map" link in print (#988)
- Add wrapped padding to sprite for repeating images (#972)
- Clear color buffers before rendering (#966)
- Make line-opacity work with line-image (#970)
- event.toElement fallback for Firefox (#932)
- skip duplicate vertices at ends of lines (#776)
- allow characters outside \w to be used in token
- Clear old tiles when new GeoJSON is loaded (#905)
- Added
map.setPaintProperty(),map.getPaintProperty(),map.setLayoutProperty(), andmap.getLayoutProperty(). - Switch to ESLint and more strict code rules (#957)
- Grab 2x raster tiles if retina (#754)
- Support for mapbox:// style URLs (#875)
- Updated to mapbox-gl-style-spec v7.0.0 (Changelog). Styles are now expected to be version 7. You can use the gl-style-migrate utility to update existing styles.
- HTTP_URL and HTTPS_URL config options must no longer include a
/v4path prefix. addClass,removeClass,setClasses,hasClass, andgetClassesare now methods on Map.Style#cascadeis now private, pending a public style mutation API (#755).- The format for
featuresAtresults changed. Instead of result-per-geometry-cross-layer, each result has alayersarray with all layers that contain the feature. This avoids duplication of geometry and properties in the result set.
- Remove tiles for unused sources (#863)
- Fix fill pattern alignment
- Add GeoJSONSource maxzoom option (#760)
- Return ref layers in featuresAt (#847)
- Return any extra layer keys provided in the stylesheet in featuresAt
- Faster protobuf parsing
- Fix race conditions with style loading/rendering
- Fix race conditions with setStyle
- Fix map.remove()
- Fix featuresAt properties
- Fix multiple calls to setStyle
featuresAtnow returns additional information- Complete style/source/tile event suite: style.load, style.error, style.change, source.add, source.remove, source.load, source.error, source.change, tile.add, tile.remove, tile.load, tile.error
- Vastly improved performance and correctness for GeoJSON sources
- Map#setStyle accepts a style URL
- Support {prefix} in tile URL templates
- Provide a source map with minified source
- Results format for
featuresAtchanged
- Ensure only one easing is active at a time (#807)
- Don't require style to perform easings (#817)
- Fix raster tiles sometimes not showing up (#761)
- Internet Explorer 11 support (experimental)
- Interpolate to the closest bearing when doing rotation animations (#818)
- Updated to mapbox-gl-style-spec v6.0.0 (Changelog). Styles are now expected to be version 6. You can use the gl-style-migrate utility to update existing styles.
- Fix worker initialization with deferred or async scripts
- Added map.remove()
- CDN assets are now served with gzip compression
- Fixed iteration over arrays with for/in
- Made browserify deps non-dev (#752)
- Updated to mapbox-gl-style-spec v0.0.5 (Changelog). Styles are now expected to be version 5. You can use the gl-style-migrate utility to update existing styles.
- Removed support for composite layers for performance reasons. #523
raster-hue-rotateunits are now degrees.
- Added LatLng#wrap
- Added support for Mapbox fontstack API.
- Added support for remote, non-Mapbox TileJSON sources and inline TileJSON sources (#535, #698).
- Added support for
symbol-avoid-edgesproperty to allow labels to be placed across tile edges. - Fixed mkdir issue on Windows (#674).
- Fixed drawing beveled line joins without overlap.
- Fixed performance when underzooming a layer's minzoom.
- Fixed
raster-opacityfor regular raster layers. - Fixed various corner cases of easing functions.
- Do not modify original stylesheet (#728).
- Inherit video source from source (#699).
- Fixed interactivity for geojson layers.
- Stop dblclick on navigation so the map does not pan (#715).
map.setBearing()no longer supports a second argument. Usemap.rotateTowith anoffsetoption and duration 0 if you need to rotate around a point other than the map center.
- Improved
GeoJSONSourceto also accept URL asdataoption, eliminating a huge performance bottleneck in case of large GeoJSON files. #669 #671 - Switched to a different fill outlines rendering approach. #668
- Made the minified build 12% smaller gzipped (66 KB now).
- Added
aroundoption toMapzoomTo/rotateTo. - Made the permalink hash more compact.
- Bevel linejoins no longer overlap and look much better when drawn with transparency.
- Fixed the broken minified build. #679
- Fixed blurry icons rendering. #666
- Fixed
util.supportsWebGL detection producing false positives in some cases. #677 - Fixed invalid font configuration completely blocking tile rendering. #662
- Fixed
Mapproject/unprojectto properly accept array-form values. - Fixed sprite loading race condition. #593
- Fixed
GeoJSONSourcesetDatanot updating the map until zoomed or panned. #676
- Changed
Navigationcontrol signature: now it doesn't needmapin constructor and gets added withmap.addControl(nav)ornav.addTo(map). - Updated CSS classes to have consistent naming prefixed with
mapboxgl-.
- Added attribution control (present by default, disable by passing
attributionControl: falsein options). - Added rotation by dragging the compass control.
- Added grabbing cursors for the map by default.
- Added
util.inheritandutil.debouncefunctions. - Changed the default debug page style to OSM Bright.
- Token replacements now support dashes.
- Improved navigation control design.
- Fixed compass control to rotate its icon with the map.
- Fixed navigation control cursors.
- Fixed inertia going to the wrong direction in a rotated map.
- Fixed inertia race condition where error was sometimes thrown after erratic panning/zooming.
- First public release.