लाइट मोड

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

कोड सैंपल

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

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

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

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

मैप देखने वाले लोग, मैप को ज़ूम या पैन नहीं कर सकते. मैप पर मौजूद आइकॉन की मदद से, लोग 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);

      

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

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

मैप के सबसे नीचे दाईं ओर मौजूद टूलबार में ऐसे आइकॉन होते हैं जो 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() का इस्तेमाल किया जा सकता है.

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

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

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