Bing Maps控件 for WPF和Surface 2

背景

        之前我们在Surface2上使用Bing map的时候,不得不使用WebControl+Bing Maps Silverlight Control的方式来完成,现在微软终于发布了Bing Maps WPF Control。我们可以使用原生的Bing Maps控件了。

 

下载Bing Maps WPF Control

      请到http://www.microsoft.com/download/en/details.aspx?id=27165下载并安装

 

如何使用Bing Maps WPF Control

      下面演示如何在Surface2项目中使用Bing Maps WPF Control。

 

下载并安装Surface2 sdk

      如果没有安装Surface2 sdk,请在http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=26716进行下载安装。

创建Surface2项目

      创建一个Surface2的项目

image

 

引用Microsoft.Maps.MapControl.WPF.dll

      增加对Microsoft.Maps.MapControl.WPF.dll的引用,该DLL可能位于Program Files或者Program Files (x86)下,例如C:\Program Files (x86)\Bing Maps WPF Control\Beta\Libraries

image

 

增加XML命名空间

    在Xmal文件中增加对Microsoft.Maps.MapControl.WPF引用的命名空间

xmlns:m="clr-namespace:Microsoft.Maps.MapControl.WPF;assembly=Microsoft.Maps.MapControl.WPF"

 

增加Map标签

    在内容网格(content grid)上增加一个Map标签,如下所示

<s:SurfaceWindow x:Class="SurfaceApplicationBingMaps.SurfaceWindow1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:s="http://schemas.microsoft.com/surface/2008"
    xmlns:m="clr-namespace:Microsoft.Maps.MapControl.WPF;assembly=Microsoft.Maps.MapControl.WPF"
    Title="SurfaceApplicationBingMaps"
    >
  <Grid>
        <m:Map/>
    </Grid>
</s:SurfaceWindow>

 

     现在启动一下程序,我们已经看到Bing Map了。

image

 

     与其他Bing Maps控件一样,需要一个key把中间的版权信息去掉。这个key是免费申请的,可以参考我之前制作的视频。

MSDN webcast《Silverlight for Windows Phone开发》系列视频

Silverlight for Windows Phone 开发系列课程(15):Bing Maps控件

 

      把key放到CredentialsProvider

<m:Map  CredentialsProvider="请输入你的key" />

     如下所示,增加了key以后,中间的版权信息就消失了。

image

 

操控Bing Maps控件

      幸运的是操控Bing Maps控件的方式与Bing Maps WPF与Silverlight和Windows Phone版本的一样,详情可以参考我的视频Silverlight for Windows Phone 开发系列课程(15):Bing Maps控件,下面简单演示一下如何操控Bing Maps控件。

<m:Map  CredentialsProvider="请输入你的key"  Mode="AerialWithLabels" Center="37.806029,-122.407007" ZoomLevel="16" />

     在上面的Xmal中,我把地图的Mode(显示模式,一个为卫星图,公路图等),中心点和缩放大小进行了修改,效果如下所示:

image

广告时间,更多的操作请参考我之前制作的视频。

 

地图服务

地图服务主要支持根据经纬度查询地址,根据地址查询经纬度,根据起始点和终点计算路线等。Bing Maps WPF控件的地图服务与Silverlight和Windows Phone上使用的版本一样,因为都是同一个WCF服务,所以请参考我的视频,调用地图服务部分。

在Surface2上的演示

       实际上这个控件支持鼠标操作,例如滚动鼠标中间的转轮时会缩放地图。但是在Surface2上没有鼠标,平常我使用支持多点触碰的屏幕进行测试,但是如果没有多点触摸屏,我们也使用Surface2的sdk来模拟Pinch-to-Zoom(缩放)操作。下面讲述如何模拟该操作。

       首先启动Surface Input Simulator,如下图

       image

      后点击image按钮,这样鼠标操作就转变成touch操作了。首先在使用鼠标左键点击要放置手指的地方,手指变成红色,然后点击右键,手机会贴在该位置上,我存放了4个手指(模拟除大拇指以外的手指)在地图上,然后拖到第五个手指(模拟大拇指)来继续缩放,surface2支持42个手指同时操作。

image

 

演示到这里,随着Windows 8的发布(一起关注9月份的BUILD大会),基于触摸的程序会越来越流行,Surface sdk把WPF带入触摸的世界,大量地简化我们开发触摸设备的工作。

posted @ 2011-08-24 11:01  Jake Lin  阅读(5585)  评论(9编辑  收藏  举报