ドキュメント / セットアップ / Android / Open Mobile Maps

Open Mobile Maps セットアップ

Open Mobile Maps(io.openmobilemaps:mapscore)を MapConductor から使う手順です。API キーは要りません。

MODULE
com.mapconductor:for-openmobilemaps
API KEY
不要
VIEW
OpenMobileMapsMapView
TIME
10 分
ほかのプラットフォームiOS

前提

Android 開発環境(Android Studio)
minSdk 28 以上
STEP 01

依存関係を追加する

Open Mobile Maps は Maven Central にあります。取得先を足す必要はありません。

app/build.gradle.ktsKotlin
dependencies {
    // Open Mobile Maps
    implementation("io.openmobilemaps:mapscore:4.0.0")

    // 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-openmobilemaps")
}
STEP 02

パーミッションを足す

タイルの取得にネットワークが要ります。位置情報を使わないなら INTERNET だけで足ります。

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

タイルの配信元を決める

キーが無いぶん、タイルをどこから取るかは自分で決めることになります。OpenStreetMap の公式タイルサーバーは利用ポリシー上アプリからの常用に向きません。本番では自前配信か商用の配信元を使ってください。

動作確認

ここまで動けば完了

東京を中心に地図を出します。タイルが読み込まれれば完了です。

@Composable
fun TestOpenMobileMaps(modifier: Modifier = Modifier) {
    val mapState = rememberOpenMobileMapsMapViewState(
        mapDesign = OpenMobileMapsDesign.OpenStreetMap,
        cameraPosition = MapCameraPosition(
            position = GeoPoint(latitude = 35.6812, longitude = 139.7671),
            zoom = 11.0,
        ),
    )

    OpenMobileMapsMapView(state = mapState, modifier = modifier.fillMaxSize())
}

地図デザイン

Notes
OpenStreetMap
OpenStreetMap の標準スタイル
OpenStreetMapJapan
日本向けの表記に寄せたもの
OpenTopoMap
地形図

うまくいかないとき

地図が真っ白で、タイルが 1 枚も来ない

  • このプロバイダに API キーはありません。まず指定しているスタイル URL に到達できるか確認します。
  • 端末がネットワークに出られるか確認します。

タイル配信元から 429 や 403 が返る

  • OpenStreetMap の公式タイルサーバーには利用ポリシーがあり、アプリからの常用は想定されていません。本番では自前のタイル配信か、商用の配信元を使ってください。

次に

マーカー・ポリライン・ポリゴン・円・グラウンドイメージ・ラスターレイヤー・InfoBubble は共通 API のまま使えます。プロバイダを差し替えてもアプリ側のコードは変わりません。