Pour récupérer les coordonnées de géolocalisation d'un appareil vous avez 2 possibilités :
- utiliser
Geolocation.getCurrentPosition( PositionCallback, PositionErrorCallback, PositionOptions ), qui vous permet
de récupérer une fois les coordonnées.
- utiliser
Geolocation.watchPosition( PositionCallback, PositionErrorCallback, PositionOptions ), qui vous permet
de récupérer plusieurs fois les coordonnées et donc de suivre l'appareil.
Les paramètres passés aux deux méthodes fonctionnent de la même manière :
-
PositionCallback est appelé quand l'Api a trouvé les coordonnées de géolocalisation.
Exemple de code :
function PositionCallback( oPosition ){
//oPosition est un Objet Position
alert(oPosition.coords.latitude)
//Action
}-
PositionErrorCallback est appelé quand l'Api n'a pas pu trouver les coordonnées de géolocalisation.
Exemple de code :
function PositionErrorCallback( oPositionError ){
//oPositionError est un Objet PositionError
switch(oPositionError.code) {
case oPositionError.TIMEOUT:
//action
break;
case oPositionError.PERMISSION_DENIED:
//action
break;
case oPositionError.POSITION_UNAVAILABLE:
//action
break;
case oPositionError.UNKNOWN_ERROR:
//action
break;
default:
//action
}
}-
PositionOptions spécifie les options de la recherche.
Exemple de code :
var PositionOptions = {
enableHighAccuracy:false,
maximumAge:10000,
timeout:'Infinity'
}; Soit:
Exemple de code :
function PositionCallback( oPosition ){
//oPosition est un Objet Position
alert(oPosition.coords.latitude)
//Action
}
function PositionErrorCallback( oPositionError ){
//oPositionError est un Objet PositionError
switch(oPositionError.code) {
case oPositionError.TIMEOUT:
//action
break;
case oPositionError.PERMISSION_DENIED:
//action
break;
case oPositionError.POSITION_UNAVAILABLE:
//action
break;
case oPositionError.UNKNOWN_ERROR:
//action
break;
default:
//action
}
}
var PositionOptions = { enableHighAccuracy:false, maximumAge:10000, timeout:'Infinity' };
if((navigator.geolocation)){
var oGeolocation = navigator.geolocation;
oGeolocation.getCurrentPosition( PositionCallback, PositionErrorCallback, PositionOptions );
//ou
var idWatchPosition = oGeolocation.watchPosition( PositionCallback, PositionErrorCallback, PositionOptions );
}