Open Geospatial Consortium Inc
Date:2006-03-15
Reference number of this document :OGC ® 06-042
version 1.3.0
category: OpenGIS ® Implementation Specification
Editor: Jeff de la Beaujardiere
OpenGIS® Web Map Server
Implementation Specification
Copyright © 2006 Open Geospatial Consortium,Inc All Right Rerved.
To obtain additional rights of u ,visit www.opengeospatial/legal/.
®
Document type: OpenGIS Implemetation Specification
Document subtype: Not Applicable
Document stage final
Document Language: English
O pen G eospatial C onsortium Edit By Ganlin.h
一、WMS之坐标系统
1 Map CS(Map Coordinate System)
jlc该坐标系统有两个方向轴:i轴和j轴,其中,i和j的取值都只能为非负值.通常,i代表lay CRS的西-东方向,而j代表Lay CRS的北-南方向.
在GetMap和GetFeatureInfo请求中的WIDTH和HEIGHT参数与i和j对应的关系如下: WIDTH:对应i轴方向的像素值,也就是说,WIDTH-1为i的最大值
HEIGHT:对应j轴方向的map大小,同样,HEIGHT-1为j的最大值
2 Layer CRS(Layer Coordinate Reference System)
Layer CRS是一种水平坐标参考系统。每一个WMS,在下面几个实体中都会对应有一个CRS:
pant
dimension是什么意思──在rvice元数据中的<BoundingBox>元素
──GetMap request中的CRS参数
──在GetFeatureInfo request的map request部分中的CRS参数
一个WMS必须支持至少一种CRS,只有当从不同的rver中获取的maps都存在至少一个共同的CRS 时,这些maps才能够进行overlay叠置分析。
Layer CRS有两个坐标轴(有顺序):x轴(第一坐标轴)和y轴(第二坐标轴)。x轴并非一定指定为东西方向,而y轴也并非指定为南北方向,这完全取决于该坐标系统的定义。将一个Layer CRS映射到Map CS时,WMS映射将需要考虑该Layer CRS的坐标顺序,原点以及方向。
坐标应该以CRS中定义的顺序列出,并且需要通过适当的方式映射成Map CS的i ,j坐标,该过程中还有可能需要交换坐标的顺序。有很多的投影坐标参考系统的东向坐标值就不是在北向坐标值的前面,如,Finland的统一坐标系统(EPSG:2393)就是按照(北向坐标,东向坐标)的顺序排列的。EPSG的地理坐标参考系统遵循ISO6709标准就常将纬度值列在经度值的前面。
Layer CRS的标识符为一个字符串(character string),标识符的类型有两种:label和URL。Label 标识符由命名空间+冒号+数字或者字符串3部分组成,在一些示例中,还加上由逗号引领的一些参数。本标准定义了3个命名空间:CRS,EPSG和AUTO2.
CRS命名空间
come with me该命名空间涉及到在附录B中的坐标参考系统,这些定义遵循ISO19111规范,在附录B中的CRS命名空间地理参考坐标系统是为WGS 84,NAD27和NAD83数据定义的。
EPSG命名空间
该命名空间源自EPSG(European Petroleum Survey Group:欧洲石油测量组织),该组织定义了许多常用的坐标参考系统的数字标识(EPSG的”CRScode”,在EPSG的数据集中对应
为”COORD_REF_SYS_CODE”).
"EPSG"的CGS的标识由"EPSG"前缀,冒号(:)和一个数字编码组成.
例如:EPSG:4326表示WGS84的地学纬度和经度值,也就是说,在该CRS中,x轴对应于纬度,而y轴则为经度.
crew
注:EPSG地理参考坐标系统中,以”度──卖主定义的表示方法”为单位的轴,采用的是十进制的表示法.
W eb M ap S ervice Implementation Specification
AUTO2命名空间rare earth
该命名空间用于”自动”坐标参考系统中;其”自动”的意思就是,对于该类CRS,它包括由用户自定义其中心
的投影方式.
完整的”AUTO2”CRS标识符由”AUTO2”前缀,一个AUTO2命名空间内的数字标识(这个数字指示了在bounding box单元与AUTO2单元之间转换时应用的转换因子的大小),以及中心纬度和经度的度数。
例如:AUTO2:auto_crs_id,factor,lon0,lat0
其中,转换因子应为正的非0值。如果factor=1,则BBOX和CRS定义中规定的单元的值相同,如果该factor≠1,则为BBOX单元和CRS单元的比率。一个GetMap请求中指定了一个完整的AUTO2参考系统,它包括纬度,经度和单元(units)。在rvice元数据中将发布经度、纬度和单元(units)变量,因为它们将作为一个AUTO2坐标参考系统request被客户选择。
一个服务器通过在服务元数据中包含元素<CRS>AUTO2:42003</CRS>表明了它支持自动正射投影坐标参考系统。一个客户可能将发出一个在该坐标参考系下请求地图服务的Getmap请求,如果该服务的bounding box以米为单位,中心为西经100°、北纬45°,则该请求参数
为 : ”CRS=AUTO2:42003,1,-100,45”.
英语就业前景请求同例1,但是,转换因子允许bounding box以U.S英尺为单位,则其请求参数
为:”CRS=AUTO2:42003,0.3048006096012192,-100,45”.
未定义CRS英语语音
服务器可能提供一些没有定义精确空间参考的二维地理信息.例如,一幅手绘的历史地图可能代表了一个地球上的某一区域但是它并没有应用一个现代坐标参考系统,一幅航拍影像也可能没有精准的坐标参考.诸如此类的图形信息将被视为一幅图片(mage),因此,在声明这样一个实体的Layer CRS时,将使用其Map CS 标签也就是”CRS:1”.这样,客户端就不能试图将一个CRS=CRS:1的层与其他层进行叠置分析(overlay).
3 Bounding Boxes
顾名思义,它表示地图的范围,它的第一对数字表示Lay CRS中的最小坐标,而第二对值则为最大坐标.在大多数的Lay CRS中,坐标轴的正向为向东和向北,因此,这样两对数值就分部代表层的左下角和右上角坐标.但是当使用一个地理坐标系统来描述一个包括极点的区域时, 或者Layer CRS的正向为非东、北向的时候,就得视CRS的具体情况了。总而言之,bounding box的x值对应与CRS中的第一坐标,而y则对应于第二坐标。
Bounding Box值会在WMS的以下几个地方出现:
──rvice元数据中的<BoundingBox>元素中;
──GetMap request的BBOX参数中lte是什么
──GetFeatureInfo的map request部分中的BBOX参数
在CRS:84坐标参考系统中描述整个地球的<BoundingBox>元素书写如下:
<BoundingBox CRS=”CRS:84” minx=”-180” miny=”-90” maxx=”180” maxy=”90”>.
请求一幅整个地球的地图服务的参数如下:
BBOX=-180,-90,180,90
在EPSG:4326坐标参考系统中,一个<BoundingBox>元素描述整个地球应该书写如下:
<BoundingBox CRS=”EPSG:4326” minx=-90,miny=-180 maxx=”90” maxy=”90”>
请求一幅整个地球的地图的参数应该如下:图卢兹三大
BBOX=-90,-180,90,180.
O pen G eospatial C onsortium Edit By Ganlin.h
4 Vertical CRS(垂直坐标参考系统)
有些地理信息可能出现在几个不同的海拔高度上(例如,大气研究中的不同高度的臭氧信息)。一个WMS 因此可能需要在其服务元数据中通告其可得的高度参数,而GerMap操作也将包括一个可选的参数来请求特定的高度。
5 Temporal CS(时间坐标系统)
一些地理信息可能在时间上可得(例如,每隔一小时的气象地图)。一个WMS可能在其rvice元数据中声明其可得的时间参数,而GetMap操作则包括一个特定时间的请求参数。时间字符串的格式在
该标准的其他部分(附录D)中会有详细描述。时间参数按照请求内容的需要可能为一个单一值、一串数值或者时间间隔,具体描述在附录C中。当提供时间信息时,服务器在服务元数据中应该声明一个默认值并且应该在客户端没有提交具体的时间值的时候返回一个默认时间值的相关服务。
6 其他坐标系统
一些地理信息可能有其他的维度(例如,卫星图片的不同波段)。非4维时空维度的其他维度都归于“样本维度”(Sample Dimension)。一个WMS可能在其rvice元数据中通告可用的“样本维度”,则在GetMap操作中存在一个请求该维度值的操作。每一个“样本维度”有一个名字对应一个或多个可用的值。(声明和使用“样本维度”的原规格书在C3.3中有详细阐述)
二、请求参数规则request parameter rules
1 参数顺序和大小写
参数名称不应该为大小写敏感的,而是参数值则应该是.在该文档标准中,为了排班上的清晰,参数名称通常为大写形式,但这个不是必须的.
请求中的参数可以以任意顺序排列.
当请求的参数多次出现并相互冲突时,服务器可能响应未知值.
WMS应该能处理在该文档中没有定义的请求参数.用该标准的话来说,就是,这个参数对WMS为多余的.
2 参数列表
参数由一个列表组成(比如,BBOX,LAYERS,STYLES),该列表应该使用逗号(“,”)作为表项的分隔符,而期间不应该有多余的空格符.如果在一个列表中存在空格符或者逗号,按照URL编码规则,它们将被忽略.
有时候,一个列表项的内容可能为空,所以应该用一个空的字符串表示,(如””).这样,两个连续的逗号就表示一个空项,该空项由一个逗号引领并且由一个逗号结尾.一个空项可能被翻译为一个不包含任何表项的列表,也可能是作为一个单独的空项目,这取决于其内容.
W eb M ap S ervice Implementation Specification
三、常用的请求参数
VERSION该参数描述协议版本
REQUEST该参数指示激活哪个服务操作.其值应该为服务器提供的操作的名称之一
FORMAT指示一个操作的响应
WMS可能只提供被某一类型的操作知晓的一个格式集合的子集,因此,服务器应该在自己的服务元数据中告知其支持的那些格式,并且应该接受请求其中任何一种格式的请求.服务器也可以选择地提供一种此前其他实例没有的新的格式,该格式并不要求客户端能接受和进行处理.如果一个请求包含未被服务器提供的请求格式,则服务器为该已定义操作返回其默认格式,或者如果没有定义默认操作,则抛出一个服务异常(编码为”InvalidFormat”).
客户端可能也只能接受被一种操作知晓的格式集合的一个子集.如果客户端和服务器没有可以相互认同的操作格式.那么客户端可能按照子集的判断终止同服务器的联系,或者搜索提供该格式的中介服务来进行格式转换,或者允许用户挑选其他部署方法(也就是说,在本地存储或者传递给一个帮助应用程序).
在服务元数据和操作请求中,格式均使用MIME类型.每一个操作都有其特有的支持格式列表.有些格式可能被多个操作提供,因此,需要时可以在列表间进行复制.
EXCEPTIONS 用来报告错误
扩展能力和操作
WMS允许可选的扩展能力和操作.扩增可能在一个信息社区内定义用于添加额外功能或规范.普通客户应该不被要求或期望使用该扩展.扩展能力和操作通过在服务元数据模式(schema)中提供抽象元素
<_ExtendedCapabilities>或<_ExtendedOperations>的实例来定义.扩展能力提供关于服务的额外元数据,并且可以使得可选的新参数被包含或不被包含进操作请求中.扩展操作允许定义额外操作.
即使在扩展能力参数丢失或者残缺(也就是说,服务器应该为其定义的任何扩展能力提供一个默认值),或者提供的参数不被服务器知晓的情况下,服务器应该产生一个在该标准中定义的操作的可行响应.
服务提供者应该小心选择扩展名字,以避免和标准元数据字段、参数和操作相冲突.
四、WMS操作
WMS定义了3个操作:GetCapabilities,GetMap,GetFeatureInfo.其中GetFeatureInfo为可选的.下面的条款规定了如何在Http和DCP中执行和使用WMS操作.
Ⅰ GetCapabilities(必须的)
1. 概述
该操作的目的在于获取服务元数据.元数据是的对服务器信息内容和可接受的请求参数值的一种机器可读性(并且可以人读)描述.
在对一个WMS rver构造GetCapabilities请求时──当然这个rver也可以提供其他类型的服务──特别地,客户会有必要查找关于WMS的信息.这样,该请求的SERVICE参数就应该包含”WMS”,如下表所示.
Request parameter Mandatory
/optional
Description