geoserver中的gwc瓦片如何起作用

geoserver中的gwc瓦片如何起作用  

在GeoServer的GeoWebCache中想结合切片进行加速。但是为了在速度和空间进行权衡,希望只对3-14层进行切片缓存,之上的实时渲染。听说GWC可以直接实现;而且缺省生成了正确的图片。但是最后预览时,却发现总是实时生成。这与所宣传的明显不符。

@RequestMapping(value = "/gwcrb", method = RequestMethod.GET)
protected String getImgPngUrl(HttpSession session,
@RequestParam(value = "x", required = true) long x,
@RequestParam(value = "y", required = true) long y,
@RequestParam(value = "z", required = true) long z,
@RequestParam(value = "layer", required = true) String layer,
@RequestParam(value = "s", required = false) String srs,
@RequestParam(value = "wks", required = false) String wks,
@RequestParam(value = "tile", required = false) String tile
)
{
if(null==wks||wks.isEmpty())
wks = "roadpub";

boolean bTile = false;
if(null!=tile && tile.equals("1"))
bTile = true;

if(null==srs||srs.isEmpty())
srs = bTile?"900913":"4326";

double[] bound = getBound(x,y,z,bTile);
String template0 = "redirect:http://localhost/geoserver/%s/wms?service=WMS&version=1.1.0&request=GetMap&layers=%s&styles=&bbox=%f,%f,%f,%f&width=256&height=256&srs=EPSG:%s&format=image/png&TRANSPARENT=TRUE";
String template1 = "redirect:http://localhost/geoserver/gwc/service/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&LAYERS=%s:%s&STYLES=&BBOX=%f,%f,%f,%f&WIDTH=256&HEIGHT=256&SRS=EPSG:%s&FORMAT=image/png&TRANSPARENT=TRUE";
String url = String.format(bTile?template1:template0, wks, layer, bound[0], bound[1], bound[2], bound[3], srs);

return url;
}

最终的结论其实是一句话:居然对应不同的URL而已。

转载自:https://blog.csdn.net/xyr05288/article/details/42674893

You may also like...