- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to show current location on a Google Map on Android using Kotlin?
This example demonstrates how to show current location on a Google Map on Android using Kotlin.
Step 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project.
Step 2 − Add the following code to res/layout/activity_main.xml.
<fragment xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://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" />
Step 3 − Add the given dependency in the build.gradle (Module: app)
implementation 'com.google.android.gms:play-services-maps:17.0.0' implementation 'com.google.android.gms:play-services-location:17.0.0' implementation 'com.google.android.gms:play-services-maps:17.0.0'
Step 4 − Add the following code to src/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() } } } }
Step 5 − To get the google API key (map_key), kindly follow the steps below
Visit the Google Cloud Platform Console.
Click the project drop−down and select or create the project for which you want to add an API key.
Click the menu button
and select APIs & Services > Credentials.
On the Credentials page, click Create credentials > API key. The API key created dialog displays your newly created API key.
Click Close.
The new API key is listed on the Credentials page under API keys. (Remember to restrict the API key before using it in production.)
Add the API key in the manifest file <meta−data></meta−data> as shown in the step 6
Step 6 − Add the following code to androidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.q15"> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <meta-data android:name="com.google.android.geo.API_KEY" android:value="AIzaSyCiSh4VnnI1jemtZTytDoj2X7Wl6evey30" /> </application> </manifest>
Let's try to run your application. I assume you have connected your actual Android Mobile device with your computer. To run the app from android studio, open one of your project's activity files and click the Run icon from the toolbar. Select your mobile device as an option and then check your mobile device which will display your default screen
- Related Articles
- How to show current location on a google map on Android?
- How to get the current GPS location programmatically on Android using Kotlin?
- How to show current progress while downloading a file on Android App using Kotlin?
- Python script to open a Google Map location on clipboard?
- The simplest way to get the user's current location on Android using Kotlin?
- How to use Location API in Android to track your current location using Kotlin?
- How to get current GPS location programmatically on Android?
- How to show a Soft Keyboard based on Android EditText focused using Kotlin?
- How to detect touch and its position on Google map in Android?
- Plotting Data on Google Map using pygmaps package?
- How to parse JSON on Android using Kotlin?
- How to track the current location (Latitude and Longitude) in an android device using Kotlin?\n
- Get a google map image of specified location using Google Static Maps API in Python
- How to best display HTML5 geolocation accuracy on a Google Map?
- How to parse JSON Objects on Android using Kotlin?
