- مقدمه
- افزودن چندین لایه خوشهای، 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)
جاوا
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 )
جاوا
ClusterManager<MyItem> localClusterManager = 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 استفاده کنید.
برای مثال، اگر میخواهید نشانگر جدیدی اضافه کنید:
Kotlin
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 در اینجا آمده است:
Kotlin
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 در اینجا ارائه شده است:
Kotlin
markerCollection.setOnMarkerClickListener { 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
در برنامه نمایشی که همراه با کتابخانه ابزار ارائه میشود نگاهی بیندازید. راهنمای راهاندازی نحوه اجرای برنامه نمایشی را به شما نشان میدهد.