GPS et services de géolocalisation dans les applications mobiles — ce qu’ils sont et méthodes d’obtention des coordonnées

Auteur : IT Sectr Publié le : 2026-03-22 Temps de lecture : 8 min

Les services GPS et de géolocalisation dans les applications mobiles sont des API permettant de déterminer la position physique d’un appareil à l’aide de satellites, du Wi-Fi et des réseaux mobiles. Selon le Google Android Location Guide (2025), plus de 60% des applications mobiles utilisent les données de localisation pour personnaliser le contenu. Le Fused Location Provider sur Android combine plusieurs sources pour améliorer la précision et réduire la consommation d’énergie.

Points clés

  • GPS est un système mondial de navigation par satellite offrant une précision de 3 à 5 mètres en zone dégagée.
  • Les services de géolocalisation sur Android et iOS fournissent des API pour obtenir des coordonnées via GPS, Wi-Fi et antennes relais.
  • FusedLocationProviderClient sur Android combine GPS, Wi-Fi et capteurs pour un équilibre optimal entre précision et consommation d’énergie.
  • CLLocationManager sur iOS gère les demandes de géolocalisation avec réglage de la précision et mode arrière-plan.
  • Les autorisations de localisation sont divisées en « lors de l’utilisation » et « toujours » — la seconde nécessite une justification supplémentaire.

Que sont le GPS et les services de géolocalisation

GPS (Global Positioning System) est un système de navigation par satellite composé de 31 satellites actifs en orbite à une altitude d’environ 20 200 km. Sur les appareils mobiles, la puce GPS reçoit les signaux des satellites et calcule les coordonnées par trilatération — mesure du temps de propagation du signal de plusieurs satellites. Les services de géolocalisation dans les systèmes d’exploitation mobiles ajoutent les données des points d’accès Wi-Fi et des antennes relais au GPS pour un positionnement plus rapide (A-GPS) et une meilleure précision à l’intérieur. Selon GPS.gov (2024), la précision du GPS civil est de 3 à 5 mètres par ciel dégagé et jusqu’à 15 mètres dans les zones urbaines denses.

Systèmes satellitaires supplémentaires

Les appareils mobiles modernes prennent en charge non seulement le système GPS américain, mais aussi d’autres systèmes mondiaux de navigation par satellite : le GLONASS russe (24 satellites), le Galileo européen (28 satellites) et le BeiDou chinois. La prise en charge simultanée de plusieurs systèmes améliore la précision et la vitesse du positionnement — l’appareil peut utiliser jusqu’à 40 satellites de différents systèmes pour calculer sa position. Sur iOS et Android, la sélection du système satellitaire se fait automatiquement au niveau de la puce matérielle, les développeurs n’ont pas besoin de gérer cela.

Comment fonctionne la détermination de la position

Le processus de détermination de la position sur un appareil mobile comprend plusieurs étapes : collecte des données provenant des sources (satellites, Wi-Fi, cellules), filtrage et correction des erreurs, calcul des coordonnées et transmission du résultat à l’application. Le système d’exploitation gère ce processus via un service de géolocalisation unifié qui optimise toutes les sources pour économiser la batterie. Voici les trois principales sources de données de localisation.

GPS et navigation par satellite

La navigation par satellite offre la précision maximale (3 à 5 mètres), mais nécessite une vue dégagée du ciel. À l’intérieur ou dans les zones urbaines denses, le signal GPS peut être affaibli ou totalement perdu. Le temps de première fixation (TTFF) est de 30 à 60 secondes pour un démarrage à froid et de 5 à 10 secondes pour un démarrage à chaud. L’A-GPS (GPS assisté) accélère le démarrage en téléchargeant les données d’éphémérides des satellites via Internet au lieu d’attendre les données des satellites.

Positionnement par Wi-Fi et antennes relais

Le positionnement Wi-Fi utilise une base de données d’adresses MAC de points d’accès avec des coordonnées connues. La précision est de 10 à 50 mètres dans la couverture Wi-Fi. Les antennes relais offrent une précision de 100 mètres à plusieurs kilomètres selon la densité des antennes. La combinaison de toutes les sources (Fused Location) permet d’obtenir des coordonnées avec une précision raisonnable et une consommation d’énergie minimale — surtout lorsque la puce GPS est désactivée ou que les signaux satellites ne sont pas disponibles.

Fournisseurs de localisation sur Android et iOS

Sur les deux plateformes, les services de géolocalisation sont implémentés via des API système avec différents niveaux d’abstraction. Android utilise FusedLocationProviderClient de Google Play Services, iOS utilise CLLocationManager de Core Location. Les deux API permettent de demander une position unique ou de s’abonner à des mises à jour régulières. Voici un exemple d’obtention de coordonnées sur Android avec le Fused Location Provider en Kotlin.

Obtenir des coordonnées sur Android

kotlin
val fusedClient = LocationServices.getFusedLocationProviderClient(this)

val locationRequest = LocationRequest.Builder(
    Priority.PRIORITY_HIGH_ACCURACY
)
.setIntervalMillis(5000)
.setMinUpdateIntervalMillis(2000)
.build()

val locationCallback = object : LocationCallback() {
    override fun onLocationResult(result: LocationResult) {
        result.lastLocation?.let { location ->
            Log.d("Position", "Lat: ${location.latitude}, Lng: ${location.longitude}")
        }
    }
}

if (checkLocationPermission()) {
    fusedClient.requestLocationUpdates(
        locationRequest, locationCallback,
        Looper.getMainLooper()
    )
}

Dans l’exemple, LocationRequest est configuré avec PRIORITY_HIGH_ACCURACY — cela active le GPS pour une précision maximale. setIntervalMillis définit l’intervalle de mise à jour souhaité (5 secondes), setMinUpdateIntervalMillis définit l’intervalle minimum (2 secondes). Le callback onLocationResult est invoqué chaque fois que le système reçoit de nouvelles coordonnées. Il est important de vérifier l’autorisation avant d’appeler requestLocationUpdates — sinon l’application plantera avec une SecurityException.

Obtenir des coordonnées sur iOS

swift
import CoreLocation

let locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()

// MARQUE: - CLLocationManagerDelegate
func locationManager(
    _ manager: CLLocationManager,
    didUpdateLocations locations: [CLLocation]
) {
    guard let location = locations.last else { return }
    print("Location: \(location.coordinate.latitude), \(location.coordinate.longitude)")
}

Sur iOS, desiredAccuracy détermine la précision de la demande : kCLLocationAccuracyBest utilise toutes les sources disponibles (GPS + Wi-Fi + cellules). Après avoir demandé l’autorisation via requestWhenInUseAuthorization, le système affiche une boîte de dialogue à l’utilisateur. Le délégué didUpdateLocations reçoit un tableau d’objets CLLocation avec les coordonnées, l’altitude, la vitesse et le cap. Pour arrêter les mises à jour, appelez stopUpdatingLocation pour économiser la batterie.

Demande d’autorisations de localisation

L’accès à la géolocalisation nécessite une autorisation explicite de l’utilisateur sur les deux plateformes. Sur Android, les autorisations ACCESS_FINE_LOCATION (GPS) et ACCESS_COARSE_LOCATION (Wi-Fi/cellules) sont utilisées. À partir d’Android 10, l’accès en arrière-plan nécessite une autorisation séparée ACCESS_BACKGROUND_LOCATION. Sur iOS, trois niveaux sont disponibles : requestWhenInUseAuthorization (uniquement lorsque l’application est active), requestAlwaysAuthorization (en arrière-plan) et des horodatages temporaires pour un positionnement précis. Apple exige une description obligatoire dans Info.plist : NSLocationWhenInUseUsageDescription ou NSLocationAlwaysAndWhenInUseUsageDescription. Sans ces clés, la demande d’autorisation est ignorée.

Optimisation de la consommation d’énergie

L’utilisation continue du GPS épuise considérablement la batterie — jusqu’à 30% par heure de fonctionnement continu à précision maximale. Pour optimiser la consommation d’énergie, il est recommandé d’utiliser la géolocalisation uniquement lorsque c’est nécessaire et d’arrêter les mises à jour lorsque l’application passe en arrière-plan. Sur Android, FusedLocationProviderClient bascule automatiquement entre le GPS et les sources réseau en fonction de la disponibilité et de la priorité de la demande. Sur iOS, utilisez le service de changement significatif de position (startMonitoringSignificantLocationChanges) pour des mises à jour avec une consommation d’énergie minimale — la précision est moindre (jusqu’à 500 mètres), mais la batterie est presque pas sollicitée. Pratiquez également le traitement par lots : collectez les coordonnées à intervalles de 5 à 10 minutes et envoyez-les au serveur en une seule demande via WorkManager sur Android ou BGTaskScheduler sur iOS. La réduction de la fréquence des demandes de 1 seconde à 30 secondes diminue la consommation d’énergie de la géolocalisation de 85%.

Cas d’utilisation de la géolocalisation

La géolocalisation est utilisée dans une large gamme d’applications mobiles : des navigateurs aux services de livraison. Les scénarios les plus courants incluent l’affichage de l’utilisateur sur une carte, le ciblage géographique des publicités, le suivi des coursiers, le géorepérage pour les notifications push et le suivi des activités sportives. Chaque scénario nécessite sa propre approche en matière de précision et de fréquence de mise à jour. Voici un tableau avec les recommandations de configuration pour différents types d’applications.

Type d’applicationPrécisionIntervalleMode arrière-plan
NavigationHIGH (GPS)1-2 sOui
LivraisonBALANCED (GPS+Wi-Fi)10-30 sOui
MétéoLOW (Wi-Fi/cellules)Une foisNon
Réseau socialBALANCEDÀ l’ouvertureNon
FitnessHIGH (GPS)5-10 sOui

Lors de la conception de fonctionnalités de géolocalisation, il est important de considérer que les utilisateurs peuvent révoquer l’autorisation à tout moment via les paramètres système. L’application doit gérer correctement les situations où la géolocalisation n’est pas disponible et afficher une explication claire de la raison pour laquelle la fonctionnalité est limitée.

Géorepérage (Geofencing)

Geofencing est une technologie permettant de créer des limites virtuelles sur une carte. Lorsque ces limites sont franchies, l’application reçoit une notification. Sur Android, les géorepérages sont implémentés via GeofencingClient de Google Play Services, sur iOS — via CLCircularRegion de Core Location. Lors de l’entrée ou de la sortie d’une zone, le système réveille l’application et envoie un même si l’application est fermée ou minimisée. Cela est utilisé pour les notifications push à l’approche d’un magasin, les rappels de tâches basés sur la position et l’automatisation des appareils IoT. Le nombre maximum de géorepérages est limité : 100 sur Android, 20 sur iOS simultanément. Le rayon minimum de la zone est de 50 mètres sur les deux plateformes — sinon le système peut ne pas se déclencher en raison de l’imprécision de la détermination de la position. Lors de l’entrée dans une zone, le système lance un Intent sur Android ou appelle le délégué locationManager:didEnterRegion sur iOS.

Questions fréquentes

Qu’est-ce que le GPS dans les appareils mobiles ?

Le GPS dans un smartphone est un récepteur intégré des signaux du système de navigation par satellite qui détermine les coordonnées avec une précision de 3 à 5 mètres. Les appareils prennent également en charge GLONASS, Galileo et BeiDou pour améliorer la précision et la vitesse de positionnement.

Quelle est la différence entre le GPS et les services de géolocalisation ?

Le GPS est uniquement une méthode satellite de détermination des coordonnées. Les services de géolocalisation combinent le GPS, le positionnement Wi-Fi et les données des antennes relais pour une détermination plus rapide et plus économe en énergie, en particulier à l’intérieur.

Comment demander l’autorisation de localisation sur iOS ?

Appelez requestWhenInUseAuthorization() ou requestAlwaysAuthorization() sur une instance de CLLocationManager. Ajoutez d’abord NSLocationWhenInUseUsageDescription dans Info.plist avec une explication claire de la raison pour laquelle la géolocalisation est nécessaire.

Comment réduire la consommation d’énergie du GPS dans une application ?

Utilisez FusedLocationProviderClient sur Android et le service de changement significatif de position sur iOS. Augmentez l’intervalle entre les demandes à 10-30 secondes, désactivez les mises à jour lorsque l’écran est éteint et appliquez l’envoi par lots des coordonnées au serveur.

Peut-on obtenir une position sans GPS ?

Oui, sans GPS vous pouvez déterminer la position approximative à l’aide de points d’accès Wi-Fi (précision de 10 à 50 mètres) ou d’antennes relais (précision de 100 à 5000 mètres). Sur Android, ACCESS_COARSE_LOCATION est utilisé pour cela.

Résumé

  • GPS est un système de navigation par satellite avec une précision de 3 à 5 mètres, complété par GLONASS, Galileo et BeiDou.
  • Les services de géolocalisation combinent GPS, Wi-Fi et antennes relais pour une détermination rapide et précise des coordonnées.
  • Android utilise FusedLocationProviderClient avec LocationRequest pour configurer la précision et les intervalles de mise à jour.
  • iOS utilise CLLocationManager avec desiredAccuracy et le délégué didUpdateLocations pour obtenir les coordonnées.
  • Les autorisations sont divisées en « lors de l’utilisation » et « toujours » — l’accès en arrière-plan nécessite une approbation séparée de l’utilisateur.
  • La consommation d’énergie du GPS peut être réduite de 85% en augmentant l’intervalle et en utilisant les changements significatifs de position.
  • Recommandation — choisissez la précision et l’intervalle de mise à jour en fonction du scénario : la navigation nécessite HIGH, la météo nécessite LOW.

Nous développerons une application mobile clé en main

IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.

Discuter du projet

Lisez aussi