以前、「【React Native】「react-native-maps」ライブラリを使ってOpenStreetMapを表示する」という記事で、React Native のアプリに Google Map を表示する方法をご紹介しましたが、今回は Mapbox の地図を表示する方法についてです。
今回導入したライブラリは「@react-native-mapbox-gl/maps」です。
GitHub のページはこちら。
react-native-mapbox-gl/maps: A Mapbox GL react native module for creating custom maps
https://github.com/react-native-mapbox-gl/maps
インストール手順ですが、私はまだ Android にしか導入できていないので、今回は Android での実装方法のみのご紹介です。
まず、下記コマンドを実行してライブラリをインストールします。
npm install @react-native-mapbox-gl/maps --save
次に、android/gradle.properties を開き、下記の1行を追加します。
MAPBOX_DOWNLOADS_TOKEN=[Mapbox のアクセストークン]
なお、トークンは " や ' で囲まないでください。
上記を追加したら、今度は android/build.gradle を開き、下記を追加します。
allprojects {
repositories {
/* ここから */
maven {
url 'https://api.mapbox.com/downloads/v2/releases/maven'
authentication {
basic(BasicAuthentication)
}
credentials {
// Do not change the username below.
// This should always be `mapbox` (not your username).
username = 'mapbox'
// Use the secret token you stored in gradle.properties as the password
password = project.properties['MAPBOX_DOWNLOADS_TOKEN'] ?: ""
}
}
/* ここまで */
}
}
最後に、android/app/build.gradle を開き下記を追加します。
dependencies {
/* ここから */
implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.2.0'
implementation 'com.mapbox.mapboxsdk:mapbox-sdk-services:5.6.0'
implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0'
/* ここまで */
}
なお、GitHub のインストール手順だと、最初の1行目が implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.6.1' となっていましたが、こちらを追加後に Android Studio で Sync Project を行ったところエラーが発生したので、バージョンを 9.2.0 に下げました。
上記まで追加出来たら、Android Studio でプロジェクトを開き、Sync Now を実行してください。
上記の作業が終わったら、プロジェクトに戻り、マップを表示したいページに下記を追加します。
import MapboxGL from "@react-native-mapbox-gl/maps";
MapboxGL.setAccessToken("[Mapbox のアクセストークン]");
なお、setAccessToken() で設定するトークンは android/gradle.properties に追加したものと同じです。
あとは、マップを表示したい箇所に下記を追加してください。
<MapboxGL.MapView style={mapStyle} />
この状態で実際に Android の実機で実行したところ、無事に Mapbox の地図が表示されました!
なお、まだ地図の中心位置やマップピンなどを指定していないので、緯度: 0、経度: 0 の地点が表示されます。
最低限の機能は以上で実装完了です!
あとは中心座標を変更したり、マップピンを追加・移動できる処理を追加していく予定です。
また、iOS にも実装します!
以上、React Native で Mapbox の地図を表示できるライブラリ「@react-native-mapbox-gl/maps」のご紹介でした。
ご参考になれば幸いです。