使用Windows phone 8.1开发电子罗盘

罗盘,估计也不用我过多介绍,学过初中物理的都知道,不管是指南针,还是指北针,其本质就是用来辨别方向的。

操作电子罗盘伟感器也不复杂,主要就是两个角度:

1、当前方向与磁北的夹角;

2、当前方向与地北的夹角。

同时,我们也了解到,地理北极与地磁北极并不是重合的,存在地偏角。在读取电子罗盘数据时,可以优先考虑读取与地北极的夹角,如果读不到地北极的夹角,再读取磁北极的夹角数据。

CompassReading类(位于Windows.Devices.Sensors命名空间)封装了从电子罗盘所读到的数据。

1、HeadingMagneticNorth属性:获取当前方向与磁北的夹角度数。

2、HeadingTrueNorth属性:该属性获取的是真北夹角,即地理夹角。我们注意到它的类型为double?,即Nullable<double>,表明这个数值有可能为null,也就是说有可能获取不到地北夹角的值。在使用时,我们可以先判断地北角是否为null,如不为null就用这个值;如果为null就用磁北角的值。

3、HeadingAccuracy属性:表示罗盘读数的准确性,如果读数精度较高,其返回High。我们的应用程序可以在合适的时候检查这个属性是否为High,如果不是,可以考虑提示用户校准罗盘。

提到校准,不得不说一下的是,校准罗盘是不需要系统提示,应用也可以不提示。只是考虑到用户体验的问题,可以提示用户校准。校准方法很简单,不管你是使用WP自带的地图应用,还是其他第三方应用,或者你自己开发的应用。只要在使用到罗盘的地方,你拿着手机,在空中做几次“8”字形来回移动就可以了,不需要等待提示,只要在用到罗盘的地方就可以随时校准。

电子罗盘的API封装在Windows.Devices.Sensors.Compass类中,WP API中的所有传感器调用都很简单,首先获取到某个传感器类的实例,一般通过GetDefault方法(静态方法)就能返回,然后设置读取的时间间隔,以毫秒为单位,如果你希望每秒读一次数据,就把ReportInterval设置为1000,但是,这个时间间隔不能小于MinimumReportInterval属性指定的值,这个要注意,设置为20毫秒以上的间隔,效果都不错了,当然这要看你使用的实际情况了。

最后处理ReadingChanged事件,当有新的数据读到时,会引发该事件,并把新读到的数据传递给该事件,我们就可以从事件参数中获取最新的读数。

好了,理论永远都是抽象的,下面给大家看一下我做的一个简陋指南针,确实很简,希望大家莫笑,因为本人较菜,所以连主页上的罗盘也是用XAML直接画的。

先上一个效果图。

看吧,简陋吧,没办法,人穷就是这样,要简食素衣。指南针背景我是用几个圈圈画的,指示方向的指针是用Path元素画的。

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/extra/

时间: 2024-10-27 15:17:09

使用Windows phone 8.1开发电子罗盘的相关文章

Windows 8风格应用开发

Windows 8风格应用开发入门 一 开发工具安装及模拟器使用 Windows 8风格应用开发入门 二 创建调试应用 Windows 8风格应用开发入门 三 打包发布应用 Windows 8风格应用开发入门 四 FlipView数据控件 Windows 8风格应用开发入门 五 ListView数据控件 Windows 8风格应用开发入门 六 GridView数据控件 Windows 8风格应用开发入门 七 页面视图概览 Windows 8风格应用开发入门 八 贴靠视图 Windows 8风格应

Linux与Windows下的Java开发区别

在Linux系统中进行开发,和在Windows中进行开发相比较起来,即有优点,也有缺点.下面是我的一 些意见,欢迎大家讨论. 先来说说优势: 1.由Linux系统的本质决定的: Linux的本质有三点,一是开源,二是免费,三是和Unix是一个体系.大家都知道,重要的应用几乎都 是运行在Unix服务器上面的,这是因为Unix天生就是为服务器设计的操作系统,他的安全.高效是不用质 疑的,后来为了向桌面发展,出现了X Windows,当然,我们可以选择在启动系统的时候不启动X Windows ,抛去图

windows下JAVA敏捷开发环境搭建步骤教程

  编程开发环境搭建还是挺重要的,第一步是先要搭建环境,有了环境才能开展工作.本文我们来看看windows下JAVA敏捷开发环境搭建步骤. 整个软件项目分为四个环境 开发本地环境.开发环境.测试环境.IDC环境.和传统C++开发不一样的模式是多了第一个开发本地环境.这是为什么呢,因为目前大部分开发人员还是比较熟悉windows下开发.对于mac和linux下直接使用软件并且开发的中国开发者还是少之又少,这套架构就这个现状做出来的.如下是环境搭建架构图: 从环境来说: 一.开发本地环境.开发集成服

Windows Mobile设备常见开发任务

摘要:移动开发者社区开发杂志<Windows Phone应用开发专题 第一季>中我参与编写的部分,<Windows Mobile设备常见任务开发>.主要介绍了Windows Mobile中最常见的几个开发任务,如拨打电话.发送短信.联系人管理等等.此为索引页. 第四日 常用设备相关任务开发 序言 今天我们来了解一下在Windows Phone设备中,用托管代码进行常用任务的开发.本章所介绍的,是Windows Phone开发中最最常见的几个简单任务. 内容简介 本章主要包含三个小节

保护内网安全之Windows工作站安全基线开发(三)

本文讲的是保护内网安全之Windows工作站安全基线开发(三),保护Windows工作站免受现代的网络攻击威胁是一件非常具有挑战性的事情. 似乎每个星期攻击者们总有一些新的方法用来入侵系统并获取用户凭据. 本文涵盖了许多此类以及其他一些很不错的安全实践和配置. 保护Windows工作站: 1. 部署免费/几乎免费的Microsoft工具以提高Windows安全性: 部署Microsoft AppLocker以锁定可以在系统上运行的文件. 使用推荐的软件设置部署当前Windows版本的EMET.

保护内网安全之Windows工作站安全基线开发(二)

本文讲的是保护内网安全之Windows工作站安全基线开发(二),保护Windows工作站免受现代的网络攻击威胁是一件非常具有挑战性的事情. 似乎每个星期攻击者们总有一些新的方法用来入侵系统并获取用户凭据. 本文涵盖了许多此类以及其他一些很不错的安全实践和配置. 保护Windows工作站: 部署免费/几乎免费的Microsoft工具以提高Windows安全性: 部署Microsoft AppLocker以锁定可以在系统上运行的文件. 使用推荐的软件设置部署当前Windows版本的EMET. 部署L

保护内网安全之Windows工作站安全基线开发(一)

本文讲的是保护内网安全之Windows工作站安全基线开发(一),保护Windows工作站免受现代的网络攻击威胁是一件非常具有挑战性的事情. 似乎每个星期攻击者们总有一些新的方法用来入侵系统并获取用户凭据. 创建一个非常安全的Windows工作站的最佳方法是下载Microsoft安全合规管理器(当前版本为4.0),并在要为其创建安全基线GPO的操作系统版本下选择"安全合规"选项. 查看选项,根据需要进行更改,并导出为GPO备份(文件夹). 创建新的并且为空的GPO然后从SCM GPO备份

Windows Phone 8初学者开发—第21部分:永久保存Wav音频文件

原文 Windows Phone 8初学者开发-第21部分:永久保存Wav音频文件 第21部分:永久保存Wav音频文件 原文地址:http://channel9.msdn.com/Series/Windows-Phone-8-Development-for-Absolute-Beginners/Part-21-Permanently-Saving-the-Audio-Wav-File 系列地址:http://channel9.msdn.com/Series/Windows-Phone-8-Dev

微软发布预览版加快 Windows 8.1 的开发步伐

为了加快 Windows 8.1 的开发步伐,目前,微软已经决定直接在6月26日发布该版本的发行预览版(Release Preview),以保证最终版本可以在今年下半年上市,完成对 Windows 8的更新.       Windows 8 除了界面上的巨大变化之外,与2012年发布的几个测试版名称也与之前的 Beta.RC版存在巨大不同,分别命名为"开发人员预览版(Developer Preview)"."客户预览版(Customer Preview)"和&quo