介绍

全球定位系统(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; 

纬度= 3001
东经= 3114 ; 如果(!myPosition.Location.IsUnknown)
{ 
    纬度= myPosition。 Location.Latitude; 
    经度= myPosition.Location.Longitude; 
} 
client.ConvertLonLatPtToNearestPlaceAsync(Terra.LonLatPt 新的 { 
    纬度的纬度,经度=经度})的;


GeoCoordinateWatcher类在手机定位器是内置的类,我们用它来 使用位置属性的当前坐标

我添加了一些默认的坐标,因为在Windows Phone模拟器,没有任何定位装置,这样就不会得到正确的坐标。我添加了这些缺省值仅用于测试。最后,我们使用的Terra服务对象来搜索这个位置的名称。

景点

在我的工作中,我加了几个按钮来改变地图模式之间的空中,公路,街道,卫星,...... 等等,但我发现,这是不必要的,所以我删除了它的空间在屏幕上。

历史

这是第一个版本,我会尽快拿出更先进的功能。