Documentación / Configuración / iOS / MapLibre

Configurar MapLibre

Instrucciones para usar MapLibre Native desde MapConductor. Es la forma más rápida de empezar y no requiere clave de API. La apariencia del mapa la determina la fuente del Style JSON.

PACKAGE
ios-for-maplibre
API KEY
No requerido
MIN iOS
15.1
VIEW
MapLibreMapView
El mismo proveedor, otras plataformasAndroidReact

Antes de empezar

Xcode 15 o posterior
Deployment Target iOS 15.1 o posterior
STEP 01

Agregar con Swift Package Manager

Ingrese la URL del paquete desde File > Add Package Dependencies en Xcode. El MapLibre Native SDK se agregará automáticamente como dependencia.

Package URLSwift Package Manager
https://github.com/MapConductor/ios-for-maplibre
Package.swiftSwift
dependencies: [
    .package(url: "https://github.com/MapConductor/ios-sdk-core", from: "1.3.1"),
    .package(url: "https://github.com/MapConductor/ios-for-maplibre", from: "1.0.0"),
],
targets: [
    .target(
        name: "YourApp",
        dependencies: [
            .product(name: "MapConductorCore", package: "ios-sdk-core"),
            .product(name: "MapConductorForMapLibre", package: "ios-for-maplibre"),
        ]
    ),
]
STEP 02

Definir el estilo

MapLibre en sí no tiene cuenta ni clave. Sin embargo, debe definir el proveedor de mosaicos. Si usa un servicio comercial como MapTiler, la clave se incrusta en la URL del Style JSON. MapConductor no interviene en la autenticación del proveedor de mosaicos.

ContentView.swiftSwift
// Built-in presets
mapState.mapDesignType = MapLibreDesign.OsmBright
mapState.mapDesignType = MapLibreDesign.OsmBrightJa
mapState.mapDesignType = MapLibreDesign.MapTilerTonerEn
mapState.mapDesignType = MapLibreDesign.DemoTiles
PRECAUCIÓN
El estilo de demostración es solo para verificar el funcionamiento. En producción, use sus propias mosaicos o un servicio comercial y muestre los atributos requeridos por el proveedor en la interfaz de usuario.
STEP 03

Agregar permiso de ubicación (si es necesario)

Si usa la ubicación, describa el propósito en Info.plist y solicite el permiso desde la aplicación.

Info.plistXML
<key>NSLocationWhenInUseUsageDescription</key>
<string>We need your location to display on the map</string>
LocationManager.swiftSwift
import CoreLocation

final class LocationManager: NSObject, ObservableObject, CLLocationManagerDelegate {
    private let manager = CLLocationManager()

    override init() {
        super.init()
        manager.delegate = self
    }

    func requestPermission() {
        manager.requestWhenInUseAuthorization()
    }
}

VERIFICAR

Lo que deberías ver

Muestre el mapa con el estilo especificado. Si se cargan los mosaicos y funcionan el zoom y el desplazamiento, ha terminado.

ContentView.swiftSwiftUI
import SwiftUI
import MapConductorCore
import MapConductorForMapLibre

struct ContentView: View {
    @StateObject var mapState = MapLibreViewState(
        mapDesignType: MapLibreDesign.OsmBright,
        cameraPosition: MapCameraPosition(
            position: GeoPoint(latitude: 35.6812, longitude: 139.7671),
            zoom: 12.0
        )
    )

    var body: some View {
        MapLibreMapView(state: mapState)
            .ignoresSafeArea()
    }
}

Diseños de mapa

MapLibreDesign es un tipo que envuelve la URL del Style JSON. Al usar un estilo propio, construya directamente el mismo tipo.

MapLibreDesign
Notes
DemoTiles
Mosaicos de demostración ligeros
OsmBright / OsmBrightEn / OsmBrightJa
OSM Bright. Idiomas de etiquetas distintos
MapTilerTonerEn / MapTilerTonerJa
Estilo Toner de alto contraste
MapTilerBasicEn / MapTilerBasicJa
Estilo Basic con información reducida

Solución de problemas

El mapa permanece completamente blanco

  • Verifique que se pueda alcanzar la URL del Style JSON del MapLibreDesign elegido.
  • Si usa un proveedor de mosaicos, verifique que la clave incrustada en la URL sea válida.
  • Verifique que el Deployment Target sea iOS 15.1 o posterior.

Error de compilación

  • Limpie la carpeta de compilación (Cmd+Shift+K).
  • Elimine ~/Library/Developer/Xcode/DerivedData y vuelva a compilar.
  • Actualice las dependencias de Swift Package Manager. Evite usarlo junto con CocoaPods.

Siguiente

Una vez que aparezca MapLibreMapView, puede superponer capas con la misma API común que otros proveedores.