地理信息服务聚合分为两种类型的聚合,一种是不同类型的服务聚合,将不同来源的地图服务、数据服务和分析服务进行聚合,提供丰富的 GIS 服务能力。例如,将 SuperMap iServer 的北京道路路径分析服务,第三方提供的酒店、商业网点的 GeoRSS 数据服务和 WMS 北京影像地图服务通过 SuperMap iServer 进行聚合,构建面向公众的北京信息服务平台。这种聚合的任务分派比较明确,客户端向 SuperMap iServer 的聚合服务提交 GIS 请求,聚合服务根据请求的类型,将地图相关请求、空间数据相关的请求、空间分析请求分别通过地图服务聚合提供者(AggregationMapProvider),空间数据服务聚合提供者(AggregationDataProvider)和空间分析服务聚合提供者处理。
第二种聚合是同种类型服务的聚合,例如,两个都可以提供公交换乘分析的服务,一个提供成都市的公交换乘分析服务,一个提供重庆市的公交换乘分析服务,将两个服务进行聚合,用于构建城市公交换乘服务平台。客户端提交一个公交换乘请求,聚合服务该如何分派任务?又如,两个具有相同地图范围的地图服务,第一个服务提供上海行政区划图,第二个服务提供上海水系分布图。要求将第一个服务的地图作为底图,绘制出上海各区域水系分布情况图,此时该如何聚合?
SuperMap iServer 的聚合服务并不是简单进行服务的叠加,聚合服务提供者保存有被聚合服务节点的状态,包括被聚合的服务所处理的地图范围,地图名称等,当聚合服务提供者聚合同类型的服务时,如上例,聚合服务提供者根据客户端传递的请求参数,如地图名称、地图范围、地图图层等信息,将任务分派给合适的服务节点处理,如,客户端请求沈阳两个地点间的换乘方案,聚合服务提供者会利用沈阳市的公交换乘分析服务进行处理。
聚合服务处理相同区域范围的聚合内容时,会像各个服务提供者获取该范围的地图以及相关地图参数,通过聚合器将各个服务提供者提供的地图进行叠加,形成新的地图返回给客户端,同时将新地图的相关参数,包括地理范围、图层信息等一并返回客户端。如上例,聚合服务按照要求,将第一个上海行政区划图与第二个水系分布图进行图片叠加,形成一个新的上海各行政区的水系分布图返回客户端,同时返回的图层信息不仅包括上海行政区划图的图层信息还包括了上海水系图层的信息。
值得说明的是,当多个地图服务进行聚合的时候,需要这些地图服务提供者提供的地图具有相同的投影坐标系,否则,服务聚合器在没有同一的投影坐标系的情况下无法得出准确的聚合结果。