【Silverlight】Bing Maps学习系列(八):使用Bing Maps Silverlight Control加载自己部署的Google Maps...

【Silverlight】Bing Maps学习系列(八):使用Bing Maps Silverlight Control加载自己部署的Google Maps

  上个月微软必应地图(Bing Maps)大中华区业务拓展经理acnchen发布了一篇《在必应地图SilverLight控件中加载其他地图(Google卫星图等)》的文章,里面详细介绍了如何实现加载Google卫星地图。本文要介绍的内容和这篇文章差不多,Bing Maps Silverlight Control除了可以加载外网的Google卫星地图,同样也是可以加载自定义的Google Maps地图数据的,包括卫星地图和路况地图。

 

  首先回顾下Bing Maps Silverlight Control是如何加载Google卫星地图,其原理就是为Google卫星地图定制一个TileSource,在这个TileSource里实现加载Google卫星地图的算法,主要就是构造正确的TileSource映射Url,此Url的格式可以通过HttpWatch等HTTP嗅探器工具抓取分析得到。

复制代码
 1  public   class  GoogleTileSource : TileSource
 2  {
 3       public  GoogleTileSource()
 4          :  base ( " http://khm{0}.google.com/kh/v=47&x={1}&y={2}&z={3} " )
 5      { }
 6 
 7       public   override  Uri GetUri( int  x,  int  y,  int  zoomLevel)
 8      {
 9           return   new  Uri( string .Format( this .UriFormat, x  %   4 , x, y, zoomLevel));
10      }
11  }
复制代码

 

 

  如上完成了对Google在线卫星地图数据的Url算法,在前端使用该TileSource就OK了。

复制代码
 1  public   partial   class  MainPage : UserControl
 2  {
 3       public  MainPage()
 4      {
 5          InitializeComponent();
 6 
 7          MapTileLayer tileLayer  =   new  MapTileLayer();
 8          GoogleTileSource gts  =   new  GoogleTileSource();
 9          tileLayer.TileSources.Add(gts);
10          myMap.Children.Add(tileLayer);
11           this .myMap.Mode  =   new  MercatorMode();
12      }
13  }
        
复制代码

 

   如上便实现了加载Google在线卫星地图,虽然实现了功能但是还是不够完美,如果我们没有联网就无法加载地图,这就需要我们自己部署地图数据,那如何实现加载自定义部署的地图数据呢?Google地图数据其实很简单,部署地图数据同样简单,只需要将地图数据通过Web服务器(如:IIS)部署好就行了。

      

      

 

  地图数据部署完备,接下来就可以基于自己部署的地图数据开发TileSource的Url映射算法,然后同加载Google在线地图数据一样的方式将自己部署的地图数据加载并呈现出来。修改上面加载在线地图数据的算法,让其适应于加载自己部署的Google Maps数据。

复制代码
 1  public   class  GoogleTileSource : TileSource
 2  {
 3       public  GoogleTileSource()
 4          :  base ( " http://localhost:5000/CQ_{0}/{1}-{2}.png " )
 5      { }
 6 
 7       public   override  Uri GetUri( int  x,  int  y,  int  zoomLevel)
 8      {
 9           int  port  =  Application.Current.Host.Source.Port;
10 
11           string  url  =   string .Format( this .UriFormat, (zoomLevel  +   1 ).ToString( " D2 " ), (y  +   1 ).ToString( " D6 " ), (x  +   1 ).ToString( " D6 " ), port);
12           return   new  Uri(url);
13      }
 
  再次编译运行上面的程序,可以看到已经成功的将自己部署的Google Maps数据加载并呈现出来了,爽~~~~~~。有了Google地图数据,自己部署就不用担心没有联网造成不能加载地图的麻烦了。
        
 
  如果你觉得上图的效果不是很好看,你可以给地图设置一个背景颜色,相对来说就好看多了,和在线的Google Maps显示效果是一样的。上面完成了加载自己部署的地图数据中的路况地图,其实我们也可以从自己部署的地图数据服务器上加载Google卫星地图,实现方式和加载路况地图一样简单,在此基础上只需要做小小修改就可以达到目的。在Google Maps地图数据中,路况地图和卫星地图的Tile Source算法是一样的,只是用了不同类型的图片而已,上面使用路径地图是:
复制代码
1  public  GoogleTileSource()
2      :  base ( " http://localhost:5000/CQ_{0}/{1}-{2}.png " )
3  { }
复制代码
复制代码

 

  要实现加载自己部署的地图数据服务器上的卫星地图,只需要将上面的Tile System的映射Url的地图图片类型修改为.jpg就行了,如下代码块:

复制代码
1  public  GoogleTileSource()
2      :  base ( " http://localhost:5000/CQ_{0}/{1}-{2}.jpg " )
3  { }
复制代码

 

 

   就这样就可以加载出卫星地图了,编译运行程序就会感觉到有的图层没有加载出来,这是由于TileSource的图片映射Url映射计算错误的原因,地图的不同方大级别的算法这里就不做介绍,希望通过本文抛砖引玉,引出更多更好更深入的技术文章。

 

相关说明

 本文属学习笔记文章,愿与有志者共同学习交流。欢迎转载,但请在明显地位标记本文的原文连接。  

作      者:Beniao     WebGIS开发群:75662563

文章出处:http://beniao.cnblogs.com/  或  http://www.cnblogs.com/

 

转载于:https://www.cnblogs.com/meimao5211/p/3278554.html

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Silverlight5_sdk.exe是微软公司发布的Silverlight 5的软件开发工具包(SDK)。Silverlight是一种用于创建丰富的Web应用程序和媒体内容的技术。该SDK提供了开发Silverlight应用程序所需的各种工具、库和文档。 Silverlight 5是Silverlight技术的最新版本,包含了许多新的功能和改进。开发人员可以使用Silverlight 5 SDK来创建支持高级图形、动画、媒体播放和3D视觉效果的网页应用程序。此外,Silverlight 5还增了对硬件速视频解码、多窗口和文件访问的支持,提供了更好的性能和用户体验。 Silverlight 5 SDK中包含了许多开发工具,如Silverlight XAML编辑器和调试器,可以帮助开发人员更轻松地创建和调试应用程序。SDK还包含了各种类库,如用于处理图形、音频、视频、网络通信等的类库,可以帮助开发人员快速构建功能强大的应用程序。 除了工具和类库,Silverlight 5 SDK还提供了丰富的文档和示例代码,以帮助开发人员学习如何使用该平台进行开发。开发人员可以参考SDK中的文档来了解Silverlight 5的各种特性和用法,并根据示例代码来进行实践和试验。 总之,Silverlight 5 SDK是一个完整的开发套件,为开发人员提供了一切必要的工具和资源,以便于他们使用Silverlight技术创建出色的Web应用程序和媒体内容。 ### 回答2: Silverlight 5 SDK是微软公司发布的一款软件开发工具包,用于开发和部署Silverlight技术的应用程序。Silverlight是一种跨平台和跨浏览器的应用程序开发框架,可用于创建富Internet应用和媒体内容。Silverlight 5 SDK包含了开发Silverlight应用程序所需的各种工具和组件,可以帮助开发者轻松地构建高性能、跨平台的图形用户界面。SDK中的工具包括了Silverlight项目模板、提供了丰富的控件和布局,以及类库等,可以快应用程序的开发和部署速度。此外,Silverlight 5 SDK还提供了强大的调试功能,可以帮助开发者快速定位并解决应用程序中的问题。通过Silverlight 5 SDK,开发者可以利用XAML和C#等编程语言来开发各种类型的Silverlight应用程序,例如富媒体应用、企业应用、数据可视化应用等。总而言之,Silverlight 5 SDK是一款功能强大的开发工具,可以帮助开发者快速地构建出优秀的Silverlight应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值