Resolution:分辨率,一个像素所代表的地图单位。如一个像素代表10度,一个像素代表10米等。
Dpi:
1英寸所代表的像素
1英寸=0.0254米
1米=39.370078740157英寸
要算Scale就是算屏幕一米代表实际多少米。一米等于 1/0.0254英寸,然后通过英寸算出有多少像素。
1/0.0254*90.7142(DPI),算出一米等于多少像素后,再乘以resolution就可以算出实际长度。
也就是Scale=1:1/0.0254*DPI*Resulution
=====================================================================================
这里dpi是屏幕分辨率,0.0254是米与英寸的单位换算:
如果你带入上面代码的数值计算,公式是可以成立的。只是要注意三点:
1、代码中的scale在xml返回结果中的参数是<ScaleDenominator>,也就是说是比例尺分母。真正公式中的Scale应该是<ScaleDenominator>的倒数。
2、这里dpi带入90.71428571428571公式成立是因为该坐标系是EPSG:900913,若为EPSG:4326,则dpi应该是90.71428571428571*111194.65190665461376212444103004,后者是ArcGIS采用的经纬度单位1与米的转换系数。
3、这里dpi采用的是90.71428571428571是OGC WMTS规范中的数值