OGC服务介绍
简介
Geoserver实现了常见的OGC服务,如wms
、wfs
、wmts
、tms
服务等。
一、WMS服务
WMS
是Web Map Service
(网络地图服务)的缩写,是开放地理空间联盟 (OGC) 定义提供和使用动态地图时需遵守的国际规范。到目前为止,已发布了四个版本的 WMS 规范:1.0.0
、1.1.0
、1.1.1
和1.3.0
(最新)。
它是利用具有地理空间位置信息的数据制作地图,其中将地图定义为地理数据的可视化表现,能够根据用户的请求,返回相应的地图,包括PNG、GIF、JPEG等栅格形式,或者SVG或者WEB CGM等矢量形式。WMS支持HTTP协议,所支持的操作是由URL决定的。WMS服务主要支持以下操作:
- 请求服务的元数据(GetCapabilities)
- 请求地图图像(GetMap)
- 请求关于地图要素的信息(GetFeatureInfo,可选)
- 请求图例(GetLegendGraphic,可选)
- 请求用户定义的样式(GetStyles,可选)
1. GetCapabilities
GetCapabilities
允许客户端请求WMS显示其映射内容和处理能力。返回的结果是一个描述服务信息内容和可以请求的参数的XML文档。一个完整的GetCapabilities
请求地址如下:
http://localhost:8080/geoserver/lzugis/wms?
service=WMS&
request=getCapabilities&
VERSION=1.3.0
上面的地址中,各参数与说明如下:
参数名称 | 必选参数 | 默认值 | 备注 |
---|---|---|---|
SERVICE | Y | WMS | 参数值不可改 |
REQUEST | Y | getCapabilities | 参数值不可改 |
VERSION | N | 1.3.0 |
获取到的数据的大致结构如下:
<WMS_Capabilities>
<Service>
<!-- -->
</Service>
<Capability>
<!-- -->
</Capability>
</WMS_Capabilities>
Service节点的内容如下:
<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节点的内容如下:
<Capability>
<Request>
<GetCapabilities>
<Format>text/xml</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xlink:type="simple" xlink:href="http://localhost:8086/geoserver/easygis/ows?SERVICE=WMS&"/>
</Get>
<Post>
<OnlineResource xlink:type="simple" xlink:href="http://localhost:8086/geoserver/easygis/ows?SERVICE=WMS&"/>
</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&"/>
</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&"/>
</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&request=GetLegendGraphic&format=image%2Fpng&width=20&height=20&layer=layer_china_boundry"/>
</LegendURL>
</Style>
</Layer>
</Layer>
</Capability>
2. GetMap
获取地图图片。该操作根据客户端发出的请求参数在服务端进行检索,服务器端返回一个地图图像,其地理空间参数和大小参数是已经明确定义的,返回的地图图像可以是GIF、JPEG、PNG或SVG格式。一个完整的GetMap
请求地址如下:
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
上面的地址中,各参数与说明如下:
参数名称 | 必选参数 | 默认值 | 备注 |
---|---|---|---|
SERVICE | Y | WMS | 参数值不可改 |
REQUEST | Y | GetMap | 参数值不可改 |
LAYERS | Y | 图层名称 | |
SRS | Y | 投影信息 | |
WIDTH | Y | 宽度 | |
HEIGHT | Y | 高度 | |
BBOX | Y | 出图范围 | |
VERSION | N | 1.3.0 | |
FORMAT | N | image/png | |
TRANSPARENT | N | true | |
STYLES | N | 无 | 样式 |
CQL_FILTER | N | 无 | 过滤条件 |
说明:
STYLES
参数用于指定图层样式,如下面的例子
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
如下:
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
上面的地址中,各参数与说明如下:
参数名称 | 必选参数 | 默认值 | 备注 |
---|---|---|---|
SERVICE | Y | WMS | 参数值不可改 |
REQUEST | Y | GetFeatureInfo | 参数值不可改 |
LAYERS | Y | 图层名称 | |
QUERY_LAYERS | Y | 查询图层 | |
SRS | Y | 投影信息 | |
WIDTH | Y | 宽度 | |
HEIGHT | Y | 高度 | |
X or i | Y | x坐标,0表示左 | |
Y or j | Y | y坐标,0表示上 | |
BBOX | Y | 出图范围 | |
VERSION | N | 1.3.0 | |
INFO_FORMAT | N | 返回信息格式 |
4. GetLegendGraphic
通过GetLegendGraphic
可获取图层图例,一个完整的请求地址如下:
http://localhost:8080/geoserver/lzugis/wms?
REQUEST=GetLegendGraphic&
VERSION=1.0.0&
FORMAT=image/png&
LAYER=lzugis%3Abase_province&
WIDTH=100&
HEIGHT=100
上面的地址中,各参数与说明如下:
参数名称 | 必选参数 | 默认值 | 备注 |
---|---|---|---|
SERVICE | Y | WMS | 参数值不可改 |
REQUEST | Y | GetLegendGraphic | 参数值不可改 |
LAYERS | Y | 图层名称 | |
WIDTH | Y | 宽度 | |
HEIGHT | Y | 高度 | |
VERSION | N | 1.3.0 | |
FORMAT | N | image/png |
二、WFS服务
WFS
( Web Feature Service
,Web要素服务)是一种用于在Web上发布矢量地理信息数据的标准协议。支持对地理要素的插入、更新、删除、检索和发现服务,用户可以通过WFS协议获取到需要的矢量地理信息数据。
1. GetCapabilities
通过getCapabilities
可获取WFS服务的服务能力,一个完整的请求地址如下:
http://localhost:8080/geoserver/lzugis/wfs?
service=WFS&
request=getCapabilities&
VERSION=1.0.0
上述的地址中,各参数与说明如下:
参数名称 | 必选参数 | 默认值 | 备注 |
---|---|---|---|
SERVICE | Y | WFS | 参数值不可改 |
REQUEST | Y | getCapabilities | 参数值不可改 |
VERSION | N | 1.0.0 | |
获取到的数据是XML格式。 |
2. GetFeature
通过GetFeature
可获取WFS服务中的要素数据,一个完整的请求地址如下:
http://localhost:8080/geoserver/lzugis/wfs?
service=WFS&
version=1.0.0&
request=GetFeature&
typeName=lzugis%3Acapital&
maxFeatures=50&
outputFormat=application%2Fjson
上面地址中,各参数与说明如下:
参数名称 | 必选参数 | 默认值 | 备注 |
---|---|---|---|
SERVICE | Y | WFS | 参数值不可改 |
REQUEST | Y | GetFeatureInfo | 参数值不可改 |
typeName | Y | 图层名称 | |
maxFeatures | N | 最大要素数量 | |
VERSION | N | 1.0.0 | |
outputFormat | N | 返回信息格式 |
3. DescribeFeatureType
DescribeFeatureType
请求给定特征类型的特征和属性列表,或者列出可用的特征类型。一个完整的请求地址如下:
http://localhost:8080/geoserver/lzugis/wfs?
service=wfs&
version=1.0.0&
request=DescribeFeatureType&
typeNames=lzugis%3Acapital&
outputFormat=application%2Fjson
上面地址中,各参数与说明如下:
参数名称 | 必选参数 | 默认值 | 备注 |
---|---|---|---|
SERVICE | Y | WFS | 参数值不可改 |
REQUEST | Y | GetFeatureInfo | 参数值不可改 |
typeNames | Y | 图层名称 | |
VERSION | N | 1.0.0 | |
outputFormat | N | 返回信息格式 |
4. transaction
操作可以创建、修改和删除WFS发布的功能。每个事务将由零个或多个插入、更新和删除元素组成,并按顺序执行每个事务元素。
三、WMTS服务
WMTS
(Web Map Tile Service
,Web地图切片服务)是一种用于在Web上发布地图切片数据的标准协议,用户可以通过WMTS协议获取到需要的地图切片数据。WMTS提供了一种采用预定义切片方法发布数字地图服务的标准化解决方案,弥补了WMS在数据不变的情况下请求慢的不足。
1. GetCapabilities
GetCapabilities
允许客户端请求WMS显示其映射内容和处理能力。返回的结果是一个描述服务信息内容和可以请求的参数的XML文档。一个完整的GetCapabilities
请求地址如下:
http://localhost:8080/geoserver/gwc/service/wmts?
service=WMTS&
request=getCapabilities&
VERSION=1.0.0
上面的地址中,各参数与说明如下:
参数名称 | 必选参数 | 默认值 | 备注 |
---|---|---|---|
SERVICE | Y | WMTS | 参数值不可改 |
REQUEST | Y | getCapabilities | 参数值不可改 |
VERSION | N | 1.0.0 |
2. GetTile
通过GetTile
获取接口,一个完整的GetTile
请求地址如下:
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
上面的地址中,各参数与说明如下:
参数名称 | 必选参数 | 默认值 | 备注 |
---|---|---|---|
SERVICE | Y | WMTS | 参数值不可改 |
REQUEST | Y | getTile | 参数值不可改 |
VERSION | N | 1.0.0 | |
layer | Y | 图层名称 | |
Format | N | image/png | 返回格式 |
TileMatrix | Y | 切片级别,格式为EPSG:900913:1 | |
TileCol | Y | 列号 | |
TileRow | Y | 行号 |
四、TMS服务
TMS
是Tile Map Service
的缩写。在Geoserver中通过如下地址查看TMS服务能力。
http://localhost:8080/geoserver/gwc/service/tms/1.0.0
通过上述地址,可获取到一个图层的TMS地址,如:
# 请求地址
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