コンテンツにスキップ

MapConductor Android SDK

MapConductor(マップコンダクター) ♪ 複数の地図プロバイダを単一のAPIで扱えるAndroid向け統一地図SDK

MapConductor(マップコンダクター) とは何か

Section titled “MapConductor(マップコンダクター) とは何か”

統一されたAPI

一度コードを書けば、地図プロバイダをいつでも切り替えられます。Google Maps から Mapbox などに乗り換えても、大量のコードを書き直す必要はありません。

Jetpack Compose に最適化

最新のAndroid開発のために設計されており、Jetpack Compose を前提にしたAPIになっています。

複数プロバイダをサポート

Google Maps / Mapbox / HERE Maps / ArcGIS / MapLibre を、挙動を揃えた形でサポートしています。

オープンソース

Apache License 2.0 で公開されたオープンソースプロジェクトです。コミュニティ主導で開発が進んでいます。

MapConductorの使い方は簡単です。rememberXxxxViewStateXxxxViewを組み合わせて使います。 Xxxxの部分がGoogleMapMapboxなどに切り替わります。 Mapbox に切り替えたい場合は、rememberGoogleMapViewState()rememberMapboxMapViewState() に、 GoogleMapViewMapboxMapView に変更するだけです。 それ以外のコードはそのままです。

地図SDKmapViewStatemapView
GoogleMapsrememberGoogleMapViewStateGoogleMapView
MapboxrememberMapboxViewStateMapboxMapView
MapLibrerememberMapLibreViewStateMapLibreView
HERErememberHereMapViewStateHereMapView
ArcGISrememberArcGISMapViewStateArcGISMapView
@Composable
fun MyMap() {
// 地図の初期表示位置
val targetPosition = GeoPointImpl.fromLatLong(37.7749, -122.419)
val initCamera = MapCameraPositionImpl(
position = targetPosition,
zoom = 12.0,
)
// このmapViewStateを通じて、地図の表示状態を操作します
val mapViewState = rememberGoogleMapViewState(
cameraPosition = initCamera,
)
GoogleMapView(
state = mapViewState,
onMapClick = { geoPoint ->
println("Clicked: ${geoPoint.latitude}, ${geoPoint.longitude}")
}
) {
Marker(
position = targetPosition,
icon = DefaultIcon(label = "SF")
)
}
}
Google Maps の実行例
機能Google MapsMapboxHEREArcGISMapLibre
地図
マーカー
ポリライン
ポリゴン
GroundImageN/AN/AN/AN/A

Android アプリに MapConductor を導入する準備ができたら、イントロダクションチュートリアル を参照してください。