ドキュメント / セットアップ / Android / HERE
HERE セットアップ
HERE SDK(Explore Edition を想定)を MapConductor から使う手順です。HERE SDK は Maven ではなく AAR で配布されるため、ファイルをプロジェクトに置く手順が入ります。
MODULE
com.mapconductor:for-here
API KEY
Key ID + Secret
VIEW
HereMapView
TIME
25 分
前提
Android 開発環境(Android Studio)
HERE 開発者アカウント
Access Key ID と Access Key Secret
HERE SDK Explore Android の AAR ファイル(4.26 系)
STEP 01
認証情報と AAR を用意する
- HERE Developer アカウントを作成します。
- HERE Developer Portal でプロジェクトを作成します。
- Access Key ID と Secret を生成します。
- HERE SDK Explore Android の AAR をダウンロードします。4.26 系であれば動作します。
STEP 02
AAR をプロジェクトに置く
AAR をプロジェクトの libs/ に置きます。ファイル名は Gradle から参照する名前と完全に一致させてください。
project layouttext
<project root>/
└── libs/
└── heresdk-explore-android-4.26.5.0.299343.aarファイル名に含まれるビルド番号は参考値です。MapConductor の開発と検証はこのバージョンで行っていますが、ここに固定する必要はありません。MapConductor は各地図 SDK の固有機能になるべく依存しない作りにしているため、バージョンが多少違っても動作します。実際にダウンロードした AAR のファイル名に読み替えてください。
注意
HERE SDK の AAR は再配布が制限されています。公開リポジトリにコミットしないでください(.gitignore に libs/heresdk-*.aar を追加します)。
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
依存関係を追加する
AAR はローカルファイルとして参照します。ファイル名は実際に置いたものに合わせてください。
app/build.gradle.ktsKotlin
plugins {
// ... other plugins
id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
}
dependencies {
// HERE SDK (local AAR).
// This build number is only the one MapConductor is developed against —
// use the file name of the AAR you downloaded.
implementation(
files("${rootProject.projectDir}/libs/heresdk-explore-android-4.26.5.0.299343.aar")
)
// MapConductor BOM pins every module below
implementation(platform("com.mapconductor:mapconductor-bom:1.2.0"))
implementation("com.mapconductor:core")
implementation("com.mapconductor:for-here")
}STEP 05
マニフェストと認証情報を設定する
HERE は ID と Secret の 2 つを使います。両方をプレースホルダー経由で渡します。
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>
<!-- HERE Access Key ID -->
<meta-data
android:name="HERE_ACCESS_KEY_ID"
android:value="${HERE_ACCESS_KEY_ID}" />
<!-- HERE Access Key Secret -->
<meta-data
android:name="HERE_ACCESS_KEY_SECRET"
android:value="${HERE_ACCESS_KEY_SECRET}" />
</application>
</manifest>secrets.propertiesProperties
HERE_ACCESS_KEY_ID=your_actual_here_access_key_id HERE_ACCESS_KEY_SECRET=your_actual_here_access_key_secret
注意
secrets.properties はバージョン管理にコミットしないでください。.gitignore に追加しておくと事故を防げます。CI では環境変数など別の安全な経路で渡します。
動作確認
ここまで動けば完了
HERE の地図が出れば完了です。
TestHere.ktJetpack Compose
@Composable
fun TestHere(modifier: Modifier = Modifier) {
val mapState = rememberHereMapViewState(
cameraPosition = MapCameraPosition(
position = GeoPoint(35.6762, 139.6503),
zoom = 12.0,
),
)
// If the map appears, the setup is correct.
HereMapView(modifier = modifier, state = mapState)
}地図デザイン
HereMapDesign は HERE のマップスキームに対応します。昼夜や物流向けなど、用途別のスタイルが揃っています。
HereMapDesign
Notes
NormalDay / NormalNight
標準スタイルの昼・夜
Satellite
衛星画像
HybridDay / HybridNight
衛星画像+道路とラベル
LiteDay / LiteNight
情報量を落とした軽量スタイル
LogisticsDay
物流向け
RoadNetworkDay
道路ネットワーク重視
うまくいかないとき
地図が読み込まれない
- secrets.properties の Access Key ID と Secret が正しいか確認します。
- キーが有効(無効化されていない)か確認します。
AAR が見つからないと言われる
- AAR が libs/ にあるか確認します。
- ファイル名が build.gradle.kts の記述と完全一致しているか確認します(バージョン番号まで)。
ビルドが通らない
- 地図 SDK の座標とバージョンがバージョンカタログの指定と一致しているか確認します。
- リポジトリ定義が settings.gradle.kts にあるか確認します(repositoriesMode が FAIL_ON_PROJECT_REPOS だと、モジュール側の repositories は無視されます)。
- 複数の地図 SDK を同時に入れている場合は、依存の衝突がないか ./gradlew :app:dependencies で確認します。
次に
HereMapView が出たら、他のプロバイダと同じ共通 API でオーバーレイを重ねられます。