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

प्लैटफ़ॉर्म चुनें: 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;
      

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

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

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

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

अपने उपयोगकर्ताओं को, मैप पर ट्रैफ़िक की डेंसिटी की जानकारी दिखाने की सुविधा दी जा सकती है. इससे उन्हें अपने इलाके में ट्रैफ़िक की स्थिति की खास जानकारी मिलती है. `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 मैप.

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;

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