ドキュメント / セットアップ / Android / Mappls
Mappls セットアップ
Mappls(MapmyIndia)の公式 Android SDK を MapConductor から使う手順です。認証はアプリ側に置く設定ファイルで行います。
MODULE
com.mapconductor:for-mappls
API KEY
必要
VIEW
MapplsMapView
TIME
15 分
前提
Android 開発環境(Android Studio)
Mappls(MapmyIndia)のアカウントと資格情報
STEP 01
資格情報を取得する
Mappls の開発者コンソールでアプリを登録し、資格情報を取得します。Mappls は他社のような 1 本の API キーではなく、アプリに置く設定ファイル(.a.conf / .a.olf)で認証します。
STEP 02
リポジトリを追加する
Mappls SDK は Maven Central ではなく Mappls 自身のリポジトリから配布されています。
settings.gradle.ktsKotlin
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven { url = uri("https://maven.mappls.com/repository/mappls/") }
}
}STEP 03
依存関係を追加する
Mappls SDK と MapConductor のモジュールを入れます。版は BOM が揃えます。
app/build.gradle.ktsKotlin
dependencies {
// Mappls Android SDK
implementation("com.mappls.sdk:mappls-android-sdk:9.0.3")
// MapConductor BOM pins every module below
implementation(platform("com.mapconductor:mapconductor-bom:1.3.1"))
implementation("com.mapconductor:core")
implementation("com.mapconductor:compose")
implementation("com.mapconductor:for-mappls")
}STEP 04
認証を設定する
Mappls から受け取った .a.conf / .a.olf をアプリに配置し、Mappls の Gradle プラグイン(com.mappls.services.android)を適用します。MapConductor は資格情報を AndroidManifest から読みません。地図が作られる前に Mappls SDK 自身の作法で初期化されている必要があります。設定ファイルはソース管理に入れないでください。
動作確認
ここまで動けば完了
デリーを中心に地図を出します。タイルが読み込まれれば完了です。
@Composable
fun TestMappls(modifier: Modifier = Modifier) {
val mapState = rememberMapplsMapViewState(
mapDesign = MapplsDesign.Default,
cameraPosition = MapCameraPosition(
position = GeoPoint(latitude = 28.6139, longitude = 77.2090),
zoom = 11.0,
),
)
MapplsMapView(state = mapState, modifier = modifier.fillMaxSize())
}地図デザイン
Notes
Default
契約に関係なく使える既定のスタイル
StandardDay
標準の昼スタイル
StandardNight / GreyDay
追加料金の有料オプション。契約していないと SDK が弾く
うまくいかないとき
地図が真っ白で、タイルが 1 枚も来ない
- 資格情報が地図生成より前に設定されているか確認します。
- Mappls のコンソールでキーが有効か、利用枠を超えていないか確認します。
- 端末がネットワークに出られるか確認します。
スタイルを変えると style not found になる
- StandardNight と GreyDay は追加料金の有料オプションです。契約していない場合は Default か StandardDay を使ってください。
ラスターレイヤーなど、Mappls 以外の URL のタイルが出ない
- Mappls のネイティブ HTTP 層は、URL に mappls / mapmyindia を含まないリクエストを捨てるか切り落とします。MapConductor はこれを回避済みですが、SDK の HTTP モジュールを自前で差し替えている場合は回避も外れます。
次に
マーカー・ポリライン・ポリゴン・円・グラウンドイメージ・ラスターレイヤー・InfoBubble は共通 API のまま使えます。プロバイダを差し替えてもアプリ側のコードは変わりません。