com.supermap.services.providers

类 AggregationMapProvider

  • java.lang.Object
    • com.supermap.services.providers.AggregationMapProvider
  • 所有已实现的接口:
    Disposable, MapProvider, ProviderContextAware


    public class AggregationMapProvider
    extends java.lang.Object
    implements MapProvider, Disposable, ProviderContextAware
    

    具有聚合能力的地图服务提供者。

    具有聚合能力的 GIS 服务提供者是一类特殊的 GIS 服务提供者,该服务提供者在 SuperMap iServer 中也称之为服务聚合器。 具有聚合能力的地图服务提供者可称为地图服务聚合器,是聚合器中具有地图服务聚合能力的聚合器。

    与其他服务提供者(比如 WMSMapProvider,WMS 服务提供者)不同的是,服务聚合器并不直接去获取远程或本地的服务, 或者直接在内部进行 GIS 功能封装,而是通过调用不同服务类型的 GIS 服务提供者来实现 GIS 功能。这些 GIS 服务提供者封装并整合了各类不同类型,不同来源的服务。

    比如,AggregationMapProvider 可以通过调用 UGCMapProvider(UGC 地图服务提供者)和 WMSMapProvider(WMS 服务提供者)实现对本地 SuperMap Objects 提供的地图功能和远程 WMS 服务提供的地图功能聚合。 如下图所示:

    AggregationMapProvider 目前支持的地图聚合能力包含:

    • 地图图片的叠加。
    • 地图参数的叠加。
    • 查询结果的叠加。

    AggregationMapProvider 目前不支持以下功能:

    • 修改地图默认参数。
    • 输出鹰眼。
    • 构造器详细资料

      • AggregationMapProvider

        public AggregationMapProvider()
        

        默认构造函数。

      • AggregationMapProvider

        public AggregationMapProvider(AggregationMapProviderSetting mapProviderSetting)
        

        根据聚合地图服务提供者设置构造一个新的 AggregationMapProvider 实例。

        参数:
        mapProviderSetting - 聚合地图服务提供者设置。该参数不能为空。
    • 方法详细资料

      • getNames

        public java.util.List<java.lang.String> getNames()
        

        获取当前地图服务提供者所对应的地图名称列表。

        指定者:
        getNames 在接口中 MapProvider
        返回:
        地图名称列表。
      • getMapParameter

        public MapParameter getMapParameter(java.lang.String mapName)
        

        获取指定地图的地图参数,该指定的地图名称是指聚合之后的地图名称。

        当对多个地图进行聚合时,通过该方法可以获取聚合之后的地图参数,其中图层列表(MapParameter.layers) 中存放参与聚合的多个地图的所有图层。

        指定者:
        getMapParameter 在接口中 MapProvider
        参数:
        mapName - 聚合之后的地图名称。
        返回:
        地图聚合之后的地图参数。
      • clearCache

        public void clearCache(java.lang.String mapName,
                      Rectangle2D bounds)
        

        清除地图对应范围的缓存图片。

        指定者:
        clearCache 在接口中 MapProvider
        参数:
        mapName - 地图名称。
        bounds - 地图范围。
      • getMapImage

        public MapImage getMapImage(MapParameter mapParameter,
                           ImageOutputOption outputOption)
        

        根据地图参数和图片输出设置获取地图图片。

        指定者:
        getMapImage 在接口中 MapProvider
        参数:
        mapParameter - 地图参数。
        outputOption - 图片输出设置。
        返回:
        地图图片对象。
      • getResource

        public java.lang.String getResource(java.lang.String mapName,
                                   ResourceParameter resourceParameter)
        

        根据资源图片参数,获取聚合后地图的资源图片。

        指定者:
        getResource 在接口中 MapProvider
        参数:
        mapName - 地图名称。
        resourceParameter - 资源图片参数。
        返回:
        资源图片地址。
      • measureDistance

        public MeasureResult measureDistance(java.lang.String mapName,
                                    Point2D[] points,
                                    MeasureParameter measureParam)
        

        根据二维地理坐标点、量算参数,在聚合后的地图上进行距离量算。

        指定者:
        measureDistance 在接口中 MapProvider
        参数:
        mapName - 聚合后的地图名称。
        points - 二维地理坐标点数组。
        measureParam - 量算参数。
        返回:
        距离量算结果。
      • measureArea

        public MeasureResult measureArea(java.lang.String mapName,
                                Point2D[] points,
                                MeasureParameter measureParam)
        

        根据二维地理坐标点、量算参数,在聚合后的地图上进行面积量算。

        指定者:
        measureArea 在接口中 MapProvider
        参数:
        mapName - 聚合后的地图名称。
        points - 二维地理坐标点数组。
        measureParam - 量算参数。
        返回:
        面积量算结果。
      • queryByDistance

        public QueryResult queryByDistance(java.lang.String mapName,
                                  Geometry geometry,
                                  double distance,
                                  QueryParameterSet queryParam)
        

        在聚合后的地图上,查询距离指定的几何对象一定范围内的所有几何对象。

        到指定几何对象的一定距离范围,实际是以指定几何对象为中心的一个圆,在这个圆内以及与圆相交的几何对象都能够被查询出来。

        该方法将返回地图聚合之后所有满足查询条件的结果。

        指定者:
        queryByDistance 在接口中 MapProvider
        参数:
        mapName - 聚合后的地图名称。
        geometry - 几何对象。该几何对象仅包含空间信息、形状信息等,并不包括属性信息。
        distance - 查询的距离范围。
        queryParam - 查询参数集。可对某个地图的多个图层进行查询, 单个图层的查询参数在 queryParam.queryParams[i] 中进行设置。
        返回:
        查询结果对象。
      • queryByGeometry

        public QueryResult queryByGeometry(java.lang.String mapName,
                                  Geometry geometry,
                                  SpatialQueryMode spatialQueryMode,
                                  QueryParameterSet queryParam)
        

        在聚合后的地图上,查询与指定的几何对象符合某种空间关系和查询条件的几何对象。

        该方法将返回地图聚合之后所有满足查询条件的结果。

        指定者:
        queryByGeometry 在接口中 MapProvider
        参数:
        mapName - 聚合后的地图名称。
        geometry - 几何对象。该几何对象仅包含空间信息、形状信息等,并不包括属性信息。
        spatialQueryMode - 空间几何对象间的查询模式。空间几何对象间的查询模式定义了一些几何对象之间的空间位置关系, 根据这些空间关系来构建过滤条件执行查询。例如:查询可被包含在面对象中的空间对象,与面有相离或者相邻关系的空间对象等。
        queryParam - 查询参数集。可对某个地图的多个图层进行查询, 单个图层的查询参数在 queryParam.queryParams[i] 中进行设置。
        返回:
        查询结果对象。
      • queryBySQL

        public QueryResult queryBySQL(java.lang.String mapName,
                             QueryParameterSet queryParam)
        

        在聚合后的地图上执行 SQL 查询。

        该方法将返回地图聚合之后所有满足查询条件的结果。

        指定者:
        queryBySQL 在接口中 MapProvider
        参数:
        mapName - 聚合后的地图名称。
        queryParam - 查询参数集。可对某个地图的多个图层进行查询, 单个图层的查询参数在 queryParam.queryParams[i] 中进行设置。
        返回:
        查询结果对象。
      • getDefaultMapParameter

        public MapParameter getDefaultMapParameter(java.lang.String mapName)
        

        获取指定地图的默认地图参数,该指定的地图名称是指聚合之后的地图名称。

        当对多个地图进行聚合时,通过该方法可以获取聚合之后的默认地图参数,其中地图名称(MapParameter.name) 是聚合名称,图层列表(MapParameter.layers)中存放参与聚合的多个地图的所有图层。

        指定者:
        getDefaultMapParameter 在接口中 MapProvider
        参数:
        mapName - 聚合后的地图名称。
        返回:
        地图聚合之后的默认地图参数。
      • viewEntire

        public MapImage viewEntire(java.lang.String layerName,
                          MapParameter mapParameter,
                          ImageOutputOption outputOption)
        

        根据地图图层名、地图参数以及图片输出设置进行全幅显示。

        参数中指定的图层名称是指以该图层内容的最小外接矩形作为全幅显示的地理范围。

        指定者:
        viewEntire 在接口中 MapProvider
        参数:
        layerName - 地图图层名,即以该图层的最小外接矩形作为全幅显示的地理范围。
        mapParameter - 地图参数。
        outputOption - 图片输出设置。
        返回:
        地图对象。
      • getOverview

        public Overview getOverview(MapParameter mapParameter,
                           ImageOutputOption outputOption)
        

        目前不支持该方法。

        获取地图叠加之后的鹰眼。

        指定者:
        getOverview 在接口中 MapProvider
        参数:
        mapParameter - 地图参数。
        outputOption - 图片输出设置。
        返回:
        鹰眼对象。
      • findNearest

        public QueryResult findNearest(java.lang.String mapName,
                              Geometry geometry,
                              double maxDistance,
                              QueryParameterSet queryParameters)
        

        查找距离指定几何对象一定容限内最近的几何对象。

        该方法将返回地图聚合之后所有满足查询条件的结果。

        指定者:
        findNearest 在接口中 MapProvider
        参数:
        mapName - 指定地图名称
        geometry - 指定的几何对象。
        maxDistance - 容限范围。
        queryParameters - 查询参数集。可对某个地图的多个图层进行查询, 单个图层的查询参数在 queryParam.queryParams[i] 中进行设置。
        返回:
        查询结果对象。
      • dispose

        public void dispose()
        

        释放当前服务提供者所占用的资源。

        指定者:
        dispose 在接口中 Disposable
      • merge

        protected MapParameter merge(java.util.List<MapParameter> mapParameters)
        

        合并多个地图的地图参数。

        SuperMap iServer 目前会以地图列表的最后一个地图的地图参数作为合并后的地图参数, 然后将所有地图的图层添加的合并后的地图参数的图层列表(MapParameter.layers)中。

        参数:
        mapParameters - 地图参数列表。
        返回:
        返回合并后的地图参数。如果参数 mapParameters 为空或者长度为0,将返回 null。
      • mergeByUrl

        protected void mergeByUrl(java.util.List<java.lang.String> urls,
                      java.lang.String outputPath)
        

        执行对多个地图图片的叠加操作并输出成新的图片。

        新图片默认为 PNG 格式。

        参数:
        urls - 图片 URL 列表。
        outputPath - 地图图片叠加后新图片的路径。
      • merge

        protected Rectangle2D merge(Rectangle2D bounds,
                        Rectangle2D bounds2)
        

        合并地图范围1和地图范围2。

        合并后的地图返回包含地图范围1和地图范围2。

        参数:
        bounds - 地图范围1。
        bounds2 - 地图范围2。
        返回:
        合并后的地图范围。
      • getExpectedResult

        protected QueryResult getExpectedResult(java.util.List<QueryResult> queryResultList,
                                    int start,
                                    int expectedCount)
        

        根据多个查询结果获取期望的查询结果。

        参数:
        queryResultList - 查询结果列表。指每一个地图查询结果的列表。
        start - 查询起始记录位置(QueryParameterSet.startRecord)。
        expectedCount - 期望返回的结果记录数(QueryParameterSet.expectCount)。
        返回:
        查询结果对象。
      • getRecordset

        protected Recordset getRecordset(Recordset recordset,
                             int start,
                             int count)
        

        从指定的记录集中复制一个新的记录集,新的记录集的要素数组(Recordset.features)从原记录集指定的要素位置 (参数 start)开始,到原记录集要素数组的指定位置结束。

        参数:
        recordset - 指定的记录集。
        start - 要素数组的起始位置。
        count - 要复制的要素数组元素的数量。
        返回:
        新的记录集。
      • support

        public boolean support(java.lang.String mapName,
                      MapCapability capability)
        
        从接口复制的说明: MapProvider
        判断地图是否支持相应功能。
        指定者:
        support 在接口中 MapProvider
        参数:
        mapName - 地图名。
        capability - 功能类型。
        返回:
        返回true表示支持该功能;返回false表示不支持该功能。
      • getVectorStyle

        public VectorStyle getVectorStyle(java.lang.String mapName,
                                 java.lang.String[] layerNames,
                                 VectorStyleType type)
        
        从接口复制的说明: MapProvider
        获取指定地图中,指定矢量图层的样式
        指定者:
        getVectorStyle 在接口中 MapProvider
        参数:
        mapName - 地图名称
        layerNames - 图层名称
        type - 矢量样式类型
        返回:
        矢量图层样式
      • getResource

        public byte[] getResource(java.lang.String mapName,
                         ResourceParameter resourceParameter,
                         Point2D[] points)
        
        从接口复制的说明: MapProvider

        根据资源图片参数获取指定地图的资源图片。

        指定者:
        getResource 在接口中 MapProvider
        参数:
        mapName - 地图名称。
        resourceParameter - 资源图片参数。
        points - 绘制资源图片时用的点
        返回:
        图片对应的二进制流。
      • updateMap

        public boolean updateMap(MapParameter mapParameter)
        
        从接口复制的说明: MapProvider
        永久更新地图状态,会更新到磁盘中进行持久化。
        指定者:
        updateMap 在接口中 MapProvider
        参数:
        mapParameter - 要更新的地图状态。
        返回:
        是否更新成功。