- مقدمه
- افزودن چندین لایه خوشه، KML و GeoJSON
- اضافه کردن ویژگی های خود
- مدیریت رویدادهای کلیک
- برنامه دمو را ببینید
مقدمه
در آموزشهای قبلی، یاد گرفتید که چگونه ویژگیهای KML و GeoJSON و همچنین خوشههای نشانگر را به نقشه خود اضافه کنید. اما اگر بخواهید چندین لایه از این لایه ها را روی یک نقشه اضافه کنید و رویدادهای کلیکی مستقل برای هر کدام را دریافت کنید، چه؟
افزودن چندین لایه خوشه، KML و GeoJSON
این کتابخانه شامل اشیاء Manager
برای کمک به مدیریت رویدادهای کلیک برای چندین نوع لایه است. بنابراین، قبل از راهاندازی لایههای خود، ابتدا باید آنها را نمونهسازی کنید و در GoogleMap
خود ارسال کنید:
کاتلین
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);
در مرحله بعد، میتوانید این کلاسهای مدیر را هنگام تنظیم آنها به سازندههای لایههای دیگر منتقل کنید:
کاتلین
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);
اضافه کردن ویژگی های خود
اگر میخواهید نشانگرها، همپوشانیهای زمین، چند خط یا چند ضلعی خود را در کنار این لایهها اضافه کنید، Collection
خود را ایجاد کنید و سپس از Managers
برای افزودن این ویژگی به جای افزودن مستقیم آنها به شی GoogleMap
استفاده کنید. به عنوان مثال، اگر می خواهید یک نشانگر جدید اضافه کنید:
کاتلین
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"));
مدیریت رویدادهای کلیک
برای خوشهها، KML، و GeoJSON، شنوندههای کلیک مانند عادی کار میکنند - تا زمانی که از کلاسهای Manager
در سازنده لایهای که تنظیم میکنید عبور کنید. به عنوان مثال، در اینجا نحوه تنظیم یک شنونده کلیک برای لایه KML آمده است:
کاتلین
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());
وقتی نشانگرها، همپوشانی های زمین، چند خط یا چند ضلعی خود را اضافه می کنید، فقط مطمئن شوید که شنوندگان کلیک را به آن اشیاء Collection
اضافه کنید. برای مثال، در اینجا نحوه تنظیم شنونده کلیک نشانگر در markerCollection
آمده است:
کاتلین
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; });
برنامه دمو را ببینید
برای مثالی از افزودن چند لایه، به MultiLayerDemoActivity
در برنامه آزمایشی که با کتابخانه ابزار ارسال می شود، نگاهی بیندازید. راهنمای راه اندازی به شما نشان می دهد که چگونه برنامه آزمایشی را اجرا کنید.