ドキュメント / セットアップ / Android / Mappls

Mappls セットアップ

Mappls(MapmyIndia)の公式 Android SDK を MapConductor から使う手順です。認証はアプリ側に置く設定ファイルで行います。

MODULE
com.mapconductor:for-mappls
API KEY
必要
VIEW
MapplsMapView
TIME
15 分
ほかのプラットフォームiOSReact

前提

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 のまま使えます。プロバイダを差し替えてもアプリ側のコードは変わりません。