现在的位置: 首页 > 综合 > 正文

google map的坐标系统

2014年04月05日 ⁄ 综合 ⁄ 共 1017字 ⁄ 字号 评论关闭

google map使用的是被定义为EPSG:900913的Spherical Mercator,他必须以米为单位。墨卡托投影是圆柱投影,投影结果使得两极极度变形,所以google放弃纬度85度以上的部分。经转换后,地球变成了一个正方形,maxextent为
[-20037508.342789244, -20037508.342789244, 20037508.342789244, 20037508.342789244]
该值(20037508.342789244)可由公式求得2 * math.pi * 6378137 / 2.0 (6378137为地球长半径)

使用这投影是为了更好的分割,因为google map默认将每个tile切分成256*256,所以整个地图需要是正方形的。那么开始切分了,初始化阶段也就是level为0,整个地图为一张 256*256的图片。那么level为1时,地图扩大一倍变成了512*512,也就是说变成了4张256*256的图片,以此类推,这样形成四叉树的结构。图片是按照z/x/y.extension的形式存储的,z为缩放级别,xy为坐标,google map的坐标原点是在左上角

那么有人要说level是怎么确定的呢?其实这就是比例尺,但跟通常意义上的比例尺不同,他称为resolution。比例尺是说实际物体跟地图之间的比例关系。而resolution是指单位像素所代表的单元格(units/pixel)。就像上面所说的初始的比例尺应该是
initialResolution = 20037508.342789244 * 2 / 256 = 156543.03392804062
每个像素代表156543.03392804062米。那么每增加一级,resolution就减一半,level为1时,resolution就为78271.516964020309。

google map除了有tile坐标系还有像素坐标系,他的坐标原点设在地图的左上脚,位于-180W,85N左右。横坐标为X,纵坐标为Y,google map api也有相应的类GPoint。在level0时,像素坐标为256*256,也就是一张tile的像素值。level1时tile扩大一倍,像素坐标也扩大一倍,为512*512。

可以参考以下表格

原文链接:http://blog.163.com/wwxwb_913/blog/static/9768536201061803058962/

抱歉!评论已关闭.