Est-il en quelque sorte possible de calculer la vitesse de l'appareil en km/h en utilisant devicemotion/deviceorientation HTML5 API? Je voudrais savoir si un utilisateur est en train de marcher, de courir ou de ne pas bouger et je ne peux pas utiliser l'API de géolocalisation car il doit également fonctionner à l'intérieur des bâtiments.HTML5/Javascript calculer la vitesse de l'appareil en utilisant devicemotion/deviceorientation
3
A
Répondre
3
que vous pouvez. l'accerlération que vous obtenez de l'événement devicemotion est en m/s².
var lastTimestamp;
var speedX = 0, speedY = 0, speedZ = 0;
window.addEventListener('devicemotion', function(event) {
var currentTime = new Date().getTime();
if (lastTimestamp === undefined) {
lastTimestamp = new Date().getTime();
return; //ignore first call, we need a reference time
}
// m/s²/1000 * (miliseconds - miliseconds)/1000 /3600 => km/h (if I didn't made a mistake)
speedX += event.acceleration.x/1000 * ((currentTime - lastTimestamp)/1000)/3600;
//... same for Y and Z
lastTimestamp = currentTime;
}, false);
devrait le faire. mais je ferais attention parce que l'accéléromètre dans les téléphones n'est pas si précis;)