Windows 8 Bing Maps 开发
最近在学习windows 8 metro style app的开发,其中有用到bing maps的开发,本来对这个东西很熟悉(做过wp7上的maps开发)以为很容易就能上手,结果忙活了好几天,下面
是我在学习中的一点经验:
一:要注意自己系统和vs的版本。因为现在windows 8和上面的开发环境都没有出正式的发布版本,最新的是RTM,这是正式版本发布前的最后一个版本。一般现在常用的8开发有两套
东西:windows 8 RP + VS 2012 RP 和Windows 8 RTM +vs 2012 RTM。了解这些是很重要的,因为这些都不是正式版本,都不稳定,而且官方给不同版本的系统有不同的sdk,所以
在看别人的demo(包括官方的文档,因为有时候官方的代码有了更新但是他的文档没有做更新)时要注意,免得浪费无谓的时间。
二:下载bing maps的sdk,地址:http://visualstudiogallery.msdn.microsoft.com/bb764f67-6b2c-4e14-b2d3-17477ae1eaca。这个版本对应的是RTM版的SDK。要求是RTM的系统+RTM的VS(如果你是用的是RP,sdk的下载地址:http://visualstudiogallery.msdn.microsoft.com/0c341dfb-4584-4738-949c-daf55b82df58);安装这个sdk,安装完之后,会在vs项目中的引用中发现一个Bing Maps for C#,C++,or Visual Basic的应用。
如果你是用C++开发的,那可以直接跳过下面的字段,看三;
如果是C#开发,需要再添加一个引用(Microsoft Visual C++ Runtime Package):
它在add reference/windows/extensions下面.
因为bing maps是使用本地语言(C++,正是由于这个原因,在后面还会引起一个问题)开发的,所以我们需要添加一个库(可以把他理解成为了是用C++代码的运行时)。
三:申请一个bing maps key,地址是:www.bingmapsportal.com,这个是免费的,类型选择Metro style apps 就ok了
四:注意,一个metro style apps 在他的属性里面是默认选择any cpu的,但是我们知道,C++是本地语言,是不跨平台的,而我们的bing maps就是C++代码写的,所以需要修改项目的属性为x86或者Arm的一种
五:万事具备,这是官方msdn上面的描述,我们就可以开始像平时一样,将maps拖入page中了,点击运行...........
六:出事了,发现地图上面一个大大的stop的水印。当时我以为是我的key有问题,重新申请了key,但是还是不好用,没有办法,自己google,最后在一个国外论坛上找到答案:
现在有些地方是不支持bing maps的(不知道是不是bate的原因,至少在wp7的开发上没有这个问题,同时也提一句:在wp7时代,如果app中使用了bing maps是不能在中国市场中上架的!!!),要设置map的一个Homeregion属性为"Us",再次运行,问题解决。