OGC全称Open Geospatial Consortium,自称是一个非盈利的、国际化的、自愿协商的标准化组织,它的主要目的就是制定与空间信息、基于位置服务相关的标准。这些标准就是OGC的“产品”,而这些标准的用处就在于使不同厂商、不同产品之间可以通过统一的接口进行互操作。
在GIS领域,OGC已经是一个比较“官方”的标准化机构了,它不但包括了ESRI、Google、Oracle等业界强势企业作为其成员,同时还和W3C、ISO、IEEE等协会或组织结成合作伙伴关系。因此,OGC的标准虽然并不带有强制性,但是因为其背景和历史的原因,它所制定的标准天然地具有一定的权威性。
所以,我们也可以看到,很多国内的部门或行业要进行地理空间信息的共享或发布时,言必称OGC标准,就和这个原因有关。但是,事实上我们对OGC和OGC标准并不需要盲目崇拜和迷信,从RESTful服务规范的缺失、KML的空降等可以看出来,OGC还是有一些缺失和不足的地方。
OGC的标准基本上就是OGC所有的成果,而所谓的标准就是一些接口或编码的技术文档。不同的厂商、各种GIS产品都可以对照这些文档来定义开放服务的接口、空间数据存储的编码、空间操作的方法等。
除了正式发布的标准(OpenGIS® Standards ),OGC的工作成果还包括一些其它类型的文档,比如讨论稿(Discussion Papers )、抽象规范(Abstract Specification )、最佳实践文档(Best Practices Documents )、OGC参考模型(OGC Reference Model (ORM) )、白皮书(White Papers )等。在OGC的工作中,标准的制定可能由待讨论的“讨论稿”开始,在形成一定的统一意见后形成“抽象规范”,进一步具体化到“标准”,在这个过程中同时也可能形成“最佳实践文档”供印证,而“OGC参考模型”则是描述“抽象规范”、“标准”、“最佳实践文档”之间的关系。当然,其中我们最关心的还是OGC标准文档。
Web 地图服务(WMS)能够根据用户的请求返回相应的地图(包括PNG,GIF,JPEG等栅格形式或者是SVG和WEB CGM等矢量形式)。
WMS支持网络协议HTTP,所支持的操作是由URL定义的。
有三个重要操作GetCapabilities,GetMap,GetFeatureinfo。
GetCapabilities(能力、功能)返回服务中要素类及支持的操作;
GetMap返回一个地图影像;
GetFeatureinfo返回显示在地图上的某些特殊要素的信息(多个图层,则各个图层的信息都可以获取到)。
还有一些其它操作如DescribeLayer,GetLegendGraphic,GetStyles,SetSytles。
事实上用传统的观点来解释,GetMap获得的就是在桌面程序中画在控件上的里的结果,是数据的表现。GetFeatureInfo更容易理解,它和几乎所有的桌面程序上都用的Info按钮功能相同,都是用来获得屏幕坐标某处的信息,GetFeatureInfo中的参数是屏幕坐标、当前视图范围等,在一定程度上也方便了客户端的编写。GetFeatureInfo可以同时返回多个图层中的要素信息,这一点和ArcGIS Desktop等也都是相同的。WMS还包括一些GetLegend之类的返回图例信息的请求,也是完全按照桌面既有的标准定义的。
通过在百度地图开发者中心测试(开发文档-地图编辑器),可以编辑任意的样式,这样的服务是动态的,是利用GetStyles、SetSytles来改变的;
WMTS,切片地图Web服务(Web Map Tile Service)。WMTS标准定义了一些操作,这些操作允许用户访问切片地图。WMTS可能是OGC首个支持RESTful访问的服务标准。
WMTS提供了一种采用预定义图块方法发布数字地图服务的标准化解决方案。WMTS弥补了WMS不能提供分块地图的不足。WMS针对提供可定制地图的服务,是一个动态数据或用户定制地图(需结合SLD标准)的理想解决办法。WMTS牺牲了提供定制地图的灵活性,代之以通过提供静态数据(基础地图)来增强伸缩性,这些静态数据的范围框和比例尺被限定在各个图块内。这些固定的图块集使得对WMTS服务的实现可以使用一个仅简单返回已有文件的Web服务器即可,同时使得可以利用一些标准的诸如分布式缓存的网络机制实现伸缩性
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为载体。这个结果集,类似于桌面程序查询结果的数据表。
Web栅格服务(WCS):提供的是包含了地理位置信息或属性的空间栅格图层,而不是静态地图的访问。根据HTTP客户端要求发送相应数据,包括影像,多光谱影像和其它科学数据.
有二个重要操作GetCapabilities,GetCoverage
GetCapabilities返回一个描述服务和XML文档,从中可获取覆盖的数据集合。
GetCoverage是在GetCapabilities确定查询方案和需要获取的数据之后执行,返回覆盖数据。
还有可选操作DescribeCoverageType。
WCS对应基于栅格数据的功能,与WMS基于矢量数据的特点相对应。
Web处理服务 (WPS) 规范是一种用于在 Web 上提供和执行地理空间处理的国际规范。可通过在发布地理处理服务时启用 WPS 功能来创建 WPS 服务。
服务所需的数据可以通过网络传递,也可以在服务器上提供。该数据可以使用图像数据格式或数据交换标准,如地理标记语言(GML)。计算可以简单地从另一个空间减去一组空间参考数(例如,确定两个季节之间流感病例的差异),也可以像全球气候变化模型一样的复杂。
就是发布GP工具到服务。
GP (Geoprocessing)空间处理、地理处理
GP服务是个非常有用的工具,几乎所有的桌面版的地处理工具都可以发布称GP服务。
地图数据通常体量较大,需要充足的带宽和数据渲染能力。瓦片地图诞生以前,地图多在局域网的桌面软件中使用。互联网的发展,催生了通过浏览器使用地图的需求,于是在1999年,出现了WMS(Web Map Service)这样的解决方案。在浏览器这一端,没有地图的概念,但浏览器天生就是为了显示文本和图片。WMS的设计是,在服务器端把地图渲染成图片,浏览器端显示地图图片。地图图片大小根据浏览器视窗大小来定。
这大大推进了互联网地图的进程。问题是,WMS根据浏览器视窗大小每次生成一大张图片,对于后端渲染和网络传输都是挑战,效率低下。紧接着就有了WMS-C(Cached)的思想,通过缓存地图瓦片提高效率。在工程实践方面更胜一筹的Google成为这一思想的最佳实践者。2005年,Google地图上线,通过高效的瓦片地图技术,让全球用户轻而易举的享受到了地图的福利。 Google地图采用的Web Mecator投影和瓦片分级切割方案,也成为目前互联网地图事实上的标准。紧接着,Google地图又新增了路网服务、实时路况、街景地图和Google地球,互联网地图的蓬勃发展就此开始。
原理:
使用互联网地图时,我们看到的是一张铺满整个屏幕的大的地图图片。实际上,这张大的图片是多个尺寸相同(通常是256*256像素)的小图片按照既定规则无缝拼接而成的,这些小图片就是瓦片。瓦片按照如下图所示的金字塔结构组织,每张瓦片都可通过级别、行列号唯一标记。在平移地图、缩放地图时,浏览器根据金字塔规则,计算出所需的瓦片,从瓦片服务器获取并拼接。
瓦片是静态的图片,可预先生成,通过缓存和CDN技术,瓦片服务器可提供高效的瓦片读取服务。此外,浏览器并行获取和显示多张小图片,比获取和显示一张大图片要高效的多。显示地图变成和显示图片一样简单,这也是互联网地图能够承载亿级规模用户的原因。