Doku / Einrichtung / iOS / Google Maps

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.

PACKAGE
ios-for-googlemaps
API KEY
Erforderlich
MIN iOS
16.0
VIEW
GoogleMapView
Derselbe Anbieter, andere PlattformenAndroidReact

Bevor Sie beginnen

Xcode 15 oder höher
Ein Konto in der Google Cloud Console
Ein Google Cloud-Projekt, in dem das Maps SDK für iOS aktiviert ist
Deployment-Ziel iOS 16.0 oder höher
STEP 01

API-Schlüssel abrufen

  1. Greifen Sie auf die Google Cloud Console zu.
  2. Erstellen Sie ein Projekt oder wählen Sie ein vorhandenes aus.
  3. Aktivieren Sie das Maps SDK für iOS.
  4. Erstellen Sie unter „Anmeldedaten“ einen API-Schlüssel.
  5. Beschränken Sie den Schlüssel auf die Bundle-ID der App.
STEP 02

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.

Package URLSwift Package Manager
https://github.com/MapConductor/ios-for-googlemaps
Package.swiftSwift
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"),
        ]
    ),
]
STEP 03

SDK initialisieren

Rufen Sie GMSServices.provideAPIKey(_:) genau einmal auf, bevor die Kartenansicht erstellt wird. Die App-Struktur @main ist der empfohlene Ort.

MyApp.swiftSwift
import SwiftUI
import GoogleMaps
import MapConductorForGoogleMaps

@main
struct MyApp: App {
    init() {
        GMSServices.provideAPIKey("YOUR_GOOGLE_MAPS_API_KEY")
    }

    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}
ContentView.swiftSwift
// Alternative: call it from the view's sdkInitialize closure
GoogleMapView(state: mapState, sdkInitialize: {
    GMSServices.provideAPIKey("YOUR_GOOGLE_MAPS_API_KEY")
})
ACHTUNG
Schreiben Sie den API-Schlüssel nicht direkt in den Quellcode. Injizieren Sie ihn zur Build-Zeit aus xcconfig oder Umgebungsvariablen und speichern Sie ihn nicht im Repository.
STEP 04

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.

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

Erstellen Sie diese ContentView und führen Sie sie aus. Wenn die Karte angezeigt wird und Zoom- und Schwenkfunktionen funktionieren, sind Sie fertig.

ContentView.swiftSwiftUI
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.

GoogleMapDesign
Notes
Normal
Normale Straßenkarte
Satellite
Satellitenbild
Hybrid
Satellitenbild mit Straßen und Beschriftungen
Terrain
Topografische Karte

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.