दस्तावेज़ / सेटअप / iOS / Google Maps

Google Maps का सेटअप

Google Maps SDK for iOS को MapConductor से उपयोग करने की प्रक्रिया है। पहले से ही Google Maps पर निर्भर ऐप्स या GoogleMapDesign के मैप प्रकार की आवश्यकता वाले मामलों में इसे चुना जाता है।

PACKAGE
ios-for-googlemaps
API KEY
आवश्यक
MIN iOS
16.0
VIEW
GoogleMapView
वही प्रोवाइडर, दूसरे प्लेटफ़ॉर्मAndroidReact

शुरू करने से पहले

Xcode 15 या उसके बाद का संस्करण
Google Cloud Console का खाता
Maps SDK for iOS सक्षम Google Cloud प्रोजेक्ट
डिप्लॉय टार्गेट iOS 16.0 या उसके बाद का संस्करण
STEP 01

API कुंजी प्राप्त करें

  1. Google Cloud Console पर जाएं।
  2. प्रोजेक्ट बनाएं या कोई मौजूदा प्रोजेक्ट चुनें।
  3. Maps SDK for iOS को सक्षम करें।
  4. API कुंजी बनाने के लिए "Credentials" (प्रमाणपत्र) से चुनें।
  5. कुंजी को ऐप के बंडल आईडी तक सीमित करें।
STEP 02

Swift Package Manager के माध्यम से जोड़ें

Xcode के File > Add Package Dependencies से पैकेज URL दर्ज करें। नेटिव SDK स्वचालित रूप से निर्भरता के रूप में शामिल हो जाता है, इसलिए अलग से जोड़ने की आवश्यकता नहीं है।

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 आरंभ करें

मैप व्यू बनाए जाने से पहले GMSServices.provideAPIKey(_:) को एक बार कॉल करें। @main की App संरचना अनुशंसित स्थान है।

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")
})
सावधानी
API कुंजी को सोर्स कोड में सीधे न लिखें। xcconfig या पर्यावरण चर से बिल्ड समय पर इंजेक्ट करें और इसे रिपॉजिटरी में न रखें।
STEP 04

स्थान अनुमतियाँ जोड़ें (यदि आवश्यक हो)

यदि आप Google Maps में स्थान सेवाओं का उपयोग करते हैं, तो Info.plist में उद्देश्य लिखें और ऐप से अनुमति मांगें।

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

जाँच

आपको क्या दिखना चाहिए

इस ContentView को बनाकर चलाएं, और यदि मैप दिखाई देता है और ज़ूम व पैन काम करता है, तो प्रक्रिया पूर्ण है।

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

मैप डिज़ाइन

GoogleMapDesign Google के मैप प्रकारों का समर्थन करता है।

GoogleMapDesign
Notes
Normal
सामान्य सड़क मानचित्र
Satellite
उपग्रह चित्र
Hybrid
उपग्रह चित्र + सड़कें और लेबल
Terrain
भू-आकृति मानचित्र

समस्या निवारण

मैप नहीं दिख रहा (ग्रे स्क्रीन)

  • जांचें कि मैप व्यू बनाए जाने से पहले GMSServices.provideAPIKey(_:) को कॉल किया गया है या नहीं।
  • Console में जांचें कि Maps SDK for iOS सक्षम है या नहीं।
  • जांचें कि कुंजी की बंडल आईडी प्रतिबंध वास्तविक बंडल आईडी से मेल खाता है या नहीं।
  • जांचें कि डिप्लॉय टार्गेट iOS 16.0 या उसके बाद का संस्करण है या नहीं।

बिल्ड विफल हो रहा है

  • बिल्ड फ़ोल्डर साफ़ करें (Cmd+Shift+K)।
  • ~/Library/Developer/Xcode/DerivedData को हटाएं और पुनः बिल्ड करें।
  • Swift Package Manager की निर्भरताएं अपडेट करें। CocoaPods के साथ उपयोग से बचें।

आगे

GoogleMapView आ जाने पर, Marker, Polyline, और Circle सामान्य API में लिखे जा सकते हैं। प्रदाता बदलने पर भी उसे फिर से लिखना नहीं पड़ता है।