# react-map-gl v4.1 Release date: TBD ## Highlights - **New Components**: [`FullscreenControl`](/#/Documentation/api-reference/fullscreen-control.md), [`GeolocateControl`](/#/Documentation/api-reference/geolocate-control.md) have been added to provide better React parity with the `Mapbox GL JS` API. - **New callback props** `InteractiveMap` supports more callbacks: + `onNativeClick` # react-map-gl v4.0 Release date: Nov 5, 2018 ## Highlights - **Relative dimensions** Both `InteractiveMap` and `StaticMap` now support CSS strings supplied to map `width` and `height` props. New `onResize` callback is fired when the map resizes. - **React 16** Upgrade to React 16.3 context and ref patterns - **Babel 7** Upgrade build system to Babel 7, better support for tree-shaking - **Style diffing** Now use Mapbox's native style diffing. Immutable is no longer required. - **Draggable Markers** `Marker` component now supports a new prop `draggable`, along with callbacks `onDragStart`, `onDrag`, and `onDragEnd`. - **3d Popups** `Popup` component now supports a new prop `sortByDepth` to enable proper occlusion when multiple popups are used in a tilted map. - **Interaction states** `onViewportChange` is now called with richer descriptors of the user interaction, including `isPanning`, `isZooming` and `isRotating`. - **Interactive layers** Dropped the requirement for the deprecated `interactive` property on the layer styles. Use the `interactiveLayerIds` prop to specify which layers are clickable. - **New callback props** `InteractiveMap` supports more callbacks: + `onDblClick` + `onMouseDown` + `onMouseMove` + `onMouseUp` + `onTouchStart` + `onTouchMove` + `onTouchEnd` + `onMouseEnter` + `onMouseLeave` + `onWheel` + `onMouseOut` See [upgrade guide](/docs/upgrade-guide.md) for breaking changes. # react-map-gl v3.3 Release date: July, 2018 ## Highlights - **New `viewState` Property**: Makes it possible to specify all map state properties (`longitude`, `latitude`, `zoom`, `bearing` and `pitch`) as a single property. - **New `onViewStateChange` callback**: An alternative callback that matches the new `viewState` prop. # react-map-gl v3.2 Realease date: January, 2018 ## Highlights - **Viewport transition**: feature equivalent to Mapbox's flyTo and easeTo; smooth transition when using keyboard navigation or the NavigationControl. - **Better parity of Mapbox interaction**: navigation using keyboard and the navigation control matches Mapbox behavior, including smooth transition when zooming and panning. - **Support for Map Reuse (experimental)**: A new property `reuseMaps` is provided for applications that create and destroy maps, to help work around a mapbox-gl resource leak issue that can lead to a browser crash in certain situations. - **mapbox-gl 0.42.2** - **New props** of the InteractiveMap component: + Map creation: `transformRequest`, `reuseMaps` + Interaction: `touchZoom`, `touchRotate` + Transition: `transitionDuration`, `transitionInterpolator`, `transitionEasing`, `transitionInterruption`, `onTransitionStart`, `onTransitionInterrupt`, `onTransitionEnd` # react-map-gl v3.1 Release date: October 19, 2017 ## Highlights - **Event handling** + Support right mouse drag to rotate + Support keyboard navigation + Allow controls and overlays to block map interactions - **React 16** - react-map-gl is now being tested with React 16, but the React peer dependency requirement is unchanged at `>=15.4.x`. - **mapbox-gl v0.40.1** - **No Token warning**: react-map-gl now renders an HTML message if no mapbox token is supplied. # react-map-gl v3.0 Release date: July 27th, 2017 ## Highlights - **Latest Mapbox GL JS**: Bumps `Mapbox GL JS` to [0.38](https://github.com/mapbox/mapbox-gl-js/releases). - **Multi-Touch Support**: Full support for multi-touch gestures such as pinch-to-zoom and rotate. - **New Components**: The `MapGL` component has been split into [`StaticMap`](/#/Documentation/api-reference/static-map) and [`InteractiveMap`](/#/Documentation/api-reference/interactive-map) (the default). Also, [`Popup`](/#/Documentation/api-reference/popup), [`Marker`](/#/Documentation/api-reference/marker), [`NavigationControl`](/#/Documentation/api-reference/navigation-control) have been added to provide better React parity with the `Mapbox GL JS` API. - **Improved Overlay Components**: Supplying viewport props (`width` `height` `zoom` `longitude` and `latitude`) are no longer required if you render [`SVGOverlay`](/#/Documentation/api-reference/svg-overlay), [`CanvasOverlay`](/#/Documentation/api-reference/canvas-overlay) or [`HTMLOverlay`](/#/Documentation/api-reference/html-overlay) as a child of the map. Perspective mode is now supported in all overlays. - **New Props**: `maxPitch`, `minPitch`, `dragPan`, `doubleClickZoom`, `touchZoomRotate`, `scrollZoom` are now provided to allow granular control of map interactivity. - **Documentation**: Significantly expanded and linked with our other geospatial frameworks. - **Examples**: New stand-alone examples to get you started instantly with the new features. - **Event Handling**: New event handling architecture that enables full customization of event handling (experimental). ## Components ### [InteractiveMap (New, MapGL replacement)](/#/Documentation/api-reference/interactive-map) This is a wrapper on top of `StaticMap`. It takes all the props of `StaticMap` and additional ones such as `onViewportChange`, `scrollZoom`, `dragRotate`, etc. to control interactivity on the map. See [Source Code](https://github.com/uber/react-map-gl/tree/4.1-release/src/components/interactive-map.js) for more information. ### [StaticMap (New)](/#/Documentation/api-reference/static-map) This is the React wrapper around `Mapbox GL JS` and takes in viewport properties such as `width`, `height`, `latitude`, `longitude`. Style diffing and updating logic also live here. See [Source Code](https://github.com/uber/react-map-gl/tree/4.1-release/src/components/static-map.js) for more information. ### Overlays * Three overlays (`ScatterplotOverlay`, `DraggablePointsOverlay`, `ChoroplethOverlay`), have been moved out of the library and are now only provided as examples. ## Property Changes - **Property Names** - some prop names have been modernized, the old ones will still work for now with a warning. - **Internal Properties** such as `isHovering`, `isDragging`, `startDragLngLat` have been removed. These were never meant to be useful publicly and have caused confusions in the past. ## Utilities * **fitBounds**: `fitBounds` has been moved to another repository and has been rewritten to provide a more logical interface. For more information, see the `Upgrade Guide`. # react-map-gl v2.0 Date: Jan 17, 2017 ## Highlights - **Latest mapbox-gl**: Bump `mapbox-gl` to v0.31.0 - **new maxZoom prop** - Add `maxZoom` prop and defaults to `20` - **New onLoad prop** - Add `onLoad` event handler - **new onClick prop** - Add `onClick` prop handler (#140) # react-map-gl v1.0 * **Perspective Mode** - Now supports `bearing` and `pitch` properties, per mapbox-gl-js api documentation. These props default to 0 which means that maps will still be rendered in flat/ortographic mode when they are not provided * **Support for ES6 imports** - The map overlay components (HTMLOverlay, CanvasOverlay, SVGOverlay etc) previously had to be imported via their relative source paths can now be imported directly using `import {SVGOverlay} from 'react-map-gl'. # react-map-gl v0.6 Initial public version