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

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

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

खास जानकारी

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

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

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

मैप के विकल्प

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

मैप विकल्प
फ़्रेम
वैल्यू: CGRect
मैप फ़्रेम. डिफ़ॉल्ट रूप से, CGRectZero पर सेट होती है.
कैमरा
वैल्यू: GMSCameraPosition
मैप कैमरे की डिफ़ॉल्ट पोज़िशन.
mapID
वैल्यू: GMSMapID
Google mapID. ज़रूरी नहीं पैरामीटर.
backgroundColor
वैल्यू: UIColor
डिफ़ॉल्ट रूप से, UIColor.lightGray

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

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

SwiftObjective-C
let options = GMSMapViewOptions()
options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6)
let mapView = GMSMapView(options:options)
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                        longitude:151.2086
                                                             zoom:6];
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

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

SwiftObjective-C
let options = GMSMapViewOptions()
let mapView = GMSMapView(options:options) //initialized with default values
GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; //initialized with default values

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

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

SwiftObjective-C
let options = GMSMapViewOptions()
options.backgroundColor = UIColor.yellowColor
let mapView = GMSMapView(options:options)
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 प्रॉपर्टी को कोई नई वैल्यू असाइन करें. उदाहरण के लिए, सैटलाइट मैप टाइप दिखाने के लिए:

SwiftObjective-C
let options = GMSMapViewOptions()
options.camera = GMSCameraPosition.camera(withLatitude: -33.8683, longitude: 151.2086, zoom: 6)
let mapView = GMSMapView(options:options)
mapView.mapType = .satellite
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 पर सेट करें.

SwiftObjective-C
mapView.isIndoorEnabled = false
      
mapView.indoorEnabled = NO;
      

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

फ़्लोर प्लान जोड़ना

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

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

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

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

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

सुलभता

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

SwiftObjective-C
mapView.accessibilityElementsHidden = false
      
mapView.accessibilityElementsHidden = NO;
      

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

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

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

SwiftObjective-C
mapView.isMyLocationEnabled = true
      
mapView.myLocationEnabled = YES;
      

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

SwiftObjective-C
print("User's location: \(String(describing: mapView.myLocation))")
      
NSLog(@"User's location: %@", mapView.myLocation);
      

3D बिल्डिंग

कई शहरों को करीब से देखने पर, आपको 3D इमारतें दिखेंगी. जैसे, यहां सिएटल, वाशिंगटन की इमेज में दिख रही इमारतें.

सिएटल, वाशिंगटन की इमारतों का 3D मैप.

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

SwiftObjective-C
mapView.isBuildingsEnabled = false
      
[mapView setBuildingsEnabled:NO];
      

मैप पैडिंग

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

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

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

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

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

मैप पैडिंग

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

SwiftObjective-C
// 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
      
// 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: का इस्तेमाल करें.

SwiftObjective-C
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
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;