Skjölun / Uppsetning / iOS / Mapbox

Uppsetning á Mapbox

Hvernig stýra má Mapbox Maps SDK for iOS gegnum MapConductor. Veldu það þegar forritið þitt reiðir sig þegar á Mapbox, eða þegar þú þarft stílslóðir Mapbox.

PACKAGE
ios-for-mapbox
API KEY
Aðgangsteikn
MIN iOS
17.0
VIEW
MapboxMapView
Sami þjónustuaðili, aðrir vettvangarAndroidReact

Áður en þú byrjar

Xcode 15 eða nýrra
Mapbox-aðgangur (ókeypis eða greiddur)
Opinbert aðgangsteikn með maps:read-sviðinu
Útgáfumarkmið iOS 17.0 eða síðar
STEP 01

Fáðu aðgangsteikn

  1. Stofnaðu Mapbox-aðgang eða skráðu þig inn.
  2. Afritaðu sjálfgefna opinbera teiknið undir Tokens.
  3. Eða búðu til nýtt teikn sem ber maps:read-sviðið.
VARÚÐ
Sendu aldrei leyniteikn með forriti — forrit nota opinbera teiknið.
STEP 02

Bættu því við með Swift Package Manager

Notaðu File > Add Package Dependencies í Xcode og límdu inn slóð pakkans. Mapbox Maps SDK kemur sjálfkrafa með sem viðfang.

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

Frumstilltu SDK-ið

Kallaðu á initializeMapbox(accessToken:) nákvæmlega einu sinni, áður en nokkur kortasýn verður til.

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

Bættu við staðsetningarheimild (ef þarf)

Ef þú notar staðsetningu skaltu lýsa tilganginum í 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()
    }
}

STAÐFESTA

Það sem þú ættir að sjá

Þú ert búin/n þegar kortið teiknast í Mapbox-stíl og aðdráttur og hliðrun virka.

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

Kortahönnun

MapboxMapDesign nær yfir staðalstíla Mapbox; beindu því á þinn eigin með MapboxMapDesign.custom(styleURI:).

MapboxMapDesign
Notes
Standard
Sjálfgefni staðalstíllinn
Streets
Götustíllinn
SatelliteStreets
Gervihnattamyndir með vegum og merkingum
Dark
Dökki stíllinn

Bilanaleit

Kortið helst autt

  • Staðfestu að initializeMapbox(accessToken:) keyri áður en kortasýnin verður til.
  • Athugaðu að teiknið beri maps:read-sviðið.
  • Athugaðu að útgáfumarkmiðið sé iOS 17.0 eða síðar.

„Invalid access token“ birtist

  • Athugaðu gildi teiknisins aftur og hvort það hafi verið afturkallað.
  • Gakktu úr skugga um að þú notir opinbera teiknið, ekki leyniteikn.

Smíðin bregst

  • Hreinsaðu smíðamöppuna (Cmd+Shift+K).
  • Eyddu ~/Library/Developer/Xcode/DerivedData og smíðaðu aftur.
  • Endurnýjaðu viðföngin í Swift Package Manager, og forðastu að blanda CocoaPods saman við.

Næst

Með MapboxMapView á skjánum fara yfirlögin á gegnum sama sameiginlega API og hjá öllum öðrum þjónustuaðilum.