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)
根据地图图层名、地图参数以及图片输出设置进行全幅显示。
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
clearAllCache, getFieldsByLayerName, getResource, getTileImage, getVectorStyle, getVectorStyle, support, updateMap
public static final java.lang.String QUESTION_MARK
public static final java.lang.String LINK_MARK
public static final java.lang.String URL_ENCODE
URI 的编码格式。
public static final double RESOLUTION_PRECESION
分辨率精度,在该精度范围内,认为两个分辨率相等。
protected static final LocLogger logger
protected static final java.lang.String CACHEKEY
public int tileCols
瓦片宽度,单位是像素,默认为256像素。
public int tileRows
瓦片高度,单位是像素,默认为256像素。
protected int defaultDPI
图片的 DPI。
public AbstractRestMapProvider(MapProviderSetting setting)
public AbstractRestMapProvider()
public void setProviderContext(ProviderContext context)
ProviderContextAware
设置服务提供者上下文。
setProviderContext
在接口中 ProviderContextAware
context
- 服务提供者上下文。protected abstract boolean loadMetaData()
protected abstract java.util.List<java.lang.String> initSupportedMapNames()
protected abstract void checkSetting(MapProviderSetting setting)
setting
-public MapParameter getDefaultMapParameter(java.lang.String mapName)
返回默认地图状态。
以地图范围的中心点作为默认中心点, 以一个瓦片的像素大小作为默认图片大小,以一个瓦片的像素大小作为默认图片大小,
getDefaultMapParameter
在接口中 MapProvider
mapName
- 地图名称。protected abstract java.util.Map<java.lang.String,MapParameter> initDefaultMapParameter()
初始化默认地图状态,返回值为一个映射,键为地图名,值为地图参数对象。
protected boolean rectifyViewBoundsAndViewer(MapParameter defaultMapParameter)
public MapImage getMapImage(MapParameter mapParameter, ImageOutputOption outputOption)
根据地图参数、图片输出设置获取地图图片。
getMapImage
在接口中 MapProvider
mapParameter
- 地图参数。outputOption
- 图片输出设置。protected void outputImage(MapParameter param, ImageOutputOption outputOption, double currentResolution, java.lang.String targetFileName)
param
-outputOption
-currentResolution
-targetFileName
-protected boolean isResolutionSupported(double currentResolution)
protected abstract Point2D getTileOrigin()
获取地图的左上角地理坐标。
protected void outputImageToFile(java.lang.String targetFileName, java.awt.image.BufferedImage targetImage)
将各个瓦片与给定范围重合的区域拼接成一个图片后,写到指定的文件中
targetFileName指定的文件名
-targetImage结果图片
-protected boolean outputStreamToFile(java.io.InputStream resultStream, java.lang.String targetFileName)
resultStream
-targetFileName
-protected abstract java.io.InputStream getTileImageStream(MapParameter tileParam, ImageOutputOption outputOption, int colIndex, int rowIndex, double currentResolution)
获取指定的瓦片的图片流。
tileParam
-outputOption
-colIndex
-rowIndex
-currentResolution
-protected AbstractRestMapProvider.TileIndex getTileIndex(Point2D point, double currentResolution, Point2D tileOriginPos)
point
-currentResolution
-protected Rectangle2D getTileBounds(double currentResolution, int colIndex, int rowIndex, Point2D tileOrigin)
protected byte[] getMapImageData(java.lang.String imageFilePath)
public MapParameter getMapParameter(java.lang.String mapName)
MapProvider
获取指定地图上次出图之后的状态(地图参数)。
getMapParameter
在接口中 MapProvider
mapName
- 指定地图名称。public Overview getOverview(MapParameter mapParameter, ImageOutputOption outputOption)
MapProvider
根据地图参数以及图片输出设置获取鹰眼。
getOverview
在接口中 MapProvider
mapParameter
- 地图参数。outputOption
- 图片输出设置。public MapImage viewEntire(java.lang.String layerName, MapParameter mapParameter, ImageOutputOption outputOption)
根据地图图层名、地图参数以及图片输出设置进行全幅显示。
参数中指定的图层名称是指以该图层内容的最小外接矩形作为全幅显示的地理范围。
viewEntire
在接口中 MapProvider
layerName地图图层名,即以该图层的最小外接矩形作为全幅显示的地理范围。
-mapParameter地图参数。
-outputOption图片输出设置。
-public java.util.List<java.lang.String> getNames()
getNames
在接口中 MapProvider
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 java.lang.String getResource(java.lang.String mapName, ResourceParameter resourceParameter)
MapProvider
根据资源图片参数获取指定地图的资源图片。
getResource
在接口中 MapProvider
mapName
- 地图名称。resourceParameter
- 资源图片参数。public MeasureResult measureArea(java.lang.String mapName, Point2D[] points, MeasureParameter measureParam)
MapProvider
根据二维地理坐标点、量算参数,在指定地图上进行面积量算。
measureArea
在接口中 MapProvider
mapName
- 地图名称。points
- 二维地理坐标点数组。measureParam
- 量算参数。public MeasureResult measureDistance(java.lang.String mapName, Point2D[] points, MeasureParameter measureParam)
MapProvider
根据二维地理坐标点、量算参数,在指定地图上进行距离量算。
measureDistance
在接口中 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]
中进行设置。protected static void checkParameterNull(java.lang.Object obj, java.lang.String parameterName)
public void dispose()
Disposable
释放资源对象。
dispose
在接口中 Disposable
public void clearCache(java.lang.String mapName, Rectangle2D bounds)
清除地图对应范围的缓存图片。
clearCache
在接口中 MapProvider
mapName地图名称。
-bounds地图范围。
-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 queryBySQL(java.lang.String mapName, QueryParameterSet queryParameterSet)
MapProvider
在指定地图上执行 SQL 查询。
queryBySQL
在接口中 MapProvider
mapName
- 地图名称。queryParameterSet
- 查询参数集。可对某个地图的多个图层进行查询,单个图层的查询参数在 queryParameterSet.queryParams[i]
中进行设置。public QueryResult queryByBounds(java.lang.String mapName, Rectangle2D bounds, QueryParameterSet queryParameterSet)
MapProvider
在指定的地图上,查询指定范围内的几何对象,以及外接矩形与指定范围相交的几何对象。
queryByBounds
在接口中 MapProvider
mapName
- 地图名称。bounds
- 指定的查询范围。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”。java.io.IOException
public MapParameter setDefaultMapParameter(MapParameter mapParameter)
MapProvider
设置默认地图参数。
setDefaultMapParameter
在接口中 MapProvider
mapParameter
- 地图参数。protected boolean isResolutionEquals(double resolution1, double resolution2)
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
- 请求体流。java.io.IOException
protected double resolutionToScale(double resolution, int dpi, Unit mapUnit)
根据分辨率、DPI、地图单位,计算比例尺。
resolution
- 指定的分辨率,单位为“像素/地图单位”。dpi
- 指定的 DPI。mapUnit
- 地图单位,跟 resolution 的单位相对应。public JsonConverter getJsonConverter()
获取JSON 转换器。
JSON 转换器可以将一个 JSON 字符串转换为一个 Java 对象。
protected void setJsonConverter(JsonConverter jsonConverter)
设置 JSON 转换器,JSON 转换器可以将一个 JSON 字符串转换为一个 Java 对象。
jsonConverter
- JSON 转换器。protected java.util.Map<java.lang.String,MapParameter> getDefaultMapParameters()
protected void setDefaultMapParameters(java.util.Map<java.lang.String,MapParameter> defaultMapParameters)
设置默认地图状态。
defaultMapParameters
- 地图状态映射,键为地图名,值为地图参数对象。protected ImageCacheHelper getCacheHelper()
public MapProviderSetting getMapProviderSetting()
public void setMapProviderSetting(MapProviderSetting mapProviderSetting)
public abstract double[] getSupportResolutions()