Doku / Einrichtung / iOS / MapLibre

MapLibre einrichten

So verwenden Sie MapLibre Native über MapConductor. Es ist die kürzeste Startmethode ohne API-Schlüssel. Das Erscheinungsbild der Karte wird durch den Anbieter des Styles JSON bestimmt.

PACKAGE
ios-for-maplibre
API KEY
Nicht erforderlich
MIN iOS
15.1
VIEW
MapLibreMapView
Derselbe Anbieter, andere PlattformenAndroidReact

Bevor Sie beginnen

Xcode 15 oder höher
Deployment Target iOS 15.1 oder höher
STEP 01

Mit Swift Package Manager hinzufügen

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

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

Stil festlegen

MapLibre selbst hat kein Konto und keinen Schlüssel. Sie müssen jedoch selbst den Anbieter der Kacheln festlegen. Wenn Sie einen kommerziellen Dienst wie MapTiler verwenden, wird der Schlüssel in die URL des Style JSON eingebettet. MapConductor ist nicht an der Authentifizierung des Kachelanbieters beteiligt.

ContentView.swiftSwift
// Built-in presets
mapState.mapDesignType = MapLibreDesign.OsmBright
mapState.mapDesignType = MapLibreDesign.OsmBrightJa
mapState.mapDesignType = MapLibreDesign.MapTilerTonerEn
mapState.mapDesignType = MapLibreDesign.DemoTiles
ACHTUNG
Der Demo-Stil dient nur zur Funktionsprüfung. In der Produktionsumgebung sollten Sie einen eigenen oder kommerziellen Kacheldienst verwenden und die vom Anbieter geforderte Namensnennung im UI anzeigen.
STEP 03

Standortberechtigung hinzufügen (falls erforderlich)

Wenn Sie den Standort verwenden, geben Sie den Zweck in Info.plist an und fordern Sie die Berechtigung in der App 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

Zeigen Sie die Karte mit dem angegebenen Stil an. Wenn die Kacheln geladen werden und Zoom und Schwen funktionieren, sind Sie fertig.

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

Kartendesigns

MapLibreDesign ist ein Typ, der die URL des Style JSON umschließt. Bei Verwendung eines eigenen Stils erstellen Sie denselben Typ direkt.

MapLibreDesign
Notes
DemoTiles
Leichte Demo-Kacheln
OsmBright / OsmBrightEn / OsmBrightJa
OSM Bright. Unterschiedliche Beschriftungssprachen
MapTilerTonerEn / MapTilerTonerJa
Toner-Stil mit hohem Kontrast
MapTilerBasicEn / MapTilerBasicJa
Basic-Stil mit reduzierten Informationen

Fehlerbehebung

Die Karte bleibt komplett weiß

  • Prüfen Sie, ob die URL des Style JSON des gewählten MapLibreDesign erreichbar ist.
  • Wenn Sie einen Kachelanbieter verwenden, prüfen Sie, ob der in der URL eingebettete Schlüssel gültig ist.
  • Prüfen Sie, ob das Deployment Target iOS 15.1 oder höher ist.

Build schlägt fehl

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

Weiter

Sobald MapLibreMapView erscheint, können Sie Overlays mit derselben gemeinsamen API wie bei anderen Anbietern überlagern.