ফিউজড লোকেশন প্রোভাইডার দিয়ে গুগল ম্যাপে অবস্থান দেখানো
এই উদাহরণটি দেখায় কিভাবে কোটলিন ব্যবহার করে গুগল ম্যাপস SDK এবং ফিউজড লোকেশন প্রোভাইডার ক্লাস ব্যবহার করে বর্তমান অবস্থান ম্যাপে দেখানো যায়।
ধাপ ১: নতুন প্রজেক্ট তৈরি করুন
Android Studio-তে File → New Project এ যান এবং প্রজেক্ট তৈরি করুন।
ধাপ ২: লেআউট XML ফাইল কনফিগার করুন
res/layout/activity_main.xml ফাইলে SupportMapFragment ব্যবহার করুন:
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:id="@+id/myMap"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" />
ধাপ ৩: build.gradle-এ নির্ভরতা যোগ করুন
implementation 'com.google.android.gms:play-services-maps:17.0.0' implementation 'com.google.android.gms:play-services-location:17.0.0'
ধাপ ৪: MainActivity.kt ফাইলে লজিক লিখুন
import android.Manifest
import android.content.pm.PackageManager
import android.location.Location
import android.os.Bundle
import android.widget.Toast
import androidx.core.app.ActivityCompat
import androidx.fragment.app.FragmentActivity
import com.google.android.gms.location.FusedLocationProviderClient
import com.google.android.gms.location.LocationServices
import com.google.android.gms.maps.CameraUpdateFactory
import com.google.android.gms.maps.GoogleMap
import com.google.android.gms.maps.OnMapReadyCallback
import com.google.android.gms.maps.SupportMapFragment
import com.google.android.gms.maps.model.LatLng
import com.google.android.gms.maps.model.MarkerOptions
class MainActivity : FragmentActivity(), OnMapReadyCallback {
private lateinit var currentLocation: Location
private lateinit var fusedLocationProviderClient: FusedLocationProviderClient
private val permissionCode = 101
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this@MainActivity)
fetchLocation()
}
private fun fetchLocation() {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), permissionCode)
return
}
val task = fusedLocationProviderClient.lastLocation
task.addOnSuccessListener { location ->
if (location != null) {
currentLocation = location
Toast.makeText(applicationContext, currentLocation.latitude.toString() + "" + currentLocation.longitude, Toast.LENGTH_SHORT).show()
val supportMapFragment = (supportFragmentManager.findFragmentById(R.id.myMap) as SupportMapFragment?)!!
supportMapFragment.getMapAsync(this@MainActivity)
}
}
}
override fun onMapReady(googleMap: GoogleMap?) {
val latLng = LatLng(currentLocation.latitude, currentLocation.longitude)
val markerOptions = MarkerOptions().position(latLng).title("I am here!")
googleMap?.animateCamera(CameraUpdateFactory.newLatLng(latLng))
googleMap?.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 5f))
googleMap?.addMarker(markerOptions)
}
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String?>, grantResults: IntArray) {
when (requestCode) {
permissionCode -> if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
fetchLocation()
}
}
}
}
ধাপ ৫: গুগল ম্যাপস API কী পাওয়ার পদ্ধতি
- Google Cloud Platform Console-এ যান
- প্রজেক্ট নির্বাচন বা তৈরি করুন
- APIs & Services > Credentials-এ যান
- Create credentials > API key এ ক্লিক করুন
- API কী কপি করে ম্যানিফেস্টে যোগ করুন
ধাপ ৬: AndroidManifest.xml আপডেট করুন
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="আপনার_API_KEY" />
অ্যাপ্লিকেশন চালানোর পদ্ধতি
ডিভাইস সংযুক্ত করে Run করুন। লোকেশন পারমিশন দিন এবং ম্যাপে বর্তমান অবস্থান দেখুন।