栅格数据获取服务设计
6.4 栅格数据获取服务WCS设计
本书WCS设计遵循OGC的WCS(即Web Coverage Service)规范。OGC推出的面向栅格数据查询和获取的Web服务(Web Services)WCS以及面向矢量数据查询和获取的Web服务WFS(Web Feature Service)实现规范,共同组成了地理空间数据访问和获取的Web服务开发标准。
按照OGC的规范,一个WCS服务必须提供三个方法:
◇ GetCapabilities:得到一个提供WCS服务的站点所拥有的数据的简要概述;
◇ DescribeCoverage:查询给定一个或者多个Coverage数据的详细描述信息,一般返回的内容有数据格式、地理范围、数据精度、数据获取时间等;
◇ GetCoverage:按照指定的数据格式、图层名称、数据范围、数据时间等属性返回用XML描述的Coverage数据文件;
WCS服务的实现可以参考如图6.9类似结构,WebCoverageServer类以OGCWebServices抽象类继承getCapabilities方法,这是OGC规范中定义的所有服务共有的接口;每个WebCoverageServer实例必须提供两个方法:getCoverage和describeCoverage。
图6.9 OGC WCS接口规范的UML图
本书的WCS实现了一个简化版本的WCS服务,在服务的方法上与OGC的相关规范相同,只是在方法上以及对返回值作了一定的简化。本书WCS服务的GetCapabilities方法返回所有Coverage数据的名称;DescribeCoverage方法返回给定名称的Coverage描述信息;GetCoverage方法以SOAP二进制附件的形式返回给定名称的Coverage数据(Citystar GRD格式)。
图6.10 WCS服务的类结构图
在图6.10中,WebCoverageServer类是实现WCS服务主类,同时建立一个数据结构CoverageInfo和CoverageData来记录一个栅格图层的元数据和数据。WebCoverageServer实现三个简化版本的WCS服务所要求的方法为:
◇ GetCapabilities:得到一个WCS服务提供的所有数据图层名称,返回值是String数组;
◇ DescribeCoverage(String name):得到一个给定名称的栅格数据图层的元数据信息,包括数据格式、行列数、地理范围、空间分辨率等,仍然以字符串数据的形式返回;
◇ GetCoverage(String name):返回给定名称的图层数据,数据格式为Citystar GRD文件格式,SOAP/XML消息包括两个部分①在正文部分中,包含数据一些描述以及数据在附件中的偏移(即是第几个附件);②附件中以二进制的形式存储Citystar GRD格式的栅格数据。
WebCoverageServer类与CoverageData类之间是关联关系;CoverageData类与CoverageInfo类之间是聚合关系,每个CoverageData对象包含有且只有一个CoverageInfo。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。