- مقدمه
- افزودن چندین لایه خوشه، KML و GeoJSON
- اضافه کردن ویژگی های خود
- مدیریت رویدادهای کلیک
- برنامه دمو را ببینید
مقدمه
در آموزشهای قبلی، یاد گرفتید که چگونه ویژگیهای KML و GeoJSON و همچنین خوشههای نشانگر را به نقشه خود اضافه کنید. اما اگر بخواهید چندین لایه از این لایه ها را روی یک نقشه اضافه کنید و رویدادهای کلیکی مستقل برای هر کدام را دریافت کنید، چه؟
افزودن چندین لایه خوشه، KML و GeoJSON
این کتابخانه شامل اشیاء Manager
برای کمک به مدیریت رویدادهای کلیک برای چندین نوع لایه است. بنابراین، قبل از راهاندازی لایههای خود، ابتدا باید آنها را نمونهسازی کنید و در GoogleMap
خود ارسال کنید:
جاوا
MarkerManager markerManager = new MarkerManager(map); GroundOverlayManager groundOverlayManager = new GroundOverlayManager(map); PolygonManager polygonManager = new PolygonManager(map); PolylineManager polylineManager = new PolylineManager(map);
کاتلین
val markerManager = MarkerManager(map) val groundOverlayManager = GroundOverlayManager(map!!) val polygonManager = PolygonManager(map) val polylineManager = PolylineManager(map)
در مرحله بعد، میتوانید این کلاسهای مدیر را هنگام تنظیم آنها به سازندههای لایههای دیگر منتقل کنید:
جاوا
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);
کاتلین
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
خود را ایجاد کنید و سپس از Managers
برای افزودن این ویژگی به جای افزودن مستقیم آنها به شی GoogleMap
استفاده کنید. به عنوان مثال، اگر می خواهید یک نشانگر جدید اضافه کنید:
جاوا
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"));
کاتلین
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 آمده است:
جاوا
kmlPolylineLayer.addLayerToMap(); kmlPolylineLayer.setOnFeatureClickListener(feature -> Toast.makeText(context, "KML polyline clicked: " + feature.getProperty("name"), Toast.LENGTH_SHORT).show());
کاتلین
kmlPolylineLayer.addLayerToMap() kmlPolylineLayer.setOnFeatureClickListener { feature: Feature -> Toast.makeText(context, "KML polyline clicked: ${feature.getProperty("name")}", Toast.LENGTH_SHORT ).show() }
وقتی نشانگرها، همپوشانی های زمین، چند خط یا چند ضلعی خود را اضافه می کنید، فقط مطمئن شوید که شنوندگان کلیک را به آن اشیاء Collection
اضافه کنید. برای مثال، در اینجا نحوه تنظیم شنونده کلیک نشانگر در markerCollection
:
جاوا
markerCollection.setOnMarkerClickListener(marker -> { Toast.makeText(context, "Marker clicked: " + marker.getTitle(), Toast.LENGTH_SHORT).show(); return false; });
کاتلین
markerCollection.setOnMarkerClickListener { marker: Marker -> Toast.makeText( context, "Marker clicked: ${marker.title}", Toast.LENGTH_SHORT ).show() false }
برنامه دمو را ببینید
برای مثالی از افزودن چند لایه، به MultiLayerDemoActivity
در برنامه آزمایشی که با کتابخانه ابزار ارسال می شود، نگاهی بیندازید. راهنمای راه اندازی به شما نشان می دهد که چگونه برنامه آزمایشی را اجرا کنید.