L'API Geolocation du W3C standardise la façon dont les navigateurs web communiquent avec le matériel de géolocalisation des smartphones, tablettes et ordinateurs.

Accessible via l'objet global navigator.geolocation, cette interface permet aux applications web d'interroger la position de l'utilisateur avec son accord formel. Ce guide offre une vue d'ensemble technique complète et des exemples prêts pour la production.

💻 Test API en Direct

Inspectez la Réponse Géolocalisée de Votre Navigateur

Déclenchez un appel navigator.geolocation pour examiner les objets de coordonnées, d'altitude, de cap, de vitesse et d'horodatage en temps réel.

1. Architecture Fondamentale et Méthodes Clés

La spécification W3C repose sur trois méthodes principales :

1

navigator.geolocation.getCurrentPosition(success, error, options)

Récupère une mesure ponctuelle de la position de l'appareil. Retourne un objet GeolocationPosition en cas de succès ou GeolocationPositionError en cas de refus.

2

navigator.geolocation.watchPosition(success, error, options)

Enregistre une fonction de rappel déclenchée à chaque déplacement de l'appareil. Renvoie un identifiant watchId permettant le suivi continu en direct.

3

navigator.geolocation.clearWatch(watchId)

Arrête la surveillance active initiée par watchPosition(), préservant l'autonomie de la batterie et libérant les capteurs physiques.

2. Code JavaScript Recommandé pour la Production

Voici un exemple robuste intégrant gestion des délais, codes d'erreur et haute précision :

// Check browser support
if ('geolocation' in navigator) {
  const options = {
    enableHighAccuracy: true, // Request GPS hardware rather than IP lookup
    timeout: 10000,           // Maximum wait time of 10 seconds
    maximumAge: 0             // Do not return cached coordinates
  };

  function successCallback(position) {
    const { latitude, longitude, accuracy, altitude, heading, speed } = position.coords;
    console.log(`Latitude: ${latitude}, Longitude: ${longitude}`);
    console.log(`Accuracy radius: ${accuracy} meters`);
  }

  function errorCallback(error) {
    switch(error.code) {
      case error.PERMISSION_DENIED:
        console.error("User denied Geolocation permission.");
        break;
      case error.POSITION_UNAVAILABLE:
        console.error("Location information is unavailable (weak GPS/Wi-Fi signal).");
        break;
      case error.TIMEOUT:
        console.error("The request to get user location timed out.");
        break;
    }
  }

  navigator.geolocation.getCurrentPosition(successCallback, errorCallback, options);
} else {
  console.warn("Geolocation API is not supported in this browser.");
}

3. Paramètres de Configuration : PositionOptions

OptionTypeValeur par DéfautComportement et Impact Technique
enableHighAccuracyBooleanfalseSi true, ordonne l'activation de la puce GNSS/GPS (< 3-5 m). Si false, emploie la triangulation Wi-Fi ou réseau cellulaire économique en énergie.
timeoutPositive integer (ms)InfinityDélai maximal en millisecondes alloué au navigateur avant de renvoyer l'erreur TIMEOUT. Conseillé : 8 000 à 12 000 ms.
maximumAgePositive integer (ms)0Âge maximal toléré pour une position en cache. La valeur 0 force une acquisition satellite ou Wi-Fi immédiate.

4. Exigences de Sécurité et Politiques de Confidentialité

  • Contexte Sécurisé HTTPS Exigé : Depuis Chrome 50 et iOS 10, la géolocalisation est désactivée sur HTTP non sécurisé.
  • Geste Utilisateur Préconisé : Lier la demande de géolocalisation à un clic bouton améliore considérablement le taux de consentement utilisateur.
  • Autorisation dans les Iframes : Lors d'une intégration via <iframe>, la balise doit comporter l'attribut allow='geolocation'.
🧭 Conversion de Coordonnées

Convertissez les Degrés Décimaux de l'API

Convertissez sans effort les sorties décimales de l'API en Degrés Minutes Secondes (DMS) ou projection métrique UTM.