Dokumentation / Erste Schritte / MapLibre

Erste Karte mit MapLibre anzeigen

Schritte zum Anzeigen einer MapLibre-Karte mit MapConductor. Das Setup variiert je nach Plattform, aber der Ansatz für den Code für Karten und Marker ist derselbe.

TIME
5 min
PROVIDER
MapLibre
API KEY
Nicht erforderlich
LICENSE
OSS
Plattform
Nur das Setup unterscheidet sich

01 · Installation

Füge `core` und `for-maplibre` zu den Abhängigkeiten hinzu. Wenn Sie einen anderen Anbieter verwenden, tauschen Sie einfach das Modul aus.

settings.gradle.ktsKotlin
dependencyResolutionManagement {
    repositories {
        google()
        mavenCentral()
    }
}
app/build.gradle.ktsKotlin
dependencies {
    implementation(platform("com.mapconductor:mapconductor-bom:1.3.1"))
    implementation("com.mapconductor:core")
    implementation("com.mapconductor:for-maplibre")
    // optional: compose / icons / heatmap / marker-clustering / geojson / kml
}

02 · Kacheln festlegen

MapLibre selbst hat keinen API-Schlüssel. Das Erscheinungsbild der Karte wird durch den Kachelanbieter bestimmt.

DEMO TILES

Starten mit Demo-Tiles

Wenn Sie MapLibreDesign.DemoTiles / OpenMapTiles direkt angeben, können Sie die Funktion ohne Schlüssel überprüfen.

HOSTED TILES

Hosting für die Produktion vorbereiten

Wenn Sie Tile-Dienste wie MapTiler verwenden, legen Sie den Schlüssel des jeweiligen Dienstes in der styleURL fest.

HINWEIS

Demo-Tiles dienen nur zur Überprüfung der Funktion. Verwenden Sie in Produktions-Apps eigene oder kommerzielle Tile-Dienste.

03 · Hello Map

Erstelle ein Zustandsobjekt mit einer Kameraposition und gib es an die Kartenansicht weiter. Overlays wie Marker und Informationsblasen werden als untergeordnete Elemente deklariert. Wenn ein Marker angetippt wird, wird die Informationsblase angezeigt; wenn die Karte angetippt wird, wird sie geschlossen.

Halte das Zustandsobjekt während der gesamten Lebensdauer der Komponente. Wenn Eigenschaften direkt aktualisiert werden, werden sie ohne Neuerstellung der Ansicht übernommen.
SimpleMapScreen.kt · Jetpack Compose
@Composable
fun SimpleMapScreen(modifier: Modifier) {
    var selected by remember { mutableStateOf<MarkerState?>(null) }

    val mapState = rememberMapLibreMapViewState(
        cameraPosition = MapCameraPosition(
            position = GeoPoint(35.6812, 139.7671),
            zoom = 14.0,
        ),
        mapDesign = MapLibreDesign.OsmBright,
    )
    val markerState = remember {
        MarkerState(
            position = GeoPoint(35.6812, 139.7671),
            onClick = { selected = it },
        )
    }

    MapLibreMapView(
        modifier = modifier,
        state = mapState,
        onMapClick = { selected = null },
    ) {
        Marker(markerState)
        selected?.let {
            InfoBubble(marker = it) { Text("Hello, MapConductor") }
        }
    }
}

RESULT · Bis zum Laufen bringen

Die Karte wird mit dem Bahnhof Tokio als Zentrum angezeigt, und ein Marker wird gesetzt. Wenn du den Marker anztippst und die Sprechblase „Hello, MapConductor“ erscheint, ist es fertig.

MapLibre · Marker · InfoBubble

04 · Anbieter austauschen

Mit demselben Screen-Code funktioniert es mit einem anderen Anbieter, indem du einfach die Abhängigkeitsmodule und den Ansichtsnamen austauschst. Was sich ändert, ist nur der Integrationsprozess — Abrufen des Schlüssels und Initialisierung.

Google Maps

Apple MapKit

Leaflet

OpenLayers

Azure Maps

Cesium

Open Mobile Maps

Verwandte Seiten