इस खास जानकारी में, 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
तरीका अपनाएं. इस उदाहरण में दिखाया गया है कि ट्रैफ़िक लेयर, मैप पर कैसी दिख सकती है.
सुलभता
डिफ़ॉल्ट रूप से, मैप पर सुलभता एलिमेंट छिपे रहते हैं. 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 इमारतें दिखेंगी. जैसे, यहां सिएटल, वाशिंगटन की इमेज में दिख रही इमारतें.
Swift या Objective-C में, GMSMapView
प्रॉपर्टी को सेट करके, 3D बिल्डिंग की सुविधा बंद की जा सकती है. इसके लिए, यहां दिया गया तरीका अपनाएं:
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;
मैप की कलर स्कीम
सामान्य और इलाके के टाइप वाले मैप के लिए, मैप की कलर स्कीम को गहरे रंग में, हल्के रंग में या मौजूदा सिस्टम सेटिंग का इस्तेमाल करने के लिए सेट किया जा सकता है. उदाहरण के लिए, दिन के समय या डिवाइस के इनडोर या आउटडोर इस्तेमाल के आधार पर, मैप की कलर स्कीम को गहरे या हल्के रंग में सेट किया जा सकता है.
मैप की कलर स्कीम सेट करने और उसे अपडेट करने के लिए, 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;