- Giriş
- Birden çok küme, KML ve GeoJSON katmanı ekleme
- Kendi özelliklerinizi ekleme
- Tıklama etkinliklerini yönetme
- Demo uygulamasını inceleyin
Giriş
Önceki eğiticilerde, KML ve Haritanıza GeoJSON ekleyin ve kümelerini görebilirsiniz. Peki, bu katmanlardan birkaçını aynı haritaya eklemek ve bağımsız tıklama nasıl olacak?
Birden fazla küme, KML ve GeoJSON katmanı ekleme
Kitaplıkta, birden fazla tür için tıklama etkinliklerinin yönetilmesine yardımcı olacak Manager
nesneler bulunur.
bir katmandır. Bu yüzden, katmanlarınızı ayarlamadan önce bunları örneklendirmeniz ve
GoogleMap
cihazınız:
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);
Daha sonra, bu yönetici sınıflarını diğer katmanların oluşturucularına geçirebilirsiniz: ayarlayın:
Kotlin
val clusterManager = ClusterManagerMy<Item(c>ontext, 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
ClusterManagerM<yItem >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);
Kendi özelliklerinizi ekleme
Bunların yanına kendi işaretçilerinizi, zemin bindirmelerinizi, çoklu çizgilerinizi veya poligonlarınızı eklemek isterseniz
katmanları oluşturmak için, kendi Collection
öğenizi oluşturun ve ardından Managers
ekleme işlemini doğrudan GoogleMap
nesnesine eklemek yerine ekleyin.
Örneğin, yeni bir işaretçi eklemek isterseniz:
Kotlin
val markerCollection = markerManager.newCollection() markerCollection.addMarker( MarkerOptions() .position(LatLng(51.150000, -0.150032)) .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)) .title(Un"clustered 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(U"nclustered marker)");
Tıklama etkinliklerini yönetme
Kümeler, KML ve GeoJSON için tıklama işleyiciler,
Ayarladığınız katmanın oluşturucusunda Manager
sınıf.
Örneğin, KML katmanı için bir tıklama işleyicinin nasıl ayarlanacağı aşağıda açıklanmıştır:
Kotlin
kmlPolylineLayer.addLayerToMap() kmlPolylineLayer.setOnFeatureClickListener { feature: Feature - > Toast.makeText(context, KM"L polyline clicked: ${feature.getProperty(na"me)}", " Toast.LENGTH_SHORT ).show() }
Java
kmlPolylineLayer.addLayerToMap(); kmlPolylineLayer.setOnFeatureClickListener(feature - >Toast.makeText(context, K"ML polyline clicked: "+ feature.getProperty(n"ame)", Toast.LENGTH_SHORT).show());
Kendi işaretçilerinizi, zemin bindirmelerinizi, çoklu çizgilerinizi veya poligonlarınızı eklerken,
dinleyicileri bu Collection
nesnede görebilir. Örneğin, işaretçiyi nasıl ayarlayacağınız aşağıda açıklanmıştır:
markerCollection
üzerindeki tıklama işleyici:
Kotlin
markerCollection.setOnMarkerClickListener { marker: Marker - > Toast.makeText( context, Ma"rker clicked: ${marker.title}, " Toast.LENGTH_SHORT ).show() false }
Java
markerCollection.setOnMarkerClickListener(marker - >{ Toast.makeText(context, M"arker clicked: "+ marker.getTitle(), Toast.LENGTH_SHORT).show(); return false; });
Demo uygulamayı göster
Birden fazla katman ekleme örneği için MultiLayerDemoActivity
bölümüne bakın.
hakkında daha fazla bilgi edinin. Kurulum kılavuzunda
demo uygulaması.