温故知新
1. 概念
比例尺:图上距离比实地距离,以下用 S代表比例尺分母;
分级Zoom或Level:Google地图、百度地图等地图分级,某一特定Zoom或Level与当前图像分辨率无关,在指定纬度下,1个像素代表固定的实际距离(即地面分辨率)。(通俗举例来讲,无论你用1440*900的宽屏还是1024*768打开Zoom=18的地图,在北京的某个地方(纬度变化忽略不计的情况下)1个像素代表的实际距离是不变的。)参考:百度API-常见问题。另参考:Google18级北京=0.45米/像素;广州=0.54米/像素(注意此时Scale值=默认值,请参见释疑)。以下用R代表地面分辨率;
图像分辨率:PPI,像素每英寸(注意DPI与PPI的区别);参考:http://www.ransen.com/Articles/DPI/Default.htm,(建议参见国外的,国内的很多说的区别不值得参考,但较为同意http://zhidao.baidu.com/question/336472104.html),参见释疑;
2. 换算
常量1英寸=0.0254米;
S=(PPI*R)/0.0254,(其中R随纬度以及分级Zoom变化,R的值与Zoom成反比,即Zoom等级越高,地图越精细,R的值越小,注意R的值越小,分辨越精细;R的值一般情况下与纬度成反比,即纬度越高,R的值越小,原因可参见墨卡托投影http://www.bianceng.cn/Programming/extra/201106/27291.htm)
由此可见:http://bbs.arceyes.com/article-4-2.html这些博文属于误导,http://blog.csdn.net/mailtogst/article/details/6852798说明了ArcGIS加载Web地图的方式,但代码中的Scale设置是有问题的。
3. 释疑
A:Why同在北京,同一ZoomLevel下,比例尺依旧不是固定的数字?
从换算方式可得到,在R确定的情况下,S与PPI相关,即电脑采用不同的图像分辨率的情况下,S必然会发生变化。
B:Google静态图片的API Scale值的影响
Google静态图片的API,修改Scale=2,Size=1px*1px&Scale=1(比例尺S1,地面分辨率R1) VS Size=1px*1px&Scale=2(输出2px*2px,比例尺S2,地面分辨率R2),意思是同一范围大小的图片放大2倍,即S2= S1/2 (注意S为分母,即比例尺放大2倍),在PPI不变的情况下,同样R2=R1/2,即R2更精细,可结合Google Map API(https://developers.google.com/maps/documentation/staticmaps/),进行对比。注意:如果此时把这两张图片进行拉伸放到相同大小的绘图区域(1px*1px),此时他们的S和R相同。再加入Size=2px*2px&Scale=1(比例尺S3,地面分辨率R3)进行比较,S3=S1,R3=R1,但如果拉伸放入绘图区域(1px*1px),即缩小一倍,此时S3=2*S1;
C:点(Dot)与像素(Pixel)的区别(引用百度知道)
DPI中的点(Dot)与图像分辨率中的像素(Pixel)是容易混淆的两个概念,DPI中的点可以说是硬件设备最小的显示单元,而像素则既可是一个点,又可是多个点的集合。在扫描仪扫描图像时,扫描仪的每一个样点都是和所形成图像的每一个像素相对应的,因此扫描时设定的DPI值与扫描形成图像的PPI值是相等的,此时两者可以划等号。但在许多情况下,两者的区别是相当大的。比如,分辨率为1 PPI的图像,在300DPI的打印机上输出,此时图像的每一个像素,在打印时都对应了300×300点。在计算机显示器的运用上也存在类似问题,比如12英寸显示器的有效显示区域约200mm×160mm,如果荧光屏的光点直径为0.31mm,通过换算可知荧光屏上最大可显示的光点数为640(200÷0.31)×480(160÷0.31),相应的分辨率为80DPI。这个80DPI是这样来的:640Dot÷(200mm÷25.3995mm/Inch)≈80Dot/Inch或者 480Dot÷(160mm÷25.3995mm/Inch)≈80Dot/Inch。
在这种情况下,显示卡的显示模式最高可设置为640×480,这时1 Pixel由1 Dot组成。如把显示卡的显示模式调整为320×240,在显示一幅320×240的图像时,一个像素就要对应于四个光点。
通过这段描述,可知对于某一设备而言,DPI是设备的属性(对于显示器而言,如果不调整光点大小的情况下,DPI是固定的),PPI可根据显示模式(1440*900or 1024*768)等方式进行调整
待温故知新