- 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:
val markerManager = MarkerManager(map) val groundOverlayManager = GroundOverlayManager(map!!) val polygonManager = PolygonManager(map) val polylineManager = PolylineManager(map)
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:
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 )
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);
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:
val markerCollection = markerManager.newCollection() markerCollection.addMarker( MarkerOptions() .position(LatLng(51.150000, -0.150032)) .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)) .title("Unclustered marker") )
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"));
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:
kmlPolylineLayer.addLayerToMap() kmlPolylineLayer.setOnFeatureClickListener { feature: Feature -> Toast.makeText(context, "KML polyline clicked: ${feature.getProperty("name")}", Toast.LENGTH_SHORT ).show() }
kmlPolylineLayer.addLayerToMap(); kmlPolylineLayer.setOnFeatureClickListener(feature -> Toast.makeText(context, "KML polyline clicked: " + feature.getProperty("name"), 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:
markerCollection.setOnMarkerClickListener { marker: Marker -> Toast.makeText( context, "Marker clicked: ${marker.title}", Toast.LENGTH_SHORT ).show() false }
markerCollection.setOnMarkerClickListener(marker -> { Toast.makeText(context, "Marker 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ı.