- शुरुआती जानकारी
- एक से ज़्यादा क्लस्टर, KML, और GeoJSON लेयर को जोड़ना
- अपनी सुविधाएं जोड़ना
- क्लिक इवेंट मैनेज करना
- डेमो ऐप्लिकेशन देखें
शुरुआती जानकारी
पिछले ट्यूटोरियल में, आपने KML और geoJSON से अपने मैप में सुविधाएं जोड़ने के साथ-साथ, मार्कर के ग्रुप में जोड़ने का तरीका जाना है. लेकिन अगर आप एक ही मैप पर इनमें से कई लेयर जोड़ना चाहते हैं और हर एक के लिए अलग-अलग क्लिक इवेंट पाना चाहते हैं, तो क्या होगा?
एक से ज़्यादा क्लस्टर, KML, और GeoJSON लेयर को जोड़ना
लाइब्रेरी में, अलग-अलग तरह की लेयर के लिए क्लिक इवेंट को मैनेज करने में मदद करने वाले Manager
ऑब्जेक्ट
जोड़े गए हैं. इसलिए, लेयर को सेट अप करने से पहले, आपको इन्हें इंस्टैंशिएट करना होगा. इसके बाद, इन्हें अपने GoogleMap
में पास करना होगा:
Java
MarkerManager markerManager = new MarkerManager(map); GroundOverlayManager groundOverlayManager = new GroundOverlayManager(map); PolygonManager polygonManager = new PolygonManager(map); PolylineManager polylineManager = new PolylineManager(map);
Kotlin
val markerManager = MarkerManager(map) val groundOverlayManager = GroundOverlayManager(map!!) val polygonManager = PolygonManager(map) val polylineManager = PolylineManager(map)
इसके बाद, इन लेयर को सेट अप करते समय, आप इन मैनेजर क्लास को अन्य लेयर के कंस्ट्रक्टर में पास कर सकते हैं:
Java
ClusterManager<MyItem> clusterManager = new ClusterManager<>(context, map, markerManager); GeoJsonLayer geoJsonLineLayer = new GeoJsonLayer(map, R.raw.geojson_file, context, markerManager, polygonManager, polylineManager, groundOverlayManager); KmlLayer kmlPolylineLayer = new KmlLayer(map, R.raw.kml_file, context, markerManager, polygonManager, polylineManager, groundOverlayManager, null);
Kotlin
val clusterManager = ClusterManager<MyItem>(context, map, markerManager) val geoJsonLineLayer = GeoJsonLayer( map, R.raw.geojson_file, context, markerManager, polygonManager, polylineManager, groundOverlayManager ) val kmlPolylineLayer = KmlLayer( map, R.raw.kml_file, context, markerManager, polygonManager, polylineManager, groundOverlayManager, null )
अपनी सुविधाएं जोड़ना
अगर आपको इन लेयर के साथ अपने मार्कर, ग्राउंड ओवरले, पॉलीलाइन या पॉलीगॉन जोड़ने हैं, तो
अपना खुद का Collection
बनाएं. इसके बाद, GoogleMap
ऑब्जेक्ट में सीधे जोड़ने के बजाय, सुविधा जोड़ने के लिए Managers
का इस्तेमाल करें.
उदाहरण के लिए, अगर आप एक नया मार्कर जोड़ना चाहते हैं:
Java
MarkerManager.Collection markerCollection = markerManager.newCollection(); markerCollection.addMarker(new MarkerOptions() .position(new LatLng(51.150000, -0.150032)) .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)) .title("Unclustered marker"));
Kotlin
val markerCollection = markerManager.newCollection() markerCollection.addMarker( MarkerOptions() .position(LatLng(51.150000, -0.150032)) .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)) .title("Unclustered marker") )
क्लिक इवेंट मैनेज करना
क्लस्टर, KML, और GeoJSON के लिए, क्लिक लिसनर आम तौर पर काम करते हैं - जब तक आप
Manager
लेयर में उस लेयर के कंस्ट्रक्टर से पास होते हैं जिसे आप सेट कर रहे हैं.
उदाहरण के लिए, KML लेयर के लिए, क्लिक लिसनर को सेट अप करने का तरीका यहां बताया गया है:
Java
kmlPolylineLayer.addLayerToMap(); kmlPolylineLayer.setOnFeatureClickListener(feature -> Toast.makeText(context, "KML polyline clicked: " + feature.getProperty("name"), Toast.LENGTH_SHORT).show());
Kotlin
kmlPolylineLayer.addLayerToMap() kmlPolylineLayer.setOnFeatureClickListener { feature: Feature -> Toast.makeText(context, "KML polyline clicked: ${feature.getProperty("name")}", Toast.LENGTH_SHORT ).show() }
अपने मार्कर, ग्राउंड ओवरले, पॉलीलाइन या पॉलीगॉन जोड़ते समय, पक्का करें कि आप उन Collection
ऑब्जेक्ट पर क्लिक लिसनर ज़रूर जोड़ें. उदाहरण के लिए, यहां markerCollection
पर मार्कर क्लिक लिसनर सेट अप करने का तरीका बताया गया है:
Java
markerCollection.setOnMarkerClickListener(marker -> { Toast.makeText(context, "Marker clicked: " + marker.getTitle(), Toast.LENGTH_SHORT).show(); return false; });
Kotlin
markerCollection.setOnMarkerClickListener { marker: Marker -> Toast.makeText( context, "Marker clicked: ${marker.title}", Toast.LENGTH_SHORT ).show() false }
डेमो ऐप्लिकेशन देखें
एक से ज़्यादा लेयर जोड़ने का उदाहरण देखने के लिए, डेमो ऐप्लिकेशन में MultiLayerDemoActivity
को देखें जो यूटिलिटी लाइब्रेरी के साथ दिखता है. सेट अप गाइड से आपको
डेमो ऐप्लिकेशन चलाने का तरीका पता चलेगा.