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

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

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

खास जानकारी

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

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

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

मैप के विकल्प

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

मैप विकल्प
फ़्रेम
वैल्यू: CGRect
मैप फ़्रेम. डिफ़ॉल्ट तौर पर, CGRectZero पर सेट होता है.
कैमरा
वैल्यू: GMSCameraPosition
मैप के कैमरे की डिफ़ॉल्ट पोज़िशन.
mapID
वैल्यू: GMSMapID
Google mapID. यह पैरामीटर ज़रूरी नहीं है.
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 मैप

बस, मेट्रो वगैरह की जानकारी देने वाली लेयर

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

अगर आप कोई ऐसी सार्वजनिक एजेंसी हैं जो आपके शहर में बस, मेट्रो वगैरह की सुविधा को मैनेज करती है और आपको अपना डेटा शामिल करना है, तो ज़्यादा जानने के लिए Google Transit Partner Program की साइट पर जाएं.

यहां दिए गए उदाहरण में दिखाया गया है कि मैप पर बस, मेट्रो वगैरह की जानकारी देने वाली लेयर कैसी दिख सकती है.

Google मैप पर बस, मेट्रो वगैरह की जानकारी देने वाली लेयर

सुलभता

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

Swift

mapView.accessibilityElementsHidden = false
      

Objective-C

mapView.accessibilityElementsHidden = NO;
      

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

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

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

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 मैप.

Swift या Objective-C में, GMSMapView प्रॉपर्टी को सेट करके, 3D बिल्डिंग की सुविधा को बंद किया जा सकता है. इसके लिए, यहां दिया गया तरीका अपनाएं:

Swift

mapView.isBuildingsEnabled = false
      

Objective-C

[mapView setBuildingsEnabled:NO];
      

मैप पैडिंग

Google मैप को इस तरह से डिज़ाइन किया गया है कि वह 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;
      

मैप की कलर स्कीम

नॉर्मल और टेरेन टाइप के मैप के लिए, मैप की कलर स्कीम को गहरे रंग, हल्के रंग या मौजूदा सिस्टम सेटिंग का इस्तेमाल करने के लिए सेट किया जा सकता है. उदाहरण के लिए, दिन के समय या डिवाइस के इनडोर या आउटडोर इस्तेमाल के आधार पर, मैप की कलर स्कीम को गहरा या हल्का किया जा सकता है.

मैप की कलर स्कीम सेट और अपडेट करने के लिए, GMSMapView overrideUserInterfaceStyle: का इस्तेमाल करें.

Swift

let options = GMSMapViewOptions()
// Map is init to use light mode by default.
let mapView = GMSMapView(options: options)
// Set map to use dark mode.
mapView.overrideUserInterfaceStyle = .dark
// Set map to use light mode.
mapView.overrideUserInterfaceStyle = .light
// Set map to use dark/light mode based on the value of traitCollection.userInterfaceStyle
mapView.overrideUserInterfaceStyle = .unspecified

Objective-C

GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
// Map is init to always use light mode.
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];
// Set map to use dark mode.
mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleDark;
// Set map to use light mode.
mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
// Set map to use dark/light mode based on the value of traitCollection.userInterfaceStyle
mapView.overrideUserInterfaceStyle = UIUserInterfaceStyleUnspecified;

अपने मैप के लिए, पसंद के मुताबिक लाइट स्टाइल और डार्क स्टाइल बनाने के लिए, क्लाउड पर मैप की स्टाइलिंग का इस्तेमाल करें.