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