geoserver 更改 GeoWebCache缓存路径

1、GeoWebCache简介
GeoWebCache本质就是一种切图工具,可以单独下载进行配置使用,但是在geoserver1.7版本之后,geoserver本身集成了GeoWebCache这个模块,这次介绍的GeoServer版本为2.11.3

2、具体配置
在GeoServer安装目录中找到web.xml文件,具体在目录D:\Program Files (x86)\GeoServer\webapps\geoserver\WEB-INF下,打开web.xml文件,添加如下图内容,配置切片缓存存放的目录

    <context-param>
       <param-name>GEOSERVER_CACHE_IR</param-name>
        <param-value>你的GeoWebCache缓存目录</param-value>
    </context-param>

如果只想更改GeoWebCache缓存路径,执行这一步就可以了。

重新启动GeoServer服务,发现在配置切片缓存存放目录下多了以下几个文件

image.png

如果不进行配置,默认情况下切片存放目录在D:\Program Files (x86)\GeoServer\data_dir\gwc目录下
在后面进行切片,我使用默认目录来作为切片缓存目录
geowebcache.xml,这个文件是geowebcache的配置的关键所在,详细配置如下

<?xml version="1.0" encoding="utf-8"?>
<gwcConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:noNamespaceSchemaLocation="http://geowebcache.org/schema/1.2.2/geowebcache.xsd"
                  xmlns="http://geowebcache.org/schema/1.2.2">

  <!-- ============================== 全局设置 ======================================== -->

  <!-- 以下控制包含了自动更新,当你手动更新这些配置的时候,更新以上这些和命名空间 -->
  <version>1.2.1</version>
  <!-- 可选:这是对HTTP协议连接到WMS后端的全局超时设置。它由连接和传输这两方面决定,因此如果数据传回很慢的话,实际的超时发生的阀值可能比它更长一些 -->
  <backendTimeout>120</backendTimeout>
  <!-- 可选:如果设置为true,你可以添加cache=false来请求,那么他们可以使用无缓存的代理 -->
  <cacheBypassAllowed>false</cacheBypassAllowed>
  <!-- 可选:缺省情况下GWC显示简单的运行时统计数据在首页上 -->
  <runtimeStats>true</runtimeStats>
  <!-- 可选:使用一个HTTP用户名来请求,由于HTT客户端的设计包含了<a href="http://lib.csdn.net/base/javase" class='replace_word' title="Java SE知识库" target='_blank' style='color:#df3434; font-weight:bold;'>Java</a>,这个设置时全局的-->
  <httpUsername></httpUsername>
  <!-- 可选:以上用户名的密码 -->
  <httpPassword></httpPassword>

  <!-- ============================== 全局格式修改器================================ -->

  <!-- 可选:格式修改器,这些也可以通过对各个图层单独定义 -->
  <formatModifiers>
    <!-- 能够有一个和多个这样的元素 -->
    <formatModifier>
      <!-- 必要:应用于JPEG -->
      <responseFormat>image/jpeg</responseFormat>
      <!-- 可选:从后端的PNG请求时,阻止双重压缩 -->
      <requestFormat>image/png</requestFormat>
      <!-- 可选:透明度支持 -->
      <transparent>false</transparent>
      <!-- 可选:背景颜色 -->
      <bgColor>0x0066DD</bgColor>
      <!-- 可选WMS服务器使用的调色板 -->
      <palette>somepalette</palette>
      <!-- 可选:调节压缩等级,1.0是最佳质量 -->
      <compressionQuality>0.9</compressionQuality>
    </formatModifier>
  </formatModifiers>

  <!-- ============================ 网格设置(GRID SETS)============================= -->

  <!-- 可选:网格集合。如果这里没有任何设置,唯一可用的将是全球的EPSG:4326和EPSG:900913,另外,他将应用于所有为GetCapabilities配置而自动生成 -->
  <gridSets>
    <!-- 可以有一个或多个这样的元素 -->
    <gridSet>
      <!--必要:name,extent,SRS -->
      <name>The Entire World</name>
      <!-- 必要:SRS用于WMS请求,对所有那些没有指定grid set的服务,退回寻找的方法。目前,只接受EPSG代码,指定相应的数据 -->
      <srs><number>4326</number</srs>
      <!-- 必要:grid set的bounding box,可以设置为在给定可用SRS中最大值,然后在后面用gridSubset元素来限制它 -->
      <extent>
        <coords>
          <double>-180.0</double>
          <double>-90.0</double>
          <double>180.0</double>
          <double>90.0</double>
        </coords>
      </extent>
      <!-- 可选:选择网格是否使用左上角为起始点,缺省情况下是左下角为起始点 -->
      <alignTopLeft>false</alignTopLeft>
      <!-- 可选:缺省情况下,GWC将尝试匹配extent到一个瓦片,然后为每个子后继缩放等级四等分这个瓦片。除此之外,你可以指定特定的分辨率(resolutions)来组织。resolution的计算式按照每像素(pixel)的地图的(map degrees)度,那么180degrees/256pixel=0.703125 -->
      <resolutions>
           <double>0.703125</double>
           <double>0.3515625</double>
           <double>0.17578125</double>
      </resolutions>
      <!-- 可选:作为选择,可以使用比例尺(scale)作为分母的方式,OGC流行声明一个像素(pixel)=0.28mm,按此种方式计算。数值的顺序必须是降序(因为是分母 -->
      <scaleDenominators>
           <double>25000000</double>
           <double>2500000</double>
           <double>250000</double>
           <double>50000</double>
      </scaleDenominators>
      <!-- 可选:如果四分法足够好,但是你想限制缩放的等级,可以设置等级总数 -->
      <levels>20</levels>
      <!-- 可选:一个地图图元(1 map unit)的值在真实世界中的单位,用于大概的比例尺计算以及常常不是很精确。对于经纬度(lat/lon)应该使用地球周长(earth circumference)/360.0度(degrees)=111226.31。对于英尺(feet)应该用0.3048 -->
      <metersPerUnit>111226.31</metersPerUnit>
      <!-- 可选:单个像素表示一米的大小,OGC标准中WMS1.3.0和WMTS声明为0.28mm/pixel,相当于90.71428571428572DPI -->
      <pixelSize>0.00028</pixelSize>
      <!-- 可选:如WMTS之类的协议,支持命名的比例尺。如果要自定义名称,要确保和所定义的比例尺(scale)或分辨率(resolution)一致的顺序。 -->
      <scaleNames>
        <string>Low Resolution</string>
        <string>Medium Resolution</string>
        <string>High Resolution</string>
      </scaleNames>
      <!-- 可选:瓦片尺寸,以像素为单位 -->
      <tileHeight>256</tileHeight>
      <tileWidth>256</tileWidth>
    </gridSet>
  </gridSets>

  <!-- ===========================图层(LAYERS)================================= -->

  <layers>
    <wmsLayer>
      <!-- 必要:名称用于客户端请求对应图层,和WMS不同的是,它能够包含逗号,成为对图层组联合的请求 -->
      <name>Some Layer</name>
      <!-- 可选:元信息为人描述图层 -->
      <metaInformation>
        <title>A nice title for this layer</title>
        <description>A description of what this data displays</description>
      </metaInformation>
      <!-- 可选:指定图层支持的格式。缺省情况下,支持image/png和image/jpeg。其他可选包括image/png;mode=24bit,image/png24,image/png8,image/tiff,image/gif -->
      <mimeFormats><string>image/png</string><string>image/jpeg</string></mimeFormats>
      <!-- 可选:参考全局设置(global setting)中相同的名称 -->
      <formatModifiers>...</formatModifiers>
      <!-- 可选:缺省情况下,对EPSG:4326和EPSG:900913,图层时可用的。这种行为将被gridSubset指定的所覆盖,同时,这也可以指定一个图层只对一个grid的subset可用 -->
      <gridSubsets>
        <gridSubset>
          <!-- 必要:grid set的名称对图层默认的EPSG4326和EPSG900913可用,但是一下示例演示如何指向一个预先定义的grid set -->
          <gridSetName>The Entire World</gridSetName>
          <!-- 可选:grid subset的bounding box,可以缩小之前指定的范围,如果不指定,则保持最大范围(之前指定)-->
          <extent>
            <coords>
              <double>-60.0</double>
              <double>-70.0</double>
              <double>-20.0</double>
              <double>-80.0</double>
            </coords>
          </extent>
          <!-- 可选:缩放起始,以0为基点 -->
          <zoomStart>0</zoomStart>
          <zoomStop>25</zoomStop>
        </gridSubset>
      </gridSubsets>
      <!-- 可选:(1.2.2)更新源是数据传输,告诉GeoWebCache何时内容过期 -->
      <updateSources>
        <!-- 一个GeoRSS GML传输,参见http://www.georss.org/gml -->
        <geoRssFeed>
          <!-- 一个参数化的URL获取GeoRSS GML数据源,如果插入${lastUpdate}到URL,${lastUpdate}将替换最近一次从这个源处理过的更新的时间戳 -->
          <feedUrl>http://someserver/georss?layers=somelayer&lastupdate=${lastUpdate}&srs=EPSG:4326</feedUrl>
          <!-- grid set的id,数据源的geometries将以和这个grid set同样的SRS给出 -->
          <gridSetId>EPSG:4326</gridSetId>
          <!-- 查看源的频率,以秒为单位 -->
          <pollInterval>600</pollInterval>
          <!-- 可选:操作表现,默认是截断(删简?truncate)的 -->
          <operation>reseed</operation>
          <!-- 可选:默认格式与layer相同,但可以指定特殊形式 -->
          <format>image/png</format>
          <!-- 可选:如果操作不是截断的(truncate),指定线程数量可以并行处理。多格式就是并行处理。若此处设置线程书伟2,图层有3中格式(且GeoRssFeed没有指定格式),那么总共的线程数将是3*2=6 -->
          <seedingThreads>2</seedingThreads>
          <!-- 可选:GWC渲染geometries到bitmask,然后使用它决定哪个瓦片受到影响。每个像素代表一个瓦片,那么一个这样的bitmask必须对每个缩放界别创建。这个设置控制最大缩放等级的层次书,以及内存使用。10到12是一个较好的折中。二次抽样(subsampling)用于层次(levels),这里不包含。 -->
          <maxMaskLevel>11</maxMaskLevel>
        </geoRssFeed>
      </updateSources>
      <!-- 可选:(TODO, see XSD documentation) -->
      <requestFilters></requestFilters>
      <!-- 可选: (1.2.2) 当瓦片创建以后,提供基于ETags。注意大多数浏览器仅仅只是在由超出expireClients[List]定义的时间之后才调用它。默认这个特性是关闭的 -->
      <useETags>true</useETags>
      <!-- 必要:到WMS服务的一个或多个URL就像在后端一样的方法使用 -->
      <wmsUrl><string>http://yourserver/path/wms-service</string></wmsUrl>
      <!-- 可选:LAYERS=的值将被发送到后端服务器,如果没有指定,此图层元素的名字将被使用 -->
      <wmsLayers>layer1,layer2</wmsLayes>
      <!-- 可选:STYLES=的值将被发送到后端服务器,如果没有指定,将使用一个空字符串 -->
      <wmsStyles></wmsStyles>
      <!-- 可选:“元瓦片”(metatiling)元素用于此图层,如果未指定,3*3的“元瓦片(metatiling)”用于图像格式 -->
      <metaWidthHeight><int>3</int><int>3</int></metaWidthHeight>
      <!-- 可选:“沟(gutter间隔?)”用像素指定间隔,以及代表额外的在图像周边的padding,当瓦片创建完成后他们将被消除。对一些的WMS服务器有边缘效应(edge dffects)的话,那么可以擦除它,但是他同样对剪切的label造成影像。 -->
      <gutter>0</gutter>
      <!-- 可选:EXCEPTION=的值发送到后端服务器,同样可以使用vnd.ogc.se_inimage,但是在这种情况下,GWC将不能分辨来自于可用瓦片的错误。 -->
      <errorMime>application/vnd.ogc.se_xml</errorMime>
      <!-- 可选:VERSION=的值发送到后端服务器,默认版本是1.1.0 -->
      <wmsVersion>1.1.0</wmsVersion>
      <!-- 可选:TILED=的值发送到后端服务器,应该一般地省略 -->
      <tiled>false</tiled>
      <!-- 可选:TRANSPARENT=的值发送到后端服务器,一般设置为true,但是不适用于JPEG格式,但见formatModifiers -->
      <transparent>true</transparent>
      <!-- 可选:背景颜色以16进制表示,注意背景色和透明度是相互独立的 -->
      <bgColor>0xFF00AA</bgColor>
      <!-- 可选:PALETTE=的值,调色板的值发送到后端服务器,这个参数常常省略 -->
      <palette><palette>
      <!-- 可选:任何其他需要随每次请求发送到后端服务器的参数,如果需要,值应该是后缀在URL字符之下,用&amp分隔开。MapServer典型的参数如map= value,参数常常留有空白 -->
      <vendorParameters></vendorParameters>
      <!-- 可选:一个瓦片在服务器保持可用的秒数。后续请求将取回的结果是一个新的瓦片。默认是永久cache。参数列表应该常常以minZoom="0"开头,然后单调递增。特殊值:-1表示从不缓存,-2表示从不过期 -->
      <expireCacheList>
        <expirationRule minZoom="0"  expiration="14400" />
        <expirationRule minZoom="10" expiration="7200" />
      </expireCacheList>
      <!-- 可选:客户端从GWC收到瓦片之后,需要缓存的时间(秒为单位)。默认值使用和WMS服务器提供的过期时间相同。如果值不可用,缓存2小时,参见expireCacheList -->
      <expireClientsList>
        <expirationRule minZoom="0" expiration="7200" />
        <expirationRule minZoom="10" expiration="600" />
      </expireClientsList>
      <!-- 可选:参见全局backendTimeout描述 -->
      <backendTimeout></backendTimeout>
      <!-- 可选:选择是否客户端能够后续&cached=false参数,以及使用GWC为代理或者是作为服务翻译者(service translator) -->
      <cacheBypassAllowed></cacheBypassAllowed>
      <!-- 可选:是否此图层在getcapabilities文档中将可查询(query),以及代理getfeatureinfo请求到后端服务器。默认情况是false -->
      <queryable>false</queryable>
      <!-- 可选: (TODO, see XSD documentation) -->
      <paramaterFilters></parameterFilters>
    <wmsLayer>
  <layers>
</gwcConfiguration>

3、切图操作(方式一)
3.1 进入gwc页面
启动GeoServer后,在浏览器窗口输入地址:http://localhost:8080/geoserver/gwc/

image.png

3.2 选择需要切图的服务
点击list选项,可以看到能够进行切图的服务:


image.png

3.3 动态切图
点击需要查看的图层服务(openlayer:[png])

image.png

拖动图层,滚动鼠标滚轮,以不同zoom水平查看图层,可以发现在缓存目录下生成了对应的缓存切片


image.png
image.png

3.4 预切图
如果要实现将地图服务预先进行切片,可以点击要进行切图的图层下的Seed this layer:


image.png

Grid Set中可以设置切图方案,可以设置自己的切图方案,具体操作在后面介绍

点击submit按钮之后计算机便开始进行切图,可以通过Refresh list按钮查看当前切图进度和相关状况


image.png

如果要取消切图进程可以选择Kill选项,点击Submit终止切图操作


image.png

在缓存目录下可以看到预切图的结果


image.png

4、切图操作(方式二)
4.1 进入GeoServer切图页面
上面介绍的进入切图操作的方式是在浏览器输入地址http://localhost:8080/geoserver/gwc/,下面介绍从GeoServer中进入,启动GeoServer,

image.png

找到Tile Caching功能模块,该功能模块中包含了可以进行切图的图层服务,可以设置默认的切图选项,设置切图方案等。

点击Tile Layers可以列出可以进行切图的图层服务

image.png

4.2 配置切图方案
点击Gridsets选项创建切图方案,点击Create a new gridset可以创建新的切图方案,也可以点击现成的切图方案右侧的Create a copy复制一个方案,并在此基础上进行修改

image.png
image.png

在切图级别设置功能区可以添加删除一些切图等级,点击保存保存切图方案

image.png

点击保存之后,在gwc目录下可以看见新增的一个后缀为.bak的配置文件,就是切图方案的配置文件

image.png

4.3配置GeoWebCache缓存大小

几个选项,”Eanble disk quota”是否启动磁盘配置;“Disk quota check frequency”磁盘配置检测周期,默认为10秒;“Maximum tile cache size”缓存最大空间,默认为5MIB;”When enforcing disk quota limits, remove tiles that are:“按照什么方式执行磁盘回收,有两种方式:”使用次数最少”、“最近很少使用”。

image.png

4.4.“Caching Defaults”配置


image.png

“Provided Services”-“Enable direct integration with GeoServer WMS”

 直接集成是关于终端使用在WMS的GetMap请求。如果使用默认配置,你将不得不使用自定义终端告诉GeoServer你想去接收地图从缓存中。有效请求地址:

http://localhost:8080/geoserver/gwc/service/wms?
启用该配置,使用相同的语法你可以请求一个非缓存的图层:

http://localhost:8080/geoserver/<workspace>/wms?tiled=true
Apart
WMS-C

是Web Mapping Services Cached的缩写,它是终端查询瓦图的默认方法。如果禁用该选项,终端请求地址会报400错误。

http://localhost:8080/geoserver/gwc/service/wms

4.5 预切图
在切图之前需要将设置的切图方案添加到需要切图的服务中,点击Tile Layers选择需要切图的服务,再点击Tile Caching选项添加切图方案


image.png
image.png
image.png

点击Tile Layers选择需要切图的服务,点击Seed/Truncate可以进入切图设置页面,点击Empty可以清除之前存在的切图缓存


image.png

点击Seed/Truncate,进入与之前相同的切图界面,这里需要注意的是在Grid Set选项下可以选择之前设置的切图方案,剩下的操作与之前相同

image.png

————————————————
参考链接:
https://blog.csdn.net/qq_28418387/article/details/82823928
https://www.jianshu.com/p/fa0131c41eea
https://blog.csdn.net/jinxiumeihappy/article/details/89354142

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容