类 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()
默认构造函数。AggregationMapProvider(AggregationMapProviderSetting mapProviderSetting)
根据聚合地图服务提供者设置构造一个新的 AggregationMapProvider 实例。
-
方法概要
方法 限定符和类型 方法和说明 void
clearAllCache()
清除全部缓存。void
clearCache(java.lang.String mapName, Rectangle2D bounds)
清除地图对应范围的缓存图片。void
dispose()
释放当前服务提供者所占用的资源。QueryResult
findNearest(java.lang.String mapName, Geometry geometry, double maxDistance, QueryParameterSet queryParameters)
查找距离指定几何对象一定容限内最近的几何对象。MapParameter
getDefaultMapParameter(java.lang.String mapName)
获取指定地图的默认地图参数,该指定的地图名称是指聚合之后的地图名称。protected QueryResult
getExpectedResult(java.util.List<QueryResult> queryResultList, int start, int expectedCount)
根据多个查询结果获取期望的查询结果。MapImage
getMapImage(MapParameter mapParameter, ImageOutputOption outputOption)
根据地图参数和图片输出设置获取地图图片。MapParameter
getMapParameter(java.lang.String mapName)
获取指定地图的地图参数,该指定的地图名称是指聚合之后的地图名称。java.util.List<java.lang.String>
getNames()
获取当前地图服务提供者所对应的地图名称列表。Overview
getOverview(MapParameter mapParameter, ImageOutputOption outputOption)
目前不支持该方法。protected QueryParameterSet
getQueryParameters(QueryParameterSet referQueryParam, int index)
获取有效的查询参数。protected Recordset
getRecordset(Recordset recordset, int start, int count)
从指定的记录集中复制一个新的记录集,新的记录集的要素数组(Recordset.features
)从原记录集指定的要素位置 (参数 start)开始,到原记录集要素数组的指定位置结束。java.lang.String
getResource(java.lang.String mapName, ResourceParameter resourceParameter)
根据资源图片参数,获取聚合后地图的资源图片。byte[]
getResource(java.lang.String mapName, ResourceParameter resourceParameter, Point2D[] points)
根据资源图片参数获取指定地图的资源图片。VectorStyle
getVectorStyle(java.lang.String mapName, java.lang.String[] layerNames, VectorStyleType type)
获取指定地图中,指定矢量图层的样式VectorStyle
getVectorStyle(VectorStyleParameter vectorStyleParameter)
获取指定地图中,指定矢量图层的样式MeasureResult
measureArea(java.lang.String mapName, Point2D[] points, MeasureParameter measureParam)
根据二维地理坐标点、量算参数,在聚合后的地图上进行面积量算。MeasureResult
measureDistance(java.lang.String mapName, Point2D[] points, MeasureParameter measureParam)
根据二维地理坐标点、量算参数,在聚合后的地图上进行距离量算。protected MapParameter
merge(java.util.List<MapParameter> mapParameters)
合并多个地图的地图参数。protected Rectangle2D
merge(Rectangle2D bounds, Rectangle2D bounds2)
合并地图范围1和地图范围2。protected void
mergeByUrl(java.util.List<java.lang.String> urls, java.lang.String outputPath)
执行对多个地图图片的叠加操作并输出成新的图片。QueryResult
queryByBounds(java.lang.String mapName, Rectangle2D bounds, QueryParameterSet queryParameterSet)
在聚合后的地图的地图上,查询指定范围内的几何对象。QueryResult
queryByDistance(java.lang.String mapName, Geometry geometry, double distance, QueryParameterSet queryParam)
在聚合后的地图上,查询距离指定的几何对象一定范围内的所有几何对象。QueryResult
queryByGeometry(java.lang.String mapName, Geometry geometry, SpatialQueryMode spatialQueryMode, QueryParameterSet queryParam)
在聚合后的地图上,查询与指定的几何对象符合某种空间关系和查询条件的几何对象。QueryResult
queryBySQL(java.lang.String mapName, QueryParameterSet queryParam)
在聚合后的地图上执行 SQL 查询。MapParameter
setDefaultMapParameter(MapParameter mapParameter)
目前不支持该方法。void
setProviderContext(ProviderContext context)
设置聚合服务提供者上下文。boolean
support(java.lang.String mapName, MapCapability capability)
判断地图是否支持相应功能。boolean
updateMap(MapParameter mapParameter)
永久更新地图状态,会更新到磁盘中进行持久化。MapImage
viewEntire(java.lang.String layerName, MapParameter mapParameter, ImageOutputOption outputOption)
根据地图图层名、地图参数以及图片输出设置进行全幅显示。-
从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
从接口继承的方法 com.supermap.services.components.spi.MapProvider
getFieldsByLayerName, getTileImage
-
-
-
-
构造器详细资料
-
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
- 地图范围。
-
clearAllCache
public void clearAllCache()
从接口复制的说明:MapProvider
清除全部缓存。
- 指定者:
clearAllCache
在接口中MapProvider
-
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]
中进行设置。- 返回:
- 查询结果对象。
-
queryByBounds
public QueryResult queryByBounds(java.lang.String mapName, Rectangle2D bounds, QueryParameterSet queryParameterSet)
在聚合后的地图的地图上,查询指定范围内的几何对象。
- 指定者:
queryByBounds
在接口中MapProvider
- 参数:
mapName
-bounds
-queryParameterSet
-- 返回:
-
queryBySQL
public QueryResult queryBySQL(java.lang.String mapName, QueryParameterSet queryParam)
在聚合后的地图上执行 SQL 查询。
该方法将返回地图聚合之后所有满足查询条件的结果。
- 指定者:
queryBySQL
在接口中MapProvider
- 参数:
mapName
- 聚合后的地图名称。queryParam
- 查询参数集。可对某个地图的多个图层进行查询, 单个图层的查询参数在queryParam.queryParams[i]
中进行设置。- 返回:
- 查询结果对象。
-
setDefaultMapParameter
public MapParameter setDefaultMapParameter(MapParameter mapParameter)
目前不支持该方法。
设置默认地图参数。
- 指定者:
setDefaultMapParameter
在接口中MapProvider
- 参数:
mapParameter
- 地图参数。- 返回:
- 地图参数。
-
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
-
setProviderContext
public void setProviderContext(ProviderContext context)
设置聚合服务提供者上下文。
- 指定者:
setProviderContext
在接口中ProviderContextAware
- 参数:
context
- 聚合服务提供者上下文。
-
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。- 返回:
- 合并后的地图范围。
-
getQueryParameters
protected QueryParameterSet getQueryParameters(QueryParameterSet referQueryParam, int index)
获取有效的查询参数。
有效的查询参数是指,查询参数的数据集(
referQueryParam.queryParams[i].name
) 在当前地图参数图层(MapParameter.layers
)的子图层(Layer.subLayers
)中存在。- 参数:
referQueryParam
- 查询参数集。可对某个地图的多个图层进行查询, 单个图层的查询参数在queryParam.queryParams[i]
中进行设置。index
- 地图参数列表中元素的索引。- 返回:
- 查询参数集。
-
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
- 矢量样式类型- 返回:
- 矢量图层样式
-
getVectorStyle
public VectorStyle getVectorStyle(VectorStyleParameter vectorStyleParameter)
从接口复制的说明:MapProvider
获取指定地图中,指定矢量图层的样式- 指定者:
getVectorStyle
在接口中MapProvider
- 参数:
vectorStyleParameter
- 矢量风格参数。
-
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
- 要更新的地图状态。- 返回:
- 是否更新成功。
-
-