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

Longdo セットアップ

Longdo Map API3 SDK を MapConductor から使う手順です。タイの地図に強いプロバイダで、Longdo 自身の Maven リポジトリから取得します。

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

前提

Android 開発環境(Android Studio)
Longdo Map コンソールで発行した API キー
STEP 01

API キーを取得する

Longdo Map コンソールでキーを発行します。SDK は検証のためにアプリのパッケージ名を送るので、キーをそのパッケージ名に紐付けて登録しておく必要があります。

STEP 02

Longdo のリポジトリを足す

settings.gradle.ktsKotlin
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()

        // Longdo Map API3 SDK repository
        maven {
            url = uri("https://maven.longdo.com/artifactory/libs-release-public")
        }
    }
}
STEP 03

依存関係を追加する

app/build.gradle.ktsKotlin
dependencies {
    // Longdo Map API3 SDK
    implementation("com.longdo.map:sdk3:1.3.0")

    // MapConductor BOM pins every module below
    implementation(platform("com.mapconductor:mapconductor-bom:1.2.0"))

    implementation("com.mapconductor:core")
    implementation("com.mapconductor:for-longdo")
}
STEP 04

API キーを渡す

モジュールはマニフェストの longdo.map.key を読みます。コードから設定することもできます。

AndroidManifest.xmlXML
<manifest>
    <uses-permission android:name="android.permission.INTERNET" />

    <application>
        <meta-data
            android:name="longdo.map.key"
            android:value="${LONGDO_API_KEY}" />
    </application>
</manifest>
MainActivity.ktKotlin
// Alternative: set it in code before the first map is shown
com.longdo.sdk3.LongdoMap.API_KEY = "YOUR_LONGDO_API_KEY"
注意
secrets.properties はバージョン管理にコミットしないでください。.gitignore に追加しておくと事故を防げます。CI では環境変数など別の安全な経路で渡します。

動作確認

ここまで動けば完了

バンコクを中心に地図が出れば完了です。

TestLongdo.ktJetpack Compose
@Composable
fun TestLongdo(modifier: Modifier = Modifier) {
    val mapState = rememberLongdoMapViewState(
        mapDesign = LongdoDesign.Normal,
        cameraPosition = MapCameraPosition(
            position = GeoPoint(13.7563, 100.5018),
            zoom = 12.0,
        ),
    )

    LongdoMapView(
        state = mapState,
        modifier = modifier,
        onMapLoaded = { /* map ready */ },
        onMapClick = { point -> /* tapped at point */ },
    )
}

地図デザイン

LongdoDesign は Longdo のベースレイヤーに対応します。

LongdoDesign
Notes
Normal / Easy / Political
標準系のスタイル
Pastel / PastelGray / Light / Gray
淡いスタイル
Night / Dark / Hard
暗色・高コントラスト
Satellite / Hybrid
衛星画像とハイブリッド
Osm
OpenStreetMap ベース

うまくいかないとき

地図が出ない

  • コンソールでキーがアプリのパッケージ名に紐付いているか確認します。SDK はパッケージ名を送って検証します。
  • INTERNET パーミッションが付いているか確認します。

ビルドが通らない

  • 地図 SDK の座標とバージョンがバージョンカタログの指定と一致しているか確認します。
  • リポジトリ定義が settings.gradle.kts にあるか確認します(repositoriesMode が FAIL_ON_PROJECT_REPOS だと、モジュール側の repositories は無視されます)。
  • 複数の地図 SDK を同時に入れている場合は、依存の衝突がないか ./gradlew :app:dependencies で確認します。

次に

マーカー・ポリライン・ポリゴン・円・グラウンドイメージ・ラスターレイヤー・InfoBubble はすべて共通 API で使えます。Longdo の Android SDK は Longdo Map JS API3 を WebView で動かす構成のため、図形は内部の MapLibre GL に GeoJSON ソースと fill / line レイヤーとして追加されます。ヒットテストはコア側の測地線対応の判定が担います。