一、概述
在OpenLayers中,地圖必須具有一個縮放級別的范圍,縮放級別可以用比例尺(scale)或者分辨率(resolution)表示。
比例尺——屏幕上1米代表多少地圖坐標單位;分辨率——屏幕上一個像素代表多少地圖坐標單位。
兩者的轉換關系是:scale = resolution * 72 * 39.3701(1米=39.3701英寸,1英寸=72像素)
地圖具有一個總的縮放級別,每個圖層可以有各自的縮放級別,這樣可以控制圖層只在合適的級別上顯示。
二、縮放級別范圍的確定方法
1、比例尺數組或者分辨率數組來確定(相鄰兩級之間不一定是2倍的關系,可以是任意值)。示例:
resolutions: [1.40625,0.703125,0.3515625,0.17578125,0.087890625,0.0439453125]
scales: [50000000, 30000000, 10000000, 5000000]
scales: [50000000, 30000000, 10000000, 5000000]
2、用最大分辨率(maxResolution)和縮放級別總數(numZoomLevels)確定,相鄰兩級是2倍關系
2.1最大分辨率的確定方法:
a. 直接指定maxResolution,例如:
maxResolution: 0.17578125
b. 直接指定minScale,例如:
minScale: 50000000
c. 由maxExtent確定(maxResolution需設置為‘auto’),例如:
maxExtent: new OpenLayers.Bounds(-180, -90, 180, 90),
maxResolution: "auto"
maxResolution: "auto"
2.2 縮放級別總數的確定方法:
a. 直接指定numZoomLevels,例如:numZoomLevels: 5
b. 由最大分辨率和最小分辨率的比值確定,最小分辨率同2.1有三種方法可以確定:
b.1 直接指定minResolution
b.2 直接指定maxScale
b.3 由minExtent確定(minResolution需設置為‘auto’)
如果指定的參數過多,導致縮放級別范圍不一致時,上述方法順序決定了OpenLayers確定縮放級別范圍的優先級。
