个请求中包了指定的服务器不提供的格式,那么服务器必须抛出服务异常(采用\编码)。
一个客户端可以只接受该类操作所有已知格式的一个子集,如果客户端和服务没有任何相互认可的支持格式,客户端出于谨慎的考虑可能停止和那个服务通讯,或是寻找一个中间服务完成格式转换,或是允许用户选择其它处理方法(保存到当地储存或是转向帮助)。
在Capabilities XML中和在操作请求中,格式都是用MIME类型表达的,每个操作都有一个所支持格式的明确的清单。一些格式可能有好几个操作提供,有必要在每个操作中都重复列出。
一般来说,OGC网络服务的MIME类型是从互联网公用类型中选出来的[9]。然而,为了区分用XML格式表达的不同类型的内容(通用XML MIME类型包括文本/XML和应用/XML),还需要采用一些适合于OGC特殊类型,如表3所列。
表3 OGC特殊 MIME 类型
MIME类型 文件内容 application/vnd.ogc.wms_xml application/vnd.ogc.gml application/vnd.ogc.se_xml application/vnd.ogc.se_inimage application/vnd.ogc.se_blank 6.5.4 EXCEPTIONS
WMS 功能XML 地理标记语言 XML [1] 服务异常 XML 异常信息覆盖影象 因异常导致空白影象 EXCEPTIONS参数表明了报告错误的格式。参见以下6.7节服务异常。
6.5.5 空间参考系
空间参考系统是一个文本参数,它命名了一个平面坐标参考系统的编码。这个命名包括一个命名空间前缀,一个冒号,一个数字标识,后面可能还跟随着一个逗号和附加的参数。这个规范定义了两个命名空间,EPSG和AUTO,它们在下面将讨论。
注:术语SRS是沿袭了WMS1.0.0版本的用法,更现代的用法是用坐标参考系(CRS)表示用坐标做空间参照,用空间参考系(SRS)表示用地址或索引做空间参照。
并不要求OGC网络服务支持所有可能的SRS,但是必须在Capabilities XML中公告它所提供的那些投影,并且必须接受服务请求中所包含的已公告的投影。如果一个请求中包了指定的服务器不提供的投影,那么服务器必须抛出服务异常(code = “InvalidSRS”)。
并不要求客户端支持所有可能的SRS,如果客户端和服务没有任何互相都支持的SRS,客户端出于谨慎的考虑可能停止和那个服务通讯,或是寻找一个中间服务完成坐标转换,或是允许用户选择其它处理方法。
6.5.5.1 EPSG的SRS命名空间
20
EPSG命名空间运用欧洲石油测量组(EPSG)的坐标参照系表,它为每个公用的投影定义了一个数字标识码(EPSG CRS编码,和EPSG数据库“COORD_REF_SYS_CODE”项相对应),并将该标识码与投影或坐标元数据(例如,度量单位或是中央子午线)联系在一起。在EPSG命名空间中,SRS名仅仅包括前缀和识别符,没有任何额外的参数。这个格式既作为服务请求中的SRS参数值使用,也作为Capabilities XML中的SRS元素值使用。
当SRS参数指定了一个地理坐标参考系统,例如,“EPSG:4326”,则返回的影象采用的投影方法是伪Plate
Carrée投影, X轴表示经度, Y轴表示纬度。对于这样一个坐标参考系统来说,服务请求中的BBOX参数
(7.2.3.6节)必须采用如下顺序指定:最小经度,最小纬度,最大经度,最大纬度。BBOX参数值必须用该坐标参考系统的度量单位。
有些投影坐标参考系统,如“EPSG:30800”(在瑞典用的“RT38 2.5 gonW”),并不采用X=East, Y=North,的坐标轴。对于这类坐标系统,服务请求中的BBOX参数必须采用如下顺序指定:东最小值,北最小值,东最大值,北最大值。BBOX参数值必须用该坐标参考系统的度量单位。
BOX参数值必须用小数或是浮点型表示,特别是六十进制的度数必须表示成十进位度数。
6.5.5.2 用于SRS的AUTO命名空间
AUTO名字空间是用于“自动”投影,也就是它包含一个任意投影中心的投影。指定自动投影的SRS请求参数包括了AUTO命名空间前缀,一个来自AUTO命名空间的投影标识,一个来自EPSG命名空间的用于表明该SRS中范围框的度量单位的数字识别符,和用十进制度数表示的中心经度和纬度的值。
AUTO:auto_proj_id,epsg_units_id,lon0,lat0
该规范附件E中定义了有效的投影标识。
在请求具有地理参考系地图和数据库时,要指定完整的AUTO SRS,包括经度、纬度和单位。在Capabilities XML中,经度、纬度和单位都被省略了,因为在采用AUTO SRS的请求中,它们是由端选择的。
例:有一个服务实例,其Capabilities XML中元素包含了“
6.5.5.3 未定义的SRS
服务器可能提供没有确切定义空间参照系的地理信息。例如,一些经过数字化了的手工绘制的历史地图,它们可能表示了地球上的某一个区域,但没有使用现代坐标系统。在这种情况下,必须采用“NONE”(区分大小写)值来表示这种数据集或对象的SRS。客户端不应该试图将SRS=none的信息与其它信息叠置在一起。
6.5.6 范围框
范围框是包含了四个以逗号分隔的一组数字表达,它的值可以是小数、科学记数、或是整数(如果在需要
21
浮点数的地方提供了整数,则假定小数点在数字末尾)。这些值采用请求SRS的单位,按照最小的X,最小的Y,最大的X,最大的Y的顺序来给出一个矩形框范围。当SRS采用的是经纬度坐标和Platte Carrée投影时, X轴表示经度,Y轴表示纬度。范围框的四个值表示了矩形的外围边界,如图5所示:最小的X表示左边界,最大的X表示右边界,最小的Y表示底部边界,最大的Y表示顶部边界。图中还表示了范围框与影象象素阵列的关系:范围框经过的是像元的外侧而不是经过像元的中心,从这个意义上说,单个像元具有面积。
图5 范围框的表达
Each pixel coversan area on the groundMaximum YPixel matrix of an imageMinimum YMinimum XMaximum XBBOX edge
范围框不应该具有零面积。
如果请求包含了一个无效的范围框(例如,最小的X大于或等于最大的X,或是最小的Y大于或等于最大的Y),服务器必须抛出异常。
如果请求中的范围框与Capabilities XML中公告的被请求的地理数据对象的范围框没有任何重叠区,服务器对该元素的应答应该为空内容(如:一张空白地图,一个空覆盖文件,一个空要素集)。任何一个部分或是全部包含在范围框里元素都应该以适当的格式返回给客户。
如果范围框中的值在给定的SRS无定义(如在EPSG里纬度大于90度),在SRS的有效范围外服务器应该返回空内容。
在位于国际日期变更线经度为180度的特殊情况下,适用以下行为。对于地图来说,跨跃国际日期变更线(例如,地图是以太平洋为中心)是完全正当的要求。然而,如果严格按照上一段的解释,在180度以外的范围中的内容应该显示为空,这对应于下面的严格(STRICT)约束。服务器可以选择以下的宽松(LOOSE)约束替代严格(STRICT)约束来放宽该限制。如果最小的X(minx)是在最西部的经度而最大的X(maxx)
22
是在最东部,那么:
STRICT经度约束(默认值): -180 <= minx < maxx <= 180 LOOSE 经度约束(可选)
-180 <= minx < maxx < minx + 360 < 540 例子: minx和maxx值及其范围框对应的范围: -180,180 =以格林威治为中心。 0,360 =全球范围,格林威治在左边缘 120,250 = 太平洋地区
6.5.7 时间维
对于有些类型地理空间信息,可以获取在多个时段上的信息(例如,每小时气象地图)。OGC网络服务可能在Capabilities XML里通告可以得到那些时间的地理空间信息,并且在一些操作中包括了用于请求特定时间的参数。附件C里规定了时间串的格式。正如附件D里所规定的,根据具体情况,时间值可以作为单一值、时间值的列表、或是一个时间段的形式出现。如果提供了时间信息,服务器应该在其Capabilities XML里公布一默认值,除非存在强制性因素规定不这样做。如果服务器公布了一个默认的时间值,并且在客户请求中不包含时间值,那么服务器必须以默认时间值作出应答。
6.5.8 高程维
对于有些类型地理空间信息,可以获取在多个高程上的信息(例如,大气中不同高度的臭氧的浓度)。OWS可以在Capabilities XML里申明有效的高程值,有些操作包含了用于请求特定高程的参数。单个高程值是一个整数或实数,它的单位是通过命名一个EPSG基准而申明的。正如附件D里所规定的,根据具体情况,高程值可以作为单一值、高程值的列表、或是一个高程区间的形式出现。果提供了高程信息,服务器应该在其Capabilities XML里公布一默认值,除非存在强制性因素规定不这样做。如果服务器公布了一个默认的高程,并且在客户请求中不包含高程,那么服务器必须以默认高程作出应答。
6.5.9 其它样本维度
对于有些类型地理空间信息,可以获取其它维度上的信息(例如,不同波段的卫星图像),四维时空以外的其它维度叫做样本维度,OWS可能在Capabilities XML里申明有效的维度,并且一些操作具有包含这些维度参数的机制,每个样本维度都有一个名字(Name)和一个或是多个有效值。在附件D里规定了样本维度的申明和使用方法。
6.5.10 附加请求参数
大多数的服务请求要求附加参数(请求之外),以便明白无误地说明要建构什么样的结果。每个OGC网络服务规范都为操作定义了一些必选和可选择的参数。
6.5.11 卖方参数(VSP)
最后,请求中可以使用可选择的卖方参数,它会改善请求得到的结果。在通常情况下,这些参数用于在可能进行的标准化之前,对非标准功能的非正式测试。既不要求也不指望通用的客户端会利用这些VSP。
23
无论VSP是否缺失或者格式是否正确(即,该服务必须提供一个缺省值),或者客户端提供的VSP对于服务器是否是未知的(即,服务器必须忽略未知的VSP参数),OGC网络服务必须产生有效的结果。
OGC网络服务可能选择不公布一些或全部VSP,如果VSP包括在Capabilities XML里,那么它们必须在Capabilities XML文档的内部DTD部分中进行定义 (内部DTD由XML文档的
客户端可以读取内部DTD,并利用任何公布的VSP构造请求。
卖方在选择卖方参数名时应注意避免和标准参数相冲突。
6.6 服务结果
一个有效服务请求的返回值必须符合FORMAT参数中被请求的类型。在HTTP环境下,响应的目录类型头信息必须严格使用请求中指定的MIME类型。
表3中定义了几个用于各种类型XML文档(这些类型照例都要标注\)的具体的OGC MIME类型。为了与本规范一致,服务器必须返回适当的OGC MIME类型(如果该类型已定义),同时客户端必须能够接受该类型。但是建议客户端也预备接受MIME类型“text/xml”,并能通过其它方式推出具体的内容类型。 、
6.7 服务异常
当接收到一个请求,并且依据使用的分布式计算平台(DCP)的规则该请求无效时,服务可以发布一个在该DCP上有效的异常类型。例如,在HTTP DCP上,如果URL前缀是错误的,将送回一个HTTP 404 [IETF RFC 2616]状态码。
当接收到一个请求,并且依据相应的OGC网络规范该请求无效时,服务必须发布一个如这里和附录 A.3所定义的服务异常报告。该报告用于向客户端应用程序和使用者说明请求无效的原因。
请求中的异常(EXCEPTIONS)参数指出了客户端希望的服务异常报告告格式。唯一一个为所有的OGC Web Services定义的EXCEPTIONS参数值是:“application/vnd.ogc.se_xml”,其含义为“Service Exception XML”。特定的服务可以定义其它的格式;在本规范的7.2.3.11节中,为网络地图服务器定义了另外的异常格式。
注意:客户端也应该准备接受其它的返回值和类型,因为存在这样的可能性,即服务实例性能不佳或请求指向了不合格OGC网络服务。
服务异常报告XML必须符合附录A.3中的服务异常DTD。在HTTP环境下,返回XML的MIME类型必须是\application/vnd.ogc.se_xml\,单个错误信息作为
服务异常可以包括附录A.3中指出的异常代码。除了这些指定的以外,服务程序不允许使用这些代码规定意义以外的含义。本规范定义了几个异常代码;容许异常的具体代码和语义可能在其它的OGC网络服务执行规范中得到扩展。客户端可以使用这些代码去自动响应服务异常。
24