gis笔记wmswfs等OGC标准
WFS 和WMS的区别
WFS是基于地理要素级别的数据共享和数据操作,WFS规范定义了若⼲基于地理要素(Feature)级别的数据操作接⼝,并以 HTTP 作为分布式计算平台。通过 WFS服务,客户端可以得到⽮量数据格式描述的单个地理要素的空间数据或要素集的空间数据,并可以对单个地理要素进⾏编辑、 删除、 添加等数据操作。WFS采⽤ GML描述地理要素特征, 根据⽤户请求的内容返回 GML描述的空间数据。 OpenGIS的WFS实施规范为下⼀步操作逻辑提供⽀持,提出了描述使⽤了分布式计算平台HTTP地理特征数据处理操作界⾯。数据处理操作包括以下能⼒:
创建⼀个新功能实例
删除功能实例
更新功能的实例
获取或查询功能,对空间和⾮空间的限制
WFS规范定义了 6 个基本操作:
1. GetCapabilities操作 返回描述 WFS 服务元数据的XML⽂档, 服务元数据描述了该 WFS服务可以提供的地理要素类型以及针对每
个要素类型的操作;
2. DescribeFeatureType操作 返回WFS能够提供的地理要素类型的GML应⽤模式描述⽂档;
3. GetFeature操作 根据⽤户查询条件,从WFS中获取地理要素,⽤户可以设定空间和⾮空间查询条件;
4. Transaction 操作 为事务请求提供服务。⽤于描述地理数据变化的操作⽅法, 如创建、 修改和删除地理要素的操作;
5. LockFeature操作 WFS可以在⼀个事务处理期间锁定⼀个地理要素类型中的⼀个或多个地理要素实例, 这使 WFS具有⽀持可序列化
事务的能⼒;
6. GetGmlObject 操作 ⼀个 WFS 服务可能通过追踪Xlinks 来获取客户请求所需的构成地理要素的⼦要素实例。
WMS:Web Map Server就是添加地图服务:
Web 地图服务(WMS)能够根据⽤户的请求返回相应的地图(包括PNG,GIF,JPEG等栅格形式或者是SVG和WEB CGM等⽮量形式)。WMS⽀持⽹络协议HTTP,所⽀持的操作是由URL定义的。
有三个重要操作GetCapabilities,GetMap,GetFeatureinfo。
WMS是OGC标准中⽐较简单也是⽐较重要的标准之⼀。它全称是“Web Map Service”(⽹络地图服务)。此标准主要定义了⽤于创建和显⽰地图图像的三⼤操作:GetCapabilities(获取服务能⼒), GetMap(获取地图)和GetFeatureInfo(获取对象信息)。其中GetMap为核⼼操作,此操作得到⼀幅地图图像。
2 GetMap请求
操作根据客户端发出的请求参数在服务端进⾏检索,服务器返回⼀个地图图象,其地理空间参数和⼤⼩是已经明确定义的,返回的地图图象可以是GIF,JPEG,PNG或SVG格式的; GetMap请求类似于在Web上请求⼀幅图像,但它的请求参数更加复杂。下⾯是⼀个样例请求:
GetMap请求的参数GetMap请求的参数详解:
LAYERS:该参数值是⼀个逗号分隔的列表,列表元素为有效图层名称。这些名字应该是在服务元数据中 的<Layer><Name>元素中已经定义过的字符内容。WMS在绘制map的时候,应该将该列表最左边的层放到层栈的最底 部,下⼀个放在前⼀个的上⾯,依此类推。其中可选的<LayerLimit>元素在服务元数据中为⼀个正数。表明了客户端在⼀次GetMap 请求中允许请求的最⼤图层数。如果忽略了该元素,则服务器没有该限制。
STYLES:以逗号分隔的列表形式表⽰的请求的每⼀图层的STYLE。STYLE值应该有效,并且STYLE值与LAYERS参数值总是⼀⼀对应的。所以,每个map都是按照LAYERS的STYLE绘制各个layer,⽽各个Layer的名称必须符合默认的混合形式,则在STYLE参数中应该⽤逗号来分隔⼀个空值(如”STYLE=style1,style2”),如果服务器为⼀个layer发布多个Style,⽽客户端发送了⼀个默认 style的请求,选择哪个style作为默认值就是服务器的标准了。元数据中styles的顺序并不能表明哪个为默认的值。客户端开发⼈员应该最⼤限度 地减少⽤户不注意地请求或⽆意识地获得扭曲的地图。
CRS:CRS参数声明了应⽤到BBOX请求参数的层CRS。该参数的值必须为所请求的服务器元数据中已经定义过或从请求层中继承过的.。WMS不 必⽀持所有的CRS,但是,对于其已经在服务元数据发布的CRS应该⽀持。如果客户请求其不⽀持的CRS,服务器应该返回⼀个异常 (code=”InvalidCRS”) 。如果WMS服务已经声明了⼀个层的CRS=CRS:1,如前所述,表⽰该层没有定义好⼀个坐标参考系统,因此不能与其他层联合显⽰。客户端应该在 GetMap中指定CRS=CRS:1,
否则,服务器可能发送⼀个服务异常。当CRS在 请求中使⽤时,BBOX参数的单位应该为像素。
BBOX:该参数允许客户请求⼀个特定的Bounding Box。该参数的值为逗号分隔的⼀串实数列表,形如:”minx,miny, maxx, maxy”,它们分部代表请求图层CRS下的区域坐标:最⼩x、最⼩y、最⼤x、最⼤y。其x、y轴的单位、⽅向、增量都在层CRS中定义。BoundingBox和map像素矩阵之间的关系是BoundingBox包围在像素矩阵的外边,⽽不是通过地图周边像素的中⼼,在该内容中,单个像素 描述地⾯的⼀个区域。
FORMAT:该强制参数声明了地图的要求格式。WMS服务器⽀持的GetMap请求格式值在服务元数据中 以<Request><GetMap>
<Format>形式列出。<Format>的整个MIME字符 串值被⽤来表⽰FORMAT参数的值,⽽这个值没有默认值。在HTTP环境下,MIME类型应该使⽤内容类型实体头⽂件设置为返回对象。如果请求指定了⼀ 个服务器不⽀持的格式,服务器应该发送⼀个服务异常(code =
”InvalidFormat” )。
WIDTH、HEIGHT:该强制参数指定产⽣的地图整数值⼤⼩,单位为像素。Map CS适⽤于map,WIDTH-1指定了Map CS中x轴⽅向的最⼤值,⽽HEIGHT-1则为y轴⽅向的最⼤值.。如果请求的格式
为picture,则返回的图⽚将不考虑MIME类型,准确地为指定 的width和height像素值。在这种情况下,如果BBOX的⽐率和width/height的⽐率不⼀致时,WMS将会拉伸返回的地图以使得最终像 素能够在BBOX⽐率下⾃动⽣成。换句话说,就是使得在⼀个输出像素不是⽅形的,或者拉伸图像区域到不同⽐率的设备上也能够使⽤该定义去请求⼀幅地图。如 果WIDTH/HEIGHT⽐率与X、Y以及像素尺⼨的⽐率不⼀致,那么就会发⽣图像扭曲。
TRANSPARENT:该可选参数定义地图背景是否透明,可取值:”TRUE” 和FALSE”,默认和参数缺省时取值:FALSE.。绘制透明像素地能⼒使得不同的地图请求可以被叠置⽣成⼀个复合地区。强烈推荐每个WMS提供⼀种可 以提供透明图层的格式以使得图层可以与其他图层叠置.。注意:image/gif格式具有透明性并且可以让通常客户完全显式。image/png格式提供 ⼀个范围内的意义的点,或实体将不能设成透明的,⽽客户端可能仍然请求TRANSPARENT=TRUE当FORMAT参数包含⼀个图形元素格 式,TRANSPARENT参数可能在请求中出现,但其设置值将会被WMS忽略。
BGCOLOR:该可选参数为⼀个字符串,⽤来指定地图将要使⽤的背景⾊(⽆数据区)。BGCOLOR通常的格式为⼀个RGB值的⼗六进制编码,其 中对于每个颜⾊值red、green和blue使⽤两个⼗六进制字符,所以该值的范围为00到FF(⼗进制的0和255)。其 格式为oxRRGGBB,RRGGBB⼤⼩写都是允许的。⽽”0x”必须为⼩写的”x”,如果该参数在请求中缺失,则默认的值为oxFFFFFF(对应的值为⽩⾊)。当FORMAT值为图像格式时,服务器应该设置背景像素值为BGCOLOR值,当FORMAT的
值为图形元素格式(它们没有显式的背景),或 者图像格式时,WMS应该避免为前景元素使⽤BGCOLOR值,因为这样在该背景颜⾊下,它们将不可见。当图层已经确定为不透明”opaque”时,地图 上的重要点、实体将不显式任何背景。
如果参数设置错误,将返回⼀个XML⽂件来描述错误信息。如下所⽰:
<ServiceExceptionReport version="1.1.1">lg kf510
<ServiceException code="">
WIDTH and HEIGHT incorrectly specified
</ServiceException>
</ServiceExceptionReport>
3 GetCapabilities请求
该操作的⽬的在于获取服务元数据,元数据是对服务器信息内容和可接受的请求参数值的⼀种机器可读性(并且可以⼈读)描述。
GetCapabilities操作的参数GetCapabilities操作的参数详解:
FORMAT:该可选参数规定服务元数据的格式要求。WMS服务器上GetCapabilities请求⽀持的值由服务元数据中的⼀个或多 个
cimatrone8.5
<Request><GetCapabilities><Format>元素列出.。如果请求描述的格式不被服务 器⽀持,服务器应该返回默认的text/xml格式。
VERSION:确定请求服务的版本。
SERVICE:该强制性参数指⽰哪个可⽤的服务类型将被激活,在WMS上当激活⼀个GetCapabilities时,值”WMS”就应该被使⽤。
REQUEST:要激活GetCapabilities操作,值”GetCapabilities”就应该被⽤到。
pdscUPDATESEQUENCE:该可选参数是为维持缓冲区⼀致⽽设置的,它的值可以为⼀个代表⼀个符合ISO 8601:2004格式(原⽂附录D)的时间标签(timestamp)的integer、string或者其他string。服务器可能包含⼀个 UpdateSequence值于服务元数据中,如果这样,当Capablities被改变(e.g.当新的maps添加到给服务中)的时候,这个值应该 被增加。客户端可能在其GetCapabilities请求中包含该参数。
4 GetFeatureInfo请求央视新闻频道改版
GetFeatureInfo是⼀个可选操作。它只⽀持可查询属性被定义或继承为“1”(真)的层。客户端不得向其他层发出 GetFeatureInfo要求。如果⼀个WMS收到⼀个GetFeatureInfo请求,但不⽀持它,它会回应⼀个格式正确的服务异常反应(XML 代码= OperationNotSupported)。
GetFeatureInfo操作设计的⽬的是为⼀个WMS的客户端提供更多返回地图请求的地图要素的信息。GetFeatureInfo典型⽤ 例,⼀个⽤户看到⼀个地图请求响应,在地图上选择⼀个点(I,j)来获取更多信息。基本操作为客户端提供指定哪个像元被访问, 哪个层应该进⾏调查,信息应该返回什么样格式的功能。因为WMS的协议是⽆状态的, 对于WMS,GetFeatureInfo请求通过包括⼤部分原始GetMap请求参数(除了VERSION和REQUEST)表明⽤户正预览的是什么地 图。从GetMap请求下的空间范围信息
((BBOX,,CRS,,WIDTH,,HEIGHT)来看,随着⽤户选择的I、J点的变化,WMS返回关于位 置的附加信息。
GetFeatureInfo的请求参数GetFeatureInfo的请求参数详解:
QUERY_LAYERS:QUERY_LAYERS参数规定查询的图层。它的值是⼀个以逗号分隔的⼀个或多个
图层列表。此参数应⾄少包含1个图层的名称,但也可以包含⽐原来的GetMap请求的层少。如果在QUERY_LAYERS中规定查询的图层没有在WMS中的元数据中被定义,将返回服务异常(code = LayerNotDefined)。
INFO_FORMAT:INFO_FORMAT参数表⽰返回的特征信息时使⽤何种格式。WMS服务器⽀持的GetFeatureInfo请 求格式值在服务元数据中以<Request><FeatureInfo><Format>形式列 出。<Format>的整个MIME字符串值被⽤来表⽰INFO_FORMAT参数的值,⽽这个值没有默认值。在HTTP环境下,MIME类 型应该使⽤内容类型实体头⽂件设置为返回对象。如果请求指定了⼀个服务器不⽀持的格式,服务器应该发送⼀个服务异常(code = ”InvalidFormat” )。
FEATURE_COUNT:FEATURE_COUNT参数规定在返回的每个图层中所允许包含的特征数据量的最⼤值。
I,J:指⽰兴趣点,这是根据地图的CS定义,I和J是地图坐标系统中的⼀个坐标,因此I的值应介于0与i轴的最⼤值,J值应介于0和第j轴的最⼤ 值,点I = 0,J = 0表⽰该像素在地图的左上⾓,I向右增加⽽J向下增加。点(I,J)表⽰所指⽰的像素的中⼼。如果j或者I值⽆效,则服务器会发出⼀个服务异常(code = InvalidPoint)。
5 参考资料
WCS(Web Coverage Service,⽹络覆盖执⾏规范)
WCS⾯向空间影像数据,它将包含地理位置值的地理空间数据作为“覆盖物(COverage)“在⽹上相互交换。⽹络覆盖服务由三种操作组成:GetCapabilities,GetCoverage和DescribeCoverageType。
GetCapabilities操作返回描述服务和数据集的XML⽂档。
GetCoverage操作是在GetCapabilities确定什么样的查询可以执⾏、什么样的数据能够获取之后执⾏的,它使⽤通⽤的覆盖格式返回地理位置的值或属性。
DescribeCoverageType操作允许客户端请求由具体的WCS服务器提供的任⼀覆盖层的完全描述。
⾄此,空间数据互操作的接⼝规范WMS、WFS和WCS已经介绍完毕,这些都是⼀些理论的东西,⼤家可以选择粗略看看,也可以更深⼊地去学习和理 解。当然,如果需要深⼊学习和理解应⽤的,紧靠这⼀节的内容是远远不够的。此外,考虑到WMS使⽤得最为频繁,我在本⽂中着重介绍了WMS服务的规范和请 求参数,希望有所助益。
Web地理覆盖服务(WCS):提供的是包含了地理位置信息或属性的空间栅格图层,⽽不是静态地图的访问。
根据HTTP客户端要求发送相应数据,包括影像,多光谱影像和其它科学数据.
有⼆个重要操作GetCapabilities,GetCoverage
GetCapabilities返回⼀个描述服务和XML⽂档,从中可获取覆盖的数据集合。
GetCoverage是在GetCapabilities确定查询⽅案和需要获取的数据之后执⾏,返回覆盖数据。
还有可选操作DescribeCoverageType。
WCS对应基于栅格数据的功能,与WMS基于⽮量数据的特点相对应。
Web Coverage Service (WCS) ⽹络地理场数据服务
WCS 为数据服务标准。该服务使得数字⾼程等栅格数据能够以 HTTP 接⼝上的标准请求检索,并以元数据和 GeoTIFF、NetCDF 等⼆进制图形数据返回。
Style Layer Descriptor (SLD) 图层样式注记
精细的样式控制对⽤许多地理信息服务⾄关重要。这要求⼀种客户端和服务器端均能使⽤的样式注记语⾔。
除了对 WMS 配置样式,SE 也⽤于 WFS 和 WCS 。
Geography Markup Language (GML) 地理注记
GML 原型有多种,各⾃适⽤于不同的⽤途:
Feature 地理要素
Geometry ⼏何对象
Coordinate Reference System 坐标系统
Topology 拓扑对象
Time 时间
Dynamic feature 动态要素
Coverage (including geographic images) 栅格数据
Unit of measure 单位
Directions ⽅向
Observations 观测
Map presentation styling rules 样式规则
理解 “Feature”、“Geometry” 和 “CRS” 是实现 GML 的核⼼。
艾爵隐形眼镜
Filter Encoding (FE) 过滤器编码儿童图画故事
FE 查询的结果可以被以特别的样式标注或转换成某种格式。XML 编码在转换成⽬标语⾔前可以轻松地解释和验证。FE 被应⽤在多种OGC ⽹络服务中,包括 WFS、CSW 和 SLD 。
过滤的属性值可以是空间范围,例如“寻 Omstead 地区 Peter Vretanos 名下的所有产业”。对于时间的过滤如“选择马萨诸塞州1900 年前建造的⽔坝”。另外也可以使⽤如“寻巴黎所有度数在 20-24 摄⽒度的温度传感器”的过滤器。
欢迎⼤家来我的新家看⼀看