मार्कर की मदद से मैप जोड़ना

इस ट्यूटोरियल में, अपने iOS ऐप्लिकेशन पर Google मैप जोड़ने का तरीका बताया गया है. मैप में एक मार्कर होता है जिसे किसी खास जगह की जानकारी देने के लिए पिन भी कहा जाता है.

कोड पाना

GitHub से Google Maps के iOS सैंपल रिपॉज़िटरी को क्लोन करें या डाउनलोड करें.

अपना डेवलपमेंट प्रोजेक्ट सेट अप करना

iOS के लिए मैप SDK इंस्टॉल करने के लिए यह तरीका अपनाएं:

  1. Xcode का 14.0 या उसके बाद का वर्शन डाउनलोड और इंस्टॉल करें.
  2. अगर आपके पास पहले से CocoaPods नहीं है, तो टर्मिनल से नीचे दिए गए इस कमांड का इस्तेमाल करके, इसे macOS पर इंस्टॉल करें:
    sudo gem install cocoapods
  3. Google Maps के iOS सैंपल रिपॉज़िटरी को क्लोन करें या डाउनलोड करें.
  4. tutorials/map-with-marker डायरेक्ट्री पर जाएं.
  5. pod install निर्देश चलाएं. ऐसा करने से, Podfile में बताए गए एपीआई और उनके डिपेंडेंसी भी इंस्टॉल हो जाएंगी.
  6. इंस्टॉल किए गए पॉड वर्शन की तुलना किसी नए अपडेट से करने के लिए, pod outdated चलाएं. अगर नया वर्शन मिलता है, तो Podfile को अपडेट करने और नया SDK टूल इंस्टॉल करने के लिए, pod update चलाएं. ज़्यादा जानकारी के लिए, CocoaPods गाइड देखें.
  7. प्रोजेक्ट की code-with-mark.xcworkspace फ़ाइल को Xcode में खोलने के लिए उसे खोलें (दो बार क्लिक करें). प्रोजेक्ट खोलने के लिए, .xcworkspace फ़ाइल का इस्तेमाल किया जाना चाहिए.

कोई एपीआई कुंजी पाना और ज़रूरी एपीआई चालू करना

इस ट्यूटोरियल को पूरा करने के लिए, आपके पास Google API कुंजी होनी चाहिए. साथ ही, उसे iOS के लिए Maps SDK टूल का इस्तेमाल करने की अनुमति दी गई हो. कुंजी पाने और एपीआई को चालू करने के लिए, नीचे दिए गए बटन पर क्लिक करें.

शुरू करें

ज़्यादा जानकारी के लिए, एपीआई पासकोड पाना देखें.

अपने ऐप्लिकेशन में एपीआई कुंजी जोड़ें

AppDelegate.swift में अपनी एपीआई कुंजी इस तरह जोड़ें:

  1. ध्यान दें कि इंपोर्ट स्टेटमेंट को इस फ़ाइल में जोड़ दिया गया है:
    import GoogleMaps
  2. YOUR_API_KEY को अपने एपीआई पासकोड से बदलकर, अपने application(_:didFinishLaunchingWithOptions:) तरीके में इस लाइन को बदलें:
    GMSServices.provideAPIKey("YOUR_API_KEY")

अपना ऐप्लिकेशन बनाना और चलाना

  1. अपने कंप्यूटर से कोई iOS डिवाइस कनेक्ट करें या Xcode स्कीम के पॉप-अप मेन्यू में जाकर, सिम्युलेटर चुनें.
  2. अगर किसी डिवाइस का इस्तेमाल किया जा रहा है, तो पक्का करें कि जगह की जानकारी की सुविधाएं चालू हों. अगर आप सिम्युलेटर का इस्तेमाल कर रहे हैं, तो सुविधाएं मेन्यू से कोई जगह चुनें.
  3. Xcode में, प्रॉडक्ट या रन मेन्यू के विकल्प पर क्लिक करें या 'चलाएं' बटन का आइकॉन.
    • Xcode ऐप्लिकेशन को बनाता है और फिर ऐप्लिकेशन को डिवाइस या सिम्युलेटर पर चलाता है.
    • आपको ऑस्ट्रेलिया के पूर्वी तट पर सिडनी पर केंद्रित मार्कर वाला एक पेज दिखाई देना चाहिए, जो इस पेज पर मौजूद इमेज से मिलता-जुलता है.

समस्या का हल:

  • अगर आपको कोई मैप नहीं दिखता है, तो देखें कि आपके पास एपीआई कुंजी है या नहीं और उसे ऐप्लिकेशन में जोड़ें, जैसा कि ऊपर बताया गया है. एपीआई कुंजी से जुड़े गड़बड़ी के मैसेज के लिए, Xcode के डीबग कंसोल पर जाएं.
  • अगर आपने iOS बंडल आइडेंटिफ़ायर से एपीआई कुंजी पर पाबंदी लगाई है, तो ऐप्लिकेशन में बंडल आइडेंटिफ़ायर जोड़ने के लिए, कुंजी में बदलाव करें: com.google.examples.map-with-marker.
  • पक्का करें कि आपके पास अच्छा वाई-फ़ाई या जीपीएस कनेक्शन हो.
  • लॉग देखने और ऐप्लिकेशन को डीबग करने के लिए, Xcode डीबग करने वाले टूल का इस्तेमाल करें.

कोड को समझना

  1. मैप बनाएं और इसे loadView() के व्यू के तौर पर सेट करें.

    Swift

    // Create a GMSCameraPosition that tells the map to display the
    // coordinate -33.86,151.20 at zoom level 6.
    let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0)
    let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
    view = mapView
          

    Objective-C

    // Create a GMSCameraPosition that tells the map to display the
    // coordinate -33.86,151.20 at zoom level 6.
    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
                                                            longitude:151.20
                                                                 zoom:6.0];
    GMSMapView *mapView = [[GMSMapView alloc] initWithFrame: CGRectZero camera:camera];
    self.view = mapView;
          
  2. loadView() के मैप पर कोई मार्कर जोड़ें.

    Swift

    // Creates a marker in the center of the map.
    let marker = GMSMarker()
    marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20)
    marker.title = "Sydney"
    marker.snippet = "Australia"
    marker.map = mapView
          

    Objective-C

    // Creates a marker in the center of the map.
    GMSMarker *marker = [[GMSMarker alloc] init];
    marker.position = CLLocationCoordinate2DMake(-33.86, 151.20);
    marker.title = @"Sydney";
    marker.snippet = @"Australia";
    marker.map = mapView;
          

डिफ़ॉल्ट रूप से, iOS के लिए Maps SDK टूल, जानकारी विंडो का कॉन्टेंट दिखाता है. ऐसा तब होता है, जब उपयोगकर्ता किसी मार्कर पर टैप करता है. अगर आप डिफ़ॉल्ट व्यवहार का इस्तेमाल करते हैं, तो मार्कर के लिए क्लिक लिसनर जोड़ने की ज़रूरत नहीं है.

बधाई हो! आपने एक iOS ऐप्लिकेशन बनाया है, जो किसी खास जगह के बारे में बताने के लिए, मार्कर के साथ Google मैप दिखाता है. आपने iOS के लिए Maps SDK टूल इस्तेमाल करने का तरीका भी जाना है.

अगले चरण

इस बारे में ज़्यादा जानें कि मैप ऑब्जेक्ट क्या है और मार्कर से क्या किया जा सकता है.