【IT168现场报道】移动化时代最重要的特征是什么?答案正是地理位置信息。手里拿着移动终端,打开应用程序,可以非常方便的查找吃喝玩乐的场所,这些地方都能够清楚的显示在地图上,极大的方便的人们的日常生活。毫不夸张的说,未来的生活服务应用将必备地理位置功能,而地图也将成为移动互联网的另一个重要门户。
如果您正在开发 Windows 8 平板电脑或双用型平板电脑的应用,那么您可以访问涉及传感器和位置的尖端硬件和软件服务。借助这些硬件功能,您可以进一步增加应用的价值,并使它们变得另人惊叹且大有裨益。
在Windows Phone 7开发中,使用GeoCoordinateWatcher核心类来调用AGPS,使用时需要引用System.Device库,并using System.Device.Location命名空间。
▲Windows phone/Windows 8中开放的定位接口
GeoCoordinateWatcher类的构造方法可以接收一个GeoPositionAccuracy的枚举类型的参数,枚举类型的成员有:1、Default(默认精度) 2、High(高精度,更耗流量)。
创建实例后,可以注册一个PositionChanged事件处理程序,然后调用Start方法。PositionChanged会传递一个GeoCoordinate对象,该对象有八个属性。
• Latitude , a double between –90 and 90 degrees 纬度
• Longitude, a double between –180 and 180 degrees 经度
• Altitude of type double 海拔
• HorizontalAccuracy and VerticalAccuracy of type double 水平精度和竖直经度
• Course , a double between 0 and 360 degrees 航向
• Speed of type double 速度
• IsUnknown , aBoolean that is true if the Latitude or Longitude is not a number
位置定位系统
通常情况下,一个标准的GPS接收器需要至少3颗GPS卫星才能进行3D定位。另外,还需要有足够的处理能力来把卫星的数据转换成坐标,使用AGPS定位方式,定位的计算任务都由辅助定位服务器完成。
使用Location Service能帮助开发者为windows Phone 开发具备位置感知(Location-Aware)功能的应用程序。比如很多导航的软件,查找附近吃饭、娱乐甚至厕所的应用程序,都是基于这个服务的。
通常有3种方法来获取设备的位置。GPS,移动网络基站位置和WiFi位置。下面的图是这三种方式的优缺点:
需要注意的是:windows phone会根据应用程序的需要选择一种或者多种方式来确定手机的位置。
三种方式确定位置的优点是有效的平衡电池的消耗与位置信息的准确性。
windows phone 为应用程序提供基于事件(event-driven)的统一接口。
使用地理位置服务的建议:
想办法减低电池的消耗;
a. 如果可以的话 使用那个较低准确率的数据源;
b. 当需要的时候打开地理位置服务,一旦使用完毕立刻关闭该服务。
设置准确率的门限值,减低更新频率;
使用状态更新事件(StatusChanged)监控服务状态,提醒用户状态的更新;
提醒用户初次启动地理位置服务时需要等待一段时间(15秒到120秒)。
使用位置服务
创建一个GeoCoordinateWatcher对象。
创建一个事件处理程序处理用户位置的改变。
在事件触发时抓取数据。
反应性扩展框架(Reactive Extensions)
Reactive Extensions能够帮助应用程序把多种可监控的外部事件转换成异步消息;
外部事件包括数据流(data streams),异步请求(asynchronous requests)和事件(event)等;
使用Reactive Extensions,当外部时间触发的时候,应用程序得到异步的更新消息(asynchronous requests);
Reactive Extensions允许应用程序使用查询(query)操作来对时间进行过滤。