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