A community-supported, open-source React Native library for building maps with the Mapbox Maps SDK for iOS and Mapbox Maps SDK for Android
→ Future of this repo: participate in the discussion thread
→ Call for additional maintainers discussion thread
→ This README is for the unreleased 10* branch. Please see v8 branch for documentation on 8.* releases
At the moment, the following implementations are supported:
RNMapboxMapsImpl | Notes |
---|---|
mapbox | New Mapbox v10 implementation - recommended |
maplibre | MapLibre opensource fork of Mapbox SDKs - will be dropped in next version |
mapbox-gl | Legacy mapbox implementation iOS Android - legacy, will be dropped in next version |
See iOS & Android setup guide for more details on setting RNMapboxMapsImpl
- On Android we support from version 6 (API 23) upwards
- Please Sign Up to Mapbox to get the Mapbox Access Token.
- node
- npm
- React Native (0.60+)
Install the latest source from git:
yarn add rnmapbox/maps#main
Install the latest source from git:
npm install --save rnmapbox/maps#main
Replace rnmapbox/maps#main
with the following to install other versions:
@rnmapbox/maps
installs the latest release
Please follow the Expo Guide.
For more information, check out our Getting Started section
Before you run your project be sure you have completed the Installation Guides for Android or iOS.
# Run with yarn
yarn run ios
# or Run with NPM
npm run ios
# Run with yarn
yarn run android
# or Run with NPM
npm run android
import React from 'react';
import { StyleSheet, View } from 'react-native';
import MapboxGL from '@rnmapbox/maps';
MapboxGL.setAccessToken('<YOUR_ACCESSTOKEN>');
const App = () => {
return (
<View style={styles.page}>
<View style={styles.container}>
<MapboxGL.MapView style={styles.map} />
</View>
</View>
);
}
export default App;
const styles = StyleSheet.create({
page: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
},
container: {
height: 300,
width: 300,
},
map: {
flex: 1
}
});
- BackgroundLayer
- CircleLayer
- FillExtrusionLayer
- FillLayer
- LineLayer
- RasterLayer
- SymbolLayer
- HeatmapLayer
- SkyLayer
This package is not available in the Expo Go app. Learn how you can use it with custom dev clients.
This library provides some mocks which are necessary for running tests.
Example:
"jest": {
"preset": "react-native",
"setupFilesAfterEnv": ["@rnmapbox/maps/setup-jest"],
"transformIgnorePatterns": [
"node_modules/(?!(...|@rnmapbox))"
]
}
Help drive this repo forward - be a sponsor. Add a comment here to discuss your sponsorship.
Terrain Dance |
Have a question or need some help? Join our Gitter developer group!