com.supermap.services.components.spi

类 TiledMapProviderBase

  • java.lang.Object
    • com.supermap.services.components.spi.TiledMapProviderBase
    • 字段详细资料

      • REGEX

        protected static final java.lang.String REGEX
        
      • REPLACEMENT

        protected static final java.lang.String REPLACEMENT
        
      • QUESTION_MARK

        protected static final java.lang.String QUESTION_MARK
        
      • LINK_MARK

        protected static final java.lang.String LINK_MARK
        
      • CACHE_DIR

        protected static final java.lang.String CACHE_DIR
        
      • message

        protected static ResourceManager message
        
      • logger

        protected static final LocLogger logger
        
      • lock

        protected final java.util.concurrent.locks.ReentrantLock lock
        
      • tilePixWidth

        protected int tilePixWidth
        

        瓦片宽度,单位是像素,默认为256像素。

      • tilePixHeight

        public int tilePixHeight
        

        瓦片高度,单位是像素,默认为256像素。

        .
      • defaultMapParameters

        protected java.util.Map<java.lang.String,MapParameter> defaultMapParameters
        
      • dpi

        protected double dpi
        
    • 构造器详细资料

      • TiledMapProviderBase

        public TiledMapProviderBase()
        
        默认构造函数
      • TiledMapProviderBase

        public TiledMapProviderBase(MapProviderSetting setting)
        
        带参构造函数
        参数:
        setting -
    • 方法详细资料

      • getNames

        public java.util.List<java.lang.String> getNames()
        

        初始化默认地图状态,返回值为一个映射,键为地图名,值为地图参数对象。

        指定者:
        getNames 在接口中 MapProvider
        返回:
        地图状态映射,键为地图名,值为地图参数对象。
      • getMapParameter

        public MapParameter getMapParameter(java.lang.String mapName)
        
        从接口复制的说明: MapProvider

        获取指定地图上次出图之后的状态(地图参数)。

        指定者:
        getMapParameter 在接口中 MapProvider
        参数:
        mapName - 指定地图名称。
        返回:
        地图参数。
      • getDefaultMapParameter

        public MapParameter getDefaultMapParameter(java.lang.String mapName)
        
        从接口复制的说明: MapProvider

        获取指定地图的默认地图参数。

        初始的默认地图参数是由所访问的服务类型决定的,比如,访问 SuperMap Objects Java 提供的 GIS 能力,那么初始默认地图参数从工作空间文件中获取到;访问 WMS 服务提供的 GIS 能力,默认地图参数由 WMS 服务决定。

        指定者:
        getDefaultMapParameter 在接口中 MapProvider
        参数:
        mapName - 地图名称。
        返回:
        地图参数对象。
      • getMapImage

        public MapImage getMapImage(MapParameter mapParameter,
                           ImageOutputOption outputOption)
        
        从接口复制的说明: MapProvider

        根据地图参数、图片输出设置获取地图图片。

        指定者:
        getMapImage 在接口中 MapProvider
        参数:
        mapParameter - 地图参数。
        outputOption - 图片输出设置。
        返回:
        地图图片对象。
      • getResource

        public java.lang.String getResource(java.lang.String mapName,
                                   ResourceParameter resourceParameter)
        
        从接口复制的说明: MapProvider

        根据资源图片参数获取指定地图的资源图片。

        指定者:
        getResource 在接口中 MapProvider
        参数:
        mapName - 地图名称。
        resourceParameter - 资源图片参数。
        返回:
        资源图片地址。
      • getResource

        public byte[] getResource(java.lang.String mapName,
                         ResourceParameter resourceParameter,
                         Point2D[] points)
        
        从接口复制的说明: MapProvider

        根据资源图片参数获取指定地图的资源图片。

        指定者:
        getResource 在接口中 MapProvider
        参数:
        mapName - 地图名称。
        resourceParameter - 资源图片参数。
        points - 绘制资源图片时用的点
        返回:
        图片对应的二进制流。
      • measureDistance

        public MeasureResult measureDistance(java.lang.String mapName,
                                    Point2D[] points,
                                    MeasureParameter measureParam)
        
        从接口复制的说明: MapProvider

        根据二维地理坐标点、量算参数,在指定地图上进行距离量算。

        指定者:
        measureDistance 在接口中 MapProvider
        参数:
        mapName - 地图名称。
        points - 二维地理坐标点数组。
        measureParam - 量算参数。
        返回:
        量算结果对象。
      • measureArea

        public MeasureResult measureArea(java.lang.String mapName,
                                Point2D[] points,
                                MeasureParameter measureParam)
        
        从接口复制的说明: MapProvider

        根据二维地理坐标点、量算参数,在指定地图上进行面积量算。

        指定者:
        measureArea 在接口中 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] 中进行设置。
        返回:
        查询结果对象。
      • queryByGeometry

        public QueryResult queryByGeometry(java.lang.String mapName,
                                  Geometry geometry,
                                  SpatialQueryMode spatialQueryMode,
                                  QueryParameterSet queryParameterSet)
        
        从接口复制的说明: MapProvider

        在指定地图上,查询与指定的几何对象符合某种空间关系和查询条件的几何对象。

        指定者:
        queryByGeometry 在接口中 MapProvider
        参数:
        mapName - 地图名称。
        geometry - 几何对象。该几何对象仅包含空间信息、形状信息等,并不包括属性信息。
        spatialQueryMode - 空间几何对象间的查询模式。空间几何对象间的查询模式定义了一些几何对象之间的空间位置关系,根据这些空间关系来构建过滤条件执行查询。例如:查询可被包含在面对象中的空间对象,与面有相离或者相邻关系的空间对象等。
        queryParameterSet - 查询参数集。可对某个地图的多个图层进行查询,单个图层的查询参数在 queryParameterSet.queryParams[i] 中进行设置。
        返回:
        查询结果对象。
      • queryByBounds

        public QueryResult queryByBounds(java.lang.String mapName,
                                Rectangle2D bounds,
                                QueryParameterSet queryParameterSet)
        
        从接口复制的说明: MapProvider

        在指定的地图上,查询指定范围内的几何对象,以及外接矩形与指定范围相交的几何对象。

        指定者:
        queryByBounds 在接口中 MapProvider
        参数:
        mapName - 地图名称。
        bounds - 指定的查询范围。
        返回:
        查询结果对象。
      • queryBySQL

        public QueryResult queryBySQL(java.lang.String mapName,
                             QueryParameterSet queryParameterSet)
        
        从接口复制的说明: MapProvider

        在指定地图上执行 SQL 查询。

        指定者:
        queryBySQL 在接口中 MapProvider
        参数:
        mapName - 地图名称。
        queryParameterSet - 查询参数集。可对某个地图的多个图层进行查询,单个图层的查询参数在 queryParameterSet.queryParams[i] 中进行设置。
        返回:
        查询结果对象。
      • 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] 中进行设置。
        返回:
        查询结果对象。
      • viewEntire

        public MapImage viewEntire(java.lang.String layerName,
                          MapParameter mapParameter,
                          ImageOutputOption outputOption)
        
        从接口复制的说明: MapProvider

        根据地图图层名、地图参数以及图片输出设置进行全幅显示。

        参数中指定的图层名称是指以该图层内容的最小外接矩形作为全幅显示的地理范围。

        指定者:
        viewEntire 在接口中 MapProvider
        参数:
        layerName - 地图图层名,即以该图层的最小外接矩形作为全幅显示的地理范围。
        mapParameter - 地图参数。
        outputOption - 图片输出设置。
        返回:
        地图对象。
      • getOverview

        public Overview getOverview(MapParameter mapParameter,
                           ImageOutputOption outputOption)
        

        根据地图参数、图片输出设置获取地图鹰眼图片。

        指定者:
        getOverview 在接口中 MapProvider
        参数:
        mapParameter - 地图参数。
        outputOption - 图片输出设置。
        返回:
        地图鹰眼图片对象。
      • getMapProviderSetting

        public MapProviderSetting getMapProviderSetting()
        

        获取地图服务提供者配置

        返回:
        地图服务提供者配置
      • setMapProviderSetting

        public void setMapProviderSetting(MapProviderSetting mapProviderSetting)
        

        设置地图服务提供者配置

        参数:
        mapProviderSetting - 地图服务提供者配置
      • dispose

        public void dispose()
        

        释放资源对象。

        指定者:
        dispose 在接口中 Disposable
      • checkSetting

        protected void checkSetting(MapProviderSetting setting)
        
        检查地图服务提供者配置。
        参数:
        setting -
      • outputImage

        protected byte[] outputImage(MapParameter param,
                         ImageOutputOption outputOption,
                         double currentResolution)
        

        实时地出图 。根据地图参数,出图到指定路径。

        参数:
        param - 地图状态
        outputOption - 图片参数
        currentResolution - 分辨率
      • outputImage

        protected byte[] outputImage(MapParameter param,
                         ImageOutputOption outputOption,
                         double currentResolution,
                         Point2D tileOrigin,
                         int tileImageWidth,
                         int tileImageHeight,
                         double[] resolutions)
        
        根据地图参数出图。
        参数:
        param - 地图参数 。
        outputOption - 图片输出参数。
        currentResolution - 当前的分辨率。
        tileOrigin - 当前切片矩阵的原点。
        tileImageWidth - 当前切片矩阵的切片宽。
        tileImageHeight - 当前切片矩阵的切片高。
        resolutions -
        返回:
      • getTopOrBottomTileIndex

        protected int getTopOrBottomTileIndex(double y,
                                  double topOrBottom,
                                  double tileHeight,
                                  boolean b,
                                  int tileImageHeight)
        
      • getTop

        protected int getTop(double y,
                 Rectangle2D viewBounds,
                 double tileResolution,
                 int tileImageHeight)
        
      • getBottom

        protected int getBottom(double y,
                    Rectangle2D viewBounds,
                    double tileResolution,
                    int tileImageHeight)
        
      • getBufferedImage

        protected java.awt.image.BufferedImage getBufferedImage(byte[] imageData)
        
      • getProximalResolution

        protected double getProximalResolution(double[] paramResolutions,
                                   double currentResolution)
        
        从一组分辨率中找出大于等于当前分辨率,且最接近的分辨率,当匹配的分辨率与实际分辨率相差太大(默认5倍),返回-1
      • getProximalResolution

        protected double getProximalResolution(double[] paramResolutions,
                                   double currentResolution,
                                   int maxTolerance)
        

        从一组分辨率中找出大于等于当前分辨率,且最接近的分辨率

        当匹配的分辨率与实际分辨率相差太大(超过maxTolerance),返回-1;当maxTolerance==0时,表示没有容限

      • getAccurateResolution

        protected double getAccurateResolution(double[] resolutions,
                                   double currentResolution)
        
      • outputImageToFile

        protected void outputImageToFile(java.lang.String targetFileName,
                             java.awt.image.BufferedImage targetImage,
                             ImageOutputOption outputOption)
        

        将各个瓦片与给定范围重合的区域拼接成一个图片后,写到指定的文件中

        参数:
        targetFileName - 指定的文件名
        targetImage - 结果图片
        outputOption - 出图参数
      • outputImageToFile

        protected void outputImageToFile(java.lang.String targetFileName,
                             byte[] imageData,
                             ImageOutputOption outputOption)
        
      • isResolutionEquals

        protected boolean isResolutionEquals(double resolution1,
                                 double resolution2)
        

        判断两个分辨率是否在容差范围之内(1.0E-6)

        参数:
        resolution1 - double值
        resolution2 - double值
        返回:
        是否相等
      • getDefaultMapParameters

        protected java.util.Map<java.lang.String,MapParameter> getDefaultMapParameters()
        
        返回默认地图参数
        返回:
        默认地图参数
      • setDefaultMapParameters

        protected void setDefaultMapParameters(java.util.Map<java.lang.String,MapParameter> defaultMapParameters)
        

        设置默认地图状态。

        参数:
        defaultMapParameters - 地图状态映射,键为地图名,值为地图参数对象。
      • init

        protected void init(MapProviderSetting setting)
        

        初始化函数,该函数不对参数进行null判断,但是尽可能对其中的内容进行正确性判断

        参数:
        setting - 服务提供者配置对象
      • getLeft

        protected int getLeft(double left,
                  double originLeft,
                  double resolution,
                  int tileImageWidth)
        
      • getLeftIndex

        protected int getLeftIndex(double left,
                       double originLeft,
                       double tileWidth,
                       int tileImageWidth)
        
      • getRight

        protected int getRight(double right,
                   double originLeft,
                   double resolution,
                   int tileImageWidth)
        
      • getTopIndex

        protected int getTopIndex(double originTop,
                      double top,
                      double tileWidth,
                      int tileImageWidth)
        
      • getTop

        protected int getTop(double originTop,
                 double top,
                 double resolution,
                 int tileImageHeight)
        
      • getBottom

        protected int getBottom(double originTop,
                    double bottom,
                    double resolution,
                    int tileImageHeight)
        
      • getTileIndex

        protected int getTileIndex(double max,
                       double min,
                       double tileWidth,
                       boolean intersect,
                       int tileImageWidth)
        
        返回指定点所在瓦片的瓦片索引
        参数:
        max -
        min -
        返回:
        瓦片索引
      • getResolutoinByScale

        protected double getResolutoinByScale(double resolution,
                                  MapParameter defaultMapParameter)
        
      • support

        public boolean support(java.lang.String mapName,
                      MapCapability capability)
        
        从接口复制的说明: MapProvider
        判断地图是否支持相应功能。
        指定者:
        support 在接口中 MapProvider
        参数:
        mapName - 地图名。
        capability - 功能类型。
        返回:
        返回true表示支持该功能;返回false表示不支持该功能。
      • checkLicense

        public abstract void checkLicense()
        
      • getSupportResolutions

        public abstract double[] getSupportResolutions(java.lang.String mapName)
        

        返回当前服务支持的分辨率 。如果支持所有分辨率,则返回空。

        参数:
        mapName - 地图名
        返回:
        分辨率数组
      • initSupportedMapNames

        protected abstract java.util.List<java.lang.String> initSupportedMapNames()
        
        初始化支持的地图列表。
        返回:
        地图名列表
      • initDefaultMapParameter

        protected abstract java.util.Map<java.lang.String,MapParameter> initDefaultMapParameter()
        

        初始化默认地图状态,返回值为一个映射,键为地图名,值为地图参数对象。

        返回:
        地图状态映射,键为地图名,值为地图参数对象。
      • getSupportImageFormat

        public abstract OutputFormat[] getSupportImageFormat(java.lang.String mapName)
        

        返回支持的图片格式。

        参数:
        mapName - 地图名
        返回:
        支持的图片格式数组。
      • getOrigin

        protected abstract Point2D getOrigin(java.lang.String mapName)
        

        获取地图的左上角地理坐标。

        参数:
        mapName - 地图名
        返回:
        地图的左上角地理坐标。
      • cacheEnabled

        protected abstract boolean cacheEnabled()
        
      • tileCacheReadOnly

        protected abstract boolean tileCacheReadOnly()
        
      • getVectorStyle

        public VectorStyle getVectorStyle(java.lang.String mapName,
                                 java.lang.String[] layerNames,
                                 VectorStyleType type)
        
        从接口复制的说明: MapProvider
        获取指定地图中,指定矢量图层的样式
        指定者:
        getVectorStyle 在接口中 MapProvider
        参数:
        mapName - 地图名称
        layerNames - 图层名称
        type - 矢量样式类型
        返回:
        矢量图层样式
      • updateMap

        public boolean updateMap(MapParameter mapParameter)
        
        从接口复制的说明: MapProvider
        永久更新地图状态,会更新到磁盘中进行持久化。
        指定者:
        updateMap 在接口中 MapProvider
        参数:
        mapParameter - 要更新的地图状态。
        返回:
        是否更新成功。