zoukankan      html  css  js  c++  java
  • phonegap入门8 Compass 罗盘

    很久没怎么更新博客了,不想写,不想弄,懒了.

    今天介绍一下Compass罗盘.

    Compass

    获得该设备的当前朝向.罗盘是一个检测设备方向或朝向的传感器,使用度作为衡量单位,取值范围从0度到359.99度。

    这个对象有几个方法:

    navigator.compass.getCurrentHeading(compassSuccess, compassError, compassOptions);

    获取罗盘的当前朝向

    compass.watchHeading 

    var watchID = navigator.compass.watchHeading(compassSuccess,
    					compassError, [compassOptions]);


    在固定的时间间隔获取罗盘朝向的角度。

    compass.clearWatch

    navigator.compass.clearWatch(watchID);


    停止watch ID参数指向的罗盘监视。

    这个跟前面介绍的Accelerometer 加速器比较类似,就不详细解释了.
    下面给段例子代码:

    <!DOCTYPE html>
    <html>
      <head>
        <title>Compass Example</title>
    
        <script type="text/javascript" charset="utf-8" src="js/cordova-2.6.0.js"></script>
        <script type="text/javascript" charset="utf-8">
    
        var watchID = null;
    
        // 等待Cordova加载
        document.addEventListener("deviceready", onDeviceReady, false);
    
        // Cordova加载完毕
        function onDeviceReady() {
        	navigator.compass.getCurrentHeading(function(heading){
        		 alert('Heading: ' + heading.magneticHeading);
        	}, function(compassError){
        		alert('Compass Error: ' + compassError.code);
        	});
            startWatch();
        }
    
        // 开始监听Compass罗盘
        function startWatch() {
    
            // 每隔3秒 获取一次Compass数据
            /**
             * options选项
             * 	frequency:多少毫秒获取一次罗盘朝向。(数字类型)(默认值:100)
             * 	filter:能够触发watchHeadingFilter success回调的罗盘改变度数(数字类型)
             * 		filter在某些设备上不支持具体参看文档
             */
            var options = { frequency: 3000 };
            watchID = navigator.compass.watchHeading(onSuccess, onError, options);
        }
    
        // 停止对Compass的监听
        function stopWatch() {
            if (watchID) {
                navigator.compass.clearWatch(watchID);
                watchID = null;
            }
        }
    
        function onSuccess(heading) {
            var element = document.getElementById('heading');
            element.innerHTML = 'Heading: ' + heading.magneticHeading;
        }
    
        function onError(compassError) {
            alert('Compass error: ' + compassError.code);
        }
    
    
        </script>
      </head>
      <body>
        <div id="heading">Waiting for heading...</div>
        <button onclick="startWatch();">Start Watching</button>
        <button onclick="stopWatch();">Stop Watching</button>
      </body>
    </html>



  • 相关阅读:
    【JavaScript】7-27 冒泡法排序 (20分)
    【JavaScript】7-26 单词长度 (15分)
    【JavaScript】7-25 念数字 (15分)
    【JavaScript】7-24 约分最简分式 (15分)
    自适应单本小说网站源码,基于bootstrap+dedecms。
    草根站长建站需要掌握或者了解的5种技术
    5个国内优秀网站设计案例分享
    (转)常用RGB色值表
    小波变换和motion信号处理(三)(转)
    小波变换和motion信号处理(二)(转)
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3041061.html
Copyright © 2011-2022 走看看