A React wrapper for MapboxGL-js and overlay API.
npm install @mapbox/react-map-glIn addition to exposing MapboxGL functionality to React apps, react-map-gl also integrates seamlessly with deck.gl.
getMap() function in this library. However, proceed with caution as calling the native APIs may break the connection between the React layer props and the underlying map state.Using react-map-gl requires react >= 16.3.
``sh`
npm install --save react-map-gl
`js
import {Component} from 'react';
import ReactMapGL from 'react-map-gl';
class Map extends Component {
state = {
viewport: {
width: 400,
height: 400,
latitude: 37.7577,
longitude: -122.4376,
zoom: 8
}
};
render() {
return (
onViewportChange={(viewport) => this.setState({viewport})}
/>
);
}
}
`
To show maps from a service such as Mapbox you will need to register on their website in order to retrieve an access token required by the map component, which will be used to identify you and start serving up map tiles. The service will be free until a certain level of traffic is exceeded.
There are several ways to provide a token to your app, as showcased in some of the example folders:
* Provide a mapboxApiAccessToken prop to the map componentMapboxAccessToken
* Set the environment variable (or set REACT_APP_MAPBOX_ACCESS_TOKEN if you are using Create React App)?access_token=TOKEN
* Provide it in the URL, e.g mapboxApiUrl
* Provide prop to the map component to override the default mapbox API URL
But we would recommend using something like dotenv and put your key in an untracked .env file, that will then expose it as a process.env` variable, with much less leaking risks.
See developer guide.