2.1. OGC的WebGIS相关标准¶
OGC是开放地理空间联盟的缩写,致力于地理信息行业软件、数据和服务的标准化。
OGC在1994-2004年间被命名为Open GIS Consortium,后来由于业务需要而更名。
OGC是一个非营利性的自愿性国际标准化组织,领导空间地理信息标准和基础定位服务的发展。在空间数据互操作领域,基于公共接口访问模式的互操作方法是一种基本的操作方式。通过国际标准化组织(ISO/TC211)或技术联盟(如OGC)制定空间数据互操作的接口规范,地理信息系统软件厂商开发了遵循该接口规范的空间数据读写功能,实现了异构空间数据库的互操作。
OGC制定和推动的标准包括WMS、WMTS、WFS、WCS、CSW、WPS等Web服务规范,以及相关的GML、KML和GeoRSS规范。
2.1.1. 相关标准化组织介绍¶
OGC (Open Geospatial Consortium):
它是一个专门从事地理空间信息技术国际标准标准化的国际组织。它成立于1994年,目前有400多名成员,包括来自不同国家和地区的公司、研究机构、高中和政府机构。OGC的重要工作之一是OWS(OGC Web Services)研究计划,其目的是建立一个标准框架,使地理信息能够无缝地用于各种Web、无线、基于位置的服务和主流信息技术应用。
ISO/TC 211 (International Organization for Standardization Geographic Information Technology Committee 211):
ISO/TC211是一个国际组织于1994年成立的技术委员会,目的是制定地理空间信息标准。TC211制定的标准数量从19101个开始。总的来说,ISO的标准更抽象,而OGC的标准相对更具体。近年来,ISO/TC 211与OGC密切合作。例如,OGC的WMS标准也是ISO标准。
W3C (World Wide Web Consortium):
W3C是一个致力于万维网信息技术标准化的组织。它由万维网之父TimBemers-Lee于1994年在麻省理工学院计算机科学实验室创立。万维网联盟已经制定了一系列规范,其中包括HTML、CSS、XML模式、RDF和SVG,这些规范的发布产生了广泛的影响。由W3C开发的基本GeoRSS规范仍然在使用,尽管有点过时。
2.1.2. 开放规范的使用¶
以下是两种类型的开放规范。
(1)开放数据格式¶
如果一种数据格式有完整的描述文档,可以被各种地理信息系统软件读写,并且该格式的发明者不要求任何专利权,则该数据格式是开放的。
文本格式的开放数据格式包括KML(Keyhole Markup Language)、GeoJSON和TopOJSON等。JPEG和PNG是栅格中的开放数据格式。
ESRI Shapefile是由环境系统研究所(ESRI)开发的一种开放的空间数据格式。
目前,该文件格式已成为地理信息软件界的开放标准,表明了ESRI在全球地理信息系统市场中的重要性。
Shapefile也是一种重要的交换格式,可实现ESRI和其他公司产品之间的数据互操作性。
与此形成对比的是ESRI的文件地理数据库,这是一种封闭的格式,除了ESRI的工具之外,不能使用任何软件打开和创建它。
(2)开放规范¶
地理信息系统行业中最重要的开放规范是由OGC制定的一系列规范。国际标准化组织(ISO)211技术委员会(TC211)也是最重要的空间信息标准组织之一。目前,ISO/TC211已经制定或正在制定包括《地理信息参考模型》、《地理信息概念模型语言》和《地理信息术语》在内的40多项地理信息国际标准。
此外,与其他几个组织合作开发的ESRI正在推动开放的GeoServices REST规范的使用。该规范为Web客户端提供了一种使用REST技术与GIS服务器通信的标准方法。通过ArcGIS for Server发布的Web服务遵循此规范。这意味着非ESRI开发人员可以自由创建应用程序来发布和访问符合标准的Web服务。尽管OGC没有采用GeoServices REST,但它是商业软件自愿披露规范的一个典型例子。
2.1.3. OGC地图服务标准简介¶
OGC1999开始了WMT1(网络地图测试)和WMT2互操作性项目。其中,著名的GML来自于WMT1的结果。
在WMT2中,OGC定义了三种地理参考信息模型:Web地图服务(WMS)、Web要素服务(WFS)、Web覆盖服务(WCS)。
Wmt1:http://www.opengeospatial.org/projects/initiatives/wmt1
Wmt2:http://www.opengeospatial.org/projects/initiatives/wmt2
网络空间数据服务是数据层对外提供的最重要的功能性服务。为了实现空间数据的共享和互操作,数据层将提供符合OGC规范的国际标准访问接口,采用OWS服务模型实现W*S服务。每种服务类型都将符合最新的协议和规范,从而实现对地图数据的可视访问。
OGC地图服务协议,包括WMS、WFS、WCS、WMTS、WPS。现在使用较多的比较重要的标准之一是GML、WMS和WFS。
Web地图服务(WMS)¶
Web地图服务(WMS)可以根据用户的请求返回相应的地图(包括PNG、GIF、JPEG等栅格格式,或SVG、Web CGM等矢量格式)。
WMS支持网络协议HTTP,支持的操作由URL定义。
WMS提供以下主要操作:
GetCapabitities
:返回服务级元数据,它是对服务信息内容和必需参数的描述。GetMap
:返回其地理空间参考和大小参数定义明确的地图图像。GetFeatureInfo
:返回有关地图上显示的某些特殊要素的信息。GetLegendGraphic
:返回地图的图例信息。
其他操作,如 DescribeLayer
, GetStyles
, SetSytles
。
事实上,用传统的观点来解释,GetMap
所获得的是桌面程序中控件上绘制的结果,这就是数据的性能。
GetFeatureInfo
更容易理解。它的功能与几乎所有桌面程序中使用的Info按钮相同,它用于获取有关屏幕某处坐标的信息。
GetFeatureInfo
中的参数是屏幕坐标、当前视图范围等,这也在一定程度上方便了客户端的写入。GetFeatureInfo
可以同时返回多个图层中的要素信息,这与ArcGIS Desktop相同。
GetFeatureInfo
可以同时返回多个层中的要素信息,与在GIS桌面应用中的操作相同。WMS还包括一些 GetLegend
以及其他返回图例信息的请求,这些请求也完全按照桌面的现有标准定义。
WMS的全称是“Web地图服务”。该标准主要定义了创建和显示地图图像的三个操作: GetCapabilities
(获取服务功能)、 GetMap
(获取地图),以及 GetFeatureInfo
(正在获取对象信息)。 GetMap
是一种常见的操作,它会生成地图的图像。
WFS是基于Web服务技术的地理要素在线服务标准,它有两个功能。
一是实现地理数据的Web服务。数据服务部门建立了地理空间数据库系统,提供在线服务,用户可以通过该标准获取所需的地理空间数据。
二是异质系统互操作性的规范。两个不同的地理信息系统可以实现异构数据的互操作,包括数据的查询、浏览、提取、修改、更新等操作。实现了基于Web技术的远程互操作。
Web地图服务(WMS)从具有地理空间位置信息的数据制作地图。地图被定义为地理数据的可视化表示。它可以根据用户的要求返回相应的地图(包括PNG、GIF、JPEG等栅格格式或SVG和Web CGM等矢量格式)。WMS支持网络协议HTTP,支持的操作由URL定义。
Web要素服务(WFS)¶
Web要素服务(WFS)支持地理要素的插入、更新、删除、检索和发现服务。该服务根据HTTP客户端请求返回GML数据。
其基本连接是:如上所述的GetCapabilities、DescribeFeatureType、GetFeature-GetCapabilities、DescriptionFeatureType,返回用于客户端查询和其他操作的特征结构。GetFeature可以根据查询要求返回符合GML的数据文档。GetFeature是最重要的接口。Transaction等其他接口不仅可以提供元素读取,还可以支持元素在线编辑和交易处理。
WFS对应于常见桌面程序中的条件查询功能。WFS通过OGC过滤器构造查询条件,支持基于空间几何关系的查询、基于属性域的查询,当然还包括常见的基于空间关系和属性域的查询。在Web上,WFS请求不是用SQL实现的,而是通过更具伸缩性的过滤器XML实现的。WFS返回的是查询的结果集,在一定程度上不同于WMS的“数据表示”,WFS的结果集是由一个完整的模式定义和约束的结果集,以GML为载体。该结果集类似于桌面程序查询结果的数据表。
WFS提供以下操作:
GetCapabitities
:返回服务级元数据,它是对服务信息内容和必需参数的描述(用XML描述)。DescribeFeatureType
:生成一个架构来描述WFS实现可以提供的功能类型。架构描述定义了WFS实现如何对输入上的功能实例进行编码,并在输出上生成功能实例。GetFeature
:可根据查询要求返回符合GML规范的数据文档。GetFeature是最重要的接口。LockFeature
:当用户通过事务请求时,以确保特征信息的一致性。换言之,当一个事务访问一个数据项时,其他事务不能修改该数据项并向元素数据添加元素锁。Transaction
:与功能实例交互。该操作不仅可以提供要素阅读,还可以支持要素在线编辑和事务处理。事务操作是可选的,服务器根据数据的性质选择是否支持该操作。
前三个操作是必选操作,可以获取地理元素;后两个操作是可选操作,主要用于地理元素的添加、删除和修改。
Web要素服务(WFS)支持用户通过HTTP在分布式环境中插入、更新、删除、检索和发现地理要素。该服务根据HTTP客户端请求返回要素级GML(GeographyMarkup Language,地理标记语言)数据,并提供添加、修改、删除要素等事务操作,是对Web地图服务的进一步发展。WFS通过OGC过滤器构造查询条件,支持基于空间几何关系的查询、基于属性域的查询,当然也包括常见的基于空间关系和属性域的查询。
Transaction等其他接口不仅可以提供元素读取,还可以支持元素在线编辑和事务处理。WFS对应常见桌面程序中的条件查询功能。WFS通过OGC Filter构建查询条件,支持基于空间几何关系的查询、基于属性域的查询,当然还包括基于空间关系和属性域的常见查询。
在Web上,WFS请求不是用SQL实现的,而是通过更具伸缩性的过滤器XML实现的。
WFS返回的是查询的结果集,在一定程度上不同于WMS的“数据表示”,WFS的结果集是由一个完整的模式定义和约束的结果集,以GML为载体。该结果集类似于桌面程序查询结果的数据表。
Web覆盖服务(WCS)¶
Web地理覆盖服务(WCS):提供包含地理信息或属性的空间栅格层,而不是静态地图访问。根据HTTP客户端请求发送相应的数据,包括图像、多光谱图像等科学数据。两个重要的操作GetCapability,GetCoverageGetCapability返回服务的描述和从中获取覆盖数据集合的XML文档。在GetCapability确定查询方案和要获取的数据后,执行GetCoverage,并返回覆盖数据,还有可选的操作DescribeCoverageType。
WCS对应于基于栅格数据的功能,对应于基于矢量数据的WMS的特点。Web覆盖服务面向空间图像数据。它在互联网上交换包含地理位置的地理空间数据,如卫星图像和数字高程数据等栅格数据。WCS提供以下操作:
GetCapabitities
:返回服务级元数据,它是对服务信息内容和必需参数的描述。DescribeCoverage
:允许用户从特定的WCS服务器获取一个或多个保险的详细说明文档。GetCoverage
:根据查询请求返回包含或引用请求的覆盖数据的响应文档。
Web地理覆盖服务(WCS):提供对包含地理信息或属性的空间栅格层的访问,而不是静态地图。根据HTTP客户端请求发送相应的数据,包括图像、多光谱图像等科学数据。两个重要的操作是 GetCapabilities
, GetCoverage
。
GetCapabilities
返回要从中获取覆盖的数据集合的服务和XML文档的说明。GetCoverage
在GetCapability确定查询方案和要获取的数据后执行,并返回覆盖数据。
还有一项可选操作是 DescribeCoverageType
。WCS对应于基于栅格数据的功能,对应于基于矢量数据的WMS的特点。
Web覆盖服务(WCS)面向空间图像数据,即在互联网上交换包含地理位置值的地理空间数据。Web覆盖服务由三个操作组成:GetCapables、GetCoverage和DescribeCoverageType。GetCapability操作返回一个描述服务和数据集的XML文档。Web覆盖服务中的GetCoverage操作是在GetCapability确定可以执行哪种查询,以及可以获得哪种数据并执行。它使用通用覆盖格式返回地理位置的值或属性。DescribeCoverageType操作允许客户端请求特定WCS服务器提供的任何覆盖范围的完整描述。
以上三个规范不仅可以作为Web服务的空间数据服务规范,还可以作为实现远东的空间数据互操作性。只要某个GIS软件支持该接口并部署在本地服务器上,其他GIS软件就可以通过该接口获得所需的数据。从技术实现的角度来看,Web服务可以理解为向外部世界公开可通过Web调用的接口的应用程序,允许以任何平台、任何系统和任何语言编写的程序调用它。这个应用程序可以用各种现有的编程语言实现。
Web服务最大的特点是可以实现跨平台、跨语言、跨硬件的互操作性。正是Web服务中的SOAP、WSDL和UDDI保证了Web服务的跨平台互操作性。因此,如何用UDDI部署、描述、传输和注册Web服务,是实现Web服务的关键。由于SOAP、WSDL和UDDI是一套标准,不同的制造商可以有不同的产品来实现这些标准,例如SUN、APACHE、IBM和Borland等公司推出的基于Java平台的Web服务工具包,以及微软提出的.NET。这些工具为Web服务的开发、部署和描述提供了便捷的工具,极大地降低了Web服务开发的复杂性。
切片地图服务(TMS)¶
切片地图服务(TMS)定义了允许用户访问切片地图的操作。WMTS可能是OGC支持REST式访问的第一个服务标准。
WPS¶
这些规范在各大主流地理信息系统平台和开源地理信息系统软件中基本得到支持。Intergraph早就发布了WFS服务器和互操作开发工具包。ESRI在ArcIms中开发了相关组件,以支持WMS、WFS和其他规范。
另一种:WPS(Web Processing Server)是一个新推出的标准,它的功能实际上是我们所熟悉的。处理是ArcView中的地理处理,如UNION、INTERSECT等方法。WPS需要做的是公开基于URL的接口,以实现客户端通过WebService调用此类方法并返回数据。这些规范在各大主流地理信息系统平台和开源地理信息系统软件中基本得到支持。
2.1.4. 软件支持¶
MapInfo8.5还增加了访问WMS和WFS服务的能力,以及读取GML数据的接口功能。
Geoserver、MapServer地图服务器扮演着向网络中的客户端提供地图服务的角色。这种类型的地图服务器可以接收统一的标准WMS和WFS请求,并以多种格式返回数据。此过程受到WMS/WFS规范的严格规范,因此它的地图服务器的实现是什么对客户端来说并不重要。这样的规范为公共的联合地图服务创造了可能性。
客户端软件如OpenLayers/MapBuilder、uDig和QGIS分为浏览器和桌面客户端程序。以OpenLayers为代表的B/S系统客户端现在功能非常强大。它可以封装WMS请求,并在浏览器上实现地图切片加载功能。
此外,拖拽和缩放功能也非常完善,可以实现跨浏览器操作。最新的OpenLayers版本也支持矢量编辑,可以通过WFS-t提交。传统的桌面客户端程序更强大,支持包括WMS和WFS在内的多种数据源,此外,编辑功能和可操作性也比浏览器中的更强。