Géolocalisation et cartes en Kotlin : Guide complet d'intégration

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Géolocalisation et cartes en Kotlin : Guide complet pour débutants

Les applications mobiles modernes utilisent de plus en plus les données de localisation de l'utilisateur. Kotlin, étant le langage principal pour le développement Android, fournit des outils puissants pour travailler avec la géolocalisation et l'affichage de cartes. Dans cet article, nous allons détailler comment intégrer des cartes et obtenir des coordonnées dans votre application Kotlin.



1. Obtention de la géolocalisation en Kotlin

Pour travailler avec la géolocalisation sous Android, on utilise la classe LocationManager ou le plus moderne FusedLocationProviderClient de Google Play Services. Examinons les deux approches.



1.1. Utilisation de LocationManager (méthode de base)

Cette méthode convient aux tâches simples et ne nécessite pas de connexion à Google Play Services.

import android.location.Locationimport android.location.LocationListenerimport android.location.LocationManagerimport android.os.Bundle

class LocationHelper(private val locationManager: LocationManager) {

fun getCurrentLocation() { val locationListener = object : LocationListener { override fun onLocationChanged(location: Location) { val lat = location.latitude val lon = location.longitude println("Latitude : $lat, Longitude : $lon") }

override fun onStatusChanged(provider: String?, status: Int, extras: Bundle?) {} override fun onProviderEnabled(provider: String) {} override fun onProviderDisabled(provider: String) {} }

// Demande de mises à jour de localisation locationManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, 5000L, // Intervalle en millisecondes 10f, // Changement de distance minimal en mètres locationListener ) }}


1.2. Utilisation de FusedLocationProviderClient (méthode recommandée)

Cette API est plus précise et économe en énergie, car elle utilise une combinaison de GPS, Wi-Fi et antennes relais.

import com.google.android.gms.location.FusedLocationProviderClientimport com.google.android.gms.location.LocationServicesimport com.google.android.gms.tasks.Task

class FusedLocationHelper(private val fusedLocationClient: FusedLocationProviderClient) {

fun getLastLocation() { val task: Task<Location> = fusedLocationClient.lastLocation task.addOnSuccessListener { location -> if (location != null) { val lat = location.latitude val lon = location.longitude println("Dernière localisation : $lat, $lon") } else { println("Localisation non trouvée") } } }}


2. Intégration des cartes en Kotlin

Pour afficher des cartes, on utilise le plus souvent le SDK Google Maps ou OpenStreetMap. Commençons par l'option la plus populaire.



2.1. SDK Google Maps

Pour travailler avec Google Maps, il est nécessaire d'obtenir une clé API et d'ajouter la dépendance dans build.gradle :

// build.gradle (Module)dependencies {    implementation 'com.google.android.gms:play-services-maps:18.2.0'}


Exemple d'ajout d'une carte dans une Activity :

import android.os.Bundleimport androidx.appcompat.app.AppCompatActivityimport com.google.android.gms.maps.CameraUpdateFactoryimport com.google.android.gms.maps.GoogleMapimport com.google.android.gms.maps.OnMapReadyCallbackimport com.google.android.gms.maps.SupportMapFragmentimport com.google.android.gms.maps.model.LatLngimport com.google.android.gms.maps.model.MarkerOptions

class MapsActivity : AppCompatActivity(), OnMapReadyCallback {

private lateinit var mMap: GoogleMap

override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentVie

Recommendations