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)
        },
    )
}

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