Google Maps einrichten
So verwenden Sie das Google Maps SDK für iOS mit MapConductor. Wählen Sie dies für Apps, die bereits Google Maps verwenden, oder wenn Sie den MapType GoogleMapDesign benötigen.
Bevor Sie beginnen
API-Schlüssel abrufen
- Greifen Sie auf die Google Cloud Console zu.
- Erstellen Sie ein Projekt oder wählen Sie ein vorhandenes aus.
- Aktivieren Sie das Maps SDK für iOS.
- Erstellen Sie unter „Anmeldedaten“ einen API-Schlüssel.
- Beschränken Sie den Schlüssel auf die Bundle-ID der App.
Mit Swift Package Manager hinzufügen
Geben Sie die Paket-URL unter Xcode > File > Add Package Dependencies ein. Das native SDK wird automatisch als Abhängigkeit hinzugefügt, sodass Sie es nicht separat hinzufügen müssen.
https://github.com/MapConductor/ios-for-googlemaps
dependencies: [
.package(url: "https://github.com/MapConductor/ios-sdk-core", from: "1.3.1"),
.package(url: "https://github.com/MapConductor/ios-for-googlemaps", from: "1.0.0"),
],
targets: [
.target(
name: "YourApp",
dependencies: [
.product(name: "MapConductorCore", package: "ios-sdk-core"),
.product(name: "MapConductorForGoogleMaps", package: "ios-for-googlemaps"),
]
),
]SDK initialisieren
Rufen Sie GMSServices.provideAPIKey(_:) genau einmal auf, bevor die Kartenansicht erstellt wird. Die App-Struktur @main ist der empfohlene Ort.
import SwiftUI
import GoogleMaps
import MapConductorForGoogleMaps
@main
struct MyApp: App {
init() {
GMSServices.provideAPIKey("YOUR_GOOGLE_MAPS_API_KEY")
}
var body: some Scene {
WindowGroup {
ContentView()
}
}
}// Alternative: call it from the view's sdkInitialize closure
GoogleMapView(state: mapState, sdkInitialize: {
GMSServices.provideAPIKey("YOUR_GOOGLE_MAPS_API_KEY")
})Standortberechtigungen hinzufügen (falls erforderlich)
Wenn Sie den Standortdienst in Google Maps verwenden, geben Sie den Verwendungszweck in Info.plist an und fordern Sie die Berechtigung in der App an.
<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
Erstellen Sie diese ContentView und führen Sie sie aus. Wenn die Karte angezeigt wird und Zoom- und Schwenkfunktionen funktionieren, sind Sie fertig.
import SwiftUI
import MapConductorCore
import MapConductorForGoogleMaps
struct ContentView: View {
@StateObject var mapState = GoogleMapViewState(
cameraPosition: MapCameraPosition(
position: GeoPoint(latitude: 35.6762, longitude: 139.6503),
zoom: 12.0
)
)
var body: some View {
GoogleMapView(state: mapState)
.ignoresSafeArea()
}
}Kartendesigns
GoogleMapDesign unterstützt die Google-Kartentypen.
Fehlerbehebung
Die Karte wird nicht angezeigt (grauer Bildschirm)
- Überprüfen Sie, ob GMSServices.provideAPIKey(_:) aufgerufen wurde, bevor die Kartenansicht erstellt wurde.
- Überprüfen Sie in der Konsole, ob das Maps SDK für iOS aktiviert ist.
- Überprüfen Sie, ob die Bundle-ID-Einschränkung des Schlüssels mit der tatsächlichen Bundle-ID übereinstimmt.
- Überprüfen Sie, ob das Deployment-Ziel iOS 16.0 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 des Swift Package Managers. Vermeiden Sie die gleichzeitige Verwendung mit CocoaPods.
Weiter
Wenn GoogleMapView erscheint, können Marker, Polyline und Circle über die gemeinsame API geschrieben werden. Auch wenn der Anbieter gewechselt wird, muss dieser Teil nicht neu geschrieben werden.