public abstract class TiledMapProviderBase extends java.lang.Object implements ProviderContextAware, MapProvider, Disposable
基于REST 服务的地图服务提供者基类。
封装了访问 REST 地图服务所需的基本功能,所有使用 REST 地图服务的服务提供者都可使用此类扩展。
限定符和类型 | 类和说明 |
---|---|
protected class |
TiledMapProviderBase.AcceptOnePicDrawer |
protected class |
TiledMapProviderBase.DefaultTileImageDrawer |
protected static interface |
TiledMapProviderBase.TileDataConverter |
protected static interface |
TiledMapProviderBase.TileImageDrawer |
static class |
TiledMapProviderBase.TileImageParameter |
限定符和类型 | 字段和说明 |
---|---|
protected static java.lang.String |
CACHE_DIR |
protected java.util.Map<java.lang.String,MapParameter> |
defaultMapParameters |
protected double |
dpi |
protected static java.lang.String |
LINK_MARK |
protected java.util.concurrent.locks.ReentrantLock |
lock |
protected static LocLogger |
logger |
protected static ResourceManager |
message |
protected static java.lang.String |
QUESTION_MARK |
protected static java.lang.String |
REGEX |
protected static java.lang.String |
REPLACEMENT |
int |
tilePixHeight
瓦片高度,单位是像素,默认为256像素。
|
protected int |
tilePixWidth
瓦片宽度,单位是像素,默认为256像素。
|
构造器和说明 |
---|
TiledMapProviderBase()
默认构造函数
|
TiledMapProviderBase(MapProviderSetting setting)
带参构造函数
|
限定符和类型 | 方法和说明 |
---|---|
protected abstract boolean |
cacheEnabled() |
abstract void |
checkLicense() |
protected void |
checkSetting(MapProviderSetting setting)
检查地图服务提供者配置。
|
void |
clearAllCache()
清除全部缓存。
|
void |
clearCache(java.lang.String mapName, Rectangle2D bounds)
清除指定区域的缓存。
|
void |
dispose()
释放资源对象。
|
protected MapImage |
fillWatermark(MapImage result, MapParameter mapParameter, ImageOutputOption outputOption) |
QueryResult |
findNearest(java.lang.String mapName, Geometry geometry, double maxDistance, QueryParameterSet queryParameterSet)
在指定地图上,查找距离指定几何对象一定容限内最近的几何对象。
|
protected abstract java.util.concurrent.atomic.AtomicBoolean |
generateBigImage(TiledMapProviderBase.TileImageDrawer drawer, TiledMapProviderBase.TileImageParameter[] tileImageParameters) |
protected double |
getAccurateResolution(double[] resolutions, double currentResolution) |
protected int |
getBottom(double originTop, double bottom, double resolution, int tileImageHeight) |
protected int |
getBottom(double y, Rectangle2D viewBounds, double tileResolution, int tileImageHeight) |
protected java.awt.image.BufferedImage |
getBufferedImage(byte[] imageData) |
MapParameter |
getDefaultMapParameter(java.lang.String mapName)
获取指定地图的默认地图参数。
|
protected java.util.Map<java.lang.String,MapParameter> |
getDefaultMapParameters()
返回默认地图参数
|
protected int |
getLeft(double left, double originLeft, double resolution, int tileImageWidth) |
protected int |
getLeftIndex(double left, double originLeft, double tileWidth, int tileImageWidth) |
MapImage |
getMapImage(MapParameter mapParameter, ImageOutputOption outputOption)
根据地图参数、图片输出设置获取地图图片。
|
MapParameter |
getMapParameter(java.lang.String mapName)
获取指定地图上次出图之后的状态(地图参数)。
|
MapProviderSetting |
getMapProviderSetting()
获取地图服务提供者配置
|
java.util.List<java.lang.String> |
getNames()
初始化默认地图状态,返回值为一个映射,键为地图名,值为地图参数对象。
|
protected abstract Point2D |
getOrigin(java.lang.String mapName)
获取地图的左上角地理坐标。
|
Overview |
getOverview(MapParameter mapParameter, ImageOutputOption outputOption)
根据地图参数、图片输出设置获取地图鹰眼图片。
|
protected double |
getProximalResolution(double[] paramResolutions, double currentResolution)
从一组分辨率中找出大于等于当前分辨率,且最接近的分辨率,当匹配的分辨率与实际分辨率相差太大(默认5倍),返回-1
|
protected double |
getProximalResolution(double[] paramResolutions, double currentResolution, int maxTolerance)
从一组分辨率中找出大于等于当前分辨率,且最接近的分辨率 当匹配的分辨率与实际分辨率相差太大(超过maxTolerance),返回-1;当maxTolerance==0时,表示没有容限
|
protected double |
getResolutoinByScale(double resolution, MapParameter defaultMapParameter) |
java.lang.String |
getResource(java.lang.String mapName, ResourceParameter resourceParameter)
根据资源图片参数获取指定地图的资源图片。
|
byte[] |
getResource(java.lang.String mapName, ResourceParameter resourceParameter, Point2D[] points)
根据资源图片参数获取指定地图的资源图片。
|
protected int |
getRight(double right, double originLeft, double resolution, int tileImageWidth) |
abstract OutputFormat[] |
getSupportImageFormat(java.lang.String mapName)
返回支持的图片格式。
|
abstract double[] |
getSupportResolutions(java.lang.String mapName)
返回当前服务支持的分辨率 。 |
protected TiledMapProviderBase.TileDataConverter |
getTileDataConverter() |
protected int |
getTileIndex(double max, double min, double tileWidth, boolean intersect, int tileImageWidth)
返回指定点所在瓦片的瓦片索引
|
protected int |
getTop(double originTop, double top, double resolution, int tileImageHeight) |
protected int |
getTop(double y, Rectangle2D viewBounds, double tileResolution, int tileImageHeight) |
protected int |
getTopIndex(double originTop, double top, double tileWidth, int tileImageWidth) |
protected int |
getTopOrBottomTileIndex(double y, double topOrBottom, double tileHeight, boolean b, int tileImageHeight) |
VectorStyle |
getVectorStyle(java.lang.String mapName, java.lang.String[] layerNames, VectorStyleType type)
获取指定地图中,指定矢量图层的样式
|
VectorStyle |
getVectorStyle(VectorStyleParameter vectorStyleParameter)
获取指定地图中,指定矢量图层的样式
|
protected void |
init(MapProviderSetting setting)
初始化函数,该函数不对参数进行null判断,但是尽可能对其中的内容进行正确性判断
|
protected abstract java.util.Map<java.lang.String,MapParameter> |
initDefaultMapParameter()
初始化默认地图状态,返回值为一个映射,键为地图名,值为地图参数对象。
|
protected abstract java.util.List<java.lang.String> |
initSupportedMapNames()
初始化支持的地图列表。
|
protected boolean |
isResolutionEquals(double resolution1, double resolution2)
判断两个分辨率是否在容差范围之内(1.0E-6)
|
MeasureResult |
measureArea(java.lang.String mapName, Point2D[] points, MeasureParameter measureParam)
根据二维地理坐标点、量算参数,在指定地图上进行面积量算。
|
MeasureResult |
measureDistance(java.lang.String mapName, Point2D[] points, MeasureParameter measureParam)
根据二维地理坐标点、量算参数,在指定地图上进行距离量算。
|
protected byte[] |
outputImage(MapParameter param, ImageOutputOption outputOption, double currentResolution)
实时地出图 。
|
protected byte[] |
outputImage(MapParameter param, ImageOutputOption outputOption, double currentResolution, Point2D tileOrigin, int tileImageWidth, int tileImageHeight, double[] resolutions)
根据地图参数出图。
|
protected void |
outputImageToFile(java.lang.String targetFileName, java.awt.image.BufferedImage targetImage, ImageOutputOption outputOption)
将各个瓦片与给定范围重合的区域拼接成一个图片后,写到指定的文件中
|
protected void |
outputImageToFile(java.lang.String targetFileName, byte[] imageData, ImageOutputOption outputOption) |
protected Point2D |
point2DConvert(Point2D tileOrigin, PrjCoordSys sourcePrjCoordSys, PrjCoordSys targetPrjCoordSys) |
QueryResult |
queryByBounds(java.lang.String mapName, Rectangle2D bounds, QueryParameterSet queryParameterSet)
在指定的地图上,查询指定范围内的几何对象,以及外接矩形与指定范围相交的几何对象。
|
QueryResult |
queryByDistance(java.lang.String mapName, Geometry geometry, double distance, QueryParameterSet queryParameterSet)
在指定地图上,查询距离指定的几何对象一定范围内的所有几何对象。
|
QueryResult |
queryByGeometry(java.lang.String mapName, Geometry geometry, SpatialQueryMode spatialQueryMode, QueryParameterSet queryParameterSet)
在指定地图上,查询与指定的几何对象符合某种空间关系和查询条件的几何对象。
|
QueryResult |
queryBySQL(java.lang.String mapName, QueryParameterSet queryParameterSet)
在指定地图上执行 SQL 查询。
|
protected MapParameter |
rectifyMapParameter(MapParameter param, MapParameter rectifyParam) |
MapParameter |
setDefaultMapParameter(MapParameter mapParameter)
设置默认地图参数。
|
protected void |
setDefaultMapParameters(java.util.Map<java.lang.String,MapParameter> defaultMapParameters)
设置默认地图状态。
|
void |
setMapProviderSetting(MapProviderSetting mapProviderSetting)
设置地图服务提供者配置
|
void |
setProviderContext(ProviderContext context)
设置服务提供者上下文。
|
boolean |
support(java.lang.String mapName, MapCapability capability)
判断地图是否支持相应功能。
|
protected abstract boolean |
tileCacheReadOnly() |
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
protected static final java.lang.String REGEX
protected static final java.lang.String REPLACEMENT
protected static final java.lang.String QUESTION_MARK
protected static final java.lang.String LINK_MARK
protected static final java.lang.String CACHE_DIR
protected static ResourceManager message
protected static final LocLogger logger
protected final java.util.concurrent.locks.ReentrantLock lock
protected int tilePixWidth
瓦片宽度,单位是像素,默认为256像素。
public int tilePixHeight
瓦片高度,单位是像素,默认为256像素。
.protected java.util.Map<java.lang.String,MapParameter> defaultMapParameters
protected double dpi
public TiledMapProviderBase()
public TiledMapProviderBase(MapProviderSetting setting)
setting
-public void setProviderContext(ProviderContext context)
ProviderContextAware
设置服务提供者上下文。
setProviderContext
在接口中 ProviderContextAware
context
- 服务提供者上下文。public java.util.List<java.lang.String> getNames()
初始化默认地图状态,返回值为一个映射,键为地图名,值为地图参数对象。
getNames
在接口中 MapProvider
public MapParameter getMapParameter(java.lang.String mapName)
MapProvider
获取指定地图上次出图之后的状态(地图参数)。
getMapParameter
在接口中 MapProvider
mapName
- 指定地图名称。public MapParameter setDefaultMapParameter(MapParameter mapParameter)
MapProvider
设置默认地图参数。
setDefaultMapParameter
在接口中 MapProvider
mapParameter
- 地图参数。public MapParameter getDefaultMapParameter(java.lang.String mapName)
MapProvider
获取指定地图的默认地图参数。
初始的默认地图参数是由所访问的服务类型决定的,比如,访问 SuperMap Objects Java 提供的 GIS 能力,那么初始默认地图参数从工作空间文件中获取到;访问 WMS 服务提供的 GIS 能力,默认地图参数由 WMS 服务决定。
getDefaultMapParameter
在接口中 MapProvider
mapName
- 地图名称。public void clearCache(java.lang.String mapName, Rectangle2D bounds)
MapProvider
清除指定区域的缓存。
clearCache
在接口中 MapProvider
public void clearAllCache()
MapProvider
清除全部缓存。
clearAllCache
在接口中 MapProvider
public MapImage getMapImage(MapParameter mapParameter, ImageOutputOption outputOption)
MapProvider
根据地图参数、图片输出设置获取地图图片。
getMapImage
在接口中 MapProvider
mapParameter
- 地图参数。outputOption
- 图片输出设置。protected MapImage fillWatermark(MapImage result, MapParameter mapParameter, ImageOutputOption outputOption)
protected MapParameter rectifyMapParameter(MapParameter param, MapParameter rectifyParam)
public java.lang.String getResource(java.lang.String mapName, ResourceParameter resourceParameter)
MapProvider
根据资源图片参数获取指定地图的资源图片。
getResource
在接口中 MapProvider
mapName
- 地图名称。resourceParameter
- 资源图片参数。public byte[] getResource(java.lang.String mapName, ResourceParameter resourceParameter, Point2D[] points)
MapProvider
根据资源图片参数获取指定地图的资源图片。
getResource
在接口中 MapProvider
mapName
- 地图名称。resourceParameter
- 资源图片参数。points
- 绘制资源图片时用的点public MeasureResult measureDistance(java.lang.String mapName, Point2D[] points, MeasureParameter measureParam)
MapProvider
根据二维地理坐标点、量算参数,在指定地图上进行距离量算。
measureDistance
在接口中 MapProvider
mapName
- 地图名称。points
- 二维地理坐标点数组。measureParam
- 量算参数。public MeasureResult measureArea(java.lang.String mapName, Point2D[] points, MeasureParameter measureParam)
MapProvider
根据二维地理坐标点、量算参数,在指定地图上进行面积量算。
measureArea
在接口中 MapProvider
mapName
- 地图名称。points
- 二维地理坐标点数组。measureParam
- 量算参数。public QueryResult queryByDistance(java.lang.String mapName, Geometry geometry, double distance, QueryParameterSet queryParameterSet)
MapProvider
在指定地图上,查询距离指定的几何对象一定范围内的所有几何对象。
到指定几何对象的一定距离范围,实际是以指定几何对象为中心的一个圆,在这个圆内以及与圆相交的几何对象都能够被查询出来。
queryByDistance
在接口中 MapProvider
mapName
- 地图名称 。geometry
- 几何对象。distance
- 查询的距离范围。queryParameterSet
- 查询参数集。可对某个地图的多个图层进行查询,单个图层的查询参数在 queryParameterSet.queryParams[i]
中进行设置。public QueryResult queryByGeometry(java.lang.String mapName, Geometry geometry, SpatialQueryMode spatialQueryMode, QueryParameterSet queryParameterSet)
MapProvider
在指定地图上,查询与指定的几何对象符合某种空间关系和查询条件的几何对象。
queryByGeometry
在接口中 MapProvider
mapName
- 地图名称。geometry
- 几何对象。该几何对象仅包含空间信息、形状信息等,并不包括属性信息。spatialQueryMode
- 空间几何对象间的查询模式。空间几何对象间的查询模式定义了一些几何对象之间的空间位置关系,根据这些空间关系来构建过滤条件执行查询。例如:查询可被包含在面对象中的空间对象,与面有相离或者相邻关系的空间对象等。queryParameterSet
- 查询参数集。可对某个地图的多个图层进行查询,单个图层的查询参数在 queryParameterSet.queryParams[i]
中进行设置。public QueryResult queryByBounds(java.lang.String mapName, Rectangle2D bounds, QueryParameterSet queryParameterSet)
MapProvider
在指定的地图上,查询指定范围内的几何对象,以及外接矩形与指定范围相交的几何对象。
queryByBounds
在接口中 MapProvider
mapName
- 地图名称。bounds
- 指定的查询范围。public QueryResult queryBySQL(java.lang.String mapName, QueryParameterSet queryParameterSet)
MapProvider
在指定地图上执行 SQL 查询。
queryBySQL
在接口中 MapProvider
mapName
- 地图名称。queryParameterSet
- 查询参数集。可对某个地图的多个图层进行查询,单个图层的查询参数在 queryParameterSet.queryParams[i]
中进行设置。public QueryResult findNearest(java.lang.String mapName, Geometry geometry, double maxDistance, QueryParameterSet queryParameterSet)
MapProvider
在指定地图上,查找距离指定几何对象一定容限内最近的几何对象。 当限制了返回几何对象个数(由QueryParameterSet.expectCount
指定)时,查询结果为查询总记录中距离指定中心最近的expectCount个地物,这expectCount个地物按无序排列。
findNearest
在接口中 MapProvider
mapName
- 地图名称。geometry
- 几何对象。maxDistance
- 容限范围,单位与 mapName 地图的地图坐标单位相同。queryParameterSet
- 查询参数集。可对某个地图的多个图层进行查询,单个图层的查询参数在 queryParameterSet.queryParams[i]
中进行设置。public MapImage viewEntire(java.lang.String layerName, MapParameter mapParameter, ImageOutputOption outputOption)
MapProvider
根据地图图层名、地图参数以及图片输出设置进行全幅显示。
参数中指定的图层名称是指以该图层内容的最小外接矩形作为全幅显示的地理范围。
viewEntire
在接口中 MapProvider
layerName
- 地图图层名,即以该图层的最小外接矩形作为全幅显示的地理范围。mapParameter
- 地图参数。outputOption
- 图片输出设置。public Overview getOverview(MapParameter mapParameter, ImageOutputOption outputOption)
根据地图参数、图片输出设置获取地图鹰眼图片。
getOverview
在接口中 MapProvider
mapParameter
- 地图参数。outputOption
- 图片输出设置。public MapProviderSetting getMapProviderSetting()
获取地图服务提供者配置
public void setMapProviderSetting(MapProviderSetting mapProviderSetting)
设置地图服务提供者配置
mapProviderSetting
- 地图服务提供者配置public void dispose()
释放资源对象。
dispose
在接口中 Disposable
protected void checkSetting(MapProviderSetting setting)
setting
-protected byte[] outputImage(MapParameter param, ImageOutputOption outputOption, double currentResolution)
实时地出图 。根据地图参数,出图到指定路径。
param
- 地图状态outputOption
- 图片参数currentResolution
- 分辨率protected byte[] outputImage(MapParameter param, ImageOutputOption outputOption, double currentResolution, Point2D tileOrigin, int tileImageWidth, int tileImageHeight, double[] resolutions)
param
- 地图参数 。outputOption
- 图片输出参数。currentResolution
- 当前的分辨率。tileOrigin
- 当前切片矩阵的原点。tileImageWidth
- 当前切片矩阵的切片宽。tileImageHeight
- 当前切片矩阵的切片高。resolutions
-protected Point2D point2DConvert(Point2D tileOrigin, PrjCoordSys sourcePrjCoordSys, PrjCoordSys targetPrjCoordSys)
protected int getTopOrBottomTileIndex(double y, double topOrBottom, double tileHeight, boolean b, int tileImageHeight)
protected int getTop(double y, Rectangle2D viewBounds, double tileResolution, int tileImageHeight)
protected int getBottom(double y, Rectangle2D viewBounds, double tileResolution, int tileImageHeight)
protected java.awt.image.BufferedImage getBufferedImage(byte[] imageData)
protected double getProximalResolution(double[] paramResolutions, double currentResolution)
protected double getProximalResolution(double[] paramResolutions, double currentResolution, int maxTolerance)
从一组分辨率中找出大于等于当前分辨率,且最接近的分辨率
当匹配的分辨率与实际分辨率相差太大(超过maxTolerance),返回-1;当maxTolerance==0时,表示没有容限
protected double getAccurateResolution(double[] resolutions, double currentResolution)
protected void outputImageToFile(java.lang.String targetFileName, java.awt.image.BufferedImage targetImage, ImageOutputOption outputOption)
将各个瓦片与给定范围重合的区域拼接成一个图片后,写到指定的文件中
targetFileName
- 指定的文件名targetImage
- 结果图片outputOption
- 出图参数protected void outputImageToFile(java.lang.String targetFileName, byte[] imageData, ImageOutputOption outputOption)
protected boolean isResolutionEquals(double resolution1, double resolution2)
判断两个分辨率是否在容差范围之内(1.0E-6)
resolution1
- double值resolution2
- double值protected java.util.Map<java.lang.String,MapParameter> getDefaultMapParameters()
protected void setDefaultMapParameters(java.util.Map<java.lang.String,MapParameter> defaultMapParameters)
设置默认地图状态。
defaultMapParameters
- 地图状态映射,键为地图名,值为地图参数对象。protected void init(MapProviderSetting setting)
初始化函数,该函数不对参数进行null判断,但是尽可能对其中的内容进行正确性判断
setting
- 服务提供者配置对象protected int getLeft(double left, double originLeft, double resolution, int tileImageWidth)
protected int getLeftIndex(double left, double originLeft, double tileWidth, int tileImageWidth)
protected int getRight(double right, double originLeft, double resolution, int tileImageWidth)
protected int getTopIndex(double originTop, double top, double tileWidth, int tileImageWidth)
protected int getTop(double originTop, double top, double resolution, int tileImageHeight)
protected int getBottom(double originTop, double bottom, double resolution, int tileImageHeight)
protected int getTileIndex(double max, double min, double tileWidth, boolean intersect, int tileImageWidth)
max
-min
-protected double getResolutoinByScale(double resolution, MapParameter defaultMapParameter)
public boolean support(java.lang.String mapName, MapCapability capability)
MapProvider
support
在接口中 MapProvider
mapName
- 地图名。capability
- 功能类型。public abstract void checkLicense()
public abstract double[] getSupportResolutions(java.lang.String mapName)
返回当前服务支持的分辨率 。如果支持所有分辨率,则返回空。
mapName
- 地图名protected abstract java.util.List<java.lang.String> initSupportedMapNames()
protected abstract java.util.Map<java.lang.String,MapParameter> initDefaultMapParameter()
初始化默认地图状态,返回值为一个映射,键为地图名,值为地图参数对象。
public abstract OutputFormat[] getSupportImageFormat(java.lang.String mapName)
返回支持的图片格式。
mapName
- 地图名protected abstract Point2D getOrigin(java.lang.String mapName)
获取地图的左上角地理坐标。
mapName
- 地图名protected abstract java.util.concurrent.atomic.AtomicBoolean generateBigImage(TiledMapProviderBase.TileImageDrawer drawer, TiledMapProviderBase.TileImageParameter[] tileImageParameters)
protected abstract boolean cacheEnabled()
protected abstract boolean tileCacheReadOnly()
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 boolean updateMap(MapParameter mapParameter)
MapProvider
updateMap
在接口中 MapProvider
mapParameter
- 要更新的地图状态。protected TiledMapProviderBase.TileDataConverter getTileDataConverter()