类 AbstractRestMapProvider
- java.lang.Object
-
- com.supermap.services.components.spi.AbstractRestMapProvider
-
- 所有已实现的接口:
- Disposable, MapProvider, ProviderContextAware
public abstract class AbstractRestMapProvider extends java.lang.Object implements ProviderContextAware, MapProvider, Disposable
基于REST 服务的地图服务提供者基类。
封装了访问 REST 地图服务所需的基本功能,所有使用 REST 地图服务的服务提供者都可使用此类扩展。
-
-
嵌套类概要
嵌套类 限定符和类型 类和说明 protected static class
AbstractRestMapProvider.TileIndex
瓦片的索引,包含行号,列号
-
字段概要
字段 限定符和类型 字段和说明 protected static java.lang.String
CACHEKEY
protected int
defaultDPI
图片的 DPI。static java.lang.String
LINK_MARK
protected static LocLogger
logger
static java.lang.String
QUESTION_MARK
static double
RESOLUTION_PRECESION
分辨率精度,在该精度范围内,认为两个分辨率相等。int
tileCols
瓦片宽度,单位是像素,默认为256像素。int
tileRows
瓦片高度,单位是像素,默认为256像素。static java.lang.String
URL_ENCODE
URI 的编码格式。
-
构造器概要
构造器 构造器和说明 AbstractRestMapProvider()
AbstractRestMapProvider(MapProviderSetting setting)
-
方法概要
方法 限定符和类型 方法和说明 protected static void
checkParameterNull(java.lang.Object obj, java.lang.String parameterName)
protected abstract void
checkSetting(MapProviderSetting setting)
初始化默认地图状态。void
clearCache(java.lang.String mapName, Rectangle2D bounds)
清除地图对应范围的缓存图片。void
dispose()
释放资源对象。QueryResult
findNearest(java.lang.String mapName, Geometry geometry, double maxDistance, QueryParameterSet queryParameterSet)
在指定地图上,查找距离指定几何对象一定容限内最近的几何对象。protected ImageCacheHelper
getCacheHelper()
java.lang.String
getContent(java.lang.String url, java.lang.String method)
对指定 URL 执行 HTTP 请求, 获取响应内容。MapParameter
getDefaultMapParameter(java.lang.String mapName)
返回默认地图状态。protected java.util.Map<java.lang.String,MapParameter>
getDefaultMapParameters()
JsonConverter
getJsonConverter()
获取JSON 转换器。MapImage
getMapImage(MapParameter mapParameter, ImageOutputOption outputOption)
根据地图参数、图片输出设置获取地图图片。protected byte[]
getMapImageData(java.lang.String imageFilePath)
MapParameter
getMapParameter(java.lang.String mapName)
获取指定地图上次出图之后的状态(地图参数)。MapProviderSetting
getMapProviderSetting()
java.util.List<java.lang.String>
getNames()
返回地图名列表。Overview
getOverview(MapParameter mapParameter, ImageOutputOption outputOption)
根据地图参数以及图片输出设置获取鹰眼。java.lang.String
getResource(java.lang.String mapName, ResourceParameter resourceParameter)
根据资源图片参数获取指定地图的资源图片。abstract double[]
getSupportResolutions()
返回当前服务支持的分辨率。protected Rectangle2D
getTileBounds(double currentResolution, int colIndex, int rowIndex, Point2D tileOrigin)
给定分辨率下,返回指定点所在的瓦片的范围。protected abstract java.io.InputStream
getTileImageStream(MapParameter tileParam, ImageOutputOption outputOption, int colIndex, int rowIndex, double currentResolution)
获取指定的瓦片的图片流。protected AbstractRestMapProvider.TileIndex
getTileIndex(Point2D point, double currentResolution, Point2D tileOriginPos)
返回指定点所在瓦片的瓦片索引protected abstract Point2D
getTileOrigin()
获取地图的左上角地理坐标。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)
protected boolean
isResolutionSupported(double currentResolution)
protected abstract boolean
loadMetaData()
加载Rest 服务的元信息。MeasureResult
measureArea(java.lang.String mapName, Point2D[] points, MeasureParameter measureParam)
根据二维地理坐标点、量算参数,在指定地图上进行面积量算。MeasureResult
measureDistance(java.lang.String mapName, Point2D[] points, MeasureParameter measureParam)
根据二维地理坐标点、量算参数,在指定地图上进行距离量算。protected void
outputImage(MapParameter param, ImageOutputOption outputOption, double currentResolution, java.lang.String targetFileName)
实时地出图 。protected void
outputImageToFile(java.lang.String targetFileName, java.awt.image.BufferedImage targetImage)
将各个瓦片与给定范围重合的区域拼接成一个图片后,写到指定的文件中protected boolean
outputStreamToFile(java.io.InputStream resultStream, java.lang.String targetFileName)
将字节流写入文件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 boolean
rectifyViewBoundsAndViewer(MapParameter defaultMapParameter)
矫正地图状态,使地图宽度和高度之比等于出图宽度和出图高度之比protected double
resolutionToScale(double resolution, int dpi, Unit mapUnit)
根据分辨率、DPI、地图单位,计算比例尺。protected java.util.Map<java.lang.String,java.lang.Object>
sendRequestByHttpURLConnection(java.lang.String urlStr, java.lang.String method, java.io.InputStream requestStream)
通过HttpURLConnection
发送HTTP请求。MapParameter
setDefaultMapParameter(MapParameter mapParameter)
设置默认地图参数。protected void
setDefaultMapParameters(java.util.Map<java.lang.String,MapParameter> defaultMapParameters)
设置默认地图状态。protected void
setJsonConverter(JsonConverter jsonConverter)
设置 JSON 转换器,JSON 转换器可以将一个 JSON 字符串转换为一个 Java 对象。void
setMapProviderSetting(MapProviderSetting mapProviderSetting)
void
setProviderContext(ProviderContext context)
设置服务提供者上下文。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
clearAllCache, getFieldsByLayerName, getResource, getTileImage, getVectorStyle, getVectorStyle, support, updateMap
-
-
-
-
字段详细资料
-
QUESTION_MARK
public static final java.lang.String QUESTION_MARK
-
LINK_MARK
public static final java.lang.String LINK_MARK
-
URL_ENCODE
public static final java.lang.String URL_ENCODE
URI 的编码格式。
-
RESOLUTION_PRECESION
public static final double RESOLUTION_PRECESION
分辨率精度,在该精度范围内,认为两个分辨率相等。
-
logger
protected static final LocLogger logger
-
CACHEKEY
protected static final java.lang.String CACHEKEY
-
tileCols
public int tileCols
瓦片宽度,单位是像素,默认为256像素。
-
tileRows
public int tileRows
瓦片高度,单位是像素,默认为256像素。
-
defaultDPI
protected int defaultDPI
图片的 DPI。
-
-
构造器详细资料
-
AbstractRestMapProvider
public AbstractRestMapProvider(MapProviderSetting setting)
-
AbstractRestMapProvider
public AbstractRestMapProvider()
-
-
方法详细资料
-
setProviderContext
public void setProviderContext(ProviderContext context)
从接口复制的说明:ProviderContextAware
设置服务提供者上下文。
- 指定者:
setProviderContext
在接口中ProviderContextAware
- 参数:
context
- 服务提供者上下文。
-
loadMetaData
protected abstract boolean loadMetaData()
加载Rest 服务的元信息。- 返回:
-
initSupportedMapNames
protected abstract java.util.List<java.lang.String> initSupportedMapNames()
初始化支持的地图列表。- 返回:
-
checkSetting
protected abstract void checkSetting(MapProviderSetting setting)
初始化默认地图状态。- 参数:
setting
-
-
getDefaultMapParameter
public MapParameter getDefaultMapParameter(java.lang.String mapName)
返回默认地图状态。
以地图范围的中心点作为默认中心点, 以一个瓦片的像素大小作为默认图片大小,以一个瓦片的像素大小作为默认图片大小,
- 指定者:
getDefaultMapParameter
在接口中MapProvider
- 参数:
mapName
- 地图名称。- 返回:
- 默认的地图状态。
-
initDefaultMapParameter
protected abstract java.util.Map<java.lang.String,MapParameter> initDefaultMapParameter()
初始化默认地图状态,返回值为一个映射,键为地图名,值为地图参数对象。
- 返回:
- 地图状态映射,键为地图名,值为地图参数对象。
-
rectifyViewBoundsAndViewer
protected boolean rectifyViewBoundsAndViewer(MapParameter defaultMapParameter)
矫正地图状态,使地图宽度和高度之比等于出图宽度和出图高度之比
-
getMapImage
public MapImage getMapImage(MapParameter mapParameter, ImageOutputOption outputOption)
根据地图参数、图片输出设置获取地图图片。
- 指定者:
getMapImage
在接口中MapProvider
- 参数:
mapParameter
- 地图参数。outputOption
- 图片输出设置。- 返回:
- 地图图片对象。
-
outputImage
protected void outputImage(MapParameter param, ImageOutputOption outputOption, double currentResolution, java.lang.String targetFileName)
实时地出图 。根据地图参数,出图到指定路径。- 参数:
param
-outputOption
-currentResolution
-targetFileName
-
-
isResolutionSupported
protected boolean isResolutionSupported(double currentResolution)
-
getTileOrigin
protected abstract Point2D getTileOrigin()
获取地图的左上角地理坐标。
- 返回:
- 地图的左上角地理坐标。
-
outputImageToFile
protected void outputImageToFile(java.lang.String targetFileName, java.awt.image.BufferedImage targetImage)
将各个瓦片与给定范围重合的区域拼接成一个图片后,写到指定的文件中
- 参数:
targetFileName指定的文件名
-targetImage结果图片
-
-
outputStreamToFile
protected boolean outputStreamToFile(java.io.InputStream resultStream, java.lang.String targetFileName)
将字节流写入文件- 参数:
resultStream
-targetFileName
-
-
getTileImageStream
protected abstract java.io.InputStream getTileImageStream(MapParameter tileParam, ImageOutputOption outputOption, int colIndex, int rowIndex, double currentResolution)
获取指定的瓦片的图片流。
- 参数:
tileParam
-outputOption
-colIndex
-rowIndex
-currentResolution
-- 返回:
-
getTileIndex
protected AbstractRestMapProvider.TileIndex getTileIndex(Point2D point, double currentResolution, Point2D tileOriginPos)
返回指定点所在瓦片的瓦片索引- 参数:
point
-currentResolution
-- 返回:
-
getTileBounds
protected Rectangle2D getTileBounds(double currentResolution, int colIndex, int rowIndex, Point2D tileOrigin)
给定分辨率下,返回指定点所在的瓦片的范围。- 返回:
-
getMapImageData
protected byte[] getMapImageData(java.lang.String imageFilePath)
-
getMapParameter
public MapParameter getMapParameter(java.lang.String mapName)
从接口复制的说明:MapProvider
获取指定地图上次出图之后的状态(地图参数)。
- 指定者:
getMapParameter
在接口中MapProvider
- 参数:
mapName
- 指定地图名称。- 返回:
- 地图参数。
-
getOverview
public Overview getOverview(MapParameter mapParameter, ImageOutputOption outputOption)
从接口复制的说明:MapProvider
根据地图参数以及图片输出设置获取鹰眼。
- 指定者:
getOverview
在接口中MapProvider
- 参数:
mapParameter
- 地图参数。outputOption
- 图片输出设置。- 返回:
- 鹰眼对象。
-
viewEntire
public MapImage viewEntire(java.lang.String layerName, MapParameter mapParameter, ImageOutputOption outputOption)
根据地图图层名、地图参数以及图片输出设置进行全幅显示。
参数中指定的图层名称是指以该图层内容的最小外接矩形作为全幅显示的地理范围。
- 指定者:
viewEntire
在接口中MapProvider
- 参数:
layerName地图图层名,即以该图层的最小外接矩形作为全幅显示的地理范围。
-mapParameter地图参数。
-outputOption图片输出设置。
-- 返回:
- 地图对象。
-
getNames
public java.util.List<java.lang.String> getNames()
返回地图名列表。- 指定者:
getNames
在接口中MapProvider
- 返回:
- 地图名称列表。
-
findNearest
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]
中进行设置。- 返回:
- 查询结果对象。
-
getResource
public java.lang.String getResource(java.lang.String mapName, ResourceParameter resourceParameter)
从接口复制的说明:MapProvider
根据资源图片参数获取指定地图的资源图片。
- 指定者:
getResource
在接口中MapProvider
- 参数:
mapName
- 地图名称。resourceParameter
- 资源图片参数。- 返回:
- 资源图片地址。
-
measureArea
public MeasureResult measureArea(java.lang.String mapName, Point2D[] points, MeasureParameter measureParam)
从接口复制的说明:MapProvider
根据二维地理坐标点、量算参数,在指定地图上进行面积量算。
- 指定者:
measureArea
在接口中MapProvider
- 参数:
mapName
- 地图名称。points
- 二维地理坐标点数组。measureParam
- 量算参数。- 返回:
- 量算结果对象。
-
measureDistance
public MeasureResult measureDistance(java.lang.String mapName, Point2D[] points, MeasureParameter measureParam)
从接口复制的说明:MapProvider
根据二维地理坐标点、量算参数,在指定地图上进行距离量算。
- 指定者:
measureDistance
在接口中MapProvider
- 参数:
mapName
- 地图名称。points
- 二维地理坐标点数组。measureParam
- 量算参数。- 返回:
- 量算结果对象。
-
queryByDistance
public QueryResult queryByDistance(java.lang.String mapName, Geometry geometry, double distance, QueryParameterSet queryParameterSet)
从接口复制的说明:MapProvider
在指定地图上,查询距离指定的几何对象一定范围内的所有几何对象。
到指定几何对象的一定距离范围,实际是以指定几何对象为中心的一个圆,在这个圆内以及与圆相交的几何对象都能够被查询出来。
- 指定者:
queryByDistance
在接口中MapProvider
- 参数:
mapName
- 地图名称 。geometry
- 几何对象。distance
- 查询的距离范围。queryParameterSet
- 查询参数集。可对某个地图的多个图层进行查询,单个图层的查询参数在queryParameterSet.queryParams[i]
中进行设置。- 返回:
- 查询结果对象。
-
checkParameterNull
protected static void checkParameterNull(java.lang.Object obj, java.lang.String parameterName)
-
dispose
public void dispose()
从接口复制的说明:Disposable
释放资源对象。
- 指定者:
dispose
在接口中Disposable
-
clearCache
public void clearCache(java.lang.String mapName, Rectangle2D bounds)
清除地图对应范围的缓存图片。
- 指定者:
clearCache
在接口中MapProvider
- 参数:
mapName地图名称。
-bounds地图范围。
-
-
queryByGeometry
public QueryResult queryByGeometry(java.lang.String mapName, Geometry geometry, SpatialQueryMode spatialQueryMode, QueryParameterSet queryParameterSet)
从接口复制的说明:MapProvider
在指定地图上,查询与指定的几何对象符合某种空间关系和查询条件的几何对象。
- 指定者:
queryByGeometry
在接口中MapProvider
- 参数:
mapName
- 地图名称。geometry
- 几何对象。该几何对象仅包含空间信息、形状信息等,并不包括属性信息。spatialQueryMode
- 空间几何对象间的查询模式。空间几何对象间的查询模式定义了一些几何对象之间的空间位置关系,根据这些空间关系来构建过滤条件执行查询。例如:查询可被包含在面对象中的空间对象,与面有相离或者相邻关系的空间对象等。queryParameterSet
- 查询参数集。可对某个地图的多个图层进行查询,单个图层的查询参数在queryParameterSet.queryParams[i]
中进行设置。- 返回:
- 查询结果对象。
-
queryBySQL
public QueryResult queryBySQL(java.lang.String mapName, QueryParameterSet queryParameterSet)
从接口复制的说明:MapProvider
在指定地图上执行 SQL 查询。
- 指定者:
queryBySQL
在接口中MapProvider
- 参数:
mapName
- 地图名称。queryParameterSet
- 查询参数集。可对某个地图的多个图层进行查询,单个图层的查询参数在queryParameterSet.queryParams[i]
中进行设置。- 返回:
- 查询结果对象。
-
queryByBounds
public QueryResult queryByBounds(java.lang.String mapName, Rectangle2D bounds, QueryParameterSet queryParameterSet)
从接口复制的说明:MapProvider
在指定的地图上,查询指定范围内的几何对象,以及外接矩形与指定范围相交的几何对象。
- 指定者:
queryByBounds
在接口中MapProvider
- 参数:
mapName
- 地图名称。bounds
- 指定的查询范围。- 返回:
- 查询结果对象。
-
getContent
public java.lang.String getContent(java.lang.String url, java.lang.String method) throws java.io.IOException
对指定 URL 执行 HTTP 请求, 获取响应内容。
- 参数:
url
- 指定的URI。method
- 对 URI 执行的 HTTP 方法,如“GET”。- 返回:
- 转化为文本格式的 HTTP 响应内容。
- 抛出:
java.io.IOException
-
setDefaultMapParameter
public MapParameter setDefaultMapParameter(MapParameter mapParameter)
从接口复制的说明:MapProvider
设置默认地图参数。
- 指定者:
setDefaultMapParameter
在接口中MapProvider
- 参数:
mapParameter
- 地图参数。- 返回:
- 地图参数对象。
-
isResolutionEquals
protected boolean isResolutionEquals(double resolution1, double resolution2)
-
sendRequestByHttpURLConnection
protected java.util.Map<java.lang.String,java.lang.Object> sendRequestByHttpURLConnection(java.lang.String urlStr, java.lang.String method, java.io.InputStream requestStream) throws java.io.IOException
通过
HttpURLConnection
发送HTTP请求。- 参数:
urlStr
- 请求 URI。method
- HTTP 方法,如“GET”。requestStream
- 请求体流。- 返回:
- 响应结果映射,键为 项目名,如status、entity,值为项目值。
- 抛出:
java.io.IOException
-
resolutionToScale
protected double resolutionToScale(double resolution, int dpi, Unit mapUnit)
根据分辨率、DPI、地图单位,计算比例尺。
- 参数:
resolution
- 指定的分辨率,单位为“像素/地图单位”。dpi
- 指定的 DPI。mapUnit
- 地图单位,跟 resolution 的单位相对应。- 返回:
- 比例尺。
-
getJsonConverter
public JsonConverter getJsonConverter()
获取JSON 转换器。
JSON 转换器可以将一个 JSON 字符串转换为一个 Java 对象。
- 返回:
-
setJsonConverter
protected void setJsonConverter(JsonConverter jsonConverter)
设置 JSON 转换器,JSON 转换器可以将一个 JSON 字符串转换为一个 Java 对象。
- 参数:
jsonConverter
- JSON 转换器。
-
getDefaultMapParameters
protected java.util.Map<java.lang.String,MapParameter> getDefaultMapParameters()
-
setDefaultMapParameters
protected void setDefaultMapParameters(java.util.Map<java.lang.String,MapParameter> defaultMapParameters)
设置默认地图状态。
- 参数:
defaultMapParameters
- 地图状态映射,键为地图名,值为地图参数对象。
-
getCacheHelper
protected ImageCacheHelper getCacheHelper()
-
getMapProviderSetting
public MapProviderSetting getMapProviderSetting()
-
setMapProviderSetting
public void setMapProviderSetting(MapProviderSetting mapProviderSetting)
-
getSupportResolutions
public abstract double[] getSupportResolutions()
返回当前服务支持的分辨率。如果支持所有分辨率,则返回空。- 返回:
-
-