Windows phone 7 31天学习笔记 13:地址服务
原文地址:http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7c-Day-13-Location-Services.aspx本文讨论地址服务,以及如何获取设备的地址服务。
为什么位置很重要?
当设备移动,他能够给你除了接近哪里之外更多有用信息。尤其当我们讨论关于手机位置,下面是一些例子:
地址文件应用
让我们假设我有一个程序包含数千个表格或是产品文件。在所有设备中,我需要搜索今天接触的用户,以及找到特定的办公室或是站点,然后传输给我他们的材料。
通过添加位置数据到程序中,我们不需要搜索用户。如果,文件已经被标记了地址,比如就近的地点,当我们接近时,特定的数据立即会被下载下来。如果我们可以对每一个设施加以标记,就可以知道所接近的设备。使用设备地址来决定数据时你的程序与地址信息交互的好例子。
高尔夫应用
我见过很多高尔夫应用通过输入得分跟踪足迹并分享数据给你的好友。我印象中有一个。
当程序启动,识别所处位置。同样列出就近的地址,但是不需要查找一堆。额外的,他知道你接近哪一个洞,以及不同地区距离。我见过的最酷的是,一杆接一杆的分析。每打出一杆,他就告诉我他在哪,当我前往球的落点时,它实际上在追踪我的挥杆距离。通过足够的数据,可以推荐我打哪一杆。的确很神奇。
理解位置服务
有三种方式回去位置信息。GPS,手机三角测量,wi-fi接口。下图是快速预览:
在担心比较三者数据之前,看下绿色的云。微软提供了一系列的位置服务。
Windows phone 7上使用位置服务
我已经写了足够多,但是没有任何代码,下面是最容易的方式来实现。跟着下面的步骤:
1 创建一个GeoCoordinateWatcher对象
2 创建位置百年华的接口
3 抓取数据
你也许想给用户提供更多的功能,下面只是一个简单的例子:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using System.Device.Location;
using Microsoft.Phone.Tasks;
namespace Day13_LocationServices
{
public partial class MainPage : PhoneApplicationPage
{
GeoCoordinateWatcher gcw;
// Constructor
public MainPage()
{
InitializeComponent();
gcw.PositionChanged += new EventHandler>(gcw_PositionChanged);
gcw.Start();
}
void gcw_PositionChanged(object sender, GeoPositionChangedEventArgs e)
{
Latitude.Text = e.Position.Location.Latitude.ToString();
Longitude.Text = e.Position.Location.Longitude.ToString();
}
}
}
在前面我们的模拟器实际上已经能够获取地址数据,运行上面的代码,你将不会得到任何数据。然而,使用我们的交互插件,你将会同样可以模拟数据。
在MSDN有一篇文章说明这个问题
页:
[1]