Documentación / Primeros pasos / MapLibre

Mostrar el primer mapa con MapLibre

Pasos para mostrar un mapa de MapLibre con MapConductor. La configuración varía según la plataforma, pero la idea del código para mapas y marcadores es la misma.

TIME
5 min
PROVIDER
MapLibre
API KEY
No requerido
LICENSE
OSS
Plataforma
Solo la configuración varía

01 · Instalación

Agrega `core` y `for-maplibre` a las dependencias. Si usas otro proveedor, simplemente cambia el módulo.

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")
    // opcional: compose / icons / heatmap / marker-clustering / geojson / kml
}

02 · Definir teselas

MapLibre en sí no tiene una clave de API. La apariencia del mapa la define la fuente de las teselas.

DEMO TILES

Comenzar con demo tiles

Si especifica MapLibreDesign.DemoTiles / OpenMapTiles directamente, puede verificar el funcionamiento sin clave.

HOSTED TILES

Preparar alojamiento para producción

Si usa servicios de distribución de tiles como MapTiler, configure la clave de cada servicio en la styleURL.

NOTA

Los demo tiles son solo para verificar el funcionamiento. En aplicaciones de producción, use sus propios servicios de distribución de tiles o servicios comerciales.

03 · Hello Map

Crea un objeto de estado con una posición de cámara y pásalo a la vista del mapa. Las superposiciones como marcadores y burbujas de información se declaran como elementos secundarios. Al tocar un marcador, se muestra la burbuja de información; al tocar el mapa, se cierra.

Mantén el objeto de estado durante toda la vida útil del componente. Al actualizar las propiedades directamente, los cambios se reflejan sin recrear la vista.
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 · Hasta que funcione

Se muestra un mapa centrado en la estación de Tokio con un marcador. Si tocas el marcador y aparece la burbuja "Hello, MapConductor", has terminado.

MapLibre · Marker · InfoBubble

04 · Cambiar de proveedor

Con el mismo código de pantalla, funciona con otro proveedor simplemente cambiando los módulos de dependencia y el nombre de la vista. Lo único que cambia es el proceso de introducción — obtención de clave y convención de inicialización.

Google Maps

Apple MapKit

Leaflet

OpenLayers

Azure Maps

Cesium

Open Mobile Maps

Páginas relacionadas