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