【Silverlight】Bing Maps学习系列(二):通过Bing Maps Silverlight Control如何显示地图

简介:
 如本系列第一篇你所介绍的,开发基于Silverlight的Bing Maps除了开发环境还需要一个开发Key,这个Key是用来做什么的呢?Silverlight控件在做地图呈现的时候它是一个必不可少的参数,可以理解为微软Bing Maps为用户开通的一个授权开发密匙,本文试图通过一个简单的示例演练项目来学习Bing Maps控件如何使用这个Key来显示地图。
 
一、新建Silverlight应用及Silverlight承载应用
  我们从最简单的创建项目开始,首先创建一个空白解决方案,然后再方案里添加一新的Silverlight应用,同时为该Silverlight应用创建承载程序(通常为ASP.NET Web Application或ASP.NET WebSite),如下截图:
        
 
二、如何使用Bing Maps Silverlight Control显示地图
  打开Bing Maps Silverlight Control的本地安装目录,里面有两个.dll文件,分别为:Microsoft.Maps.MapControl.Common.dll和Microsoft.Maps.MapControl.dll,讲这两个库文件都引入到上面所建立的Silverlight项目中,然后打开MainPage.xaml的源试图,这是就可以通过名称空间将Bing Maps Silverlight Control引入到当前Silverlight页面,如下代码示例:
 1  < UserControl  x:Class ="BingMaps.MainPage"
 2      xmlns ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
 3      xmlns:x ="http://schemas.microsoft.com/winfx/2006/xaml"
 4      xmlns:m ="clr-namespace:Microsoft.Maps.MapControl;assembly=Microsoft.Maps.MapControl"
 5      xmlns:d ="http://schemas.microsoft.com/expression/blend/2008"  
 6      xmlns:mc ="http://schemas.openxmlformats.org/markup-compatibility/2006"  
 7      mc:Ignorable ="d"  d:DesignWidth ="640"  d:DesignHeight ="480" >
 8     < Grid  x:Name ="LayoutRoot" >
 9          
10     </ Grid >
11  </ UserControl >
 
  比如说我们将地图呈现在Grid中,就可以如下进行编码实现:
 1  < UserControl  x:Class ="BingMaps.MainPage"
 2      xmlns ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
 3      xmlns:x ="http://schemas.microsoft.com/winfx/2006/xaml"
 4      xmlns:m ="clr-namespace:Microsoft.Maps.MapControl;assembly=Microsoft.Maps.MapControl"
 5      xmlns:d ="http://schemas.microsoft.com/expression/blend/2008"  
 6      xmlns:mc ="http://schemas.openxmlformats.org/markup-compatibility/2006"  
 7      mc:Ignorable ="d"  d:DesignWidth ="640"  d:DesignHeight ="480" >
 8     < Grid  x:Name ="LayoutRoot" >
 9           < m:Map  CredentialsProvider ="AkzZURoD0H2Sle6Nq_DE7pm7F3xOc8S3CjDTGNWkz1EFlJJkcwDKT1KcNcmYVINU"   
10                 Width ="500"
11                 Height ="500" >
12           </ m:Map >
13     </ Grid >
14  </ UserControl >
15 
 
  在地图控件(Map)中的CredentialsProvider就是之前我们通过Bing Maps账户管理中心创建的开发所需的Key,通过Width和Height属性值确定地图控件将显示的宽度和高度。编译启动程序预览就可以发现,默认的地图(其他地图的开发在后续blog里会介绍)已经成功的通过Bing Maps Silverlight Control呈现出来了,如下图:
          
 
三、其他功能属性说明  
  如上图所示,地图左上方有地图的导航工具栏,我们可以通过Map控件的NavigationVisibility属性设置是否要显示该功能导航。
1  < m:Map  CredentialsProvider ="AkzZURoD0H2Sle6Nq_DE7pm7F3xOc8S3CjDTGNWkz1EFlJJkcwDKT1KcNcmYVINU"   
2         NavigationVisibility ="Collapsed"  Width ="500"  Height ="500" >
3  </ m:Map >
 
  也可以设置地图的显示模式,有路况模式(Road)、卫星模式(Aerial模式分显示路标和不显示路标两种模式),控件默认加载为路况模式,既Road模式,如下代码:
1  < m:Map  CredentialsProvider ="AkzZURoD0H2Sle6Nq_DE7pm7F3xOc8S3CjDTGNWkz1EFlJJkcwDKT1KcNcmYVINU"  Name ="map"
2          Width ="500"  Height ="500"  Mode ="Road" >
3  </ m:Map >
 
  设置Mode为“Aerial”则以卫星模式加载地图,Aerial是无路标的卫星模式,若要显示路标则需要使用“AerialWithLabels”加载地图。如下代码:
 
1  < m:Map  CredentialsProvider ="AkzZURoD0H2Sle6Nq_DE7pm7F3xOc8S3CjDTGNWkz1EFlJJkcwDKT1KcNcmYVINU"  Name ="map"
2          Width ="500"  Height ="500"  Mode ="AerialWithLabels" >
3  </ m:Map >
        
 
  我们还可以为路标设置缓慢效果,当鼠标指向路标的时候缓慢显示出路标,离开后缓慢隐藏路标。
< m:Map  CredentialsProvider ="AkzZURoD0H2Sle6Nq_DE7pm7F3xOc8S3CjDTGNWkz1EFlJJkcwDKT1KcNcmYVINU"  Name ="map"  
         Center
="37.806029,-122.407007" >
    
< m:Map.Mode >
        
< m:AerialMode  Labels ="True"  FadingLabels ="True"   />
    
</ m:Map.Mode >
</ m:Map >




本文转自 beniao 51CTO博客,原文链接:http://blog.51cto.com/beniao/253686,如需转载请自行联系原作者

目录
相关文章
|
Web App开发 定位技术 Windows
SuperMap iClient for Silverlight 加载天地图
  效果图如下: 上代码: ...
835 0
|
API 定位技术
解决ArcGIS API for Silverlight 加载地图的内外网访问问题
先上一个类,如下: public class BaseClass { public static string getFullUri(string oldUriString)...
779 0
|
API 定位技术
ArcGIS API for Silverlight 地图加载进度条类之MapProgressBar
ESRI之MapProgressBar类的API函数地址如下链接,具体属性和方法,请参考: http://help.
1064 0
|
前端开发 API 定位技术
ArcGIS API for Silverlight 鼠标移入移出地图要素弹出窗口(优化处理)
     在之前博客里的ArcGIS API for Silverlight 弹出框实例中,是通过点击地图要素,弹出框,但是由于没有控制元素个数,只是通过显示隐藏来进行的话,在鼠标移入和移出操作中,会出现鼠标移入的时候,总不能立刻弹出框,而是需要多次才行,用户体验较差,现在通过控制加入一个弹出框,移出时去除刚加入的弹出框,严格控制弹出框个数来实现。
1017 0
|
监控 前端开发 API
ArcGIS API for Silverlight 点击地图弹出自定义窗体
在之前的博客中,关于弹出窗体,样式比较单一,不能满足自定义各种样式,源连接地址:http://blog.
573 0
|
API 定位技术 图形学
ArcGIS API for Silverlight 地图中解决点众多的簇解决方法
1、通用类 #region 多点的簇显示 public class SumClusterer : GraphicsClusterer { public...
765 0
|
前端开发 定位技术 数据库
Silverlight Map 矢量地图构建过程分析
本文主要结合SQLSERVER2008的空间数据库的一些特性,讲解Silverlight在矢量地图绘制方面的一些技术点。服务器端负责提供数据服务,客户端负责图形的绘制,当然这个过程会遇到性能瓶颈,但本文的重点在于地图数据模型的转化过程,以及Silverlight的数据绑定与数据模型间的关系的理解。
827 0

热门文章

最新文章

下一篇
无影云桌面