Windows phone 7 31天学习笔记 20:地图控件
原文地址:http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7c-Day-20-Map-Control.aspx上次讨论的推送通知将数据推送到手机上及时程序已经不再运行。本次,我们讨论控件,地图控件。地理位置服务现在变得越来越重要,对于用户来说知道自己在哪里也同样重要。
使用地图控件
作为默认控件箱的一部分,你只需要把它拖放到页面中。注意到,如下的代码也同样添加到了页面中:
xmlns:map="clr-namespace:Microsoft.Phone.Controls.Maps;assembly=Microsoft.Phone.Controls.Maps" 下面是我的示例:
最后,我们得带如下的图像: 你将会注意到,在空白部分,他说的是“未授权”。所以需要先申请一个账号。
申请开发账号
在开发地图程序之前是获取Bing地图API。这很简单并且免费,我们通过Bing Maps Protol进行注册。一旦完成你将需要创建API key。如下图:
完成以后得带如下的API:
AsWlUnHEvLgHlLHaRqTZLslewv1QIdGppxOqyL-7He2jxyHvLAjutrcntemUih-w9 使用认证控件
现在有了API Key,所以就需要把它嵌入到程序中,很简单,就像下面那样做:
如果想多次使用这个值,你需要保存他到系统的App.xaml文件中,如下,我提供了一个例子:
App.xaml
Map Control
改变地图控件属性
有很多设置需要了解。比如,从公路切换到天空模式或是决定时候需要显示缩放选择器。有很多独立的空间可以选择,在这里可以看到。没必要覆盖所有的内容,但是我想让你知道如何从地图上获得数据。我就爱那个会写两个简单的例子:添加一个图钉到地图、添加自定义图形到地图。
添加图钉到地图上
使用c#,添加一个图钉是很简单的,设置位置,添加到地图。xaml的方式更简单而使用c#更复杂。
XAML
C#
Pushpin pushpin = new Pushpin();
Location location = new Location();
location.Latitude = 40.1449;
location.Longitude = -82.9754;
pushpin.Location = location;
pushpin.Background = new SolidColorBrush(Colors.Orange);
pushpin.Content = "1";
pushpin.FontSize = 30;
MapControl.Children.Add(pushpin); 上边的代码会产生下面的效果:
如果你好奇如何将这些地址转化成坐标,可以在这里看到答案。
添加自定义XAML到地图
另一个空间是MapPolygon.通过提供一系列地址,他将会在地图上画出一个图形,这些将会保持并且展示在用户界面上。转化地理坐标很麻烦,所以简单点就用地区、国家等表示。
XAML
C#
MapPolygon mapPolygon = new MapPolygon();
mapPolygon.Fill = new SolidColorBrush(Colors.Purple);
mapPolygon.Stroke = new SolidColorBrush(Colors.White);
mapPolygon.Opacity = .7;
LocationCollection locations = new LocationCollection();
Location location = new Location();
location.Latitude = 40.1449;
location.Longitude = -82.9754;
Location location1 = new Location();
location1.Latitude = 40.1449;
location1.Longitude = -12.9754;
Location location2 = new Location();
location1.Latitude = 10.1449;
location1.Longitude = -82.9754;
locations.Add(location);
locations.Add(location1);
locations.Add(location2);
mapPolygon.Locations = locations;
MapControl.Children.Add(mapPolygon); 现在我们已经有这些了,然后我们将它添加到了地图上。从Bing SDK可以看到更多。
页:
[1]