管理层

geoWebcache rest api提供了一个RESTful接口,用户可以通过该接口添加、修改或删除缓存的层。

备注

建议不要使用JSON来管理层,因为JSON库存在许多多值属性问题,如“参数过滤器”。

层列表

网址: /gwc/rest/layers.xml

方法

行动

返回代码

格式

GET

返回可用层的列表

200

XML

POST

400

PUT

400

DELETE

400

以下示例将请求完整的层列表:

curl -u admin:geoserver "http://localhost:8080/geoserver/gwc/rest/layers"
<layers>
  <layer>
    <name>img states</name>
    <atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="alternate" href="http://localhost:8080/geoserver/gwc/rest/layers/img+states.xml" type="text/xml"/>
  </layer>
  <layer>
    <name>raster test layer</name>
    <atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="alternate" href="http://localhost:8080/geoserver/gwc/rest/layers/raster+test+layer.xml" type="text/xml"/>
  </layer>
  <layer>
    <name>topp:states</name>
    <atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="alternate" href="http://localhost:8080/geoserver/gwc/rest/layers/topp%3Astates.xml" type="text/xml"/>
  </layer>
 </layers>

层操作

网址: /gwc/rest/layers/<layer>.xml

备注

建议不要使用JSON来管理层,因为JSON库存在许多多值属性问题,如“参数过滤器”。

方法

行动

返回代码

格式

GET

返回层的XML表示形式

200

XML

POST

修改层的定义/配置

200

XML

PUT

添加新层

200

XML

DELETE

删除层

200

备注

缓存层有两种不同的表示,这取决于瓦片层是从geoserver wms层还是层组创建的。 (GeoServerLayer )或配置在 geowebcache.xml 作为常规GWC层 (wmsLayer )。地理服务器层称为 GeoServerLayer 并且不包含图像数据源信息,例如原始WMS URL。

陈述

  • GeoWebCache (wmsLayerXML minimal

  • GeoWebCache (wmsLayerXML

  • GeoServer (GeoServerLayerXML minimal

  • GeoServer (GeoServerLayerXML

下面的示例使用 cURL 工具,尽管示例适用于任何支持HTTP的工具或库。

添加geoWebCache层

以下示例将向geoWebcache添加新层:

curl -v -u admin:geoserver -XPUT -H "Content-type: text/xml" -d @layer.xml  "http://localhost:8080/geoserver/gwc/rest/layers/newlayer.xml"

这个 layer.xml 文件定义如下:

<wmsLayer>
  <name>newlayer</name>
  <mimeFormats>
    <string>image/png</string>
  </mimeFormats>
  <gridSubsets>
    <gridSubset>
      <gridSetName>EPSG:900913</gridSetName>
    </gridSubset>
  </gridSubsets>
  <wmsUrl>
    <string>http://localhost:8080/geoserver/wms</string>
  </wmsUrl>
  <wmsLayers>topp:states</wmsLayers>
</wmsLayer>

备注

地址资源 (newlayer 在本例中)必须与XML表示中的层名称匹配。

添加地理服务器层

以下示例将向geoserver和geoWebcache添加一个新层:

curl -v -u admin:geoserver -XPUT -H "Content-type: text/xml" -d @poi.xml  "http://localhost:8080/geoserver/gwc/rest/layers/tiger:poi.xml"

这个 poi.xml 文件定义如下:

<GeoServerLayer>
  <id>LayerInfoImpl--570ae188:124761b8d78:-7fd0</id>
  <enabled>true</enabled>
  <name>tiger:poi</name>
  <mimeFormats>
    <string>image/png8</string>
  </mimeFormats>
  <gridSubsets>
    <gridSubset>
      <gridSetName>GoogleCRS84Quad</gridSetName>
      <zoomStart>0</zoomStart>
      <zoomStop>14</zoomStop>
      <minCachedLevel>1</minCachedLevel>
      <maxCachedLevel>9</maxCachedLevel>
    </gridSubset>
  </gridSubsets>
  <metaWidthHeight>
    <int>4</int>
    <int>4</int>
  </metaWidthHeight>
  <gutter>50</gutter>
  <autoCacheStyles>true</autoCacheStyles>
</GeoServerLayer>

备注

地址资源( tiger:poi 在本例中)必须与XML表示中的层名称以及 现有的 地理服务器层或层组。

修改图层

此示例通过 layer.xml 文件。请求将参数过滤器和网格子集添加到现有的 tiger:poi 瓦片层:

<GeoServerLayer>
 <enabled>true</enabled>
 <name>tiger:poi</name>
 <mimeFormats>
   <string>image/png8</string>
 </mimeFormats>
 <gridSubsets>
   <gridSubset>
     <gridSetName>GoogleCRS84Quad</gridSetName>
     <zoomStart>0</zoomStart>
     <zoomStop>14</zoomStop>
     <minCachedLevel>1</minCachedLevel>
     <maxCachedLevel>9</maxCachedLevel>
   </gridSubset>
   <gridSubset>
     <gridSetName>EPSG:900913</gridSetName>
     <extent>
       <coords>
         <double>-8238959.403861314</double>
         <double>4969300.121476209</double>
         <double>-8237812.689219721</double>
         <double>4971112.167757057</double>
       </coords>
     </extent>
   </gridSubset>
 </gridSubsets>
 <metaWidthHeight>
   <int>4</int>
   <int>4</int>
 </metaWidthHeight>
 <parameterFilters>
   <floatParameterFilter>
     <key>ELEVATION</key>
     <defaultValue>0.0</defaultValue>
     <values>
       <float>0.0</float>
       <float>1.0</float>
       <float>2.0</float>
       <float>3.0</float>
       <float>4.0</float>
     </values>
     <threshold>1.0E-3</threshold>
   </floatParameterFilter>
 </parameterFilters>
 <gutter>50</gutter>
 <autoCacheStyles>true</autoCacheStyles>
</GeoServerLayer>

使用http post方法而不是put:

curl -v -u admin:geoserver -XPOST -H "Content-type: text/xml" -d @poi.xml  "http://localhost:8080/geoserver/gwc/rest/layers/tiger:poi.xml"

删除层

删除geoWebcache瓦片层将删除层配置 以及层的磁盘缓存 .删除图块层后,缓存目录中不会保留图块图像。

要删除层,请对层资源使用http delete方法:

curl -v -u admin:geoserver -XDELETE "http://localhost:8080/geoserver/gwc/rest/layers/newlayer.xml"

备注

如果尝试删除集成的瓦片层 GeoServerLayer ,仅删除geoWebCache层定义;geoServer定义保持不变。要删除geoserver中的图层,请使用geoserver REST 操作地理服务器资源。

另一方面,通过geoserver rest api删除geoserver层 will 自动删除关联的瓦片层。