Doku / Einrichtung / iOS / HERE

HERE einrichten

Schritte zur Verwendung des HERE SDK über MapConductor. Initialisierung mit Access Key ID und Secret.

PACKAGE
ios-for-here
API KEY
Key ID + Secret
MIN iOS
16.0
VIEW
HereMapView
Derselbe Anbieter, andere PlattformenAndroidReact

Bevor Sie beginnen

Xcode 15 oder höher
Konto auf der HERE Platform
Access Key ID und Secret des HERE SDK
Deployment-Ziel iOS 16.0 oder höher
STEP 01

Anmeldeinformationen abrufen

  1. Greifen Sie auf die HERE Platform zu.
  2. Erstellen Sie ein Projekt oder wählen Sie ein vorhandenes aus.
  3. Erstellen Sie einen Access Key für das HERE SDK.
  4. Kopieren Sie die Access Key ID und das Secret.
STEP 02

Mit Swift Package Manager hinzufügen

Geben Sie die Paket-URL über File > Add Package Dependencies in Xcode ein. Das native SDK wird automatisch als Abhängigkeit hinzugefügt, es muss nicht separat hinzugefügt werden.

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

SDK initialisieren

Rufen Sie initializeHERE(accessKeyId:accessKeySecret:) genau einmal auf, bevor die Kartenansicht erstellt wird. Diese Funktion kann throws führen, fangen Sie Fehler ab und unterdrücken Sie sie nicht.

MyApp.swiftSwift
import SwiftUI
import MapConductorForHERE

@main
struct MyApp: App {
    init() {
        do {
            try initializeHERE(
                accessKeyId: "YOUR_HERE_ACCESS_KEY_ID",
                accessKeySecret: "YOUR_HERE_ACCESS_KEY_SECRET"
            )
        } catch {
            assertionFailure("Failed to initialize HERE SDK: \(error)")
        }
    }

    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
ContentView.swiftSwift
// Alternative: call it from the view's sdkInitialize closure
HereMapView(state: mapState, sdkInitialize: {
    try? initializeHERE(
        accessKeyId: "YOUR_HERE_ACCESS_KEY_ID",
        accessKeySecret: "YOUR_HERE_ACCESS_KEY_SECRET"
    )
})
STEP 04

Standortberechtigungen hinzufügen (falls erforderlich)

Wenn Sie Ortungsdienste im HERE SDK verwenden, tragen Sie den Verwendungszweck in Info.plist ein.

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 HERE-Karte angezeigt wird und Zoom- und Schwenkfunktionen funktionieren, sind Sie fertig.

ContentView.swiftSwiftUI
import SwiftUI
import MapConductorCore
import MapConductorForHERE

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

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

Kartendesigns

HereMapDesign unterstützt die Map-Schemata von HERE.

HereMapDesign
Notes
NormalDay / NormalNight
Standardstil Tag/Nacht
Satellite
Satellitenbild
HybridDay
Satellitenbild + Straßen und Beschriftungen
LiteDay
Leichter Tag-Stil
LogisticsDay
Für Logistik
RoadNetworkDay
Fokus auf Straßennetzwerk

Fehlerbehebung

Karte bleibt komplett weiß

  • Überprüfen Sie, ob Access Key ID und Secret korrekt sind.
  • Überprüfen Sie, ob initializeHERE vor der Kartenansicht aufgerufen wurde.
  • Fangen Sie den throw bei der Initialisierung ab und protokollieren Sie den Fehlerinhalt.

Build schlägt fehl

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

Weiter

Marker, Polylinien, Polygone, Kreise, Ground-Images, Raster-Layer und InfoBubble können alle über eine gemeinsame API verwendet werden. Für Löcher in Polygonen gibt es keine native Unterstützung auf der HERE-Seite, daher werden Masken-Kacheln generiert und gezeichnet. Der aufrufende Code ist derselbe wie bei anderen Anbietern.