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)
根据地图图层名、地图参数以及图片输出设置进行全幅显示。
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getFieldsByLayerName, getTileImage
public AggregationMapProvider()
默认构造函数。
public AggregationMapProvider(AggregationMapProviderSetting mapProviderSetting)
根据聚合地图服务提供者设置构造一个新的 AggregationMapProvider 实例。
mapProviderSetting
- 聚合地图服务提供者设置。该参数不能为空。public java.util.List<java.lang.String> getNames()
获取当前地图服务提供者所对应的地图名称列表。
getNames
在接口中 MapProvider
public MapParameter getMapParameter(java.lang.String mapName)
获取指定地图的地图参数,该指定的地图名称是指聚合之后的地图名称。
当对多个地图进行聚合时,通过该方法可以获取聚合之后的地图参数,其中图层列表(MapParameter.layers
) 中存放参与聚合的多个地图的所有图层。
getMapParameter
在接口中 MapProvider
mapName
- 聚合之后的地图名称。public void clearCache(java.lang.String mapName, Rectangle2D bounds)
清除地图对应范围的缓存图片。
clearCache
在接口中 MapProvider
mapName
- 地图名称。bounds
- 地图范围。public void clearAllCache()
MapProvider
清除全部缓存。
clearAllCache
在接口中 MapProvider
public MapImage getMapImage(MapParameter mapParameter, ImageOutputOption outputOption)
根据地图参数和图片输出设置获取地图图片。
getMapImage
在接口中 MapProvider
mapParameter
- 地图参数。outputOption
- 图片输出设置。public java.lang.String getResource(java.lang.String mapName, ResourceParameter resourceParameter)
根据资源图片参数,获取聚合后地图的资源图片。
getResource
在接口中 MapProvider
mapName
- 地图名称。resourceParameter
- 资源图片参数。public MeasureResult measureDistance(java.lang.String mapName, Point2D[] points, MeasureParameter measureParam)
根据二维地理坐标点、量算参数,在聚合后的地图上进行距离量算。
measureDistance
在接口中 MapProvider
mapName
- 聚合后的地图名称。points
- 二维地理坐标点数组。measureParam
- 量算参数。public MeasureResult measureArea(java.lang.String mapName, Point2D[] points, MeasureParameter measureParam)
根据二维地理坐标点、量算参数,在聚合后的地图上进行面积量算。
measureArea
在接口中 MapProvider
mapName
- 聚合后的地图名称。points
- 二维地理坐标点数组。measureParam
- 量算参数。public QueryResult queryByDistance(java.lang.String mapName, Geometry geometry, double distance, QueryParameterSet queryParam)
在聚合后的地图上,查询距离指定的几何对象一定范围内的所有几何对象。
到指定几何对象的一定距离范围,实际是以指定几何对象为中心的一个圆,在这个圆内以及与圆相交的几何对象都能够被查询出来。
该方法将返回地图聚合之后所有满足查询条件的结果。
queryByDistance
在接口中 MapProvider
mapName
- 聚合后的地图名称。geometry
- 几何对象。该几何对象仅包含空间信息、形状信息等,并不包括属性信息。distance
- 查询的距离范围。queryParam
- 查询参数集。可对某个地图的多个图层进行查询, 单个图层的查询参数在 queryParam.queryParams[i]
中进行设置。public QueryResult queryByGeometry(java.lang.String mapName, Geometry geometry, SpatialQueryMode spatialQueryMode, QueryParameterSet queryParam)
在聚合后的地图上,查询与指定的几何对象符合某种空间关系和查询条件的几何对象。
该方法将返回地图聚合之后所有满足查询条件的结果。
queryByGeometry
在接口中 MapProvider
mapName
- 聚合后的地图名称。geometry
- 几何对象。该几何对象仅包含空间信息、形状信息等,并不包括属性信息。spatialQueryMode
- 空间几何对象间的查询模式。空间几何对象间的查询模式定义了一些几何对象之间的空间位置关系, 根据这些空间关系来构建过滤条件执行查询。例如:查询可被包含在面对象中的空间对象,与面有相离或者相邻关系的空间对象等。queryParam
- 查询参数集。可对某个地图的多个图层进行查询, 单个图层的查询参数在 queryParam.queryParams[i]
中进行设置。public QueryResult queryByBounds(java.lang.String mapName, Rectangle2D bounds, QueryParameterSet queryParameterSet)
在聚合后的地图的地图上,查询指定范围内的几何对象。
queryByBounds
在接口中 MapProvider
mapName
-bounds
-queryParameterSet
-public QueryResult queryBySQL(java.lang.String mapName, QueryParameterSet queryParam)
在聚合后的地图上执行 SQL 查询。
该方法将返回地图聚合之后所有满足查询条件的结果。
queryBySQL
在接口中 MapProvider
mapName
- 聚合后的地图名称。queryParam
- 查询参数集。可对某个地图的多个图层进行查询, 单个图层的查询参数在 queryParam.queryParams[i]
中进行设置。public MapParameter setDefaultMapParameter(MapParameter mapParameter)
目前不支持该方法。
设置默认地图参数。
setDefaultMapParameter
在接口中 MapProvider
mapParameter
- 地图参数。public MapParameter getDefaultMapParameter(java.lang.String mapName)
获取指定地图的默认地图参数,该指定的地图名称是指聚合之后的地图名称。
当对多个地图进行聚合时,通过该方法可以获取聚合之后的默认地图参数,其中地图名称(MapParameter.name
) 是聚合名称,图层列表(MapParameter.layers
)中存放参与聚合的多个地图的所有图层。
getDefaultMapParameter
在接口中 MapProvider
mapName
- 聚合后的地图名称。public MapImage viewEntire(java.lang.String layerName, MapParameter mapParameter, ImageOutputOption outputOption)
根据地图图层名、地图参数以及图片输出设置进行全幅显示。
参数中指定的图层名称是指以该图层内容的最小外接矩形作为全幅显示的地理范围。
viewEntire
在接口中 MapProvider
layerName
- 地图图层名,即以该图层的最小外接矩形作为全幅显示的地理范围。mapParameter
- 地图参数。outputOption
- 图片输出设置。public Overview getOverview(MapParameter mapParameter, ImageOutputOption outputOption)
目前不支持该方法。
获取地图叠加之后的鹰眼。
getOverview
在接口中 MapProvider
mapParameter
- 地图参数。outputOption
- 图片输出设置。public QueryResult findNearest(java.lang.String mapName, Geometry geometry, double maxDistance, QueryParameterSet queryParameters)
查找距离指定几何对象一定容限内最近的几何对象。
该方法将返回地图聚合之后所有满足查询条件的结果。
findNearest
在接口中 MapProvider
mapName
- 指定地图名称geometry
- 指定的几何对象。maxDistance
- 容限范围。queryParameters
- 查询参数集。可对某个地图的多个图层进行查询, 单个图层的查询参数在 queryParam.queryParams[i]
中进行设置。public void dispose()
释放当前服务提供者所占用的资源。
dispose
在接口中 Disposable
public void setProviderContext(ProviderContext context)
设置聚合服务提供者上下文。
setProviderContext
在接口中 ProviderContextAware
context
- 聚合服务提供者上下文。protected MapParameter merge(java.util.List<MapParameter> mapParameters)
合并多个地图的地图参数。
SuperMap iServer 目前会以地图列表的最后一个地图的地图参数作为合并后的地图参数, 然后将所有地图的图层添加的合并后的地图参数的图层列表(MapParameter.layers
)中。
mapParameters
- 地图参数列表。protected void mergeByUrl(java.util.List<java.lang.String> urls, java.lang.String outputPath)
执行对多个地图图片的叠加操作并输出成新的图片。
新图片默认为 PNG 格式。
urls
- 图片 URL 列表。outputPath
- 地图图片叠加后新图片的路径。protected Rectangle2D merge(Rectangle2D bounds, Rectangle2D bounds2)
合并地图范围1和地图范围2。
合并后的地图返回包含地图范围1和地图范围2。
bounds
- 地图范围1。bounds2
- 地图范围2。protected QueryParameterSet getQueryParameters(QueryParameterSet referQueryParam, int index)
获取有效的查询参数。
有效的查询参数是指,查询参数的数据集(referQueryParam.queryParams[i].name
) 在当前地图参数图层(MapParameter.layers
)的子图层(Layer.subLayers
)中存在。
referQueryParam
- 查询参数集。可对某个地图的多个图层进行查询, 单个图层的查询参数在 queryParam.queryParams[i]
中进行设置。index
- 地图参数列表中元素的索引。protected QueryResult getExpectedResult(java.util.List<QueryResult> queryResultList, int start, int expectedCount)
根据多个查询结果获取期望的查询结果。
queryResultList
- 查询结果列表。指每一个地图查询结果的列表。start
- 查询起始记录位置(QueryParameterSet.startRecord
)。expectedCount
- 期望返回的结果记录数(QueryParameterSet.expectCount
)。protected Recordset getRecordset(Recordset recordset, int start, int count)
从指定的记录集中复制一个新的记录集,新的记录集的要素数组(Recordset.features
)从原记录集指定的要素位置 (参数 start)开始,到原记录集要素数组的指定位置结束。
recordset
- 指定的记录集。start
- 要素数组的起始位置。count
- 要复制的要素数组元素的数量。public boolean support(java.lang.String mapName, MapCapability capability)
MapProvider
support
在接口中 MapProvider
mapName
- 地图名。capability
- 功能类型。public VectorStyle getVectorStyle(java.lang.String mapName, java.lang.String[] layerNames, VectorStyleType type)
MapProvider
getVectorStyle
在接口中 MapProvider
mapName
- 地图名称layerNames
- 图层名称type
- 矢量样式类型public VectorStyle getVectorStyle(VectorStyleParameter vectorStyleParameter)
MapProvider
getVectorStyle
在接口中 MapProvider
vectorStyleParameter
- 矢量风格参数。public byte[] getResource(java.lang.String mapName, ResourceParameter resourceParameter, Point2D[] points)
MapProvider
根据资源图片参数获取指定地图的资源图片。
getResource
在接口中 MapProvider
mapName
- 地图名称。resourceParameter
- 资源图片参数。points
- 绘制资源图片时用的点public boolean updateMap(MapParameter mapParameter)
MapProvider
updateMap
在接口中 MapProvider
mapParameter
- 要更新的地图状态。