OGC的WebGIS相关标准

OGC: 开放地理空间信息联盟 (Open Geospatial Consortium-OGC) ,致力于提供地理信息行业软件和数据及服务的标准化工作。

OGC在1994年到2004年期间机构名为Open GIS Consortium, 后因业务需要更名。

OGC是一个非盈利的志愿的国际标准化组织,引领着空间地理信息标准及定位基本服务的发展。在空间数据互操作领域,基于公共接口访问模式的互操作方法是一种基本的操作方法。通过国际标准化组织(ISO/TC211)或技术联盟(如OGC)制定空间数据互操作的接口规范,GIS软件商开发遵循这一接口规范的空间数据的读写函数,可以实现异构空间数据库的互操作。

OGC定义了三种地理参考信息模型:

  • Web Map Server(WMS)
  • Web Feature Server(WFS)
  • Web Coverage Server(WCS)  

相关标准化组织机构介绍

OGC(开放地理空间信息联盟):

是一个专门从事地理空间信息技术标准化际标准的国际组织。它成立于1994年,目前有400多个成员,包括来自不同国家和地区的公司、科研院所、髙校和政府机构等。OGC的重要工作之一就是 OWS(OGC网络服务)研究计划,其目的是建立一个标准的框架,让地理信息能够无缝地应用在各种Web、无线、基于位置的服务和主流的信息技术应用之中。本节将介绍OGC的WMS、WMTS、WFS、WCS、CSW、WPS等Web服务规范和相关的KML和GeoRSS规范。

IS0/TC 211(国际标准化组织地理信息技术委员会211):

IS0/TC 211是国际化组织于1994年设立的一个专门制定地理空间信息标准的技术委员会。TC 211制定的标准编号从19101开始。一般来说,ISO的标准更抽象,而OGC 的标准相对更具体。近年来,IS0/TC 211与 OGC 紧密合作,例如,OGC 的WMS标准同时也是ISO标准。

W3C(万维网联盟):

W3C是一个从事万维网信息技术标准化的组织。它于1994年在麻省理工学院计算机科学实验室成立,创建者是万维网之父TimBemers-Lee。万维网联盟制定了一系列规范,其中发布的 HTML、CSS、XML Schema、RDF 和 SVG 等影响广泛。W3C 制定的 Basic GeoRSS规范尽管略显过时,但仍在被使用。

开放规范的使用

这里要介绍的是两类开放规范。

(1)开放数据格式。

如果某数据格式有完备的描述文档,对于各种GIS软件都能读写,并且格式的发明者没有宣称任何版税的权利,那么该数据格式就是开放的。文本格式的开放数据格式包括KML(Keyhole Markup Language, Keyhole标记语言)、GeoJSON与TopoJSON等,JPEG与PNG是栅格中开放的数据格式。ESRI Shapefile (shp) 简称为Shapefile,是美国环境系统研究所公司(ESRI)开发的一种空间数据开放格式。目前,该文件格式已经成为了地理信息软件界的一个开放标准,这表明ESRI公司在全球的地理信息系统市场的重要性。Shapefile也是一种重要的交换格式,它能够在ESRI与其他公司的产品之间进行数据互操作。与此相反的是ESRI的文件地理数据库(File Geodatabase),该格式是封闭的,除了ESRI的工具之外,其他软件不能打开与创建。

(2)开放规范。

GIS界最主要的开放规范就是OGC制定的一系列规范(已经在“1.3.4 OGC的Web服务规范”中进行了介绍)。国际标准化组织(ISO)技术委员会211(TC211)也是最主要的空间信息标准组织之一。目前ISO/TC 211己经完成或正在制定的地理信息国际标准约有40余项,包括《地理信息参考模型》《地理信息概念模式语言》与《地理信息术语》等。此外,ESRI与多个其他组织合作进行开发,正在推动开放式GeoServices REST规范的使用。此规范为Web客户端利用REST技术与GIS服务器进行通信提供了标准方法。通过ArcGIS for Server发布的Web服务遵守此规范。这意味着非ESRI的开发者可以自由地创建应用来发布与访问符合该标准的Web服务。虽然GeoServices REST并没有得到OGC的采纳,但这是一个商业软件自愿公开规范的典型例子。

OGC地图服务标准介绍

OGC1999年开始 WMT1(Web Map Tested)和 WMT2 互操作项目。其中著名的GML来自WMT1的成果。在WMT2中OGC定义了三种地理参考信息模型:Web Map Server(WMS) , Web Feature Server(WFS) ,Web Coverage Server(WCS) .

  • WMT1: http://www.opengeospatial.org/projects/initiatives/wmt1
  • WMT2: http://www.opengeospatial.org/projects/initiatives/wmt2

OGC 地图服务协议,包括 WMS、WCS、WFS、WPS 。W*S是指基于OGC标准的WMS、WFS、WCS、WMTS等数据发布标准。

其中比较重要的现在用得比较多的标准是GML、WMS和WFS。

网络空间数据服务是数据层对外提供的最主要的功能服务。为了实现空间数据共享与互操作,数据层将提供符合OGC规范的国际标准访问接口,采用OWS服务模型实现W*S服务。各服务类型将符合目前最新的协议和规范,实现地图数据的可视化访问。

网络地图服务(WMS)

Web 地图服务(WMS)能够根据用户的请求返回相应的地图(包括PNG,GIF,JPEG等栅格形式或者是SVG和WEB CGM等矢量形式)。

WMS支持网络协议HTTP,所支持的操作是由URL定义的。

有三个重要操作 GetCapabilitiesGetMapGetFeatureinfo

  • GetCapabilities 返回服务级元数据。
  • GetMap 返回一个地图影像。
  • GetFeatureinfo 返回显示在地图上的某些特殊要素的信息。  还有一些其它操作如 DescribeLayerGetLegendGraphicGetStylesSetSytles 。  事实上用传统的观点来解释,GetMap 获得的就是在桌面程序中画在控件上的里的结果,是数据的表现。

GetFeatureInfo 更容易理解,它和几乎所有的桌面程序上都用的Info按钮功能相同,都是用来获得屏幕坐标某处的信息,GetFeatureInfo 中的参数是屏幕坐标、当前视图范围等,在一定程度上也方便了客户端的编写。

GetFeatureInfo 可以同时返回多个图层中的要素信息,这一点和ArcGIS Desktop等也都是相同的。WMS还包括一些 GetLegend 之类的返回图例信息的请求,也是完全按照桌面既有的标准定义的。

WMS全称是“Web Map Service”(网络地图服务)。此标准主要定义了用于创建和显示地图图像的三大操作: GetCapabilities (获取服务能力), GetMap (获取地图)和 GetFeatureInfo (获取对象信息)。其中 GetMap 为常用操作,此操作得到一幅地图图像。

WFS是一个基于Web服务技术的地理要素在线服务标准,它有两方面的作用。

一是实现地理数据的Web服务。数据服务部门建立了地理空间数据库的系统,对外提供在线服务,用户可以通过该标准得到自己所需要的地理空间数据。

二是用于异构系统互操作规范。两个不同的地理信息系统可以实现异构数据互操作,包括数据查询、浏览、提取、修改、更新等操作。它基于Web技术可以实现远程互操作。

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

WMS提供如下操作:

  • GetCapabitities:返回服务级元数据,它是对服务信息内容和要求参数的一种描述。
  • GetMap:返回一个地图影像,其地理空间参考和大小参数是明确定义了的。
  • GetFeatureInfo:返回显示在地图上的某些特殊要素的信息。
  • GetLegendGraphic:返回地图的图例信息。

Web Map Server(WMS)能够根据用户的请求返回相应的地图(包括PNG,GIF,JPEG等栅格形式或者是SVG和WEB CGM等矢量形式)。WMS支持网络协议HTTP,所支持的操作是由URL定义的。有三个重要操作 GetCapabilitiesGetMapGetFeatureinfo

  • GetCapabilities返回服务级元数据。
  • GetMap返回一个地图影像。
  • GetFeatureinfo返回显示在地图上的某些特殊要素的信息。

还有一些其它操作如DescribeLayer,GetLegendGraphic,GetStyles,SetSytles。

事实上用传统的观点来解释,GetMap获得的就是在桌面程序中画在控件上的里的结果,是数据的表现。GetFeatureInfo更容易理解,它和几乎所有的桌面程序上都用的Info按钮功能相同,都是用来获得屏幕坐标某处的信息,- GetFeatureInfo中的参数是屏幕坐标、当前视图范围等,在一定程度上也方便了客户端的编写。- GetFeatureInfo可以同时返回多个图层中的要素信息,这一点和ArcGISDesktop等也都是相同的。

WMS还包括一些GetLegend之类的返回图例信息的请求,也是完全按照桌面既有的标准定义的。

Web地图服务(WMS)

利用具有地理空间位置信息的数据制作地图。其中将地图定义为地理数据可视的表现。这个规范定义了三个操作:

  • GetCapabitities返回服务级元数据,它是对服务信息内容和要求参数的一种描述;
  • GetMap返回一个地图影像,其地理空间参考和大小参数是明确定义了的;
  • GetFeatureInfo(可选)返回显示在地图上的某些特殊要素的信息。

网络要素服务(WFS)

Web 要素服务(WFS)支持对地理要素的插入,更新,删除,检索和发现服务。该服务根据HTTP客户请求返回GML数据。

其基础接口是:GetCapabilities,DescribeFeatureType,GetFeature  GetCapabilities同上。  DescribeFeatureType返回要素结构,以便客户端进行查询和其他操作。   GetFeature可根据查询要求返回一个符合GML规范的数据文档。GetFeature是最重要的接口。   其它接口如Transaction 它不仅能提供要素读取,同时支持要素在线编辑和事务处理。

WFS对应于常见桌面程序中的条件查询功能,WFS通过OGC Filter构造查询条件,支持基于空间几何关系的查询,基于属性域的查询,当然还包括基于空间关系和属性域的共同查询。

在Web上,WFS的请求不是以SQL实现的,而是通过Filter XML来实现,可扩展性更强。WFS所返回的是查询的结果集,从某种程度上说,区别于WMS的“数据的表现”,

WFS的结果集是由完整的Schema定义和约束的结果集,以GML为载体。这个结果集,类似于桌面程序查询结果的数据表。

WFS的功能包括5个操作:

  • GetCapabilities (获取服务能力)
  • DescribeFeatureType (要素类型特征描述)
  • GetFeature (获取对象)
  • Transaction (事务处理包括增、删、修改要素)
  • LockFeature (锁要素)

其中前三个操作为必须实现的操作,它可以获取地理要素;后两个为可选操作,它主要用于增、删、修改地理要素。

网络要素服务(WFS)支持用户在分布式的环境下通过HTTP对地理要素进行插入,更新,删除,检索和发现服务。该服务根据HTTP客户请求返回要素级的GML(Geography Markup Language、地理标识语言)数据,并提供对要素的增加、修改、删除等事务操作,是对Web地图服务的进一步深入。WFS通过OGC Filter构造查询条件,支持基于空间几何关系的查询,基于属性域的查询,当然还包括基于空间关系和属性域的共同查询。WFS提供如下操作:

  • GetCapabitities:返回服务级元数据,它是对服务信息内容和要求参数的一种描述。
  • DescribeFeatureType:生成一个Schema用于描述WFS实现所能提供服务的要素类型。 Schema描述定义了在输入时WFS实现如何对要素实例进行编码以及输出时如何生成一个要素实例。
  • GetFeature:可根据查询要求返回一个符合GML规范的数据文档。
  • LockFeature:用户通过Transaction请求时,为了保证要素信息的一致性, 即当一个事务访问一个数据项时,其他的事务不能修改这个数据项,对要素数据加要素锁。
  • Transaction: 与要素实例的交互操作。 该操作不仅能提供要素读取,同时支持要素在线编辑和事务处理。 Transaction操作是可选的,服务器根据数据性质选择是否支持该操作。

Web 要素服务(WFS)支持对地理要素的插入,更新,删除,检索和发现服务。该服务根据HTTP客户请求返回GML数据。其基础接口是: GetCapabilitiesDescribeFeatureTypeGetFeature

  • GetCapabilities 同上。
  • DescribeFeatureType 返回要素结构,以便客户端进行查询和其他操作。
  • GetFeature 可根据查询要求返回一个符合GML规范的数据文档。GetFeature是最重要的接口。

其它接口如Transaction 它不仅能提供要素读取,同时支持要素在线编辑和事务处理。WFS对应于常见桌面程序中的条件查询功能,WFS通过OGC Filter构造查询条件,支持基于空间几何关系的查询,基于属性域的查询,当然还包括基于空间关系和属性域的共同查询。

在Web上,WFS的请求不是以SQL实现的,而是通过Filter XML来实现,可扩展性更强。

.. ToDo: 有点问题。 不仅仅是查询。 还有处理。此处仅从操作上说明,不全面。

WFS所返回的是查询的结果集,从某种程度上说,区别于WMS的“数据的表现”,WFS的结果集是由完整的Schema定义和约束的结果集,以GML为载体。这个结果集,类似于桌面程序查询结果的数据表。

Web要素服务(WFS)

Web地图服务返回的是图层级的地图影像,Web要素服务(WFS)返回的是要素级的GML编码,并提供对要素的增加、修改、删除等事务操作,是对Web地图服务的进一步深入。OGC Web要素服务允许客户端从多个Web要素服务中取得使用地理标记语言(GML)编码的地理空间数据,这个远东定义了五个操作:

  • GetCapabilites返回Web要素服务性能描述文档(用XML描述);
  • DescribeFeatureType返回描述可以提供服务的任何要素结构的XML文档;
  • GetFeature为一个获取要素实例的请求提供服务;
  • Transaction为事务请求提供服务;
  • LockFeature处理在一个事务期间对一个或多个要素类型实例上锁的请求。

网络覆盖服务(WCS)

Web地理覆盖服务(WCS):提供的是包含了地理位置信息或属性的空间栅格图层,而不是静态地图的访问。

根据HTTP客户端要求发送相应数据,包括影像,多光谱影像和其它科学数据. 有二个重要操作GetCapabilities,GetCoverage GetCapabilities返回一个描述服务和XML文档,从中可获取覆盖的数据集合。

GetCoverage是在GetCapabilities确定查询方案和需要获取的数据之后执行,返回覆盖数据。

还有可选操作DescribeCoverageType。

WCS对应基于栅格数据的功能,与WMS基于矢量数据的特点相对应。

网络覆盖服务是面向空间影像数据,它将包含地理位置的地理空间数据作为“覆盖(COverage)”在网上相互交换,如卫星影像、数字高程数据等栅格数据。WCS提供如下操作:

  • GetCapabitities:返回服务级元数据,它是对服务信息内容和要求参数的一种描述。
  • DescribeCoverage:支持用户从特定WCS服务器获取一个或多个覆盖的详细的描述文档。
  • GetCoverage:可根据查询要求返回一个包含或者引用被请求的覆盖数据的响应文档。

Web地理覆盖服务(WCS):提供的是包含了地理位置信息或属性的空间栅格图层,而不是静态地图的访问。根据HTTP客户端要求发送相应数据,包括影像,多光谱影像和其它科学数据. 有二个重要操作 GetCapabilitiesGetCoverage

  • GetCapabilities 返回一个描述服务和XML文档,从中可获取覆盖的数据集合。
  • GetCoverage 是在GetCapabilities确定查询方案和需要获取的数据之后执行,返回覆盖数据。

还有可选操作 DescribeCoverageType 。WCS对应基于栅格数据的功能,与WMS基于矢量数据的特点相对应。

Web覆盖服务(WCS)面向空间影像数据,它将包含地理位置值的地理空间数据作为“覆盖(COverage)”在网上相互交换。网络覆盖服务由三种操作组成:GetCapabilities,GetCoverage和DescribeCoverageType。GetCapabilities操作返回描述服务和数据集的XML文档。网络覆盖服务中的GetCoverage操作是在GetCapabilities确定什么样的查询可以执行、什么样的数据能够获取之后执行的,它使用通用的覆盖格式返回地理位置的值或属性。DescribeCoverageType操作允许客户端请求由具体的WCS服务器提供的任一覆盖层的完全描述。

以上三个规范既可以做为Web服务的空间数据服务规范,又可以做为空间数据的互操作实现远东。只要某一个GIS软件支持这个接口,部署在本地服务器上,其他GIS软件就可以通过这个接口得到所需要的数据。从技术实现的角度,可以将Web服务理解为一个应用程序,它向外界暴露出一个能通过Web进行调用的接口,允许被任何平台、任何系统,用任何语言编写的程序调用。这个应用程序可以用现有的各种编程语言实现。Web服务最大的特点是可以实现跨平台、跨语言、跨硬件的互操作,正是Web服务中的SOAP、WSDL和UDDI保证了Web服务的跨平台互操作的特性,所以,如何使用SOAP、WSDL和UDDI来部署、描述、传输和注册一个Web服务是实现Web服务的关键。由于SOAP、WSDL和UDDI是一套标准,不同的厂商可以有实现这些标准的不同产品,例如SUN、APACHE、IBM、Borland等公司推出的基于JAVA平台的Web服务工具包,以及微软提出的.NET平台等,这些工具为实现Web服务的开发、部署、描述提供了方便的工具,极大的降低了开发Web服务的复杂度。

切片地图服务(TMS)

切片地图服务(TMS)定义了一些操作,这些操作允许用户访问切片地图。WMTS可能是OGC首个支持RESTful访问的服务标准。

WPS

这些规范基本在各大主流GIS平台和开源GIS软件中得到支持。

Intergraph早就推出了WFS服务器和互操作开发包。

ESRI在ArcIms 中开发了支持WMS,WFS等规范的相关部件。

另:Web Processing Server(WPS)是新近推出的标准,它的功能其实我们已经耳熟能详了。Processing即ArcView中的GeoProcessing,诸如 Union,Intersect等方法。WPS要做的就是暴露基于URL接口来实现客户端通过WebService对此类方法的调用、并返回数据。这些规范基本在各大主流GIS平台和开源GIS软件中得到支持。

MapInfo8.5也已经增加了能访问WMS和WFS服务,也有读取GML数据的借口功能。

GeoServer,MapServer地图服务器扮演向网络中的客户端提供地图服务的角色。这类地图服务器可以接收统一规范的WMS和WFS请求(request),返回多种格式的数据。这个过程有WMS/WFS规范的严格规定, 所以,对客户端来说其地图服务器的实现究竟是什么并不会造成太大影响。这样的规范,为公共的、联合的地图服务创造了可能。

OpenLayers/MapBuilder,uDig,QGIS这些客户端软件分为浏览器和桌面客户端程序两种。以OpenLayers为代表的 B/S 系统客户端现在已经非常强大,它可以封装WMS请求,在浏览器上实现地图的切片载入功能。另外拖动、缩放都功能也非常完善,可以实现跨浏览器操作。最近的OpenLayers版本还支持了矢量编辑功能,可以通过WFS-t提交。而传统的桌面客户端程序功能则更加强大,支持多种包括WMS和WFS在内的 数据源,另外编辑功能、操作性也要比浏览器中的强大。