Doku / Einrichtung / iOS / Mapbox

Mapbox einrichten

Schritte zur Verwendung des Mapbox Maps SDK für iOS mit MapConductor. Wählen Sie dies für Apps, die bereits von Mapbox abhängen oder die Mapbox-Style-URL benötigen.

PACKAGE
ios-for-mapbox
API KEY
Zugriffstoken
MIN iOS
17.0
VIEW
MapboxMapView
Derselbe Anbieter, andere PlattformenAndroidReact

Bevor Sie beginnen

Xcode 15 oder höher
Mapbox-Konto (kostenlos oder kostenpflichtig)
Öffentliches Zugriffstoken (Scope maps:read)
Deployment-Ziel iOS 17.0 oder höher
STEP 01

Zugriffstoken abrufen

  1. Erstellen Sie ein Mapbox-Konto oder melden Sie sich an.
  2. Kopieren Sie das Standard öffentliche Token aus "Tokens".
  3. Erstellen Sie bei Bedarf ein neues Token mit dem Scope maps:read.
ACHTUNG
Betten Sie kein Secret-Token in die App ein. In der App wird das öffentliche Token verwendet.
STEP 02

Mit Swift Package Manager hinzufügen

Geben Sie die Paket-URL über File > Add Package Dependencies in Xcode ein. Das Mapbox Maps SDK wird automatisch als Abhängigkeit hinzugefügt.

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

SDK initialisieren

Rufen Sie initializeMapbox(accessToken:) genau einmal auf, bevor die Kartenansicht erstellt wird.

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

Standortberechtigung hinzufügen (falls erforderlich)

Wenn Sie den Standort verwenden, geben Sie den Verwendungszweck in Info.plist an.

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()
    }
}

PRÜFEN

Was Sie sehen sollten

Wenn die Karte mit einem Mapbox-Style angezeigt wird und Zoom und Pan funktionieren, sind Sie fertig.

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()
    }
}

Kartendesigns

MapboxMapDesign unterstützt die Standard-Styles von Mapbox. Benutzerdefinierte Styles werden mit MapboxMapDesign.custom(styleURI:) angegeben.

MapboxMapDesign
Notes
Standard
Standard-Standardstyle
Streets
Straßenstyle
SatelliteStreets
Satellitenbild + Straßen und Beschriftungen
Dark
Dark-Style

Fehlerbehebung

Karte bleibt komplett weiß

  • Stellen Sie sicher, dass initializeMapbox(accessToken:) vor der Kartenansicht aufgerufen wird.
  • Überprüfen Sie, ob das Token den Scope maps:read hat.
  • Überprüfen Sie, ob das Deployment-Ziel iOS 17.0 oder höher ist.

"Ungültiges Zugriffstoken" wird angezeigt

  • Überprüfen Sie den Wert des Tokens und stellen Sie sicher, dass es nicht abgelaufen ist.
  • Überprüfen Sie, ob Sie das öffentliche Token und nicht das Secret-Token verwenden.

Build schlägt fehl

  • Löschen Sie den Build-Ordner (Cmd+Shift+K).
  • Löschen Sie ~/Library/Developer/Xcode/DerivedData und erstellen Sie neu.
  • Aktualisieren Sie die Abhängigkeiten von Swift Package Manager. Vermeiden Sie die gleichzeitige Verwendung mit CocoaPods.

Weiter

Wenn MapboxMapView angezeigt wird, können Sie Overlays mit derselben gemeinsamen API wie bei anderen Anbietern überlagern.