Maps Compose লাইব্রেরি

Jetpack Compose হল একটি ডিক্ল্যারেটিভ, নেটিভ UI টুলকিট যা UI ডেভেলপমেন্টকে সহজ ও দ্রুত করে তোলে। Jetpack Compose-এর সাহায্যে, আপনার অ্যাপটি কেমন দেখতে হবে তা বর্ণনা করুন এবং বাকি কাজ Jetpack Compose-কে করতে দিন।

Maps SDK for Android-এর জন্য Maps Compose লাইব্রেরি হল ওপেন-সোর্স কম্পোজেবল ফাংশন ও ডেটার ধরনের সেট যা আপনি Jetpack Compose-এর সাথে ব্যবহার করে আপনার অ্যাপ তৈরি করতে পারবেন।

Maps Compose লাইব্রেরিতে কম্পোজেবল ফাংশন ও ডেটার ধরন থাকে যা আপনাকে অনেক সাধারণ টাস্ক করতে দেয়। সাধারণত ব্যবহৃত কম্পোজ করার উপযুক্ত ফাংশন ও ডেটা ধরনের মধ্যে এগুলি অন্তর্ভুক্ত:

কম্পোজেবল বিবরণ
সার্কেল ম্যাপে বৃত্ত যোগ করার জন্য কম্পোজ করা যায় এমন ফাংশন।
GoogleMap ম্যাপ যোগ করার জন্য কম্পোজেবল ফাংশন।
GroundOverlay ম্যাপে গ্রাউন্ড ওভারলে যোগ করার জন্য কম্পোজেবল ফাংশন।
MapProperties ম্যাপে পরিবর্তন করা যায় এমন প্রপার্টির ডেটার ধরন।
MapUISettings ম্যাপে UI-সম্পর্কিত সেটিংসের জন্য ডেটার ধরন।
মার্কার ম্যাপে মার্কার যোগ করার জন্য কম্পোজেবল ফাংশন।
বহুভুজ ম্যাপে পলিগন যোগ করার জন্য কম্পোজেবল ফাংশন।
পলিলাইন ম্যাপে পলিলাইন যোগ করার জন্য কম্পোজ করা যায় এমন ফাংশন।
TileOverlay ম্যাপে টাইল ওভারলে যোগ করার জন্য কম্পোজেবল ফাংশন।

সব কম্পোজেবল ফাংশন ও ডেটার ধরনের সম্পূর্ণ তালিকা দেখতে, Maps Compose লাইব্রেরি রেফারেন্স দেখুন।

প্রয়োজনীয়তা

Maps SDK for Android-এর সাথে Maps Compose লাইব্রেরি ব্যবহার করতে হলে আপনাকে এগুলি করতে হবে:

  • Android Studio Arctic Fox ডাউনলোড ও ইনস্টল করুন।
  • Android Studio-তে এর সাহায্যে Google Maps প্রোজেক্ট তৈরি করুন:

    • খালি কম্পোজ অ্যাক্টিভিটি টেমপ্লেটের ধরন। এই টেমপ্লেট Jetpack Compose-এর জন্য প্রয়োজনীয় ডিপেন্ডেন্সি যোগ করে।
    • ন্যূনতম SDK Android API লেভেল ২৩ ("Marshmallow"; Android 6.0) বা তার পরবর্তী ভার্সনে সেট করা আছে।
    • ভাষা Kotlin হিসেবে সেট করা হয়েছে।
  • একটি API key পান এবং আপনার প্রোজেক্টে এটি যোগ করুন।

  • পরবর্তী বিভাগে যেভাবে বর্ণনা করা হয়েছে সেইভাবে প্রোজেক্টে Maps Compose লাইব্রেরি ইনস্টল করুন।

ইনস্টল করা

আপনার Google Maps প্রোজেক্টে Maps Compose লাইব্রেরি ইনস্টল করতে:

  1. আপনার মডিউল-লেভেল build.gradle.kts ফাইলে নিম্নলিখিত ডিপেন্ডেন্সি যোগ করুন:

      dependencies {
    
        // Modern Android projects use version catalogs to manage dependencies. To include the Maps Compose library,
        // first add the following to your gradle/libs.versions.toml file:
        //
        // [versions]
        // mapsCompose = "8.4.0"
        //
        // [libraries]
        // maps-compose = { module = "com.google.maps.android:maps-compose", version.ref = "mapsCompose" }
        //
        // Android Maps Compose composables for the Maps SDK for Android
        implementation(libs.maps.compose)
        // If your project does not use a version catalog, you can use the following dependency instead:
        //
        //    implementation("com.google.maps.android:maps-compose:8.4.0")
    }

  2. এইসব পরিবর্তন সিঙ্ক করতে Android Studio-তে আপনার প্রোজেক্ট আবার তৈরি করুন।

আপনার অ্যাপে ম্যাপ যোগ করা

ম্যাপ যোগ করার জন্য কীভাবে GoogleMap কম্পোজেবল ব্যবহার করতে হয় তা নিম্নলিখিত উদাহরণে দেখানো হয়েছে।

val singapore = LatLng(1.35, 103.87)
val singaporeMarkerState = rememberUpdatedMarkerState(position = singapore)
val cameraPositionState = rememberCameraPositionState {
    position = CameraPosition.fromLatLngZoom(singapore, 10f)
}
GoogleMap(
    modifier = Modifier.fillMaxSize(),
    cameraPositionState = cameraPositionState,
) {
    Marker(
        state = singaporeMarkerState,
        title = "Singapore",
        snippet = "Marker in Singapore",
    )
}

এই উদাহরণে, ম্যাপটি অনুমোদিত সর্বাধিক জায়গা দখল করে এবং এর ক্যামেরা সিঙ্গাপুরের চারপাশে কেন্দ্র করে। ক্যামেরার পজিশন সেট করার জন্য cameraPositionState-এ একটি CameraPositionState তৈরি করে দেওয়া হয়।

তারপর, ম্যাপে মার্কার যোগ করার জন্য ম্যাপের কন্টেন্টে Marker কম্পোজেবলকে উদাহরণটি কল করে।

Views ব্যবহার করে ম্যাপ যোগ করার উদাহরণ সহ এই উদাহরণটি তুলনা করতে, QuickStart দেখুন। লক্ষ্য করুন, কম্পোজেবল ফাংশনে কত কম কোড লাগে এবং ম্যাপের লাইফসাইকেল নিয়ে আপনাকে চিন্তা করতে হয় না।

ম্যাপে প্রপার্টি সেট করা

আপনি ম্যাপে MapProperties অবজেক্ট বা UI-সম্পর্কিত প্রপার্টির জন্য MapUiSettings অবজেক্ট প্রদান করে প্রপার্টি সেট করতে পারেন। ম্যাপের রিকম্পোজিশন ট্রিগার করতে আপনি এইসব অবজেক্ট পরিবর্তন করতে পারবেন।

নিচের উদাহরণে, ম্যাপে জুম কন্ট্রোল টগল করতে, একটি সুইচ, একটি মেটেরিয়াল ডিজাইন কম্পোনেন্ট ব্যবহার করুন।

var uiSettings by remember { mutableStateOf(MapUiSettings()) }
var properties by remember {
    mutableStateOf(MapProperties(mapType = MapType.SATELLITE))
}

Box(Modifier.fillMaxSize()) {
    GoogleMap(
        modifier = Modifier.matchParentSize(),
        properties = properties,
        uiSettings = uiSettings,
    )
    Switch(
        checked = uiSettings.zoomControlsEnabled,
        onCheckedChange = {
            uiSettings = uiSettings.copy(zoomControlsEnabled = it)
        },
    )
}

এর পরে কী করতে হবে