API Geolocation (géolocalisation)
=================================

**Contexte sécurisé:** Cette fonctionnalité est uniquement disponible dans des contextes sécurisés (HTTPS), pour certains navigateurs qui la prennent en charge.

L'**API *Geolocation*** permet à une personne, si elle le veut, de fournir sa position géographique à une application web. Pour respecter la vie privée, la permission est demandée auprès de l'utilisatrice ou de l'utilisateur avant la récupération des informations de géolocalisation.

Les extensions web qui souhaitent utiliser l'objet `Geolocation` doivent ajouter la permission `geolocation` à leur manifeste. Le système d'exploitation demandera alors à la personne la permission d'accéder à l'emplacement lors de la première fois.

Concepts et utilisation
-----------------------

On souhaite parfois utiliser les informations géographiques d'une personne, par exemple pour indiquer son emplacement sur une carte, ou pour afficher des informations pertinentes par rapport au lieu actuel.

L'API *Geolocation* s'utilise en appelant `navigator.geolocation`. Cela va déclencher la demande de permission avec le navigateur. Lorsque la permission est donnée d'accéder aux données de géolocalisation, le navigateur utilisera le meilleur outil à sa disposition sur l'appareil pour déterminer cette position (par exemple, le GPS).

La position géographique peut alors être utilisée dans le code avec :

`Geolocation.getCurrentPosition()`

Qui récupère l'emplacement actuel de l'appareil.

`Geolocation.watchPosition()`

Qui enregistre une fonction de rappel qui sera appelée à chaque fois que l'emplacement évolue, en renvoyant la position à jour.

Dans les deux cas, ces méthodes utilisent jusqu'à trois arguments :

* Une fonction de rappel obligatoire pour les cas de succès.
    + Si la récupération des informations d'emplacement s'est déroulée sans problème, la fonction de rappel est appelée avec un seul paramètre qui est un objet `GeolocationPosition` qui fournit un accès aux données d'emplacement.
* Une fonction de rappel optionnelle pour les cas d'erreur.
    + Si la récupération des informations d'emplacement a échoué, la fonction de rappel est appelée avec un seul paramètre qui est un objet `GeolocationPositionError` qui fournit des informations sur l'erreur.
* Un objet optionnel qui fournit des options pour la récupération des données d'emplacement.

Pour plus d'informations sur l'utilisation de cette API, nous vous conseillons de lire le guide Utiliser l'API *Geolocation* (en-US).

Interfaces
----------

`Geolocation`

Il s'agit de la classe principale de cette API. Elle contient des méthodes pour récupérer la position actuelle, suivre les modifications de position, arrêter de suivre les déplacements.

`GeolocationPosition`

Représente la position d'une personne. Une instance de `GeolocationPosition` est renvoyée lors d'un appel réussi à l'une des méthodes de `Geolocation`, dans une fonction de rappel de réussite. Il contient un horodatage et une instance de `GeolocationCoordinates`.

`GeolocationCoordinates`

Représente les coordonnées de la position d'une personne. Une instance de `GeolocationCoordinates` contient les informations de latitude, longitude et d'autres informations importantes relatives à l'emplacement.

`GeolocationPositionError`

Un objet `GeolocationPositionError` est renvoyé par un des appels infructueux à l'une des méthodes de `Geolocation`, dans une fonction de rappel en cas d'erreur. Il contient un code d'erreur et un message.

`Navigator.geolocation`

Le point d'entrée pour cette API. Elle renvoie une instance de `Geolocation` à partir de laquelle on peut accéder aux autres fonctionnalités.

Exemples
--------

Voir le guide Utiliser l'API *Geolocation* (en-US) pour un exemple de code.

Spécifications
--------------

| Specification |
| --- |
| Geolocation API # geolocation\_interface |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

### Disponibilité

Comme la détermination de l'emplacement à partir des réseaux Wi-Fi souvent fournie par Google, l'API *Geolocation* de base pourrait être indisponible en Chine. Auquel cas, vous pouvez utiliser des fournisseurs tiers comme Baidu, Autonavi, ou Tencent. Ces services utilisent l'adresse IP de la personne et/ou une application locale pour déterminer l'emplacement.

Voir aussi
----------

* Utiliser l'API *Geolocation* (en-US)
* L'API *Geolocation* sur w3.org
* Billet sur le blog Hacks : Qui a déplacé ma géolocalisation ? (en anglais)