Géolocalisation et cartes en Kotlin : aperçu complet des outils
Kotlin, en tant que langage de programmation moderne pour le développement Android et serveur, offre aux développeurs des outils puissants pour travailler avec la géolocalisation et les cartes. Dans cet article, nous examinerons les principales bibliothèques et outils qui vous permettront d'intégrer facilement des services cartographiques et des fonctions de localisation dans vos projets Kotlin.
1. Google Maps SDK pour Android (Kotlin)
Google Maps SDK est l'outil le plus populaire et le plus fonctionnel pour travailler avec les cartes dans les applications Android. Il fournit un ensemble complet d'API pour afficher des cartes, ajouter des marqueurs, des polygones, contrôler la caméra et obtenir des informations de localisation.
Pour commencer, ajoutez la dépendance dans build.gradle.kts :
dependencies { implementation("com.google.android.gms:play-services-maps:18.2.0") implementation("com.google.android.gms:play-services-location:21.0.1")}Exemple d'ajout d'une carte dans une Activity en utilisant SupportMapFragment :
import android.os.Bundleimport androidx.appcompat.app.AppCompatActivityimport 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 googleMap: GoogleMap
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_maps)
val mapFragment = supportFragmentManager .findFragmentById(R.id.map) as SupportMapFragment mapFragment.getMapAsync(this) }
override fun onMapReady(map: GoogleMap) { googleMap = map val sydney = LatLng(-33.852, 151.211) googleMap.addMarker(MarkerOptions() .position(sydney) .title("Marqueur à Sydney")) googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(sydney, 12f)) }}2. Yandex Maps SDK pour Android (Kotlin)
Yandex Maps SDK est une excellente alternative pour les projets destinés au public russophone. Il propose des cartes détaillées de la Russie et de la CEI, ainsi que des fonctionnalités uniques telles que la visualisation des embouteillages et les itinéraires de transport en commun.
Connexion de la bibliothèque :
dependencies { implementation("com.yandex.android:maps.mobile:4.3.1-lite")}Exemple d'affichage d'une carte avec un marqueur :
import com.yandex.mapkit.MapKitFactoryimport com.yandex.mapkit.mapview.MapViewimport com.yandex.mapkit.geometry.Pointimport com.yandex.mapkit.map.MapObjectCollectionimport com.yandex.runtime.image.ImageProvider
class MainActivity : AppCompatActivity() { private lateinit var mapview: MapView
override fun onCreate(savedInstanceState: Bundle?) { MapKitFactory.initialize(this) super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) mapview = findViewById(R.id.mapview) mapview.map.move( CameraPosition(Point(55.751244, 37.618423), 11f, 0f, 0f) ) val mapObjects: MapObjectCollection = mapview.map.mapObjects mapObjects.addPlacemark( Point(55.751244, 37.618423), ImageProvider.fromResource(this, R.drawable.marker) ) }
override fun onStop() { mapview.onStop() MapKitFactory.getInstance().onStop() super.onStop() }}3. OpenStreetMap (OSMDroid) pour Kotlin
OSMDroid est une bibliothèque open source qui utilise les données OpenStree