लाइट मोड

Android के लिए Maps SDK, मैप की बिटमैप इमेज दिखा सकता है. इससे उपयोगकर्ता को इंटरैक्ट करने की सीमित सुविधा मिलती है. इसे लाइट मोड मैप कहा जाता है.

कोड सैंपल

GitHub पर मौजूद ApiDemos रिपॉज़िटरी में, ऐसे सैंपल शामिल हैं जो लाइट मोड के इस्तेमाल के बारे में बताते हैं:

  • LiteDemoActivity - Java: Java में लाइट मोड मैप इस्तेमाल करने की बुनियादी जानकारी
  • LiteDemoActivity - Kotlin: Kotlin में लाइट मोड मैप इस्तेमाल करने के बारे में बुनियादी जानकारी
  • LiteListDemoActivity - Java: Java में लाइट मोड का इस्तेमाल करके, ListViews में मैप को बेहतर तरीके से दिखाना
  • LiteListDemoActivity - Kotlin: Kotlin में लाइट मोड का इस्तेमाल करके, ListViews में मैप को बेहतर तरीके से दिखाना

लाइट मोड के बारे में खास जानकारी

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

मैप देखने वाले उपयोगकर्ता, मैप को ज़ूम या पैन नहीं कर सकते. मैप पर मौजूद आइकॉन की मदद से, उपयोगकर्ता Google Maps मोबाइल ऐप्लिकेशन में मैप देख सकते हैं और दिशा-निर्देशों का अनुरोध कर सकते हैं.

लाइट मोड मैप जोड़ना

लाइट मोड, Google Maps Android API के फ़ुल वर्शन की तरह ही क्लास और इंटरफ़ेस का इस्तेमाल करता है. GoogleMap को लाइट मोड पर सेट करने के लिए, ये तरीके अपनाए जा सकते हैं:

  • MapView या MapFragment के लिए एक्सएमएल एट्रिब्यूट के तौर पर
  • या GoogleMapOptions ऑब्जेक्ट में

MapView या MapFragment के लिए एक्सएमएल एट्रिब्यूट के तौर पर

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:name="com.google.android.gms.maps.MapFragment"
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    map:cameraZoom="13"
    map:mapType="normal"
    map:liteMode="true"/>

GoogleMapOptions ऑब्जेक्ट में

Kotlin

val options = GoogleMapOptions()
    .liteMode(true)

      

Java

GoogleMapOptions options = new GoogleMapOptions().liteMode(true);

      

मैप की शुरुआती स्थिति सेट करने के बारे में ज़्यादा जानने के लिए, मैप ऑब्जेक्ट की गाइड देखें.

मैप व्यू या निर्देशों का अनुरोध लॉन्च करने के लिए इंटेंट

डिफ़ॉल्ट रूप से, मैप के सबसे नीचे दाईं ओर मौजूद टूलबार में ऐसे आइकॉन होते हैं जो Google Maps मोबाइल ऐप्लिकेशन में मैप व्यू या रास्ते की जानकारी के अनुरोध का ऐक्सेस देते हैं. UiSettings.setMapToolbarEnabled(false) को कॉल करके, टूलबार को बंद किया जा सकता है. ज़्यादा जानकारी के लिए, टूलबार का दस्तावेज़ देखें.

साथ ही, डिफ़ॉल्ट रूप से जब कोई उपयोगकर्ता मैप पर टैप करता है, तो एपीआई, Google Maps मोबाइल ऐप्लिकेशन को चालू कर देता है. GoogleMap.setOnMapClickListener() का इस्तेमाल करके, अपना लिसनर सेट करके इसे बदला जा सकता है. मैप पर क्लिक इवेंट को बंद भी किया जा सकता है. इसके लिए, MapView या MapFragment वाले व्यू पर setClickable() को कॉल करें. इन दोनों तकनीकों के बारे में ज़्यादा जानने के लिए, इवेंट से जुड़ा दस्तावेज़ देखें.

लाइफ़ साइकल इवेंट

एपीआई को पूरी तरह से इंटरैक्टिव मोड में इस्तेमाल करते समय, MapView क्लास के उपयोगकर्ताओं को गतिविधि के लाइफ़ साइकल के सभी तरीकों को MapView क्लास में मौजूद तरीकों पर फ़ॉरवर्ड करना होगा. लाइफ़ साइकल के तरीकों के उदाहरणों में onCreate(), onDestroy(), onResume(), और onPause() शामिल हैं.

लाइट मोड में MapView क्लास का इस्तेमाल करते समय, लाइफ़साइकल इवेंट को फ़ॉरवर्ड करना ज़रूरी नहीं है. हालांकि, इन स्थितियों में ऐसा करना ज़रूरी है:

  • onCreate() को कॉल करना ज़रूरी है. ऐसा न करने पर, कोई मैप नहीं दिखेगा.
  • अगर आपको लाइट मोड वाले मैप पर 'मेरी जगह की जानकारी' वाला बिंदु दिखाना है और जगह की जानकारी के डिफ़ॉल्ट सोर्स का इस्तेमाल करना है, तो आपको onResume() और onPause() को कॉल करना होगा. ऐसा इसलिए, क्योंकि जगह की जानकारी का सोर्स सिर्फ़ इन कॉल के बीच अपडेट होगा. अगर जगह की जानकारी के लिए अपने सोर्स का इस्तेमाल किया जाता है, तो इन दोनों तरीकों को कॉल करने की ज़रूरत नहीं है.

एपीआई की ये सुविधाएं इस्तेमाल की जा सकती हैं

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

फ़ंक्शन
मैप के टाइप
क्या यह सुविधा काम करती है? हां
GoogleMapOptions.mapType() और GoogleMap.setMapType() के ज़रिए, ये मैप टाइप उपलब्ध हैं: MAP_TYPE_NORMAL, MAP_TYPE_SATELLITE, MAP_TYPE_TERRAIN, MAP_TYPE_HYBRID, MAP_TYPE_NONE
पॉलीलाइन, पॉलीगॉन, सर्कल
क्या यह सुविधा काम करती है? हां
शेप के लिए लाइट मोड की सुविधा, फ़ुल एपीआई से मैच करती है.
अनुमान
क्या यह सुविधा काम करती है? हां
प्रोजेक्शन के लिए लाइट मोड की सुविधा, पूरे एपीआई से मैच करती है.
मेरी जगह की जानकारी
क्या यह सुविधा काम करती है? हां
मेरी जगह की जानकारी वाली लेयर के लिए लाइट मोड की सुविधा, पूरे एपीआई से मैच करती है.
मैप पैडिंग
क्या यह सुविधा काम करती है? हां
मैप पैडिंग के लिए लाइट मोड की सुविधा, फ़ुल एपीआई से मैच करती है.
जानकारी विंडो
क्या यह सुविधा काम करती है? हां
अगर आपने किसी मार्कर का title() सेट किया है, तो उपयोगकर्ता के मार्कर पर टैप करने पर, डिफ़ॉल्ट जानकारी विंडो दिखेगी. मार्कर पर showInfoWindow() को कॉल करके, जानकारी विंडो को प्रोग्राम के हिसाब से दिखाया जा सकता है. आप InfoWindowAdapter इंटरफ़ेस की मदद से, कस्टम जानकारी विंडो भी बना सकते हैं.
बुनियादी मैप की स्टाइल को पसंद के मुताबिक बनाना
क्या यह सुविधा काम करती है? कुछ हद तक
Android के लिए Maps SDK, बुनियादी मैप को पसंद के मुताबिक बनाने की सुविधा देता है. लाइट मोड में, सिर्फ़ JSON पर आधारित कस्टम स्टाइलिंग का इस्तेमाल किया जा सकता है. इसमें क्लाउड-आधारित स्टाइलिंग का इस्तेमाल नहीं किया जा सकता. इसके लिए, मैप आईडी की ज़रूरत होती है, ताकि स्टाइल किया गया मैप रेंडर किया जा सके. लाइट मोड में, गहरे रंग वाले मोड का इस्तेमाल करने के लिए, मैप की कलर स्कीम सेट नहीं की जा सकती.
मार्कर
क्या यह सुविधा काम करती है? कुछ हद तक
आप मार्कर जोड़ सकते हैं और इवेंट पर क्लिक करने का जवाब दे सकते हैं. कस्टम मार्कर आइकॉन भी जोड़े जा सकते हैं. मार्कर को खींचकर छोड़ने लायक नहीं बनाया जा सकता. लाइट मोड वाले मैप पर मार्कर फ़्लैट होते हैं और उन्हें घुमाया नहीं जा सकता.
कैमरे की पोज़िशन, ज़ूम, और ऐनिमेशन
क्या यह सुविधा काम करती है? कुछ हद तक

कैमरे का टारगेट और ज़ूम सेट किया जा सकता है, लेकिन झुकाव या बेयरिंग नहीं. लाइट मोड में, ज़ूम करने के लेवल को सबसे नज़दीकी पूर्णांक में बदल दिया जाता है. GoogleMap.moveCamera() को कॉल करने पर, आपको लाइट मोड में मैप की एक और इमेज मिलेगी. कैमरे को सेट करने और उसमें बदलाव करने के बारे में ज़्यादा जानकारी के लिए, व्यू बदलना लेख पढ़ें.

GoogleMap.animateCamera() को कॉल करने पर, कैमरे की मूवमेंट का ऐनिमेशन नहीं दिखेगा. कैमरे का व्यू तुरंत नई पोज़िशन पर चला जाएगा.

इवेंट मैप करना
क्या यह सुविधा काम करती है? कुछ हद तक

लाइट मोड में, GoogleMap.setOnMapClickListener() और GoogleMap.setOnMapLongClickListener() का इस्तेमाल किया जा सकता है.

लाइट मोड में मैप पर क्लिक इवेंट बंद करने के लिए, MapView या MapFragment वाले व्यू पर setClickable() को कॉल किया जा सकता है. उदाहरण के लिए, सूची वाले व्यू में मैप या मैप दिखाते समय, यह सुविधा काम की होती है. इसमें आपको क्लिक इवेंट को मैप से बाहर की किसी कार्रवाई को शुरू करने के लिए इस्तेमाल करना होता है.

ज़्यादा जानकारी के लिए, इवेंट से जुड़ा दस्तावेज़ देखें.

इनडोर मैप और इमारतें
क्या यह सुविधा काम करती है? नहीं
लाइट मोड में वही टाइल दिखेंगी जो Maps Static API में दिखती हैं. इसका मतलब है कि अगर इंडोर फ़्लोर प्लान को डिफ़ॉल्ट टाइल में शामिल किया गया है, तो वह दिखेगा. ऐसा न करने पर, यह सुविधा काम नहीं करेगी. इसके अलावा, दिखाए गए लेवल को बदला नहीं जा सकता या लेवल पिकर में बदलाव नहीं किया जा सकता.
ट्रैफ़िक लेयर
क्या यह सुविधा काम करती है? नहीं
GoogleMap.setTrafficEnabled() का इस्तेमाल, लाइट मोड में नहीं किया जा सकता.
ग्राउंड ओवरले
क्या यह सुविधा काम करती है? नहीं
GoogleMap.addGroundOverlay() का इस्तेमाल, लाइट मोड में नहीं किया जा सकता.
टाइल ओवरले
क्या यह सुविधा काम करती है? नहीं
GoogleMap.addTileOverlay() का इस्तेमाल, लाइट मोड में नहीं किया जा सकता.
हाथ के जेस्चर
क्या यह सुविधा काम करती है? नहीं
लाइट मोड में जेस्चर की सुविधा काम नहीं करती. हाथ के जेस्चर की सुविधा को चालू और बंद करने से कोई असर नहीं पड़ेगा.
Street View
क्या यह सुविधा काम करती है? नहीं
Street View की सुविधा, लाइट मोड में काम नहीं करती.