3
以某種方式可以計算以km/h爲單位的設備速度嗎?HTML5/Javascript使用devicemotion/deviceorientation HTML5 API計算使用devicemotion/deviceorientation的設備速度
我想知道用戶是否在步行/跑步/不移動,我不能使用地理定位API,因爲它必須在建築物內工作。
以某種方式可以計算以km/h爲單位的設備速度嗎?HTML5/Javascript使用devicemotion/deviceorientation HTML5 API計算使用devicemotion/deviceorientation的設備速度
我想知道用戶是否在步行/跑步/不移動,我不能使用地理定位API,因爲它必須在建築物內工作。
當然可以。您從devicemotion事件獲得的加速度爲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);
應該這樣做。但我會小心,因爲手機中的加速度計不太準確;)