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.