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

ArcGIS セットアップ

ArcGIS Maps SDK for Kotlin を MapConductor から使う手順です。Esri のリポジトリを追加し、API キーをマニフェスト経由で渡します。2D と 3D の両方のビューが使えます。

MODULE
com.mapconductor:for-arcgis
API KEY
必要
VIEW
ArcGISMapView / 2D
TIME
20 分
ほかのプラットフォームiOSReact

前提

Android 開発環境(Android Studio)
ArcGIS 開発者アカウント
ArcGIS の API キー
STEP 01

API キーを取得する

  1. ArcGIS Developer アカウントを作成します。
  2. ArcGIS Developer Dashboard を開きます。
  3. アプリケーションを作成し、必要なスコープで API キーを発行します。
STEP 02

Esri のリポジトリを足す

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

        // Esri public repository for ArcGIS Maps SDK
        maven {
            url = uri("https://esri.jfrog.io/artifactory/arcgis")
        }
    }
}
STEP 03

Secrets Gradle Plugin を入れる

キーをソース管理に置かないための仕組みです。プラグインが secrets.properties を読み、ビルド時に AndroidManifest.xml のプレースホルダーへ値を差し込みます。

(root)/build.gradle.ktsKotlin
plugins {
    id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") version "2.0.1" apply false
}
STEP 04

依存関係を追加する

ArcGIS 側も BOM を使います。Compose 用の toolkit も必要です。

app/build.gradle.ktsKotlin
plugins {
    // ... other plugins
    id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
}

dependencies {
    // ArcGIS Maps SDK
    implementation(platform("com.esri:arcgis-maps-kotlin-toolkit-bom:200.7.0"))
    implementation("com.esri:arcgis-maps-kotlin:200.7.0")
    implementation("com.esri:arcgis-maps-kotlin-toolkit-geoview-compose")
    implementation("com.esri:arcgis-maps-kotlin-toolkit-authentication")

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

    implementation("com.mapconductor:core")
    implementation("com.mapconductor:for-arcgis")
}
STEP 05

マニフェストとキーを設定する

AndroidManifest.xmlXML
<manifest>
    <!-- Add internet and location permissions -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <application>
        <!-- ArcGIS API Key -->
        <meta-data
            android:name="ARCGIS_API_KEY"
            android:value="${ARCGIS_API_KEY}" />
    </application>
</manifest>
secrets.propertiesProperties
ARCGIS_API_KEY=your_actual_arcgis_api_key_here
注意
secrets.properties はバージョン管理にコミットしないでください。.gitignore に追加しておくと事故を防げます。CI では環境変数など別の安全な経路で渡します。
STEP 06

ライセンスを設定する(本番のみ)

基本的な地図表示だけなら不要です。本番配布では Esri のドキュメントに従ってライセンスを設定してください。

MainActivity.ktKotlin
// In your Application class or MainActivity
// ArcGISEnvironment.setLicense("your_license_key_here") // Optional for basic use

動作確認

ここまで動けば完了

ArcGIS の地図が出て、ズーム・パン・(3D ビューなら)チルトが効けば完了です。

TestArcGIS.ktJetpack Compose
@Composable
fun TestArcGIS(modifier: Modifier = Modifier) {
    val mapState = rememberArcGISMapViewState(
        cameraPosition = MapCameraPosition(
            position = GeoPoint(35.6762, 139.6503),
            zoom = 12.0,
        ),
    )

    // If the map appears, the setup is correct.
    // ArcGISMapView is the 3D scene view; ArcGISMapView2D shares the same state.
    ArcGISMapView(modifier = modifier, state = mapState)
}

地図デザイン

ArcGISDesign は Esri のベースマップに対応します。ここに挙げたのは一部で、実際にはさらに多くの定数があります。

ArcGISDesign
Notes
Streets
標準の道路地図
Imagery
衛星画像
Topographic
地形図
OsmStandard
OpenStreetMap 標準スタイル
NavigationNight
夜間ナビゲーション
DarkGray / LightGray
データを載せる下地向けの淡いスタイル

うまくいかないとき

地図が読み込まれない

  • secrets.properties の API キーが正しいか確認します。
  • Dashboard でキーに必要なスコープが付いているか確認します。

ライセンスエラーが出る

  • 本番配布では Esri のドキュメントに沿ってライセンスを設定してください。

ビルドが通らない

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

次に

ArcGISMapView は 3D、ArcGISMapView2D は 2D です。どちらも同じ状態オブジェクトを共有するので、実行時に切り替えられます。