必应地图 SDK扩展整合了 Windows 8.1 和必应地图的强大功能,以将最新的道路图和鸟瞰图合并到你的 Windows 应用商店应用中。必应地图现在有了针对Windows Store App的SDK,可以很方便的把Bing地图功能整合到自己的应用当中。最近参照官方说明文档操作了一下,果然比较好用,记录下经过以备日后使用。
操作系统: Windows8 Pro 64bit (RTM)
开发工具: Microsoft Visual Studio Professional 2012(RTM)
SDK: Bing Maps SDK for Windows Store apps
注:如果操作系统是Windows 8 Release Preview,需要安装对应的预览版用SDK Bing Maps SDK for Windows Store apps
在【工具】里找到【扩充功能和更新】

选取左侧的【线上】,之后在右上方中的搜寻输入【bing maps】就会显示第一个【bing maps sdk for windows store apps】并下载

安装完成后需重新啟动,再新增专案里就可以看见刚刚按装的【bing maps application】

center 取得或设置地图的中心点,center属性直视精度和纬度类型的
children bing maps控制项的子元素
language 获取或设定bing maps 所使用的语言
credentials 获取或设定bing maps 身分验证的key
zoomlevel 获取或设定地图的缩放级别,级别范围1~21
logovisibility 设置bing maps 的标誌,visibility标誌显示,coolapsed标誌隐藏
copyrightvisibility 设置bing maps 的版权讯息,visibility标誌显示,coolapsed标誌隐藏
maptype 设定bing maps 的地图显示模式
bing maps 的事件
viewchanged 地图改变时触发
targetviewchanged 目标区域改变时触发
bing maps的方法
setview 设置bing maps显示地图的区域,类似center属性
setheading 设置地图的显示方向
setzoomlevel 设置地图的缩放等级
2.创建Bing Map Account,并创建Bing Map Key
登录https://www.bingmapsportal.com,如果已经有了一个Windows Live ID,点击sign用Windows Live ID登录并创建Bing Map Account。
点击页面左侧[My Account]里的[Create or view keys],输入信息后点击Submit以创建Bing Map Key,创建完成后在画面下方可以查看到生成的Bing Map Key
是一个64位英数字符号混合的字串。
获取Bing 地图密钥
登陆https://www.bingmapsportal.com/
如果已经有Windows Live ID可以直接登录,如果没有先注册一个。
登陆后在左边导航栏中选择Create or view keys
在Create key 时Application type 需要选择Windows Store app
该地图密钥会在后面地图控件的属性Credentials中用到。没有正确的地图密钥地图控件将无法正常使用。
新项目这里取名叫“Win8BingMaps”
设置目标平台:
在Visual Studio 菜单栏中选择“生成”->"配置管理器"
将活动解决方案平台”设置为 x86 或 x64。我这边设置成x64后,在设计视图无法显示地图,但可以运行。x86一切正常。
设置截图如下:

六、添加Bing地图引用
在解决方案资源管理器中,右键单击“引用”并将引用添加到“Bing Maps for C#, C++, or Visual Basic”和“Microsoft Visual C++ Runtime Package”中。
截图如下:

七、设置位置功能
打开 Package.appxmanifest 文件并转到“功能”选项卡。 选择“位置”功能。要不然就不能使用定位功能了。

3.下载官方实例 Bing Maps C# LocationTracking Sample
程序运行前,需要先确认References中Bing Maps Application for Windows Store的参照正确无误。
在代码中全局搜索INSERT_YOUR_BING_MAPS_KEY字串,使用生成的Bing Map Key替换之。
在Solution Explorer窗口中右击Solution,从弹出菜单中选择Properties,将Configuration Properties中的Platform由ARM改为x64。
编译运行。
4.代码相关
要使用BingMap功能,最主要的就是Map控件,在XAML文件中定义入下:
[html] view plaincopy
<bm:Map x:Name="map" Credentials="INSERT_YOUR_BING_MAPS_KEY" Width="800" Height="450"/>
好了,这样应用中就有了最基本的Bing地图功能了,超简单吧。
下面是调整map属性的代码:
[csharp] view plaincopy
map.MapType = MapType.Road; //道路模式
map.MapType = MapType.Aerial; //航空摄影模式
map.MapType = MapType.Birdseye; //鸟瞰模式
map.Heading += 90; //逆时针旋转90度
map.Heading -= 90; //顺时针旋转90度
TimeSpan animationDuration = new TimeSpan(0, 0, 0, 0, 500); //设定延迟加载时间
map.SetHeading(map.Heading - 90, animationDuration); //旋转90度后延迟加载地图
接下来结合定位功能:
[csharp] view plaincopy
LocationIcon locationIcon;
Geoposition currentPosition = await geolocator.GetGeopositionAsync();
Location location = new Location(currentPosition .Coordinate.Latitude, currentPosition .Coordinate.Longitude);
map.SetView(location, 10.0f);
现在地图的中点就是当前的位置了。
在地图上添加图钉,XAML上直接定义:
[html] view plaincopy
<bm:Map ZoomLevel="10" Credentials="INSERT_YOUR_BING_MAPS_KEY" >
<bm:Map.Center>
<bm:Location Latitude="47.610039" Longitude="-122.342207" />
</bm:Map.Center>
<bm:Map.Children>
<bm:Pushpin>
<bm:MapLayer.Position>
<bm:Location Latitude="47.610039" Longitude="-122.342207" />
</bm:MapLayer.Position>
</bm:Pushpin>
</bm:Map.Children>
</bm:Map>
在代码中为制定坐标添加图钉:
[csharp] view plaincopy
MapLayer mPinLayer = new MapLayer();
map.Children.Add(mPinLayer);
LocationCollection mPolyShapeLocations = new LocationCollection();
mPolyShapeLocations.Add(new Location(15, -15));
mPolyShapeLocations.Add(new Location(30, -90));
mPolyShapeLocations.Add(new Location(-45, -15));
mPolyShapeLocations.Add(new Location(30, 90));
mPolyShapeLocations.Add(new Location(60, 60));
for (int i = 0; i < mPolyShapeLocations.Count; i++)
{
Pushpin pin = new Pushpin();
pin.Text = i.ToString();
mPinLayer.Children.Add(pin);
MapLayer.SetPosition(pin, mPolyShapeLocations[i]);
}
结合上面的代码,设定图钉后,再在各个指定坐标间连线:
[csharp] view plaincopy
MapLayer mPinLayer = new MapLayer();
map.Children.Add(mPinLayer);
MapShapeLayer mShapeLayer = new MapShapeLayer();
map.ShapeLayers.Add(mShapeLayer);
LocationCollection mPolyShapeLocations = new LocationCollection();
mPolyShapeLocations.Add(new Location(15, -15));
mPolyShapeLocations.Add(new Location(30, -90));
mPolyShapeLocations.Add(new Location(-45, -15));
mPolyShapeLocations.Add(new Location(30, 90));
mPolyShapeLocations.Add(new Location(60, 60));
for (int i = 0; i < mPolyShapeLocations.Count; i++)
{
Pushpin pin = new Pushpin();
pin.Text = i.ToString();
mPinLayer.Children.Add(pin);
MapLayer.SetPosition(pin, mPolyShapeLocations[i]);
}
MapPolyline polyline = new MapPolyline();
polyline.Color = Windows.UI.Colors.Red;
polyline.Locations = mPolyShapeLocations;
mShapeLayer.Shapes.Add(mapShape);
至此,已经对Bing Map SDK 的安装和使用做了简单的说明,对于Metro App中内嵌Bing Map功能的需求,应该可以满足大部分的使用需要了。
开发者其他应用

七猫免费阅读小说最新版41.6M234049人在玩七猫免费阅读小说下载安装app,七猫免费阅读小说app不一样的小说阅读神器,这里有着海量丰富小说应用资源,你想看的小说通过强大搜索引擎一键搜索即可,主要的是阅读小说还能够获取红包现金奖励哦。
下载
奇热漫画app安卓版25.5M13451人在玩奇热漫画是一款非常不错的漫画阅读软件,具有很多强大的阅读功能,奇热漫画app实时为你更新全网最新最热的动漫资源。平台拥有海量精彩漫画,官方正版漫画
下载
奇热小说app24.8M234499人在玩安卓奇热小说app是专为众多爱看小说的人士提供的手机看小说的软件,省流量极速免费看小说,海量热门小说任你看,喜欢小说的小伙伴不要错过,赶快下载奇热小说网手机版客户端体验吧
下载
2022快看漫画App最新版69.0M51448人在玩2022快看漫画,相信许多玩微博的小伙伴们都已经知道这款APP了。吵架归吵架,至于这款快看漫画App到底做得怎么样,只有试过才知道!
下载
豆瓣阅读客户端app70.2M9579人在玩豆瓣阅读app是一款为豆瓣的用户们量身定做的APP,在豆瓣阅读这里你可以看到更加符合豆瓣用户喜好的各类文字作品,而且目前书籍依然在持续增长中。
下载
追书神器官方版70.1M19679人在玩追书神器2022最新版是一款超级强力的小说导读助手,目前几大热门的小说连载网站均有关联,你可以通过它方便地寻找自己喜欢的书籍。
下载
腾讯动漫71.9M13609人在玩腾讯动漫寒假档,许多大人们认为动漫就是小孩子看的东西,但是大概从80后开始,动漫就成为了许多人生活中的一部分,如果你喜欢看动漫,可以来腾讯动漫吧,这里有最新动漫更新视频
下载
书旗小说免费版本32.7M22553人在玩书旗小说免费版下载安装,书旗小说免费版本是一款以书旗网海量小说为基础的在线/离线阅读器,集合在线阅读、本地阅读、书包下载、自动书签、智能搜索、阅读设置等多项人性化功能。
下载
搜狗阅读器app19.5M6809人在玩搜狗阅读是搜狗公司依托于搜狗搜索的丰富资源,为安卓用户打造的移动阅读应用产品。搜狗阅读海量图书即搜即看,新闻大事掌握在手,更有离线缓存、精品推荐、更新提醒等功能,让您随时随地享受阅读的快乐。
下载
起点读书app新版本202237.2M11875人在玩起点读书app新版本,又名起点看书,是起点中文网推出的一款阅读软件。它支持本地阅读并提供起点在线书库,具备多种格式的解析阅读功能
下载