Я использую javscript для создания компаса на веб-странице для устройств IOS и Android. Когда я обновляю страницу, я получаю точные показания севера, востока, запада и юга. Но если я немного двигаюсь, компас теряет след и указывает в неправильном направлении.
Вот мой код.
function init() {
var compass = document.getElementById('compassDiscImg');
if (window.DeviceOrientationEvent) {
window.addEventListener('deviceorientation', function(event) {
var alpha;
//Check for iOS property
if (event.webkitCompassHeading) {
alpha = event.webkitCompassHeading;
//Rotation is reversed for iOS
compass.style.WebkitTransform = 'rotate(' + alpha + 'deg)';
}
//non iOS
else {
alpha = event.alpha;
webkitAlpha = alpha;
if (!window.chrome) {
//Assume Android stock (this is crude, but good enough for our example) and apply offset
webkitAlpha = alpha - 270;
}
}
if (!alpha || alpha === NaN) {
return notSupported();
}
document.getElementById('compass').hidden=false;
alpha = alpha - 65;
compass.style.Transform = 'rotate(-' + alpha + 'deg)';
compass.style.WebkitTransform = 'rotate(-' + webkitAlpha + 'deg)';
//Rotation is reversed for FF
compass.style.MozTransform = 'rotate(-' + alpha + 'deg)';
}, false);
} else {
notSupported();
}
function notSupported() {
document.getElementById('compassDiscImg').style.display = 'none';
}
}
init();
В любом случае, чтобы сбросить значения компаса, а не просто зависеть от движений пользователя после того, как он изначально правильно находит абсолютные значения?
Спасибо