HERE einrichten
Schritte zur Verwendung des HERE SDK über MapConductor. Initialisierung mit Access Key ID und Secret.
Bevor Sie beginnen
Anmeldeinformationen abrufen
- Greifen Sie auf die HERE Platform zu.
- Erstellen Sie ein Projekt oder wählen Sie ein vorhandenes aus.
- Erstellen Sie einen Access Key für das HERE SDK.
- Kopieren Sie die Access Key ID und das Secret.
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.
https://github.com/MapConductor/ios-for-here
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"),
]
),
]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.
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()
}
}
}// 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"
)
})Standortberechtigungen hinzufügen (falls erforderlich)
Wenn Sie Ortungsdienste im HERE SDK verwenden, tragen Sie den Verwendungszweck in Info.plist ein.
<key>NSLocationWhenInUseUsageDescription</key> <string>We need your location to display on the map</string>
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.
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.
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.