如果你想搭建GeoWebCache,这个网址适合你http://geowebcache.org/docs/current/
如果你对GeoWebCache.XML涉及到的参数有不理解或理解不透的,这个网址适合你http://geowebcache.org/schema/docs
之前用GeoWebCache切图,在flex控件中显示发现字体非常的模糊,与存储在GWC服务器上的图片有差别,最后是发现pixelSize这个参数搞的鬼。
Pixel size在GeoWebCache的帮助文档的Gridsets and Gridsubsets一节中有提
A gridset is a global definition (i.e. not layer-specific) that specifies:
- A spatial reference system (EPSG code)
- A bounding box describing an extent, typically the maximum extent for the above reference system
- One of either a list of scale denominators, resolutions, or zoom levels
- The tile dimensions in pixels (which will be constant for all zoom levels)
- (Optional) Pixel size (to calculate scales). The default is 0.28mm/pixel, corresponding to 90.71428571428572 DPI.
首先先来说说分辨率和比例尺之间的关系,这对理解出错原因很重要。
分辨率 在GIS中所提到的分辨率,也称地面分辨率(Ground Resolution)或空间分辨率(Spatial Resolution),表示一个像素(pixel)代表的地面实际距离。 以谷歌地图为例:在缩放级别为 1 时,图片大小为4个 256*256 的图片,那么赤道上的空间分辨率为:地球赤道周长(实地距离)除以256*2(像素大小)。其他纬度上的分辨率则为:纬度圈长度/512。 因此可以看出,分辨率取决于两个参数:纬度和缩放级别。缩放级别决定了像素的多少,纬度决定了地面距离的长短。 因此谷歌地图某视图下的分辨率计算公式为(单位:米/像素):
F(X,Y):地图分辨率;
X:纬度值;
Y:缩放级别;
R:常量 6378137,表示地球半径,单位:米。
比例尺 比例尺通常以比率(如 1:10000 )来表示,表示图上距离与实地距离之比。例如 1:10000 表示图上 1cm 代表实际距离 10000cm,即100米。 由于比例尺起源较早,通常用(纸质)图上的距离衡量实际距离;而分辨率则通常用设备屏幕上的距离来衡量实际距离。而同一个地图视图,尺度是唯一的,比例尺和分辨率只不过是两种表示方法,因此它们是一一对应的。 比例尺与分辨率之间的换算公式如下:
Scale:地图比例尺;
Resolution:地图分辨率;
PPI:每英寸的像素点数。
其中 PPI,即 Pixel per Inch,即每英寸的像素点数(在不混淆情况下,也有用 DPI 来表示该参数);0.0254 为英寸和米的转换常数。
在 WMS 图层参数中有 bbox、height 和 width 这三个参数可唯一确定所请求的地理视图范围与缩放级别。bbox 指可视的地理范围,由4个边界值可确定中心点,而 bbox 的宽度(实地距离)除以 width(图片距离)即是 Resolution(分辨率)。但是没有 PPI,是不能确定 Scale (比例尺)的。换句话说,由 Resolution、Center、Width、Height 可唯一确定可视范围,但 Sclae无法确定。
所以如果之前在定义Gridset中你采用的是分辨率(resolutions),那么这个参数没有什么影响,如果你用的是比例尺(scaleDenominators),那么就要认真对待pixelSize这个参数了,从官方问当中可以看出,可选参数pixe size所对应的默认DPI为90.71428571428572,但现在的电脑默认的DPI为96,这就使得从GWC传入客户端的图片被缩小了,这样字体也与之变小。所以在Gridset中将pixeSize改为0.26458mm/pixel ,问题解决。