Google Maps का सेटअप
Google Maps SDK for iOS को MapConductor से उपयोग करने की प्रक्रिया है। पहले से ही Google Maps पर निर्भर ऐप्स या GoogleMapDesign के मैप प्रकार की आवश्यकता वाले मामलों में इसे चुना जाता है।
शुरू करने से पहले
API कुंजी प्राप्त करें
- Google Cloud Console पर जाएं।
- प्रोजेक्ट बनाएं या कोई मौजूदा प्रोजेक्ट चुनें।
- Maps SDK for iOS को सक्षम करें।
- API कुंजी बनाने के लिए "Credentials" (प्रमाणपत्र) से चुनें।
- कुंजी को ऐप के बंडल आईडी तक सीमित करें।
Swift Package Manager के माध्यम से जोड़ें
Xcode के File > Add Package Dependencies से पैकेज URL दर्ज करें। नेटिव SDK स्वचालित रूप से निर्भरता के रूप में शामिल हो जाता है, इसलिए अलग से जोड़ने की आवश्यकता नहीं है।
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 आरंभ करें
मैप व्यू बनाए जाने से पहले GMSServices.provideAPIKey(_:) को एक बार कॉल करें। @main की App संरचना अनुशंसित स्थान है।
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")
})स्थान अनुमतियाँ जोड़ें (यदि आवश्यक हो)
यदि आप Google Maps में स्थान सेवाओं का उपयोग करते हैं, तो Info.plist में उद्देश्य लिखें और ऐप से अनुमति मांगें।
<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()
}
}जाँच
आपको क्या दिखना चाहिए
इस ContentView को बनाकर चलाएं, और यदि मैप दिखाई देता है और ज़ूम व पैन काम करता है, तो प्रक्रिया पूर्ण है।
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 के मैप प्रकारों का समर्थन करता है।
समस्या निवारण
मैप नहीं दिख रहा (ग्रे स्क्रीन)
- जांचें कि मैप व्यू बनाए जाने से पहले 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 में लिखे जा सकते हैं। प्रदाता बदलने पर भी उसे फिर से लिखना नहीं पड़ता है।