免责声明:本文章由fengyun1989创作,采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。
Ps:这篇文章基于Rp版写的。在RTM版使用BingMap大同小异。
突然想在win8使用下Bing地图,遥想在Wp7的时候,使用Bing地图就是添加一个引用,然后在Page页面添加命名空间,这样地图就出来了。微软的基本都是一个套路,我估摸着在win8下也是如此。
那么就试试,试试就知道,发现不少问题。
1,首先考虑添加引用。在工程的引用目录,右键--添加引用。弹出的引用窗口,居然没有什么关于Bing可用的。而且就只有仅有的那么两个引用。在网上查找一番,才知道,还得安装Bing Maps for C#, C++, or Visual Basic (RP)。就是要安装一个插件似的。在网上搜到这么个插件。是vsix后缀的文件,只能用Vs的拓展管理器打开安装,折腾好一会,也没打开这个文件。那么只能从Vs里面找了。就在工具--拓展和更新里面。在联机里面的Visual Studio库里面搜索Sdk就行啦。然后安装。下面的图我是安装好了。
安装好了以后,就可以添加引用了。添加这么两个引用。
现在就可以使用Bing Map了。现在可以往MainPage.xaml里面添加这么个命名空间。
然后就能给在页面里面使用Bing地图了。
<bing:Map MapType="Birdseye" Credentials="AkzZURoD0H2Sle6Nq_DE7pm7F3xOc8S3CjDTGNWkz1EFlJJkcwDKT1KcNcmYVINU" Width="640" Height="480"/>
不过现在还不能运行。我们在设计器里面看到这么一句话。
看到这个我就郁闷了。Arm架构的居然用不了Bing地图。只能希望微软在正式版的时候能够改善了。后来发现64位系统的根本就不能使用BingMap。修改平台解决方案为x64压根就用不了地图。如果win8是64位系统的话,那么把平台解决方案修改为x86,编译能够通过,但是居然在启动画面程序就停在那了。不动了。Vs也没有啥出错提示。我觉得这个是win8系统的原因。
那么久改变编译的配置管理器了。把Any Cpu改为X86。
现在可以编译运行。出现了这么一个情况。。
我仔细对比了我的程序和微软的示例程序。代码没啥区别。仔细研究发现,这个异常就是Map这个标签引起的。我纠结了很久,也没有发现为什么。不过在这期间,我发现了一个折中的方法。
在拓展和更新的示例库里面找到示例下载。
然后可以新建项目的时候。选择如下:
这样就从示例模板里面新建了一个工程。选择MapStyle这个示例的话,该示例是最干净的。只是在mainPage里面有三个按钮和其三个点击事件。只要删除了就和自己新建的工程一样干净了。注意修改Map的那个Credentials属性,这个是在微软的Bing Maps(http://www.bingmapsportal.com)申请的一个key,没有这个你的地图就不能使用了。我文章中使用的这个key都是从网上搜到的代码中抠出来的。练习的时候使用下就好了。正式版软件就自己去申请一个吧,反正不用钱。
如果不能在设计器里面看到地图,就修改下配置管理器的Cpu选项.现在可以编译运行了。你就能看到地图了.
从示例工程中新建自己的工程,果然是方便了不少。不过,没弄懂我那个过程为什么就不行,我感觉是可以的,依然想不明白。知道的朋友麻烦告知下。
现在地图可以用了。我想,做一个Lbs这样的软件不在话下,现在Bing地图默认的地图也是中文的,不过,貌似在Wp7中有的TileSource等类没有了。想改变地图源好像就不行了。而且,微软的地图服务还是有些烂。搜个东西很多还得用拼音。。不过这类地图服务我想可以用Google或者百度。搜出来后在Bing Map上显示就行啦。唯一的遗憾就是Arm不能用地图。