`
gstarwd
  • 浏览: 1539052 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

【Silverlight】Bing Maps学习系列(七):使用Bing Maps的图片系统(Tile System)

阅读更多

目前包括微软必应地图在内的几乎所有在线电子地图(如:Google Maps等)都事先对地图图片(Tile)进行预处理,通过特定的算法将预处理过后的图片进行无缝的拼接,建立一套统一有规律、标准的地图映射系统。 Bing Maps地图映射、坐标系以及地图Tile编码体系映射,统称为必应地图图片系统(Bing Maps Tile System)。

  如果要了解Bing Maps的地图图片系统,可以看看下面这两片文章: 

     必应地图图片系统(Tile System)之一       

     必应地图图片系统(Tile System)之二

 

  了解了Bing Maps的Tile System,下面来看看如何使用Bing Maps的Tile System。首先要明确一点,地图的不同放大级别(ZoomLabel)的界面上显示的效果是又不同的多张图片组成,下面通过Tile System加载一张图片(http://images.cnblogs.com/cnblogs_com/beniao/BingMaps/China0.jpg )的示例来来证实这一说话。

<!-- <br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />--> 1  public  MainPage()
 2  {
 3      InitializeComponent();
 4      MapTileLayer tileLayer  =   new  MapTileLayer();
 5      LocationRectTileSource tileSource  =   new  LocationRectTileSource(
 6           new  UriBuilder( @" http://images.cnblogs.com/cnblogs_com/beniao/BingMaps/China0.jpg " ).Uri.ToString(),
 7           new  LocationRect( new  Location( 60 60 ),  new  Location( 13 140 )),
 8           new  Range < double > ( 1 16 ));
 9      tileLayer.TileSources.Add(tileSource);
10      tileLayer.Opacity  =   0.9 ;
11      myMap.Children.Add(tileLayer);
12       this .myMap.ViewChangeOnFrame  +=   delegate ( object  sender, Microsoft.Maps.MapControl.MapEventArgs e)
13      {
14           double  longitude  =   this .myMap.Center.Longitude;
15           double  latitude  =   this .myMap.Center.Latitude;
16  
17           this .tbLatitude.Text  =  latitude.ToString();
18           this .tbLongitude.Text  =  longitude.ToString();
19      };
20       this .myMap.Mode  =   new  MercatorMode();
21  }

 

   通过上面4---11行代码,实现通过Tile System加载一张图片到地图显示出来,通过运行程序可以发现,同一张图片在设置的地图界面上显示出了多张,这是为什么呢?就是上面所声明是:“地图的 不同放大级别(ZoomLabel)的界面上显示的效果是又不同的多张图片组成”,为了证实这一点我们可以通过HttpWatch等工具查看到详细的 http请求响应数据:

      

      

 

  在本文开头部分提到,Bing Maps地图数据就是通过Tile System编码映射将不同的图片组合在一起形成的一套完整的图片系统。下面我们将上面加载图片的地址修改下,比如加载中国地区的Bing Maps,首先我们需要找到中国地图所对应的Bing Maps的Tile System映射Url(可通过HttpWatch工具在http://cn.bing.com/ 得到)。

      

<!-- <br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />--> 1  namespace  UseTileLayers
 2  {
 3       public   partial   class  MainPage : UserControl
 4      {
 5           public  MainPage()
 6          {
 7              InitializeComponent();
 8               // 初始化一个Uri对象,指向中文必应地图的Tile系统
 9              UriBuilder tileSourceUri  =   new  UriBuilder( " http://r2.tiles.ditu.live.com/tiles/r{quadkey}.png?g=41 " );
10  
11              MapTileLayer tileLayer  =   new  MapTileLayer();  // 初始化一个图层
12              LocationRectTileSource tileSource  =   new  LocationRectTileSource(
13              tileSourceUri.Uri.ToString(),
14               new  LocationRect( new  Location( 60 60 ),  new  Location( 13 140 )),
15                   // 初始化LocationRectTileSource对象,设定显示范围及放大级别
16               new  Range < double > ( 1 16 ));
17              tileLayer.TileSources.Add(tileSource);  // 指定图层的TileSource
18              tileLayer.Opacity  =   0.9 ;
19              myMap.Children.Add(tileLayer);  // 将图层叠加在地图上
20  
21               this .myMap.ViewChangeOnFrame  +=   delegate ( object  sender, Microsoft.Maps.MapControl.MapEventArgs e)
22              {
23                   double  longitude  =   this .myMap.Center.Longitude;
24                   double  latitude  =   this .myMap.Center.Latitude;
25  
26                   this .tbLatitude.Text  =  latitude.ToString();
27                   this .tbLongitude.Text  =  longitude.ToString();
28              };
29               this .myMap.Mode  =   new  MercatorMode();
30          }
31      }
32  }

 

       

 

相关说明

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

作      者:Beniao     Bing Maps开发群:75662563

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

 

分享到:
评论

相关推荐

    Bing Maps开发手册中文电子版(B3)

    6. **图片系统**:深入理解Bing Maps的图片系统(Tile System),这有助于开发者更好地管理和加载地图瓦片,提高地图加载速度。 7. **自定义导航条**:通过自定义功能导航条(Custom Navigation Bar),可以为地图...

    bing maps control

    **Bing Maps AJAX Control 7.0** 引入了一系列新的特性,这些特性极大地增强了地图的可定制性和交互性: - **增强的地图样式自定义能力**:用户可以更灵活地调整地图的颜色、标记等元素。 - **支持更多的地图类型**...

    bing-tile-hive:Hing的Bing Tile支持

    bing-tile-hive 该存储库为Hive的提供支持。 大多数功能是,但是下面描述了一些不同之处。 除其他用途外,必应Bing磁贴可用于Hive等环境中的有效空间连接,而无需内置支持空间连接或空间索引。 用于空间连接 在像...

    Online Maps-v2.5.2.1.unitypackage

    •Other web services: Open Street Map Overpass API, Bing Maps Elevation API, Bing Maps Location API, HERE Routing API, Open Street Maps Nominatim, Open Route Service; •Additional Features: GPS (with ...

    Rotorz Tile System unity3d

    Rotorz Tile System通过引入瓷砖系统(Tile System),解决了这个问题。它允许开发者使用预设的瓷砖图形来拼接地图,这些瓷砖可以是简单的方形或六边形,也可以是自定义形状,以此构建出各种风格的2D游戏世界。 该...

    素材_tilemap素材_使用TileMap快速构造2D关卡_

    TileMap是2D游戏开发中的一个重要概念,它通过使用一系列重复或独特的“瓷砖”图像,按照特定的网格布局来构建游戏世界。这种技术可以创建出复杂的地形、建筑和障碍,同时保持较低的性能开销。 2. TileMap的工作...

    googlemaps:Google Maps Tile API的QtLocation插件

    通过插件机制,QtLocation可以支持不同的地图服务提供商,例如OpenStreetMap、Here、Bing Maps等,当然也包括Google Maps。 Google Maps Tile API是Google Maps服务的一部分,它允许开发者按需请求地图的瓦片图像。...

    MapTile切片工具

    MapTile是一款专为GIS(地理信息系统)用户设计的高效图片切片工具,它能够处理几乎所有的图片格式,并且用户可以根据需求自由设定切片等级。在WebGIS应用中,地图的加载速度往往受到单个图像文件大小的影响,Map...

    Halcon学习之七:改变图像的现实方式和大小.doc

    通过上述函数的组合使用,我们可以实现对图像的灵活操作,包括大小调整、裁剪和多通道图像的处理,从而优化图像以适应各种机器视觉应用的需求。这些功能在实际的检测、测量、识别任务中非常有用,能够帮助我们更有效...

    google-maps-coordinates-tile-bounds-projection

    Addressing tiles: same tile bounds with different indexes There are three main systems of tile adressing: Google XYZ, Microsoft QuadTree and from the open-source world comming TMS (Tile Map Service).

    TileMap地图游戏资源

    2. **TileMap数据结构**:TileMap由一系列的二维数组或矩阵表示,每个单元格对应一个瓷砖编号,这个编号引用了瓷砖集中对应的图像。通过改变这些数值,可以轻松地改变地图布局。 3. **地图编辑器**:为了方便创建和...

    mod_tile:使用mapnik渲染地图图块,并使用apache服务

    mod_tile和渲染该软件包含两个主要部分: mod_tile :一个Apache 2模块,用于交付地图图块。 renderd :一个使用mapnik渲染地图图块的守护程序。 它们一起可以有效地渲染和提供栅格地图图块,例如在光滑的地图中使用...

    google-static-maps-tile:给定一个中心地图坐标 Google Static Maps API 将用于加载给定区域中的地图图块

    例子 var googleStaticMapsTile = require ( 'google-static-maps-tile' ) ;googleStaticMapsTile ( { areaSize : '2560x2560' , center : '26.443397,-82.111512' , zoom : 12 , maptype : 'satellite' } ). on ( '...

    unity tile based map and nav插件

    Unity中的Tile Based Map and Nav插件是用于创建基于网格(Tile)的地图系统并实现导航功能的强大工具,尤其适用于角色扮演游戏(RPG)和其他需要复杂地形导航的游戏类型。这个插件结合了Unity的基础功能与自定义...

    (完整word版)X-tile-软件的操作流程.doc

    X-tile软件操作流程详解 X-tile是一款广泛应用于生物信息学和生物统计学领域的数据分析软件,主要用于生存分析和基因表达分析。下面是X-tile软件的操作流程详解: 一、数据准备 在使用X-tile软件之前,需要将...

    Tile-Studio地图编辑器

    9. **学习与进阶**:熟悉Tile-Studio的用户可以深入研究其文档、教程和社区资源,提升地图设计技巧,学习如何利用软件提供的工具和功能创造更具吸引力的游戏世界。 总之,Tile-Studio是一个强大的地图编辑工具,...

    Tile Studio 地图编辑器

    1. **瓷砖系统**:Tile Studio的基础是瓷砖库,它允许用户创建、导入和组织各种大小和风格的瓷砖。用户可以自由绘制、编辑每个瓷砖,并将其保存在库中,方便后续使用。通过瓷砖库,设计师可以构建出无缝的地图,同时...

    TILE STUDIO中文版

    这款软件的中文界面大大降低了学习曲线,让国内用户也能无障碍地使用高级设计功能。 在《TILE STUDIO中文版》中,我们可以找到以下几个重要的知识点: 1. **图形设计基础**:TILE STUDIO提供了全面的图形编辑工具...

    基于Tile Coding编码和模型学习的Actor-Critic算法

    在强化学习的仿真实验中,研究者们将Tile Coding编码与模型学习的Actor-Critic算法结合起来,通过一系列实验来验证算法的性能。实验结果表明,这种结合了Tile Coding和模型学习的Actor-Critic算法具有较好的性能。...

    Google Maps Tile Generator-开源

    一个Java应用程序/库,可以从多个数据源为Google Maps生成PNG瓦片叠加图像。 无效,因为有更好的选择:Java-http://geotools.codehaus.org/ PHP-http://www.mapserver.org/

Global site tag (gtag.js) - Google Analytics