介绍
全球定位系统(GPS)将要流行的这些天,很多人都需要他们自己的手机上,尤其是游客。但是,许多开发人员不知道如何做全球定位系统(GPS)的出发点。
这是一个例子,在Windows Phone 7(从Microsoft)的新技术的GPS系统。它显示了如何使用在手机内置的定位您的位置。然后,显示这个位置上的Bing Maps(如谷歌地图,但Microsoft版本)。
背景
要使用Bing Maps,你必须得到一个兵的主要开发人员。为您的应用程序,它是一个独特的关键,因此,它是能够登录到Bing Maps。
当您注册一个Windows Live帐户,你可以得到这个关键,从Bing地图门户网站。
一旦你拿到钥匙,您可以将您的应用程序,并得到你想要的地图。之后,我们使用应用程序中的一个重要的服务-兵马俑的服务,可以得到一个文本上的经度和纬度的位置。您可以添加服务的项目名称上单击鼠标右键,选择“添加服务引用”。对于兵马俑的服务,你可以使用这个URL - http://msrmaps.com/TerraService2.asmx,然后把它添加到你的名字命名的,而进口的usings与。
这是官方网站:http://msrmaps.com/。
兵马俑的服务包括一些重要的方法工作的全球定位系统(GPS),如:
我们感兴趣的是“ ConvertLonLatPtToNearestPlace
“的方法,得到了地方的名字从它的坐标。
还有另一种方法(我们将不使用它),它的反向操作,这是' ConvertPlaceToLonLatPt
“。
使用代码
首先,让我们调查的XAML代码为地图的一部分。
折叠| 复制代码
我的地图 高度=“ 457“ 名称=“ mapBing的“ 宽度=“ 450“ 为CredentialsProvider =“ 密钥“ / >
然后你有你的地图的工作,你会发现,它会开始工作前,甚至在设计视图中部署和运行。现在的代码:
折叠| 复制代码
Terra.TerraServiceSoapClient客户端= 新 Terra.TerraServiceSoapClient();
这部分是下载的服务,我们创建一个对象。
折叠| 复制代码
公众网主页()
{
();
client.ConvertLonLatPtToNearestPlaceCompleted + =
= System.Windows.Visibility.Visible;
}
在构造函数中,我们创建了一个事件处理程序的ConvertLonLatPtToNearestPlaceCompleted
事件,这是提高服务时,得到的最近的位置,我们的坐标,然后在地图上的变焦按钮可见。
折叠| 复制代码
E)
{
txtResult.Text = e.Result;
mapBing.Center =的新 GeoCoordinate(经度,纬度),
mapBing.ZoomLevel = 10 ;
}
这是事件处理程序。输出结果文本块和中心在地图上的新坐标,然后我们要放大10倍的点在地图上。
现在,让我们看到按钮的click事件:
折叠| 复制代码
txtResult.Text = “ 载入中......“ ;
GeoCoordinateWatcher myWatcher = 新 GeoCoordinateWatcher VAR myPosition = myWatcher.Position;
纬度= 30。01,
东经= 31。14 ; 如果(!myPosition.Location.IsUnknown)
{
纬度= myPosition。 Location.Latitude;
经度= myPosition.Location.Longitude;
}
client.ConvertLonLatPtToNearestPlaceAsync(Terra.LonLatPt 新的 {
纬度的纬度,经度=经度})的;
GeoCoordinateWatcher
类在手机定位器是内置的类,我们用它来 使用位置
属性的当前坐标。
我添加了一些默认的坐标,因为在Windows Phone模拟器,没有任何定位装置,这样就不会得到正确的坐标。我添加了这些缺省值仅用于测试。最后,我们使用的Terra服务对象来搜索这个位置的名称。
景点
在我的工作中,我加了几个按钮来改变地图模式之间的空中,公路,街道,卫星,...... 等等,但我发现,这是不必要的,所以我删除了它的空间在屏幕上。
历史
这是第一个版本,我会尽快拿出更先进的功能。