इस खास जानकारी में, iOS के लिए Maps SDK का इस्तेमाल करके, iOS ऐप्लिकेशन में जोड़े गए मैप को कॉन्फ़िगर करने का तरीका बताया गया है.
खास जानकारी
अपने ऐप्लिकेशन में मैप जोड़ने के बाद, मैप के शुरुआती विकल्पों और रनटाइम सेटिंग को कॉन्फ़िगर किया जा सकता है. मैप कंटेनर जोड़ने के बारे में जानने के लिए, मैप जोड़ना लेख पढ़ें.
मैप की शुरुआती सेटिंग में ये शामिल हैं:
- कैमरे की पोज़िशन. इसमें ये शामिल हैं: जगह की जानकारी, ज़ूम, बियरिंग, और टिल्ट. कैमरे की पोज़िशनिंग के बारे में ज़्यादा जानने के लिए, कैमरा और व्यू देखें.
- मैप के बैकग्राउंड का रंग.
- मैप का टाइप.
- दिखाने के लिए यूज़र इंटरफ़ेस (यूआई) कॉम्पोनेंट. जैसे, ज़ूम करने वाले बटन और कंपास.
- चालू करने के लिए जेस्चर.
`GMSMapView` ऑब्जेक्ट को अपडेट करके, रनटाइम में इन सेटिंग और कुछ अतिरिक्त सेटिंग को कॉन्फ़िगर किया जा सकता है.
मैप के विकल्प
मैप व्यू को शुरू करते समय, कॉन्फ़िगरेशन के विकल्प
GMSMapViewOptions के साथ सेट किए जाते हैं.
विकल्प प्रॉपर्टी में frame, camera, mapID या backgroundColor शामिल हैं.
| मैप के विकल्प | |
|---|---|
| फ़्रेम | वैल्यू:
CGRectमैप का फ़्रेम. डिफ़ॉल्ट तौर पर, यह CGRectZero पर सेट होता है.
|
| कैमरा | वैल्यू:
GMSCameraPositionमैप के कैमरे की डिफ़ॉल्ट पोज़िशन.
|
| mapID | वैल्यू:
GMSMapIDGoogle 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` तरीके को कॉल करके, ट्रैफ़िक लेयर को चालू और बंद किया जा सकता है. यहां दिए गए उदाहरण में दिखाया गया है कि ट्रैफ़िक लेयर, मैप पर कैसी दिख सकती है.

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

सुलभता
डिफ़ॉल्ट रूप से, मैप पर सुलभता वाले एलिमेंट छिपे रहते हैं. 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
प्रॉपर्टी को सेट करें. इसके लिए, नीचे दिया गया तरीका अपनाएं:
Swift
mapView.isBuildingsEnabled = false
Objective-C
[mapView setBuildingsEnabled:NO];
मैप में पैडिंग जोड़ना
Google Map को 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;
अपने मैप के लिए, लाइट और डार्क स्टाइल को पसंद के मुताबिक बनाने के लिए, क्लाउड पर मैप की स्टाइलिंग की सुविधाओं का इस्तेमाल करें.