Suite à ce billet, j'ai exploré le blog de Mathieu et j'y ai trouvé une information sur la géolocalisation en JS.
En poursuivant mes recherches à ce sujet, j'ai trouvé un tutoriel fort intéressant: géolocalisation en HTML5.
Je me permet donc d'en mettre les grandes ligne ici (ce ne sont que des copier/coller)
Récupérer les coordonnées
Un système très simple permet d'obtenir les coordonnées. Le système gère la non-prise en compte de la géolocalisation par le navigateur, ainsi que le fait que l'utilisateur refuse de partager sa position.
if (navigator.geolocation)
navigator.geolocation.getCurrentPosition(successCallback, errorCallback);
else
alert("Votre navigateur ne prend pas en compte la géolocalisation HTML5");
function successCallback(position){
alert("Latitude : " + position.coords.latitude + ", longitude : " + position.coords.longitude);
});
function errorCallback(error){
switch(error.code){
case error.PERMISSION_DENIED:
alert("L'utilisateur n'a pas autorisé l'accès à sa position");
break;
case error.POSITION_UNAVAILABLE:
alert("L'emplacement de l'utilisateur n'a pas pu être déterminé");
break;
case error.TIMEOUT:
alert("Le service n'a pas répondu à temps");
break;
}
});
Suivre les déplacements
Ce petit code permet de suivre les déplacements de l'utilisateur
var watchId = navigator.geolocation.watchPosition(successCallback, errorCallback);
function stopWatch(){
navigator.geolocation.clearWatch(watchId);
}
Et le lien d'arrêt du suivi:
<a href="#" onclick="stopWatch()">Stop Watch</a>
La vitesse ! La boussole ! L’altitude !
Lorsque l’on récupère la variable position afin d’obtenir la latitude grâce à position.coords.latitude, on a accès à plusieurs autres attributs :
- position.timestamp, qui renvoie le timestamp de l’heure à laquelle a été mise à jour la position
- position.coords.altitude, qui correspond à l’altitude de l’utilisateur
- position.coords.accuracy, qui correspond à la précision des coordonnées
- position.coords.altitudeAccuracy, qui correspond à la précision de l’altitude
- position.coords.heading, qui correspond à l’angle compris entre 0 et 360° par rapport au Nord (ce n’est pas aussi précis que la boussole interne d’un smartphone)
- position.coords.speed, qui correspond à la vitesse de l’utilisateur par rapport à sa dernière position.
Derniers commentaires