【Silverlight】Bing Maps学习系列(八):使用Bing Maps Silverlight Control加载自己部署的Google Maps
来源:互联网 发布:怎么看网络计划图 编辑:程序博客网 时间:2024/05/18 00:18
首先回顾下Bing Maps Silverlight Control是如何加载Google卫星地图,其原理就是为Google卫星地图定制一个TileSource,在这个TileSource里实现加载Google卫星地图的算法,主要就是构造正确的TileSource映射Url,此Url的格式可以通过HttpWatch等HTTP嗅探器工具抓取分析得到。
1 publicclass 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 publicpartialclass 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 publicclass 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 }
- 【Silverlight】Bing Maps学习系列(八):使用Bing Maps Silverlight Control加载自己部署的Google Maps
- 【Silverlight】Bing Maps学习系列(八):使用Bing Maps Silverlight Control加载自己部署的Google Maps
- 【Silverlight】Bing Maps学习系列(二):通过Bing Maps Silverlight Control如何显示地图
- 【Silverlight】Bing Maps学习系列(二):通过Bing Maps Silverlight Control如何显示地
- 【Silverlight】Bing Maps学习系列(二):通过Bing Maps Silverlight Control如何显示地图
- 【Silverlight】Bing Maps学习系列(七):使用Bing Maps的图片系统(Tile System)
- 【Silverlight】Bing Maps学习系列(七):使用Bing Maps的图片系统(Tile System)
- 【Bing Map学习系列】(6)——如何使用Bing Maps Silverlight Control绘制多边形
- 【Bing Map学习系列】(7)——如何使用Bing Maps Silverlight Control汇总
- Bing Maps & Bing Maps Silverlight Control中访问WMS笔记
- 【Silverlight】Bing Maps开发应用与技巧三:Bing Maps Silverlight Control的离线开发
- 【Silverlight】Bing Maps开发应用与技巧三:Bing Maps Silverlight Control的离线开发
- Bing Maps进阶系列六:使用Silverlight剪切(Clip)特性实现Bing Maps的迷你小地图
- Bing Maps进阶系列六:使用Silverlight剪切(Clip)特性实现Bing Maps的迷你小地图
- 【Silverlight】Bing Maps学习系列(三):如何控制地图
- 【Silverlight】Bing Maps学习系列(三):如何控制地图
- 【Bing Map学习系列】(2)——如何通过Bing Maps Silverlight Control显示地图
- 【Bing Map学习系列】(3)——如何通过Bing Maps Silverlight Control控制地图
- gbk, gb2312,big5,unicode,utf-8,utf-16之间的关系
- 临界区,互斥,信号量
- 关于onKeyDown方法
- tomcat 内存不足 溢出
- Java Http连接中(HttpURLConnection)中使用代理(Proxy)及其验证(Authentication)
- 【Silverlight】Bing Maps学习系列(八):使用Bing Maps Silverlight Control加载自己部署的Google Maps
- Dynamic Programming
- 将矩阵键盘加入到QT4中使用
- AndroiJNI开发入门篇
- Android中Context详解 ---- 你所不知道的Context
- 删除重复列(注:表的ID数据类型是uniqueidentifier)
- android 动态菜单组件
- SQL Server ——表
- oralce 索引