关于像素、分辨率、DPI等术语,请参考:关于像素、分辨率、PPI、DPI等概念的分析
按照ArcGIS切图方案配置(Schemes)文件进行切图,成果包括:地图瓦片(缓存)和conf.xml、conf.cdi文件。
conf.xml存储了切片方案配置信息:
TileOrigin表示切片方案原点。
TileCols和TileRows表示单张切片所占的像素长度。
DPI表示切片图片的一英寸长度的像素数。
LODInfos里则存储了切片的各级信息。
PacketSize表示单个bundle文件里存储的行/列数。
Scale表示切片各个级别的地图比例尺。
LODInfo的Resolution表示的是地图上每个像素表示的实际长度(地图单位)。
conf.cdi存储了切片的范围
其他参数比较好理解,下面分析一下Scale与Resolution的关系。
Scale:地图比例尺,比例尺是表示图上距离比实地距离缩小的程度,也叫缩尺。公式为:比例尺=图上距离/实地距离。
Resolution:地图分辨率。表示当前地图范围内(一定的Scale条件下),1像素代表多少实际地图单位(N地图单位/像素),地图单位取决于数据本身的空间参考(平面坐标的单位是米,地理坐标的单位是度)。Resolution跟dpi(dpi代表每英寸的像素数)有关,跟scale有关。
1.如果地图的坐标单位是米
假设切图设置dpi=96,
那么,1英寸 = 2.54厘米 = 0.0254米 = 96像素
即 1像素 = 0.0254/96 米
公式:Scale = 1 : (96 * Resolution / 0.0254)
即Resolution = 0.0254 / (Scale * dpi) 地图分辨率跟比例尺和切图dpi有关
如果Scale =1:500,dpi=96
那么,Resolution =0.0254/ ((1/500)*96) =0.13229166666米,即图上1像素代表实地距离是0.13229166666米。
ArcGIS为了高精度,一般1英寸 = 0.0254000508米
2. 如果地理坐标系是WGS84,地图的单位是度
公式:Scale = 1 : (dpi * 2 * Math.PI * 6378137 * Resolution / 360 / 0.0254);
那么:Resolution = (360*0.0254) / (Scale * dpi * 2 * Math.PI * 6378137) ,
其中,
2 * Math.PI * 6378137 = 地球的周长,这里有一个常识需要讲解:赤道上经度的每度大约相当于111km,经度的每度的距离从0km到111km不等。它的距离随纬度的不同而变化,等于111km乘纬度的余弦。不过这个距离还不是相隔一经度的两点之间最短的距离,最短的距离是连接这两点之间的大圆的弧的距离,它比上面所计算出来的距离要小一些。
假设切图设置dpi=96
其中,1度 = 111194.872221777米;
如果Scale =1:500,
那么,Resolution = 0.13229166666米,即图上1像素代表实地距离是0.13229166666米。
将米换成度:0.13229166666/111194.872221777 = 0.00000118972度
即图上1像素代表实地是0.00000118972度