Google 地图切片URL地址解析
2013-11-05 09:08
537 查看
一、Google地图切片的投影方式及瓦片索引机制
1.Google地图采用的是Web墨卡托投影(如下图),为了方便忽略了两极变形较大的地区,把世界地图做成了一个边长等于赤道周长的正方形(赤道长度为6378137米),原点在正方形中心,即经纬度为(0,0)处。Web墨卡托投影的X,Y坐标取值范围为:[-20037508.3427892,20037508.3427892],对应的经度取值范围为[-180,180],对应的纬度范围则为[-85.05112877980659,85.05112877980659]。具体投影解释请参考GoogleMaps地图投影全解析:
2.Google 地图的索引机制是 TMS(Tile Map Service) 规范的一个变种,其地图瓦片如下图进行索引:
Google 瓦片坐标系:把地球投影后形成的正方形划分为2 的 level(缩放级别) 次幂个地图瓦片,原点在左上角,类似于像素坐标系;详细解释参见Google
Maps API 文档。
TMS瓦片坐标系:TMS与Google的地图瓦片分隔方法相同,不同的是TMS的原点在左下角,如图所示。
转换关系:TMS 与Google 坐标系的X 、Z是相等的,Y 的转换关系为:Y(TMS) + Y(Google) = Math.pow(2,zoom) - 1
注:关于投影和瓦片索引机制强烈推荐阅读:Tiles à la Google Maps: Coordinates, Tile Bounds
and Projection
二、Google地图瓦片地址解析
1.使用Google Chrome 打开Google地图界面,按F12打开 开发人员工具,如下图:由图片左侧的url地址可见,只要正确解析地址中的四个参数(x , y , z , s)就可以获取到地图瓦片了。
下面是本人的分析思路:
1.四个参数的含义:
x , y 是瓦片坐标系的坐标值,z代表缩放级别,s则共有八个字符:空字符和Galileo的七个字符。x , y 的值在 z 增加时会按级数递增,而s 的值很可能是 x , y , z 三个参数组合后的从 0 到 7 的一个索引值。
x , y , z 组合后与 8 求余即可得到 s 的值。
2.四个参数的关系:
当 x = 0 时,y 增 1 时,s会同时增 1,与 z 值无关。当 y = 0 时,x 增 1 时,s会同时增3 ,与 z 值无关。
从上面两条可以得出,x , y 很可能以 3*x + y 的方式组合,然后与 8 求余即得 s。
推测公式为:( 3*x + y )%8 = s
3.验证
随即抽取几个地址,取其中的 x , y , s代入第二步中的推测公式验证,果然如此。之后怎么折腾这些地址就看你了。影像地图只是前缀不一样而已。看来以后不用再为找合适的 Google 地图下载器折腾了,你懂的!
注:Google 地图使用了四个服务地址,即 http://mt ( 0 -3).google.cn/......,都是可以用滴。
地图:http://mt2.google.cn/vt/lyrs=m@177000000&hl=zh-CN&gl=cn&src=app&。。。
影像底图:http://mt3.google.cn/vt/lyrs=s@110&hl=zh-CN&gl=cn&src=app&。。。
影像的叠加层:http://mt3.google.cn/vt/imgtp=png32&lyrs=h@177000000&hl=zh-CN&gl=cn&src=app&。。。
注:暂时未发现 "&s=..." 的意义,url有无此后缀都不影响瓦片地址的访问。
扩展阅读:
1.墨卡托投影经纬度坐标与平面坐标的转换公式
后记:此文只是提供了一种方法,google 地图切片地址的算法及前缀都可能会不断调整。
三、GMap.NET
GMap.NET - Great Maps for Windows Forms & Presentation一个非常强大的开源地图项目(winform版),对于解析Google等地图服务的算法相当不错。
GMap.NET is great and Powerful, Free, cross platform, open source .NET control.
Enable use routing, geocoding, directions and maps from Coogle, Yahoo!, Bing, OpenStreetMap, ArcGIS, Pergo, SigPac, Yandex, Mapy.cz, Maps.lt, iKarte.lv, NearMap, OviMap, CloudMade, WikiMapia in Windows Forms & Presentation, supports caching and runs on windows
mobile!
分享到:
http://blog.csdn.net/mygisforum/article/details/7582449
相关文章推荐
- Google 地图切片URL地址解析
- Google 地图切片URL地址解析
- Google 地图切片URL地址解析
- Google 地图切片URL地址解析
- Google map EPSG:900913 地图分块算法、切片算法个人解析。一看就明白哈
- 也说Google卫星地图的URL地址的qrts编码算法
- 探寻最短的 Google 搜索结果 URL 地址
- HTML URL地址解析
- Google静态地图-如何显示两点之间路线2(url过长问题)
- Winform下的地图开发控件(GMap.NET)使用心得之三---批量解析地址经纬度坐标
- 百度地图经纬度转换+反地址解析+显示可视区域内标注点+地图自动刷新+标注的聚合
- 51地图实现地址解析:
- php解析字符串里所有URL地址的方法
- Google静态地图-如何显示两点之间路线3(url过长–路径简化-完结篇)
- 解析字符串形式的url地址
- 百度地图web开发,包括导入地图,定位,坐标转换,反地址解析
- 应用Jsoup解析给定的某个URL地址、HTML文本内容。
- 高德地图地址经纬度转化 URL
- 关于baidu,google,收录本网站的url地址,当地址是.html后缀的时候
- php解析二维码图片的URL地址