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的项目
引用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
增加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了。
与其他Bing Maps控件一样,需要一个key把中间的版权信息去掉。这个key是免费申请的,可以参考我之前制作的视频。
Silverlight for Windows Phone 开发系列课程(15):Bing Maps控件
把key放到CredentialsProvider
<m:Map CredentialsProvider="请输入你的key" />
如下所示,增加了key以后,中间的版权信息就消失了。
操控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(显示模式,一个为卫星图,公路图等),中心点和缩放大小进行了修改,效果如下所示:
广告时间,更多的操作请参考我之前制作的视频。
地图服务
地图服务主要支持根据经纬度查询地址,根据地址查询经纬度,根据起始点和终点计算路线等。Bing Maps WPF控件的地图服务与Silverlight和Windows Phone上使用的版本一样,因为都是同一个WCF服务,所以请参考我的视频,调用地图服务部分。
在Surface2上的演示
实际上这个控件支持鼠标操作,例如滚动鼠标中间的转轮时会缩放地图。但是在Surface2上没有鼠标,平常我使用支持多点触碰的屏幕进行测试,但是如果没有多点触摸屏,我们也使用Surface2的sdk来模拟Pinch-to-Zoom(缩放)操作。下面讲述如何模拟该操作。
首先启动Surface Input Simulator,如下图
后点击按钮,这样鼠标操作就转变成touch操作了。首先在使用鼠标左键点击要放置手指的地方,手指变成红色,然后点击右键,手机会贴在该位置上,我存放了4个手指(模拟除大拇指以外的手指)在地图上,然后拖到第五个手指(模拟大拇指)来继续缩放,surface2支持42个手指同时操作。
演示到这里,随着Windows 8的发布(一起关注9月份的BUILD大会),基于触摸的程序会越来越流行,Surface sdk把WPF带入触摸的世界,大量地简化我们开发触摸设备的工作。
出处:http://procoder.cnblogs.com
本作品由Jake Lin创作,采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。 任何转载必须保留完整文章,在显要地方显示署名以及原文链接。如您有任何疑问或者授权方面的协商,请给我留言。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
2010-08-24 Windows Embedded CE 6 msmqadm工具的一个bug
2009-08-24 User Interface Technologies for Windows Embedded CE
2009-08-24 在PC上显示和操作Windows Mobile