像指南针一样旋转时的旋转webkit问题

时间:2010-02-27 21:57:22

标签: javascript webkit compass-geolocation

这是我的简单功能('mycompass'是我体内的div)

function watchCompass() {

    var suc = function(a){       
        var r =a.magneticHeading;  
        document.getElementById('mycompass').style.webkitTransform  = "rotateZ("+-r+"deg)";  
    };
    var fail = function(){};
    var opt = {};
    opt.frequency = 50;
    timer = navigator.compass.watchHeading(suc,fail,opt);
}

出于某种原因,当指南针“轮”从0到360完成一次旋转时,它会回到0而不是“虚拟”361 ......等等。无法理解从0到360那里没有区别......

我不知道如何计算一种方法让顺时针和逆时针方向的车轮顺畅地旋转

提出这个问题的另一种方法是:

如何将我的目标从逆时针方向而不是顺时针方向从15度旋转到270度?我怎么能告诉我的剧本这个价值?

2 个答案:

答案 0 :(得分:2)

这是我的解决方法但是当轮度== -360或360

时我仍然有问题
var angle = 0;
var lastAngle = 0;




   function watchCompass() {

          var suc = function(a){
          var angle = roundNyc(a.magneticHeading);

       l1 = angle -  lastAngle;
       l2 = 360 - l1;

      if( Math.abs(l1) >=  Math.abs(l2)){ 

       r =   (lastAngle - l2) ; 

      }else{

       r =  angle ; 

      }    

       lastAngle = r;     
       l1 = 0;
       l2 = 0;

   document.getElementById('mycompass').style.webkitTransform = 'rotateZ(' + -r + 'deg)';

          };
          var fail = function(){};
          var opt = {};
          opt.frequency = 50;
          timer = navigator.compass.watchHeading(suc,fail,opt);
        } 

答案 1 :(得分:0)

同样,这是一个如何执行此操作的示例:http://gutfullofbeer.net/compass.html