एक मैप कॉन्फ़िगर करें

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

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

खास जानकारी

अपने ऐप्लिकेशन में मैप जोड़ने के बाद, मैप के शुरुआती विकल्प और रनटाइम सेटिंग कॉन्फ़िगर की जा सकती हैं. मैप कंटेनर जोड़ने के बारे में जानने के लिए, मैप जोड़ें पर जाएं.

शुरुआती मैप सेटिंग में ये शामिल हैं:

रनटाइम के दौरान, इन सेटिंग और अतिरिक्त सेटिंग को कॉन्फ़िगर किया जा सकता है. इसके लिए, GMSMapView ऑब्जेक्ट को अपडेट करें.

मैप के विकल्प

मैप व्यू शुरू करते समय, कॉन्फ़िगरेशन के विकल्प GMSMapViewOptions के साथ सेट किए जाते हैं. विकल्प की प्रॉपर्टी में frame, camera, mapID या backgroundColor शामिल हैं.

मैप विकल्प
फ़्रेम
वैल्यू:CGRect
मैप फ़्रेम. डिफ़ॉल्ट तौर पर CGRectZero मौजूद है.
कैमरा
वैल्यू:GMSCameraPosition
मैप में कैमरे की डिफ़ॉल्ट स्थिति.
mapID
वैल्यू:GMSMapID
Google मैप आईडी. वैकल्पिक पैरामीटर.
backgroundColor
वैल्यू:UIColor
डिफ़ॉल्ट रूप से UIColor.lightGray

मैप के विकल्प कॉन्फ़िगर करें

अपने विकल्प की प्रॉपर्टी खुद सेट की जा सकती हैं या डिफ़ॉल्ट वैल्यू के साथ इंस्टैंशिएट किए गए GMSMapViewOptions को सीधे GMSMapView पर पास किया जा सकता है.

Swift

let options = GMSMapViewOptions()
options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6)
let mapView = GMSMapView(options:options)

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                        longitude:151.2086
                                                             zoom:6];
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

यहां डिफ़ॉल्ट वैल्यू वाले GMSMapViewOptions ऑब्जेक्ट को सीधे GMSMapView पर पास करने का उदाहरण दिया गया है.

Swift

let options = GMSMapViewOptions()
let mapView = GMSMapView(options:options) //initialized with default values

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; //initialized with default values

बैकग्राउंड कलर को कॉन्फ़िगर करें

गहरे रंग वाले मोड में काम करते समय या मैप व्यू के बीच स्विच करते समय, मैप के डिफ़ॉल्ट बैकग्राउंड का रंग बदलना फ़ायदेमंद हो सकता है. मैप के विकल्प backgroundColor प्रॉपर्टी को सेट करके ऐसा किया जा सकता है.

Swift

let options = GMSMapViewOptions()
options.backgroundColor = UIColor.yellowColor
let mapView = GMSMapView(options:options)

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.backgroundColor = UIColor.yellowColor;
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

मैप के टाइप

आप कई तरह के मैप में से किसी एक का इस्तेमाल करके, अपने मैप को पसंद के मुताबिक बना सकते हैं. मैप के टाइप से यह तय होता है कि मैप किस तरह दिखेगा. उदाहरण के लिए, एटलस में आम तौर पर राजनैतिक मैप होते हैं, जो सीमाएं दिखाते हैं. वहीं, सड़क के मैप, जो किसी शहर या इलाके की सारी सड़कें दिखाते हैं. iOS के लिए Maps SDK टूल में नीचे दिए गए मैप उपलब्ध हैं:

मैप किस तरह का है
सामान्य
वैल्यू:kGMSTypeNormal
सामान्य रोड मैप. सड़कों, इंसानों की बनाई कुछ सुविधाएं, और नदियों जैसी अहम प्राकृतिक विशेषताएं दिखाता है. सड़क और सुविधा के लेबल भी दिख रहे हैं.
मिश्रित
वैल्यू:kGMSTypeHybrid
सैटलाइट से ली गई तस्वीरों का डेटा, जिसमें सड़क के मैप जोड़े गए हैं. सड़क और सुविधा के लेबल भी दिख रहे हैं.
सैटलाइट
वैल्यू:kGMSTypeSatellite
सैटलाइट से ली गई फ़ोटो का डेटा. सड़क और सुविधा के लेबल नहीं दिख रहे हैं.
इलाका
वैल्यू:kGMSTypeTerrain
टोपोग्राफ़िक डेटा. मैप में रंग, कंटूर लाइनें और लेबल, और पर्सपेक्टिव शेडिंग शामिल है. कुछ सड़कें और लेबल भी दिखाई दे रहे हैं.
कोई नहीं
वैल्यू:kGMSTypeNone
कोई मैप टाइल नहीं है. आधार मैप टाइल को रेंडर नहीं किया जाएगा. यह मोड टाइल लेयर के साथ काम करता है. मैप का टाइप 'कोई नहीं' पर सेट होने पर, ट्रैफ़िक का डेटा दिखाने की सुविधा बंद हो जाती है.

मैप का टाइप बदलना

मैप का टाइप सेट करने के लिए, GMSMapView.mapType प्रॉपर्टी को नई वैल्यू असाइन करें. उदाहरण के लिए, सैटलाइट मैप टाइप दिखाने के लिए:

Swift

let options = GMSMapViewOptions()
options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6)
let mapView = GMSMapView(options:options)
mapView.mapType = .satellite

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                  longitude:151.2086
                                                        zoom:6];
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
mapView.mapType = kGMSTypeSatellite;

नीचे दिया गया पिकर एक ही स्थान के लिए इलाके, सामान्य और हाइब्रिड मैप की तुलना दिखाता है:

इनडोर नक्शे

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

आप GMSMapView की indoorEnabled प्रॉपर्टी को NO पर सेट करके, इनडोर मैप बंद कर सकते हैं.

Swift

mapView.isIndoorEnabled = false
      

Objective-C

mapView.indoorEnabled = NO;
      

इसके अलावा, सिर्फ़ फ़्लोर पिकर कंट्रोल को बंद किया जा सकता है.

फ़्लोर प्लान जोड़े जा रहे हैं

फ़्लोर प्लान चुनिंदा जगहों पर उपलब्ध हैं. अगर उस इमारत के लिए फ़्लोर प्लान का डेटा उपलब्ध नहीं है जिसे आपको अपने ऐप्लिकेशन में हाइलाइट करना है, तो:

  • सीधे Google Maps में फ़्लोर प्लान जोड़ें. इससे आपके प्लान Google Maps के सभी उपयोगकर्ताओं के लिए उपलब्ध हो जाते हैं.
  • फ़्लोर प्लान को ग्राउंड ओवरले के तौर पर दिखाएं. इससे सिर्फ़ आपके ऐप्लिकेशन इस्तेमाल करने वाले लोग, आपकी फ़्लोर प्लान को देख पाएंगे.

ट्रैफ़िक लेयर

उपयोगकर्ताओं को मैप देखने के लिए, ट्रैफ़िक डेंसिटी की जानकारी दी जा सकती है. इससे उनके लोकल ट्रैफ़िक की स्थिति के बारे में विज़ुअल की मदद से खास जानकारी मिलती है. trafficEnabled तरीके को कॉल करके, ट्रैफ़िक लेयर को चालू या बंद किया जा सकता है. नीचे दिए गए उदाहरण में यह दिखाया गया है कि मैप पर ट्रैफ़िक लेयर कैसी दिख सकती है.

ट्रैफ़िक लेयर दिखाने वाला Google
मैप

सुलभता

डिफ़ॉल्ट रूप से, मैप पर सुलभता एलिमेंट छिपे होते हैं. GMSMapView की accessibilityElementsHidden प्रॉपर्टी को NO पर सेट करके, सुलभता सुविधा चालू की जा सकती है. इससे ओवरले ऑब्जेक्ट (जैसे, GMSMarker और जानकारी विंडो, GMSPolyline वगैरह) के लिए सुलभता एलिमेंट जनरेट हो जाते हैं.

Swift

mapView.accessibilityElementsHidden = false
      

Objective-C

mapView.accessibilityElementsHidden = NO;
      

यह प्रॉपर्टी अनौपचारिक UIAccessibility प्रोटोकॉल के मुताबिक है. हालांकि, iOS के लिए Maps SDK टूल में, डिफ़ॉल्ट वैल्यू YES है.

मेरी जगह की जानकारी

डिफ़ॉल्ट रूप से, मैप पर जगह की जानकारी का कोई डेटा नहीं दिखता. आप myLocationEnabled को GMSMapView पर सेट करके, नीले रंग का "मेरी जगह" बिंदु और कंपास की दिशा चालू कर सकते हैं.

Swift

mapView.isMyLocationEnabled = true
      

Objective-C

mapView.myLocationEnabled = YES;
      

इस सुविधा को चालू करने पर, myLocation प्रॉपर्टी के ज़रिए उपयोगकर्ता की मौजूदा जगह की जानकारी मिलती है. ऐसा हो सकता है कि यह प्रॉपर्टी तुरंत उपलब्ध न हो - उदाहरण के लिए, अगर उपयोगकर्ता को iOS से इस डेटा को ऐक्सेस करने की अनुमति देने के लिए कहा जाता है. इस मामले में हैnil.

Swift

print("User's location: \(String(describing: mapView.myLocation))")
      

Objective-C

NSLog(@"User's location: %@", mapView.myLocation);
      

3D बिल्डिंग

क्लोज़-अप में देखे जाने पर कई शहरों में 3D बिल्डिंग दिखेंगी. जैसा कि नीचे सिएटल, वॉशिंगटन की इमेज में दिखाया गया है.

वॉशिंगटन के सिऐटल में इमारतों का 3D मैप.

3D बिल्डिंग को बंद करने के लिए, उससे जुड़ी GMSMapView प्रॉपर्टी को Swift या Objective-C में सेट करें, जैसा कि यहां दिखाया गया है:

Swift

mapView.isBuildingsEnabled = false
      

Objective-C

[mapView setBuildingsEnabled:NO];
      

मैप पैडिंग

Google Maps को GMSMapView में बताए गए पूरे इलाके को भरने के लिए डिज़ाइन किया गया है. व्यू के डाइमेंशन से यह तय होता है कि मैप कैसे दिखेगा और कैसे काम करेगा:

  • कैमरे का टारगेट, पैड किए गए हिस्से के बीच के हिस्से को दिखाता है.
  • मैप के कंट्रोल, मैप के किनारों के हिसाब से लगाए जाते हैं.
  • कानूनी जानकारी, जैसे कॉपीराइट स्टेटमेंट या Google लोगो, मैप पर सबसे नीचे दिखते हैं.

GMSMapView का इस्तेमाल करके, मैप के किनारों के आस-पास पैडिंग (जगह) जोड़ी जा सकती है.padding प्रॉपर्टी. मैप पूरे कंटेनर में भरता रहता है, लेकिन टेक्स्ट और कंट्रोल की पोज़िशनिंग, मैप के जेस्चर, और कैमरे की मूवमेंट ऐसे काम करती हैं जैसे कि उन्हें किसी छोटी जगह पर रखा गया हो. इसकी वजह से ये बदलाव होते हैं:

  • एपीआई कॉल या बटन दबाने (जैसे कि कंपास, मेरी जगह की जानकारी) का इस्तेमाल करके कैमरे की मूवमेंट, पैड किए गए क्षेत्र के हिसाब से होती है.
  • GMSMapView.projection सिर्फ़ पैड किए गए क्षेत्र वाला प्रोजेक्शन दिखाता है.
  • यूज़र इंटरफ़ेस (यूआई) कंट्रोल, कंटेनर के किनारे से पॉइंट की तय संख्या से ऑफ़सेट किए जाते हैं.

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

मैप पैडिंग

अपने मैप में पैडिंग (जगह) जोड़ने के लिए, UIEdgeInsets ऑब्जेक्ट बनाएं और उसे GMSMapView पर भेज दें.padding प्रॉपर्टी.

Swift

// Insets are specified in this order: top, left, bottom, right
let mapInsets = UIEdgeInsets(top: 100.0, left: 0.0, bottom: 0.0, right: 300.0)
mapView.padding = mapInsets
      

Objective-C

// Insets are specified in this order: top, left, bottom, right
UIEdgeInsets mapInsets = UIEdgeInsetsMake(100.0, 0.0, 0.0, 300.0);
mapView.padding = mapInsets;