एक मैप जोड़ें

प्लैटफ़ॉर्म चुनें: Android iOS JavaScript

एपीआई में Maps को GMSMapView क्लास के तौर पर दिखाया जाता है, जो UIView की एक सब-क्लास है. मैप, iOS के लिए Maps SDK टूल में सबसे अहम ऑब्जेक्ट है. साथ ही, यह मार्कर और पॉलीलाइन जैसे दूसरे ऑब्जेक्ट को जोड़ने, हटाने और मैनेज करने के लिए ज़रूरी तरीके भी बताता है.

शुरुआती जानकारी

iOS के लिए Maps SDK टूल से आपको अपने iOS ऐप्लिकेशन में Google मैप दिखाने की सुविधा मिलती है. ये मैप, Google Maps iOS ऐप्लिकेशन में दिखने वाले मैप के जैसे ही दिखते हैं. SDK टूल इनमें से कई सुविधाएं दिखाता है.

मैप करने की सुविधा के अलावा, यह एपीआई कई तरह के इंटरैक्शन की सुविधा भी देता है जो iOS यूज़र इंटरफ़ेस (यूआई) मॉडल के मुताबिक होते हैं. उदाहरण के लिए, टैप और दो बार टैप करने जैसे उपयोगकर्ताओं के जेस्चर (हाव-भाव) के हिसाब से काम करने वाले जवाब देने वाले लोगों को तय करके, मैप के साथ इंटरैक्शन सेट अप किया जा सकता है.

मैप ऑब्जेक्ट के साथ काम करते समय, मुख्य क्लास GMSMapView क्लास होती है. GMSMapView इन कार्रवाइयों को अपने-आप मैनेज करता है:

  • Google Maps सेवा से कनेक्ट किया जा रहा है.
  • मैप टाइल डाउनलोड हो रही हैं.
  • डिवाइस की स्क्रीन पर टाइल दिखाई जा रही हैं.
  • पैन और ज़ूम जैसे अलग-अलग कंट्रोल दिखाए जा रहे हैं.
  • मैप को मूव करके और ज़ूम इन या ज़ूम आउट करके, पैन और ज़ूम करने के जेस्चर का जवाब दिया जा रहा है.
  • मैप के व्यू ऐंगल को झुकाकर, दो उंगलियों से किए जाने वाले हाथ के जेस्चर का जवाब दिया जा रहा है.

अपने-आप काम करने वाली इन कार्रवाइयों के अलावा, GMSMapView क्लास के ज़रिए दिखाए गए प्रॉपर्टी और तरीकों से भी मैप के व्यवहार और दिखने के तरीके को कंट्रोल किया जा सकता है. GMSMapView आपको मार्कर, ग्राउंड ओवरले और पॉलीलाइन जोड़ने और हटाने, दिखाए जाने वाले मैप का टाइप बदलने, और GMSCameraPosition क्लास से यह तय करने की सुविधा देता है कि मैप पर क्या दिखाया जाए.

SwiftUI की मदद से मैप बनाएं

SwiftUI, डिक्लेरेटिव अप्रोच का इस्तेमाल करके यूज़र इंटरफ़ेस (यूआई) बनाने का एक और तरीका देता है. आप SwiftUI को बताएं कि उसके लिए सभी अलग-अलग स्थितियों के साथ-साथ आप अपना व्यू कैसे देखना चाहते हैं और बाकी काम सिस्टम कर देगा. SwiftUI, किसी इवेंट या उपयोगकर्ता की कार्रवाई की वजह से, जब भी डिवाइस की बुनियादी स्थिति में बदलाव होता है, तो व्यू को अपडेट करने का काम हैंडल करता है.

iOS के लिए Maps SDK टूल को UIKit पर बनाया गया है. फ़िलहाल, यह SwiftUI के साथ काम करने वाला व्यू नहीं देता. SwiftUI में मैप जोड़ने के लिए, UIViewRepresentable या UIViewControllerRepresentable की पुष्टि करना ज़रूरी है. ज़्यादा जानने के लिए, कोडलैब (कोड बनाना सीखना) SwiftUI के साथ अपने iOS ऐप्लिकेशन में मैप जोड़ना लेख पढ़ें.

मैप जोड़ा जा रहा है

मैप जोड़ने के बुनियादी चरण ये हैं:

  1. SDK टूल पाने, एपीआई पासकोड पाने, और ज़रूरी फ़्रेमवर्क जोड़ने के लिए, यहां दिया गया तरीका अपनाएं:

    1. Google Cloud Console में सेट अप करना

    2. एपीआई पासकोड का इस्तेमाल करना

    3. Xcode प्रोजेक्ट सेट अप करना

  2. अपने AppDelegate में, GMSServices पर provideAPIKey: क्लास मेथड को अपना एपीआई पासकोड दें.

  3. ViewController बनाएं या अपडेट करें. अगर व्यू कंट्रोलर के दिखने पर मैप दिखेगा, तो इसे loadView तरीके से ही बनाएं.

    1. ऐसा GMSCameraPosition ऑब्जेक्ट बनाएं जो मैप के सेंटर और ज़ूम लेवल के बारे में बताता हो. GMSMapView ऑब्जेक्ट को इंस्टैंशिएट करते समय, आपको GMSCameraPosition ऑब्जेक्ट को ज़रूरी पैरामीटर के तौर पर पास करना होगा.

    2. GMSMapView mapWithFrame: तरीके का इस्तेमाल करके, GMSMapView क्लास बनाएं और उसे इंस्टैंशिएट करें. अगर इस मैप का इस्तेमाल सिर्फ़ व्यू कंट्रोलर के व्यू के तौर पर किया जाना है, तो CGRectZero को मैप के फ़्रेम के तौर पर इस्तेमाल किया जा सकता है — मैप का साइज़ अपने-आप बदल जाएगा.

    3. GMSMapView ऑब्जेक्ट को व्यू कंट्रोलर के व्यू के तौर पर सेट करें, जैसे कि self.view = mapView;.

नीचे दिए गए उदाहरण में एक ऐप्लिकेशन में एक मैप जोड़ा गया है, जो सिंगापुर के कारोबारी इलाके के बीच में है.

Swift

import GoogleMaps

class MapObjects : UIViewController {
  override func viewDidLoad() {
    super.viewDidLoad()
    let camera = GMSCameraPosition(latitude: 1.285, longitude: 103.848, zoom: 12)
    let mapView = GMSMapView(frame: .zero, camera: camera)
    self.view = mapView
  }
}
      

Objective-C

#import "MapObjects.h"
@import GoogleMaps;

@implementation MapObjects

- (void)viewDidLoad {
  [super viewDidLoad];
  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:1.285
                                                          longitude:103.848
                                                               zoom:12];
  GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
  self.view = mapView;
}

@end
      

यह तरीका अपनाने के बाद, GMSMapView ऑब्जेक्ट को और ज़्यादा कॉन्फ़िगर किया जा सकता है.

आगे क्या करना है

इन चरणों को पूरा करने के बाद, आप मैप की सेटिंग कॉन्फ़िगर कर सकते हैं.