গুগল ম্যাপ মাল্টিলেয়ার ইউটিলিটি

প্ল্যাটফর্ম নির্বাচন করুন: অ্যান্ড্রয়েড জাভাস্ক্রিপ্ট
  1. ভূমিকা
  2. একাধিক ক্লাস্টার, KML, এবং GeoJSON স্তর যোগ করা হচ্ছে
  3. আপনার নিজস্ব বৈশিষ্ট্য যোগ করা হচ্ছে
  4. ক্লিক ইভেন্ট পরিচালনা করা
  5. ডেমো অ্যাপটি দেখুন

ভূমিকা

পূর্ববর্তী টিউটোরিয়ালে, আপনি শিখেছেন কিভাবে 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 তৈরি করুন এবং তারপরে GoogleMap অবজেক্টে সরাসরি যুক্ত করার পরিবর্তে বৈশিষ্ট্যটি যোগ করতে Managers ব্যবহার করুন। উদাহরণস্বরূপ, যদি আপনি একটি নতুন মার্কার যোগ করতে চান:

কোটলিন

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 দেখুন। সেটআপ গাইড আপনাকে দেখায় কিভাবে ডেমো অ্যাপ চালাতে হয়।