1.Level包含了一个resolution参数和一个scale参数
瓦片本身: 我们用arcgis切完图后,打开发布的服务或者打开config.xml配置文件,可以看到所切之图的相关配置。如图所示:
其中levels即为所切图的比例尺参数。每一层Level包含了一个resolution参数和一个scale参数。
Scale表示的是比例尺,即地图上的一厘米代表着实际上的多少厘米。例如地图上1厘米代表实地距离500千米,可写成:1 ∶ 50,000,000或写成:1/50,000,000。
Resolution表示的是分辨率。Resolution 的实际含义代表当前地图范围内,1像素代表多少地图单位(X地图单位/像素),地图单位取决于数据本身的空间参考。可见Resolution跟 dpi有关系(dpi代表每英寸的像素数),跟地图的单位也有关系。
2.行列号——瓦片存放地址的标识
在这里给大家再介绍一个GIS里的术语——行列号。我么可以这么想象,把一张矩形的地图,按照一定的规律(按照切图原点,切图范围,瓦片大小),分成了很多个大小相同的矩形,那么这个矩形所在位置,我么基本上是可以用Row和Col来表示出来。当然,如果我们了解影像金字塔这个概念,那么前面还要加上一个Level(影像级别),说通俗点就是你目前切割的这个矩形是属于整个影像中的哪一层的。
这里,我们先看看切完地图后,瓦片的存放路径,我以离散型瓦片(Exploded)为例:
这里的L06表示的是瓦片所在地图的级别,R00001179d表示的瓦片的行号,C0000a24e为瓦片的列号。这些数字是怎么算出来的,容我留着在后面的几章给大家一一来讲解。
不过这里我可以负责任的告诉大家,如果想知道行列号怎么换算,那么下面这个问题你必须知道答案。
屏幕上1像素代表实际距离是多少?
3.屏幕上1像素代表的实际距离是多少?
在计算瓦片的行列号之前,我们需要得到图上一像素代表实际距离多少米。现在假设地图的坐标单位是米,dpi为96 ; 1英寸=2.54厘米; 1英寸=96像素; 最终换算的单位是米; 如果当前地图比例尺为1:125000000,则代表图上1米等于实地125000000米; 米和像素间的换算公式: 1英寸=0.0254米=96像素 1像素=0.0254/96 米 则根据1:125000000比例尺,图上1像素代表实地距离是 125000000*0.0254/96 = 33072.9166666667米。
4.平面坐标系和经纬度坐标系中的比例尺
4.1平面坐标系中的比例尺
当数据库为平面坐标系统时,此时系统中所需的比例尺应该从scale中取得。因为原scale中表示的实际单位是厘米,而我们系统中需要的单位是米,所以在填写地图比例尺时,会将scale除以一百后再填写。更具第二节中描写,我们可以在系统中换算出1像素代表了多少米。
4.2经纬度坐标系中的比例尺
当数据库为经纬度坐标系统时,此时系统中所需的比例尺应该从resolution中取得。此时的resolution直接代表了地图上一像素等于实际中的多少度。
但是,因为代码中已经有了一个如第二节中所描述的一个转换算法,所以此时在填写数据库中比例尺时,需要将此算法逆向换算后再填入。
即:resolution*96/inch2centimeter
5.英寸转厘米所引发的问题
英寸转厘米的国际参数是:2.5399998,当利用天地图或者其他第三方非AGS切图的地图时,都可使用这个参数值。
但是,当用AGS所切之图时,此参数变成了:2.54000508001016。这可能是AGS自己内部定义的一个转换参数。
根据参数的不同,当我们换算经纬度坐标系下的比例尺时,要根据不同的参数来进行转换。当是AGS地图时,则为:resolution*96/2.54000508001016。
##8 .总结 在了解屏幕上1像素代表实际距离多少是怎么算出来之后,我们可以进入下一章节了——根据地理范围换算出瓦片行列号的原理。