মানচিত্র রচনা লাইব্রেরি

জেটপ্যাক কম্পোজ একটি ঘোষণামূলক, নেটিভ UI টুলকিট যা UI ডেভেলপমেন্টকে সহজ এবং ত্বরান্বিত করে। জেটপ্যাক কম্পোজের সাহায্যে, আপনি আপনার অ্যাপটি কেমন দেখতে চান তা বর্ণনা করেন এবং তারপর জেটপ্যাক কম্পোজকে বাকিটা পরিচালনা করতে দেন।

অ্যান্ড্রয়েডের জন্য ম্যাপস এসডিকে-র ম্যাপস কম্পোজ লাইব্রেরি হল ওপেন-সোর্স কম্পোজেবল ফাংশন এবং ডেটা টাইপের একটি সেট যা আপনি জেটপ্যাক কম্পোজের সাথে আপনার অ্যাপ তৈরি করতে ব্যবহার করতে পারেন।

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

কম্পোজেবল বিবরণ
বৃত্ত মানচিত্রে একটি বৃত্ত যোগ করার জন্য কম্পোজেবল ফাংশন।
গুগল ম্যাপ একটি মানচিত্র যোগ করার জন্য কম্পোজেবল ফাংশন।
গ্রাউন্ডওভারলে একটি মানচিত্রে একটি গ্রাউন্ড ওভারলে যোগ করার জন্য কম্পোজেবল ফাংশন।
মানচিত্রের বৈশিষ্ট্য মানচিত্রে পরিবর্তন করা যেতে পারে এমন বৈশিষ্ট্যের ডেটা টাইপ।
MapUISettings সম্পর্কে মানচিত্রে UI-সম্পর্কিত সেটিংসের ডেটা টাইপ।
মার্কার একটি মানচিত্রে একটি মার্কার যোগ করার জন্য কম্পোজেবল ফাংশন।
বহুভুজ একটি মানচিত্রে বহুভুজ যোগ করার জন্য কম্পোজেবল ফাংশন।
পলিলাইন একটি মানচিত্রে একটি পলিলাইন যোগ করার জন্য কম্পোজেবল ফাংশন।
টাইলওভারলে একটি মানচিত্রে একটি টাইল ওভারলে যোগ করার জন্য কম্পোজেবল ফাংশন।

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

আবশ্যকতা

Android এর জন্য Maps SDK এর সাথে Maps Compose লাইব্রেরি ব্যবহার করতে আপনাকে অবশ্যই:

  • অ্যান্ড্রয়েড স্টুডিও আর্কটিক ফক্স ডাউনলোড এবং ইনস্টল করুন।
  • অ্যান্ড্রয়েড স্টুডিওতে একটি গুগল ম্যাপস প্রকল্প তৈরি করুন :

    • Empty Compose Activity এর একটি টেমপ্লেট প্রকার। এই টেমপ্লেটটি Jetpack Compose এর জন্য প্রয়োজনীয় প্রয়োজনীয় নির্ভরতা যোগ করে।
    • সর্বনিম্ন SDK API 21 তে সেট করা আছে: Android 5.0 (Lollipop) বা তার পরবর্তী সংস্করণ।
    • ভাষা কোটলিনে সেট করা হয়েছে।
  • একটি API কী নিন এবং এটি আপনার প্রকল্পে যুক্ত করুন।

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

স্থাপন

আপনার গুগল ম্যাপস প্রোজেক্টে ম্যাপস কম্পোজ লাইব্রেরি ইনস্টল করতে:

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

      dependencies {
    
        // Android Maps Compose composables for the Maps SDK for Android
        implementation("com.google.maps.android:maps-compose:6.12.0")
    }

  2. এই পরিবর্তনগুলি সিঙ্ক করার জন্য অ্যান্ড্রয়েড স্টুডিওতে আপনার প্রকল্পটি পুনর্নির্মাণ করুন।

আপনার অ্যাপে একটি মানচিত্র যোগ করুন

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

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 এ সরবরাহ করা হয়।

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

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

মানচিত্রে বৈশিষ্ট্য সেট করুন

আপনি একটি MapProperties অবজেক্ট প্রদান করে অথবা UI-সম্পর্কিত প্রপার্টির জন্য একটি MapUiSettings অবজেক্ট প্রদান করে মানচিত্রে প্রপার্টি সেট করতে পারেন। মানচিত্রের পুনর্গঠন ট্রিগার করতে আপনি এই অবজেক্টগুলিকে পরিবর্তন করতে পারেন।

নিচের উদাহরণে, মানচিত্রে জুম নিয়ন্ত্রণ টগল করতে একটি Switch , একটি Material Design উপাদান ব্যবহার করুন।

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

এরপর কি?