Skip to content

OGC服务介绍

简介

Geoserver实现了常见的OGC服务,如wmswfswmtstms服务等。

一、WMS服务

WMSWeb Map Service(网络地图服务)的缩写,是开放地理空间联盟 (OGC) 定义提供和使用动态地图时需遵守的国际规范。到目前为止,已发布了四个版本的 WMS 规范:1.0.01.1.01.1.11.3.0(最新)。

它是利用具有地理空间位置信息的数据制作地图,其中将地图定义为地理数据的可视化表现,能够根据用户的请求,返回相应的地图,包括PNG、GIF、JPEG等栅格形式,或者SVG或者WEB CGM等矢量形式。WMS支持HTTP协议,所支持的操作是由URL决定的。WMS服务主要支持以下操作:

  • 请求服务的元数据(GetCapabilities)
  • 请求地图图像(GetMap)
  • 请求关于地图要素的信息(GetFeatureInfo,可选)
  • 请求图例(GetLegendGraphic,可选)
  • 请求用户定义的样式(GetStyles,可选)

1. GetCapabilities

GetCapabilities允许客户端请求WMS显示其映射内容和处理能力。返回的结果是一个描述服务信息内容和可以请求的参数的XML文档。一个完整的GetCapabilities请求地址如下:

txt
http://localhost:8080/geoserver/lzugis/wms?
  service=WMS&
  request=getCapabilities&
  VERSION=1.3.0

上面的地址中,各参数与说明如下:

参数名称必选参数默认值备注
SERVICEYWMS参数值不可改
REQUESTYgetCapabilities参数值不可改
VERSIONN1.3.0

获取到的数据的大致结构如下:

xml
<WMS_Capabilities>
  <Service>
    <!-- -->
  </Service>
  <Capability>
    <!-- -->
  </Capability>
</WMS_Capabilities>

Service节点的内容如下:

xml
<Service>
  <Name>WMS</Name>
  <Title>GeoServer Web Map Service</Title>
  <Abstract>A compliant implementation of WMS plus most of the SLD extension (dynamic styling). Can also generate PDF, SVG, KML, GeoRSS</Abstract>
  <KeywordList>
    <Keyword>WFS</Keyword>
    <Keyword>WMS</Keyword>
    <Keyword>GEOSERVER</Keyword>
  </KeywordList>
  <OnlineResource xlink:type="simple" xlink:href="http://geoserver.org"/>
  <ContactInformation>
    <ContactPersonPrimary>
      <ContactPerson>Claudius Ptolomaeus</ContactPerson>
      <ContactOrganization>The Ancient Geographers</ContactOrganization>
    </ContactPersonPrimary>
    <ContactPosition>Chief Geographer</ContactPosition>
    <ContactAddress>
      <AddressType>Work</AddressType>
      <Address/>
      <City>Alexandria</City>
      <StateOrProvince/>
      <PostCode/>
      <Country>Egypt</Country>
    </ContactAddress>
    <ContactVoiceTelephone/>
    <ContactFacsimileTelephone/>
    <ContactElectronicMailAddress>claudius.ptolomaeus@gmail.com</ContactElectronicMailAddress>
  </ContactInformation>
  <Fees>NONE</Fees>
  <AccessConstraints>NONE</AccessConstraints>
</Service>

Capability节点的内容如下:

xml
<Capability>
  <Request>
    <GetCapabilities>
      <Format>text/xml</Format>
      <DCPType>
        <HTTP>
          <Get>
            <OnlineResource xlink:type="simple" xlink:href="http://localhost:8086/geoserver/easygis/ows?SERVICE=WMS&amp;"/>
          </Get>
          <Post>
            <OnlineResource xlink:type="simple" xlink:href="http://localhost:8086/geoserver/easygis/ows?SERVICE=WMS&amp;"/>
          </Post>
        </HTTP>
      </DCPType>
    </GetCapabilities>
    <GetMap>
      <Format>image/png</Format>
      <Format>application/atom+xml</Format>
      <Format>application/json;type=geojson</Format>
      <Format>application/json;type=topojson</Format>
      <Format>application/json;type=utfgrid</Format>
      <Format>application/pdf</Format>
      <Format>application/rss+xml</Format>
      <Format>application/vnd.google-earth.kml+xml</Format>
      <Format>application/vnd.google-earth.kml+xml;mode=networklink</Format>
      <Format>application/vnd.google-earth.kmz</Format>
      <Format>application/x-protobuf;type=mapbox-vector</Format>
      <Format>image/geotiff</Format>
      <Format>image/geotiff8</Format>
      <Format>image/gif</Format>
      <Format>image/jpeg</Format>
      <Format>image/png; mode=8bit</Format>
      <Format>image/svg+xml</Format>
      <Format>image/tiff</Format>
      <Format>image/tiff8</Format>
      <Format>image/vnd.jpeg-png</Format>
      <Format>text/html; subtype=openlayers</Format>
      <DCPType>
        <HTTP>
          <Get>
            <OnlineResource xlink:type="simple" xlink:href="http://localhost:8086/geoserver/easygis/ows?SERVICE=WMS&amp;"/>
          </Get>
        </HTTP>
      </DCPType>
    </GetMap>
    <GetFeatureInfo>
      <Format>text/plain</Format>
      <Format>application/vnd.ogc.gml</Format>
      <Format>text/xml</Format>
      <Format>application/vnd.ogc.gml/3.1.1</Format>
      <Format>text/xml; subtype=gml/3.1.1</Format>
      <Format>text/html</Format>
      <Format>application/json</Format>
      <DCPType>
        <HTTP>
          <Get>
            <OnlineResource xlink:type="simple" xlink:href="http://localhost:8086/geoserver/easygis/ows?SERVICE=WMS&amp;"/>
          </Get>
        </HTTP>
      </DCPType>
    </GetFeatureInfo>
  </Request>
  <Exception>
    <Format>XML</Format>
    <Format>INIMAGE</Format>
    <Format>BLANK</Format>
    <Format>JSON</Format>
  </Exception>
  <Layer>
    <Title>GeoServer Web Map Service</Title>
    <Abstract>A compliant implementation of WMS plus most of the SLD extension (dynamic styling). Can also generate PDF, SVG, KML, GeoRSS</Abstract>
    <!--All supported EPSG projections:-->
    <CRS>AUTO:4326</CRS>
    <CRS>AUTO:3857</CRS>
    <EX_GeographicBoundingBox>
      <westBoundLongitude>-180.0</westBoundLongitude>
      <eastBoundLongitude>180.00000033527613</eastBoundLongitude>
      <southBoundLatitude>-90.00000000000003</southBoundLatitude>
      <northBoundLatitude>83.6236001622701</northBoundLatitude>
    </EX_GeographicBoundingBox>
    <BoundingBox CRS="CRS:84" minx="-180.0" miny="-90.00000000000003" maxx="180.00000033527613" maxy="83.6236001622701"/>
    <Layer queryable="1" opaque="0">
      <Name>layer_china_boundry</Name>
      <Title>layer_china_boundry</Title>
      <Abstract/>
      <KeywordList>
        <Keyword>features</Keyword>
        <Keyword>layer_china_boundry</Keyword>
      </KeywordList>
      <CRS>EPSG:4326</CRS>
      <CRS>CRS:84</CRS>
      <EX_GeographicBoundingBox>
        <westBoundLongitude>73.44696044921875</westBoundLongitude>
        <eastBoundLongitude>135.08583068847656</eastBoundLongitude>
        <southBoundLatitude>3.408477306365967</southBoundLatitude>
        <northBoundLatitude>53.557926177978516</northBoundLatitude>
      </EX_GeographicBoundingBox>
      <BoundingBox CRS="CRS:84" minx="73.44696044921875" miny="3.408477306365967" maxx="135.08583068847656" maxy="53.557926177978516"/>
      <BoundingBox CRS="EPSG:4326" minx="3.408477306365967" miny="73.44696044921875" maxx="53.557926177978516" maxy="135.08583068847656"/>
      <Style>
        <Name>line</Name>
        <Title>Default Line</Title>
        <Abstract>A sample style that draws a line</Abstract>
        <LegendURL width="20" height="20">
          <Format>image/png</Format>
          <OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="http://localhost:8086/geoserver/easygis/ows?service=WMS&amp;request=GetLegendGraphic&amp;format=image%2Fpng&amp;width=20&amp;height=20&amp;layer=layer_china_boundry"/>
        </LegendURL>
      </Style>
    </Layer>
  </Layer>
</Capability>

2. GetMap

获取地图图片。该操作根据客户端发出的请求参数在服务端进行检索,服务器端返回一个地图图像,其地理空间参数和大小参数是已经明确定义的,返回的地图图像可以是GIF、JPEG、PNG或SVG格式。一个完整的GetMap请求地址如下:

txt
http://localhost:8080/geoserver/lzugis/wms?
	SERVICE=WMS&
	VERSION=1.1.1&
	REQUEST=GetMap&
	FORMAT=image%2Fpng&
	TRANSPARENT=true&
	LAYERS=lzugis%3Abase_province&
	SRS=EPSG%3A4326&
	WIDTH=768&
	HEIGHT=620&
	BBOX=70.576171875%2C1.494140625%2C138.076171875%2C55.986328125

上面的地址中,各参数与说明如下:

参数名称必选参数默认值备注
SERVICEYWMS参数值不可改
REQUESTYGetMap参数值不可改
LAYERSY图层名称
SRSY投影信息
WIDTHY宽度
HEIGHTY高度
BBOXY出图范围
VERSIONN1.3.0
FORMATNimage/png
TRANSPARENTNtrue
STYLESN样式
CQL_FILTERN过滤条件

说明

  • STYLES参数用于指定图层样式,如下面的例子
text
http://localhost:8080/geoserver/lzugis/wms?
	SERVICE=WMS&
	VERSION=1.1.1&
	REQUEST=GetMap&
	FORMAT=image%2Fpng&
	TRANSPARENT=true&
	LAYERS=lzugis%3Abase_province&
	SRS=EPSG%3A4326&
	WIDTH=768&
	HEIGHT=620&
	BBOX=70.576171875%2C1.494140625%2C138.076171875%2C55.986328125&
  STYLES=polygon
  • CQL_FILTER参数用于指定图层的过滤条件,在前面的内容Geoserevr过滤条件已有交代,在此不再赘述。

3. GetFeatureInfo

该操作根据用户所请求的X、Y坐标或感兴趣的图层,返回地图上某些特殊要素的信息,信息以HTML,GML或ASCII的格式表示。一个完整的GetFeatureInfo如下:

txt
http://localhost:8080/geoserver/lzugis/wms?
  SERVICE=WMS&
  VERSION=1.1.1&
  REQUEST=GetFeatureInfo&
  QUERY_LAYERS=lzugis%3Abase_province&
  LAYERS=lzugis%3Abase_province&
  INFO_FORMAT=text/html&
  FEATURE_COUNT=50&
  X=50&
  Y=50&
  SRS=EPSG%3A4326&
  WIDTH=101&
  HEIGHT=101&
  BBOX=113.19419860839844,27.40779876708985,122.07115173339844,36.28475189208985

上面的地址中,各参数与说明如下:

参数名称必选参数默认值备注
SERVICEYWMS参数值不可改
REQUESTYGetFeatureInfo参数值不可改
LAYERSY图层名称
QUERY_LAYERSY查询图层
SRSY投影信息
WIDTHY宽度
HEIGHTY高度
X or iYx坐标,0表示左
Y or jYy坐标,0表示上
BBOXY出图范围
VERSIONN1.3.0
INFO_FORMATN返回信息格式

4. GetLegendGraphic

通过GetLegendGraphic可获取图层图例,一个完整的请求地址如下:

txt
http://localhost:8080/geoserver/lzugis/wms?
  REQUEST=GetLegendGraphic&
  VERSION=1.0.0&
  FORMAT=image/png&
  LAYER=lzugis%3Abase_province&
  WIDTH=100&
  HEIGHT=100

上面的地址中,各参数与说明如下:

参数名称必选参数默认值备注
SERVICEYWMS参数值不可改
REQUESTYGetLegendGraphic参数值不可改
LAYERSY图层名称
WIDTHY宽度
HEIGHTY高度
VERSIONN1.3.0
FORMATNimage/png

二、WFS服务

WFSWeb Feature Service,Web要素服务)是一种用于在Web上发布矢量地理信息数据的标准协议。支持对地理要素的插入、更新、删除、检索和发现服务,用户可以通过WFS协议获取到需要的矢量地理信息数据。

1. GetCapabilities

通过getCapabilities可获取WFS服务的服务能力,一个完整的请求地址如下:

txt
http://localhost:8080/geoserver/lzugis/wfs?
  service=WFS&
  request=getCapabilities&
  VERSION=1.0.0

上述的地址中,各参数与说明如下:

参数名称必选参数默认值备注
SERVICEYWFS参数值不可改
REQUESTYgetCapabilities参数值不可改
VERSIONN1.0.0
获取到的数据是XML格式。

2. GetFeature

通过GetFeature可获取WFS服务中的要素数据,一个完整的请求地址如下:

txt
http://localhost:8080/geoserver/lzugis/wfs?
  service=WFS&
  version=1.0.0&
  request=GetFeature&
  typeName=lzugis%3Acapital&
  maxFeatures=50&
  outputFormat=application%2Fjson

上面地址中,各参数与说明如下:

参数名称必选参数默认值备注
SERVICEYWFS参数值不可改
REQUESTYGetFeatureInfo参数值不可改
typeNameY图层名称
maxFeaturesN最大要素数量
VERSIONN1.0.0
outputFormatN返回信息格式

3. DescribeFeatureType

DescribeFeatureType请求给定特征类型的特征和属性列表,或者列出可用的特征类型。一个完整的请求地址如下:

txt
http://localhost:8080/geoserver/lzugis/wfs?
  service=wfs&
  version=1.0.0&
  request=DescribeFeatureType&
  typeNames=lzugis%3Acapital&
  outputFormat=application%2Fjson

上面地址中,各参数与说明如下:

参数名称必选参数默认值备注
SERVICEYWFS参数值不可改
REQUESTYGetFeatureInfo参数值不可改
typeNamesY图层名称
VERSIONN1.0.0
outputFormatN返回信息格式

4. transaction

操作可以创建、修改和删除WFS发布的功能。每个事务将由零个或多个插入、更新和删除元素组成,并按顺序执行每个事务元素。

三、WMTS服务

WMTSWeb Map Tile Service,Web地图切片服务)是一种用于在Web上发布地图切片数据的标准协议,用户可以通过WMTS协议获取到需要的地图切片数据。WMTS提供了一种采用预定义切片方法发布数字地图服务的标准化解决方案,弥补了WMS在数据不变的情况下请求慢的不足。

1. GetCapabilities

GetCapabilities允许客户端请求WMS显示其映射内容和处理能力。返回的结果是一个描述服务信息内容和可以请求的参数的XML文档。一个完整的GetCapabilities请求地址如下:

txt
http://localhost:8080/geoserver/gwc/service/wmts?
  service=WMTS&
  request=getCapabilities&
  VERSION=1.0.0

上面的地址中,各参数与说明如下:

参数名称必选参数默认值备注
SERVICEYWMTS参数值不可改
REQUESTYgetCapabilities参数值不可改
VERSIONN1.0.0

2. GetTile

通过GetTile获取接口,一个完整的GetTile请求地址如下:

txt
http://localhost:8080/geoserver/gwc/service/wmts?
  layer=lzugis%3Abase_province&
  tilematrixset=EPSG%3A900913&
  Service=WMTS&
  Request=GetTile&
  Version=1.0.0&
  Format=image%2Fpng&
  TileMatrix=EPSG%3A900913%3A1&
  TileCol=1&
  TileRow=0

上面的地址中,各参数与说明如下:

参数名称必选参数默认值备注
SERVICEYWMTS参数值不可改
REQUESTYgetTile参数值不可改
VERSIONN1.0.0
layerY图层名称
FormatNimage/png返回格式
TileMatrixY切片级别,格式为EPSG:900913:1
TileColY列号
TileRowY行号

四、TMS服务

TMSTile Map Service的缩写。在Geoserver中通过如下地址查看TMS服务能力。

txt
http://localhost:8080/geoserver/gwc/service/tms/1.0.0

通过上述地址,可获取到一个图层的TMS地址,如:

txt
# 请求地址
http://localhost:8080/geoserver/gwc/service/tms/1.0.0/lzugis%3Abase_province@EPSG%3A900913@png/{z}/{x}/{-y}.png

# 请求示例
http://localhost:8080/geoserver/gwc/service/tms/1.0.0/lzugis%3Abase_province@EPSG%3A900913@png/0/0/0.png