Documentación / Configuración / iOS / Mapbox

Configurar Mapbox

Pasos para usar el Mapbox Maps SDK para iOS con MapConductor. Selecciónelo para aplicaciones que ya dependen de Mapbox o que necesitan la URL de estilo de Mapbox.

PACKAGE
ios-for-mapbox
API KEY
Token de acceso
MIN iOS
17.0
VIEW
MapboxMapView
El mismo proveedor, otras plataformasAndroidReact

Antes de empezar

Xcode 15 o posterior
Cuenta de Mapbox (gratis o de pago)
Token de acceso público (alcance maps:read)
Destino de implementación iOS 17.0 o posterior
STEP 01

Obtener el token de acceso

  1. Cree una cuenta de Mapbox o inicie sesión.
  2. Copie el token público predeterminado desde "Tokens".
  3. Si es necesario, cree un token nuevo con el alcance maps:read.
PRECAUCIÓN
No incorpore un token secreto en la aplicación. La aplicación utiliza el token público.
STEP 02

Agregar con Swift Package Manager

Ingrese la URL del paquete desde File > Add Package Dependencies en Xcode. El Mapbox Maps SDK se agrega automáticamente como una dependencia.

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

Inicializar el SDK

Llame a initializeMapbox(accessToken:) una sola vez antes de que se cree la vista de mapa.

MyApp.swiftSwift
import SwiftUI
import MapConductorForMapbox

@main
struct MyApp: App {
    init() {
        initializeMapbox(accessToken: "YOUR_MAPBOX_PUBLIC_TOKEN")
    }

    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
ContentView.swiftSwift
// Alternative: call it from the view's sdkInitialize closure
MapboxMapView(state: mapState, sdkInitialize: {
    initializeMapbox(accessToken: "YOUR_MAPBOX_PUBLIC_TOKEN")
})
STEP 04

Agregar permisos de ubicación (si es necesario)

Si usa la ubicación, escriba el propósito en Info.plist.

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

Si aparece el mapa con un estilo de Mapbox y funcionan el zoom y el desplazamiento, ha terminado.

ContentView.swiftSwiftUI
import SwiftUI
import MapConductorCore
import MapConductorForMapbox

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

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

Diseños de mapa

MapboxMapDesign es compatible con los estándares de Mapbox. Los estilos personalizados se especifican con MapboxMapDesign.custom(styleURI:).

MapboxMapDesign
Notes
Standard
Estilo estándar predeterminado
Streets
Estilo callejero
SatelliteStreets
Imagen satelital + carreteras y etiquetas
Dark
Estilo oscuro

Solución de problemas

El mapa se queda completamente blanco

  • Asegúrese de que se llame a initializeMapbox(accessToken:) antes que la vista de mapa.
  • Verifique que el token tenga el alcance maps:read.
  • Verifique que el destino de implementación sea iOS 17.0 o posterior.

Aparece "Token de acceso no válido"

  • Verifique el valor del token y asegúrese de que no haya expirado.
  • Verifique que esté usando el token público y no el token secreto.

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

Cuando aparece MapboxMapView, puede superponer capas con la misma API común que con otros proveedores.