com.supermap.data.processing

类 MapCacheBuilder

  • java.lang.Object
    • com.supermap.data.InternalHandle
      • com.supermap.data.InternalHandleDisposable
        • com.supermap.data.processing.MapCacheBuilder
  • 所有已实现的接口:
    IDisposable


    public class MapCacheBuilder
    extends com.supermap.data.InternalHandleDisposable
    二维地图缓存生成类,用于生成 sci 格式的地图缓存配置文件。二维地图缓存指的是将地图生成主要供二维窗口使用的缓存。

    地图缓存是一种用于改善地图浏览用户体验的优化策略。服务器端创建了地图缓存之后,客户端用户的每一次地图浏览,比如平移、放大、缩小地图,都会向服务器端发送一个 URL 请求,此时,服务器端按照匹配的条件,将已缓存的数据返回到客户端。

    使用 SuperMap Deskpro .NET 6R 产品支持以 ImagePlugin 方式加载二维地图缓存,即以数据源方式加载缓存数据,此时,缓存数据表现为影像数据集。

    注意:

    1. 不推荐对生成的缓存地图进行旋转。如想得到较佳的旋转效果,建议先配好地图,对地图进行旋转,然后再生成缓存文件。
    2. 使用带有固定比例尺的地图生成缓存时需注意:生成缓存的比例尺必须为固定比例尺中的值的子集

    关于二维地图缓存的详细介绍请参见《二三维缓存》技术文档。

    • 构造器详细资料

      • MapCacheBuilder

        public MapCacheBuilder()
        构造一个新的地图缓存生成类对象。
      • MapCacheBuilder

        public MapCacheBuilder(Map map,
                               String outputFolder,
                               double[] outputScales)
        根据给定的参数,构造一个新的地图缓存生成类对象。
        参数:
        map - 要生成缓存的地图。
        outputFolder - 生成缓存的路径。
        outputScales - 需要导出的比例尺。
    • 方法详细资料

      • getMap

        public Map getMap()
        返回用于创建缓存的地图。
        返回:
        用于创建缓存的地图。
      • setMap

        public void setMap(Map map)
        设置需要生成缓存的地图。如果地图中包含有web类型引擎提供的数据图层,则缓存生成失败。
        参数:
        map - 需要生成缓存的地图。
      • getClipRegion

        public GeoRegion getClipRegion()
        返回生成的地图缓存的裁剪区域,用以设置不规则范围来生成缓存。
        返回:
        指定的生成的地图缓存的裁剪区域。
      • setClipRegion

        public void setClipRegion(GeoRegion value)
        设置生成的地图缓存的裁剪区域,用以设置不规则范围来生成缓存。
        参数:
        value - 生成的地图缓存的裁剪区域,用以设置不规则范围来生成缓存。
      • getBounds

        public Rectangle2D getBounds()
        返回地图缓存的地理范围。
        返回:
        指定的地图缓存的地理范围。。
      • setBounds

        public void setBounds(Rectangle2D bounds)
        设置地图缓存的地理范围。

        如未调用此属性,则默认为(0, 0, 0, 0)。在此情况下,生成的缓存范围为整幅地图的范围。

        参数:
        bounds - 指定的地图缓存的地理范围。。
      • getCacheName

        public String getCacheName()
        返回生成的地图缓存配置文件的名称。
        返回:
        生成的地图缓存配置文件的名称。
      • isValidCacheName

        public static boolean isValidCacheName(String value)
        判断传入的参数是否为有效的缓存名称。
        参数:
        value - 需判断的名称。
        返回:
        名称是否有效。
      • setCacheName

        public void setCacheName(String value)
        设置生成的地图缓存配置文件的名称。
        参数:
        value - 生成的地图缓存配置文件的名称。
      • getOutputScaleCaptions

        public HashMap<Double,String> getOutputScaleCaptions()
        返回地图缓存比例尺的别名。
        返回:
        地图缓存比例尺的别名。
      • setOutputScaleCaptions

        public void setOutputScaleCaptions(HashMap<Double,String> scaleCaptions)
        设置地图缓存比例尺的别名。

        一般设置为比例尺大小倒数的字符串,如1:10000为10000。

        当设置的别名不唯一时,程序抛出异常。

        注意:2.0到4.0版本的缓存比例尺的别名必须采用底层计算好的默认值。

        参数:
        scaleCaptions - 地图缓存比例尺的别名。
      • getOutputScales

        public double[] getOutputScales()
        返回地图缓存的比例尺数组。
        返回:
        地图缓存的比例尺数组。
      • setOutputScales

        public void setOutputScales(double[] values)
        设置地图缓存的比例尺数组。

        OutputScales中的比例尺必须 >= 1:2000000000,否则缓存生成失败。

        缓存比例尺数组中有一个非法(数值非法或地图固定比例尺显示,出缓存时比例尺数组不是子集)时,缓存生成失败。

        参数:
        values - 地图缓存的比例尺数组。
      • getImageCompress

        @Deprecated
        public int getImageCompress()
        已过时。 返回地图缓存图片的压缩率。
        返回:
        地图缓存图片的压缩率。
        默认值:
        默认值为 75。
      • setImageCompress

        @Deprecated
        public void setImageCompress(int imageCompress)
        已过时。 设置地图缓存图片的压缩率。
        参数:
        imageCompress - 地图缓存图片的压缩率。
      • getImageQuality

        public int getImageQuality()
        获取缓存图片质量
        返回:
      • setImageQuality

        public void setImageQuality(int imageQuality)
        设置缓存图片质量
        参数:
        imageQuality -
      • getOutputFolder

        public String getOutputFolder()
        返回生成地图缓存的路径。
        返回:
        生成地图缓存的路径。
      • setOutputFolder

        public void setOutputFolder(String outputFolder)
        设置生成地图缓存的路径。
        参数:
        outputFolder - 生成地图缓存的路径。
      • isTransparent

        public boolean isTransparent()
        返回地图缓存图片是否背景透明。

        当前2.0,2.1,3.0,3.1,4.0版本png格式的缓存,若原地图中没有线型反走样,加载时支持背景透明的效果,若有则加载时不支持背景透明的效果。

        当前2.0,2.1,3.0,3.1,4.0版本gif格式的缓存,加载时不支持背景透明的效果。

        5.0版本缓存加载时支持背景透明效果。

        各个版本缓存,生成的缓存都支持背景透明效果。

        返回:
        地图缓存图片是否背景透明。
        默认值:
        默认值为 false。
      • setTransparent

        public void setTransparent(boolean bool)
        设置地图缓存图片是否背景透明。
        参数:
        bool - 地图缓存图片是否背景透明。
      • isFillMargin

        public boolean isFillMargin()
        返回是否完全填充缓存图片。
        返回:
        一个布尔值,用来指示是否完全填充缓存图片,true,表示完全填充缓存图片;false,表示不完全填充缓存图片。
      • setFillMargin

        public void setFillMargin(boolean bool)
        设置是否完全填充缓存图片。
        参数:
        bool - 一个布尔值,用来指示是否完全填充缓存图片,true,表示完全填充缓存图片;false,表示不完全填充缓存图片。
      • getStorageType

        public StorageType getStorageType()
        返回地图缓存图片存储的方式。
        返回:
        地图缓存图片存储的方式。
        默认值:
        默认值为 StorageType.Original,即原始模式。
      • setStorageType

        public void setStorageType(StorageType storageType)
        设置地图缓存存储方式。
        参数:
        storageType - 地图缓存存储方式。
      • getIndexBounds

        public Rectangle2D getIndexBounds()
        返回地图缓存的索引范围。

        如果在缓存版本为1.0(MapCacheVersion.VERSION_10)和5.0(MapCacheVersion.VERSION_50)的全球剖分模式(MapTileType.Global)下,设置indexBounds不起作用。

        返回:
        指定的索引范围。
      • setIndexBounds

        public void setIndexBounds(Rectangle2D bounds)
        设置地图缓存的索引范围。

        如果在缓存版本为1.0(MapCacheVersion.VERSION_10)和5.0(MapCacheVersion.VERSION_50)的全球剖分模式(MapTileType.Global)下,设置indexBounds不起作用。

        如未设置此属性,则默认为(0, 0, 0, 0)。在此情况下,生成的缓存索引范围为整幅地图的范围。

        参数:
        bounds - 地图缓存的索引范围。
      • getPassword

        public String getPassword()
        返回地图缓存的密码。

        该密码不会写到地图缓存配置文件中,同时,fromConfigFile 方法也不会还原该密码。

        返回:
        一个布尔值,若创建地图缓存成功返回 true,否则返回 false。
        默认值:
        默认值为一个空的字符串,即不对地图缓存进行密码设置。
      • setPassword

        public void setPassword(String passwd)
        设置地图缓存的密码。

        默认情况下,可直接进行地图缓存的加载;否则,需要使用生成缓存时设置的密码才可成功地加载地图缓存。

        该密码不会写到缓存配置文件中,同时,fromConfigFile 方法也不会还原该密码。

        注意:当 StorageType.Original 时,该方法是无效的;当 StorageType.Compact 时,该方法才有效。

        参数:
        passwd - 地图缓存的密码。
      • build

        public boolean build()
        生成地图缓存。
        返回:
        一个布尔值,若生成缓存成功返回 true,否则返回 false。
      • build

        public boolean build(boolean buildTile)
        开始创建地图缓存
        参数:
        buildTile - 是否生成瓦片数据
        返回:
      • build

        public boolean build(boolean buildVectorTile,
                             boolean buildStyle)
        根据参数生成矢量瓦片或风格。
        参数:
        buildVectorTile - 是否生成矢量瓦片,true表示生成;false表示不生成。
        buildStyle - 是否生成矢量瓦片风格,true表示生成;false表示不生成。
        返回:
        一个布尔值,若创建缓存成功,返回 true,否则返回 false。
      • build

        public boolean build(int level,
                             int row,
                             int col)
        生成指定层级行列号的矢量瓦片。
        参数:
        level - 层级。
        row - 行号。
        col - 列号。
        返回:
        生成是否成功,成功则在缓存目录下生成对应瓦片文件。
      • buildWithoutConfigFile

        public boolean buildWithoutConfigFile()
        生成地图缓存,但不会生成地图缓存配置文件
        返回:
        一个布尔值,若生成缓存成功,返回 true,否则返回 false。
      • buildWithoutConfigFile

        public boolean buildWithoutConfigFile(boolean buildVectorTile,
                                              boolean buildStyle)
        根据参数生成矢量瓦片或风格,但不生成缓存配置文件。
        参数:
        buildVectorTile - 是否生成矢量瓦片,true表示生成;false表示不生成。
        buildStyle - 是否生成矢量瓦片风格,true表示生成;false表示不生成。
        返回:
        一个布尔值,若创建缓存成功,返回 true,否则返回 false。
      • toConfigFile

        public boolean toConfigFile(String path)
        将地图缓存的用户设置保存为指定的文件。文件的后缀名为 sci,即地图缓存配置文件。

        通过该方法导出的地图缓存配置文件只用来保存用户对于地图缓存的设置,包括缓存配置文件名称、缓存图片格式、缓存图片大小、背景是否透明、地图名称、输出的地理范围、裁剪区域、索引范围、图片压缩率、比例尺设置、图片位深、存储方式。但该文件并不与缓存图片一起作为完整的地图缓存进行加载。

        与该地图缓存对象对应的 setMap() 方法的设置值不会写到文件中。

        参数:
        path - 指定文件的路径。
        返回:
        一个布尔值,若保存缓存配置文件成功返回 true,否则返回 false。
      • fromConfigFile

        public boolean fromConfigFile(String path)
        导入地图缓存配置文件,即根据配置文件中的内容来设置该地图缓存对象。

        该方法不会对 setMap() 方法的设置值进行修改。

        参数:
        path - 指定的地图缓存配置文件的路径。
        返回:
        一个布尔值,若导入缓存配置文件成功返回 true,否则返回 false。
      • mergeConfigFile

        public boolean mergeConfigFile(String path)
        合并缓存文件
        参数:
        path -
        返回:
      • computeImageFileName

        public String computeImageFileName(Point2D center,
                                           double scale)
        返回在指定比例尺下,根据给定中心点生成的地图缓存图片名称。
        参数:
        center - 需要计算的中心点。
        scale - 计算时指定的比例尺。
        返回:
        计算得到的地图缓存图片名称。
      • computeImageFileName

        public String[] computeImageFileName(Rectangle2D imageBounds,
                                             double scale)
        返回在指定比例尺下,根据给定的地理范围生成的地图缓存图片名称。
        参数:
        imageBounds - 需要计算的地理范围。
        scale - 计算时指定的比例尺。
        返回:
        一个名称数组,为在指定比例尺下,根据给定的地理范围生成的地图缓存图片名称。
      • computeOutputScales

        @Deprecated
        public boolean computeOutputScales()
        已过时。 计算生成地图缓存时的合适输出比例尺,即提供的默认输出比例尺。该操作会修改 setOutputScales() 方法的设置值,通过该方法可以查看默认的输出比例尺。
        返回:
        一个布尔值,若计算成功返回 true,否则返回 false。
      • getDefultOutputScales

        public double[] getDefultOutputScales()
        获取按照当前设置的地图对象所推荐的默认比例尺数组
        返回:
        返回默认比例尺数组
      • getGlobalLevelScales

        public HashMap<Double,String> getGlobalLevelScales()
        返回全球剖分所有层级比例尺。
        返回:
        返回全球剖分所有层级比例尺。
      • getGlobalIndexBounds

        public Rectangle2D getGlobalIndexBounds()
        获取当前缓存设置下的全球有效全副范围。
        返回:
        全副范围值。
      • addSteppedListener

        public void addSteppedListener(SteppedListener l)
        添加一个用于接收进度条事件(SteppedEvent)的监听器。
        参数:
        l - 一个用于接收进度条事件的监听器。
      • removeSteppedListener

        public void removeSteppedListener(SteppedListener l)
        移除一个用于接收进度条事件(SteppedEvent)的监听器。
        参数:
        l - 一个用于接收进度条事件的监听器。
      • dispose

        public void dispose()
        释放该对象所占用的资源。当调用该方法之后,此对象不再可用。
      • getImageBounds

        public Rectangle2D getImageBounds(String imageFile)
        返回指定图片的地理范围。
        参数:
        imageFile - 指定图片的路径。
        返回:
        指定图片的地理范围。
      • getHashCode

        public String getHashCode()
        获取当前缓存的哈希值。
        返回:
        哈希值字符串。
      • getImageData

        @Deprecated
        public byte[] getImageData(String imgFilePath,
                                                String strPwd)
        已过时。 此接口已不再支持,可以直接使用CompactFile类进行瓦片读取。
        获取指定行列号的瓦片数据。
        参数:
        imgFilePath - 根据行列号拼接的完整路径。
        strPwd - 紧凑缓存密码。
        返回:
        返回瓦片数据。
      • setHashCodeEnabled

        public void setHashCodeEnabled(boolean enable)
        设置当前缓存是否忽略哈希值。

        为iServer开放的接口,iServer不会使用到,隐藏掉,

        该接口当前仅为资源三号项目开放。没有写入文档。

        参数:
        enable - true代表忽略,缓存目录中不再出现哈希值,false反之。
      • isHashCodeEnabled

        public boolean isHashCodeEnabled()
        获取当前缓存是否忽略哈希值。

        为iServer开放的接口,iServer不会使用到,隐藏掉,

        该接口当前仅为资源三号项目开放。没有写入文档。

        返回:
        true代表忽略,缓存目录中不再出现哈希值,false反之。
      • getVersion

        public MapCacheVersion getVersion()
        返回缓存的版本。

        随着缓存技术的发展,SuperMap GIS 6R 系列产品对于缓存的生成也在不断地发展和完善,因此,产生的多种缓存生成策略,为了便于对不同版本产品缓存的使用和管理,提供了MapCacheVersion枚举,用来定义缓存版本类型常量。

        从 SuperMap Objects Java 6R(2012) Service Pack 2开始,MapCacheVersion 枚举的默认值为 Version_50,之前的版本默认值为 Version_40。

        返回:
        返回缓存的版本。
      • setVersion

        public void setVersion(MapCacheVersion version)
        设置缓存的版本。

        随着缓存技术的发展,SuperMap GIS 6R 系列产品对于缓存的生成也在不断地发展和完善,因此,产生的多种缓存生成策略,为了便于对不同版本产品缓存的使用和管理,提供了MapCacheVersion枚举,用来定义缓存版本类型常量。

        从 SuperMap Objects Java 6R(2012) Service Pack 2开始,MapCacheVersion 枚举的默认值为 Version_50,之前的版本默认值为 Version_40。

        参数:
        version - 一个枚举值,指定缓存的版本。
      • originalToCompact

        public boolean originalToCompact(String originalFileName,
                                         String compactPath,
                                         String password)
        原始缓存转为紧凑型缓存,实现对原始缓存文件的压缩,节省磁盘空间,同时也易于拷贝。
        参数:
        originalFileName - 原始缓存配置文件的全路径名。
        compactPath - 生成的紧凑文件输出路径。
        password - 所生成紧凑文件的密码。
        返回:
        一个布尔值,操作成功返回 true;否则,返回 false。
      • globalLevelToScale

        @Deprecated
        public static HashMap<Double,String> globalLevelToScale(int[] levels,
                                                                             PrjCoordSys value,
                                                                             TileSize tileSize)
        已过时。 11.2.0已废弃,请使用getGlobalLevelScales接口获取标准的全球剖分比例尺。
        根据给定的缓存层级数组、投影信息以及瓦片大小,计算缓存层级对应的比例尺以及对应的别名称。
        参数:
        levels - 缓存层级数组。
        value - 投影信息。
        tileSize - 瓦片大小,默认值为256。
        返回:
        返回由缓存层级对应的比例尺以及对应的别名称组成的 HashMap,其中,key 为缓存层级对应的比例尺,value 为比例尺对应的别名称。
      • globalLevelToScale

        @Deprecated
        public static HashMap<Double,String> globalLevelToScale(int[] levels,
                                                                             PrjCoordSys value,
                                                                             TileSize tileSize,
                                                                             double dpi)
        已过时。 11.2.0已废弃,请使用getGlobalLevelScales接口获取标准的全球剖分比例尺。
        根据给定的缓存层级数组、投影信息以及瓦片大小,计算缓存层级对应的比例尺以及对应的别名称。
        参数:
        levels - 缓存层级数组。
        value - 投影信息。
        tileSize - 瓦片大小,默认值为256。
        dpi - DPI。
        返回:
        返回由缓存层级对应的比例尺以及对应的别名称组成的 HashMap,其中,key 为缓存层级对应的比例尺,value 为比例尺对应的别名称。
      • globalLevelToScale

        @Deprecated
        public static HashMap<Double,String> globalLevelToScale(int[] levels,
                                                                             PrjCoordSys value,
                                                                             CacheImageSize imageSize)
        已过时。 
        参数:
        levels - 缓存层级数组。
        value - 投影信息。
        imageSize - 瓦片大小,默认值为256。
        返回:
        返回由缓存层级对应的比例尺以及对应的别名称组成的 HashMap,其中,key 为缓存层级对应的比例尺,value 为比例尺对应的别名称。
      • globalLevelToScale

        @Deprecated
        public HashMap<Double,String> globalLevelToScale(int[] levels)
        已过时。 11.2.0已废弃,请使用getGlobalLevelScales接口获取标准的全球剖分比例尺。
        转换指定层级到对应的全球剖分比例尺
        参数:
        levels - 指定的层级数组
        返回:
        对应的比例尺和标题表
      • getDPI

        public double getDPI()
        返回生成缓存的DPI,代表每英寸有多少个像素。

        若DPI为0,则根据地图DPI出缓存。

        该接口只支持返回生成5.0版本缓存的DPI。

        返回:
        生成缓存的DPI。
        默认值:
        默认值为 0。
      • setDPI

        public void setDPI(double dpi)
        设置生成缓存的DPI。

        该接口用于实现按指定DPI生成缓存。

        在生成地图缓存时,通过该接口设置生成缓存的DPI,如果不对该值进行设置或该值为0,则按地图DPI生成缓存。

        该接口只支持设置生成5.0版本缓存的DPI。

        DPI不能为负值。

        参数:
        dpi - 生成缓存的DPI。
      • isAppending

        public boolean isAppending()
        返回是否追加生成缓存。

        该接口只支持返回是否追加生成5.0版本缓存。

        返回:
        true,表示追加生成缓存,false,表示不追加生成
      • setIsAppending

        public void setIsAppending(boolean isAppending)
        设置是否追加生成缓存。

        缓存追加功能的实现需满足四个条件:用于追加缓存的地图与被追加缓存的地图的投影一致;生成地图缓存的DPI一致;生成地图缓存的索引范围一致;地图缓存的瓦片大小一致;新追加的数据的HashCode与原有数据相同。

        比例尺的追加:适用于在已存在一个或多个比例尺的缓存的基础上再追加一个或多个比例尺的缓存。

        如下图所示:图1的文件夹中已经存在比例尺为1:100万的缓存,通过缓存追加功能成功的追加1:200万和1:300万的缓存后,追加结果如图2所示。

        地理范围的追加:适用于在已存在的指定Bounds的缓存的基础上再追加一个与其相同或不同Bounds的缓存。

        如下图所示:图1为指定Bounds为 (-1095613.659534853, 41164.65081003026, 742658.8224100075, 4213615.847471327) 时生成的缓存,图2为在图1的基础上,指定Bounds为地图的Bounds,通过缓存追加功能生成的追加结果。

        注意:该接口只支持设置追加生成5.0版本缓存。

        参数:
        isAppending - 一个布尔值,用来指示是否追加的生成缓存,true,表示追加生成缓存,false,表示不追加生成缓存。
        示范代码:
        以下代码分别示范了如何运用缓存追加功能实现缓存比例尺和缓存Bounds的追加。

        假设下面函数操作的地图为安装目录\SampleData\China\下的China400.smwu工作空间中的地图中国地形图,并且已用该数据生成了比例尺为1:1000000的缓存,以下代码示范了如何为其追加比例尺为1:2000000和1:3000000的缓存。

         private static void builderMapCacheLocal() {
        
                MapCacheBuilder builder = new MapCacheBuilder();
        
                //设置追加生成缓存的地图
                builder.setMap(map);
        
                //读取已存在的地图缓存
                builder.fromConfigFile(outputFolder + "/map/map.sci");
        
                //设置追加生成缓存的比例尺
                builder.setOutputScales(new double[] { 1.0 / 2000000,1.0 / 3000000 });
        
                //设置追加生成缓存的Bounds
                builder.setBounds(map.getBounds());
        
                //设置缓存图片填充空白区域,缓存追加功能最好设置FillMargin,否则边缘部分图片可能会出现不全的情况
                builder.setFillMargin(true);
        
                //设置追加生成缓存
                builder.setIsAppending(true);
        
                //开始生成
                builder.build();
                }
         

        假设下面函数操作的地图为安装目录\SampleData\China\下的China400.smwu工作空间中的地图中国地形图,并且已用该数据生成了bounds为(-637913.8206236893,877265.2392774278,1575790.5843828395,2918893.24833147)的缓存,以下代码示范了如何为其追加Bounds为地图Bounds的缓存。

         private static void builderMapCacheLocal(){
        
                        MapCacheBuilder builder = new MapCacheBuilder();
        
                    //设置追加生成缓存的地图
                        builder.setMap(map);
        
                        //读取已存在的地图缓存
                        builder.fromConfigFile(outputFolder + "/map/map.sci");
        
                        //设置追加生成缓存的比例尺
                        builder.setOutputScales(new double[] { 1.0 / 50000000 });
        
                        //设置追加生成缓存的Bounds
                        builder.setBounds(map.getBounds());
        
                        //设置缓存图片填充空白区域,缓存追加功能最好设置FillMargin,否则边缘部分图片可能会出现不全的情况
                        builder.setFillMargin(true);
        
                        //设置追加生成缓存
                        builder.setIsAppending(true);
        
                        //开始生成
                        builder.build();
                        }
         
      • setTilingMode

        @Deprecated
        public void setTilingMode(MapTilingMode tilingMode)
        已过时。 此接口已不再支持。 设置地图缓存的剖分方式。

        地图缓存的剖分方式包括全球剖分和区域剖分两种。

        注意:

        当选择以全球剖分方式生成地图缓存时,需注意以下几点:

        • 投影方式必须为WGS1984。
        • 必须使用GlobalLevelToScale()函数将层级转换为比例尺,然后设置进builder。
        • 不需要设置IndexBounds,该值对于全球剖分缓存无意义,会被忽略。

        该接口只支持设置5.0版本缓存的剖分方式。

        参数:
        tilingMode - 地图缓存的剖分方式。
      • getTilingMode

        @Deprecated
        public MapTilingMode getTilingMode()
        已过时。 此接口已不再支持。 返回地图缓存的剖分方式。
        返回:
        地图缓存的剖分方式。
      • getTileSize

        public TileSize getTileSize()
        返回地图缓存图片的大小。
        返回:
        地图缓存图片的大小。
      • setTileSize

        public void setTileSize(TileSize tileSize)
        设置地图缓存图片的大小。
        参数:
        tileSize - 地图缓存图片的大小。
      • getTileFormat

        public TileFormat getTileFormat()
        返回地图缓存图片的类型。
        返回:
        地图缓存图片的类型。
      • setTileFormat

        public void setTileFormat(TileFormat tileFormat)
        设置地图缓存图片的类型。
        参数:
        tileFormat - 地图缓存图片的类型。
      • getBuildResult

        @Deprecated
        public BuildResultInfo getBuildResult()
        已过时。 此接口已不再支持。 返回生成缓存的结果信息,包括生成图片数,各种耗时等。
        返回:
        生成缓存的结果信息。
      • getResultInfo

        public String getResultInfo()
        获取缓存生成结构信息。
        返回:
        结果信息,如果生成失败包含错误原因。
      • isDeleteLogFile

        @Deprecated
        public boolean isDeleteLogFile()
        已过时。 此接口已不再支持。 返回缓存生成完成是否删除日志文件。
        返回:
        一个布尔值,用来指示缓存生成完成是否删除日志文件,true,表示删除;false,表示不删除。
        默认值:
        默认值为false,缓存生成完成不删除日志文件。
      • setIsDeleteLogFile

        @Deprecated
        public void setIsDeleteLogFile(boolean value)
        已过时。 此接口已不再支持。 设置缓存生成完成是否删除日志文件。
        参数:
        value - 一个布尔值,用来指示缓存生成完成是否删除日志文件,true,表示删除;false,表示不删除。
      • isBlockOverRecord

        @Deprecated
        public boolean isBlockOverRecord()
        已过时。 此接口已不再支持。 返回缓存日志文件里是否写入缓存生成的进度信息。即每个比例尺每块缓存生成结束时的结果信息,包括生成图片数,各种耗时等。
        返回:
        一个布尔值,用来指示缓存日志文件里是否写入进度信息,true,表示写入进度信息;false,表示不写入进度信息。
        默认值:
        默认值为false,缓存日志文件里不写入进度信息。
      • setBlockOverRecord

        @Deprecated
        public void setBlockOverRecord(boolean value)
        已过时。 此接口已不再支持。 设置缓存日志文件里是否写入缓存生成的进度信息。即每个比例尺每块缓存生成结束时的结果信息,包括生成图片数,各种耗时等。
        参数:
        value - 一个布尔值,用来指示缓存日志文件里是否写入进度信息,true,表示写入进度信息;false,表示不写入进度信息。
      • isScaleOverRecord

        @Deprecated
        public boolean isScaleOverRecord()
        已过时。 此接口已不再支持。 返回缓存日志文件里是否写入每个比例尺生成结束时的信息,包括生成图片数,各种耗时等。
        返回:
        一个布尔值,用来指示缓存日志文件里是否写入比例尺性能信息,true,表示写入比例尺性能信息;false,表示不写入比例尺性能信息。
        默认值:
        默认值为false,缓存文件里不写入每个比例尺生成结束时的信息。
      • setScaleOverRecord

        @Deprecated
        public void setScaleOverRecord(boolean value)
        已过时。 此接口已不再支持。 设置缓存日志文件里是否写入每个比例尺生成结束时的信息,包括生成图片数,各种耗时等。
        参数:
        value - 一个布尔值,用来指示缓存日志文件里是否写入每个比例尺生成结束时的信息,true,表示写入比例尺性能信息;false,表示不写入比例尺性能信息。
      • isTaskOverRecord

        @Deprecated
        public boolean isTaskOverRecord()
        已过时。 此接口已不再支持。
        返回缓存日志文件里是否写入缓存生成结束时的结果信息,包括生成图片数,各种耗时等。
        返回:
        一个布尔值,用来指示缓存日志文件里是否写入缓存生成结束时的结果信息,true,表示写入总体信息;false,表示不写入总体信息。
        默认值:
        默认值为false,缓存日志文件里不写入总体信息。
      • setTaskOverRecord

        public void setTaskOverRecord(boolean value)
        设置缓存日志文件里是否写入缓存生成结束时的结果信息,包括生成图片数,各种耗时等。
        参数:
        value - 一个布尔值,用来指示缓存日志文件里是否写入缓存生成结束时的结果信息,true,表示写入总体信息;false,表示不写入总体信息。
      • resumable

        public void resumable(boolean value)
        设置缓存生成过程中是否生成进度文件。
        参数:
        value - true代表生成,false反之。
      • setConnectionInfo

        public void setConnectionInfo(TileStorageConnection info)
        设置mongoDB或GPKG库连接信息。
        参数:
        info - 连接信息对象。
      • getConnectionInfo

        public TileStorageConnection getConnectionInfo()
        获取mongoDB或GPKG库连接信息。
        返回:
        返回连接信息对象。
      • setVersionInfo

        public void setVersionInfo(TileVersion value)
        设置mongoDB当前版本信息。
        参数:
        value - 版本信息实例。
      • getVersionInfo

        public TileVersion getVersionInfo()
        获取mongoDB缓存当前版本信息。
        返回:
        版本信息对象。
      • createMongoDB

        public boolean createMongoDB()
        根据现有设置创建mongoDB库中缓存结构。
        返回:
        是否创建成功。
      • updateMongoDB

        public boolean updateMongoDB()
        根据现有设置更新mongoDB库中指定缓存信息。
        返回:
        是否更新成功。
      • isMultiProcessing

        public boolean isMultiProcessing()
        获取当前生成场景是否在多进程模式下。
        返回:
        ture代表在多进程模式下,false反之。
      • setMultiProcessing

        public void setMultiProcessing(boolean value)
        设置当前生成场景是否在多进程模式下。

        此方法只供多任务模式下内部使用。

        参数:
        value - ture代表在多进程模式下,false反之。
      • isIgnoreInvalidDrawing

        public boolean isIgnoreInvalidDrawing()
        返回在生成缓存时,是否忽略无有效数据绘制的出图区域;true,表示忽略,无有效数据绘制的出图区域将不生成瓦片。
        返回:
        一个布尔值,指示在生成缓存时,是否忽略无有效数据绘制的出图区域;true,表示忽略,无有效数据绘制的出图区域将不生成瓦片。
      • setIgnoreInvalidDrawing

        public void setIgnoreInvalidDrawing(boolean value)
        设置在生成缓存时,是否忽略无有效数据绘制的出图区域;true,表示忽略,无有效数据绘制的出图区域将不生成瓦片。
        参数:
        value - 一个布尔值,指示在生成缓存时,是否忽略无有效数据绘制的出图区域;true,表示忽略,无有效数据绘制的出图区域将不生成瓦片。
      • isMVTStyleWithoutFont

        public boolean isMVTStyleWithoutFont()
        返回生成矢量瓦片风格时是否生成字体,true,表示不生成字体,false,表示生成字体。
        返回:
        一个布尔值,指示生成矢量瓦片风格时是否生成字体,true,表示不生成字体,false,表示生成字体。
      • setMVTStyleWithoutFont

        public void setMVTStyleWithoutFont(boolean value)
        设置生成矢量瓦片风格时是否生成字体,true,表示不生成字体,false,表示生成字体。
        参数:
        value - 一个布尔值,指示生成矢量瓦片风格时是否生成字体,true,表示不生成字体,false,表示生成字体。
      • isMVTWithAllField

        public boolean isMVTWithAllField()
        获取矢量缓存生成时是否包含所有字段信息。
        返回:
        true代表包含所有字段内容,false反之。
        默认值:
        默认值为false。
      • setMVTWithAllField

        public void setMVTWithAllField(boolean value)
        设置矢量缓存生成时是否包含所有字段信息。
        参数:
        value - true代表包含所有字段内容,false反之。
      • getMVTTileBuffer

        public int getMVTTileBuffer()
        获取矢量缓存瓦片的缓冲区范围。
        返回:
        缓存区范围值。
        默认值:
        默认值为16。
      • setMVTTileBuffer

        public void setMVTTileBuffer(int value)
        设置矢量缓存瓦片的缓冲区范围。
        参数:
        value - 缓存区范围值。
      • getMVTTileExtent

        public int getMVTTileExtent()
        获取矢量缓存瓦片内部模大小。
        返回:
        瓦片模大小值。
        默认值:
        默认值为4096。
      • setMVTTileExtent

        public void setMVTTileExtent(int value)
        设置矢量缓存瓦片内部模大小。
        参数:
        value - 瓦片模大小值。
      • isMVTWithoutFilter

        public boolean isMVTWithoutFilter()
        获取矢量缓存是否采用数据与风格脱离的方式生成。
        返回:
        true代表数据与风格脱离,false反之。
        默认值:
        默认值为true。
      • setMVTWithoutFilter

        public void setMVTWithoutFilter(boolean value)
        设置矢量缓存是否采用数据与风格脱离的方式生成。

        使用数据与风格脱离方式方便后面独立局部更新数据瓦片,而不用重新生成。

        参数:
        value - true代表数据与风格脱离,false反之。
        默认值:
        默认值为true。
      • isMVTSimplifyGeometry

        public boolean isMVTSimplifyGeometry()
        获取矢量缓存生成时是否简化对象。
        返回:
        true代表简化对象,false反之。
      • setMVTSimplifyGeometry

        public void setMVTSimplifyGeometry(boolean value)
        设置矢量缓存生成时是否简化对象。
        参数:
        value - true代表简化对象,false反之。
      • exportGlyph

        public static String exportGlyph(String path,
                                         String name,
                                         int start,
                                         int end)
        导出指定字符编码范围的字体缓存文件(.pbf)。
        参数:
        path - 指定的导出文件的保存路径。
        name - 指定字体名称。
        start - 指定字符编码的起始值。
        end - 指定字符编码的终止值。
      • mongoDB2Builder

        public static MapCacheBuilder mongoDB2Builder(String server,
                                                      String database,
                                                      String name,
                                                      String user,
                                                      String password)
        使用mongoDB缓存信息构建本类实例。
        参数:
        server - mongoDB服务地址。
        database - mongoDB数据库名称。
        name - mongoDB缓存名称。
        user - mongoDB账号用户。
        password - mongoDB账号密码。
        返回:
        返回本来实例。
      • isBuildFromOriginalResolution

        public boolean isBuildFromOriginalResolution()
        获取是否使用基础比例尺方式生成。
        返回:
        true使用基础比例尺方式,false反之。
      • setBuildFromOriginalResolution

        public void setBuildFromOriginalResolution(boolean value)
        设置是否使用基础比例尺方式生成。
        参数:
        value - true使用基础比例尺方式,false反之。
      • getScaleOriginalResolution

        public double getScaleOriginalResolution()
        获取使用基础比例尺生成时的基础比例尺。
        返回:
        比例尺。
      • setScaleOriginalResolution

        public void setScaleOriginalResolution(double value)
        设置使用基础比例尺生成时的基础比例尺。
        参数:
        value - 比例尺。
      • isBuildTriangleListFile

        public boolean isBuildTriangleListFile()
        获取MVT是否生成索引。
        返回:
        一个布尔值,指示生成MVT瓦片时是否生成索引。true表示生成索引,false表示不生成索引。
      • setBuildTriangleListFile

        public void setBuildTriangleListFile(boolean isbuildTriangleListFile)
        设置MVT是否生成索引。
        参数:
        isbuildTriangleListFile - 一个布尔值,指示生成MVT瓦片时是否生成索引。true表示生成索引,false表示不生成索引。
      • isMongoHighResolution

        public boolean isMongoHighResolution()
        返回生成的MongoDB瓦片是否采用mongo高精度存储。 此设置仅影响经纬度地理坐标系的地图生成瓦片并存储在MongoDB数据库的情况,若生成瓦片的层级大于等于19层级(全球剖分层级,对应比例尺为1:564.25)时,需要通过setMongoHighResolution()方法设置为true值,可以避免结果瓦片发生错乱的问题,如层级发生错乱或者行列号错乱等。若生成瓦片的层级小于19层级(全球剖分层级)或者瓦片比例尺小于1:564.25,可以不必考虑该方法的返回值。
        返回:
        一个布尔值,用来指示生成的MongoDB瓦片是否采用mongo高精度存储,true,表示启用mongo高精度存储;否则为false。
      • setMongoHighResolution

        public void setMongoHighResolution(boolean value)
        设置生成的MongoDB瓦片是否采用mongo高精度存储。 此设置仅影响经纬度地理坐标系的地图生成瓦片并存储在MongoDB数据库的情况,若生成瓦片的层级大于等于19层级(全球剖分层级,对应比例尺为1:564.25)时,需要将此方法设置为true,可以避免结果瓦片发生错乱的问题,如层级发生错乱或者行列号错乱等。若生成瓦片的层级小于19层级(全球剖分层级)或者瓦片比例尺小于1:564.25,可以不必考虑该方法的设置。
        参数:
        value - 一个布尔值,用来指示生成的MongoDB瓦片是否采用mongo高精度存储,true,表示启用mongo高精度存储;否则为false。
      • setCustomIndexBounds

        public Rectangle2D setCustomIndexBounds(double scale,
                                                Point2D anchor)
        用于生成矢量瓦片时设置自定义比例尺;否则,将使用默认的全球剖分层级比例尺,第0层级对应比例尺为 1:295829355.455。

        矢量切片默认采用全球剖分层级比例尺,此方法可修改第0层级对应比例尺的值,实现矢量切片自定义比例尺,而其他层级比例尺将基于第0层级比例尺采用二分法自动计算,例如:设置第0层级比例尺为 1:49545216,自动计算第1层级比例尺为1:24772608,第2层级比例尺为 1:12386304,以此类推。

        使用此方法时,确认已经通过MapCacheBuilder.setMap 方法设置了切片的地图对象。

        使用此方法设置了矢量切片自定义比例尺后,通过 getGlobalLevelScales 和 getIndexBounds 方法返回的比例尺和索引范围将是基于setCustomIndexBounds方法中scale和anchor参数自动计算的结果。

        使用此方法设置了矢量切片自定义比例尺后,生成缓存配置文件.sci 中将会使用"sml:CustomIndexBounds"标记存储自定义索引范围值。

        参数:
        scale - 自定义第0层级对应的比例尺数值,例如,如果比例尺为 1:49545216,比例尺数值为 1/49545216,即 1除以49545216的值。如果矢量切片不再使用自定义比例尺,可将该参数设置为 0,即使用全球剖分默认层级比例尺。
        anchor - 自定义第0层级左上角点坐标。
        返回:
        返回自定义比例尺矢量切片的索引范围。该索引范围基于第0层级比例尺和左上角点坐标两个参数值,并根据 DPI 和投影信息计算获得。
      • calcMosaicOverlapRawCol

        @Deprecated
        public boolean calcMosaicOverlapRawCol()
        已过时。 
        计算镶嵌数据集各影像压盖区域行列号。
        返回:
        返回是否计算成功。
      • mergeMosaicOverlapRowCol

        @Deprecated
        public boolean mergeMosaicOverlapRowCol()
        已过时。 
        合并镶嵌数据集中各压盖区域的行列号。
        返回:
        是否合并成功。
      • setObjectStorageInfo

        public void setObjectStorageInfo(ObjectStorageInfo info)
        设置缓存的对象存储信息
        参数:
        info - 对象存储信息对象
        抛出:
        IllegalStateException - 当前对象已被释放。
      • getObjectStorageInfo

        public ObjectStorageInfo getObjectStorageInfo()
        获取缓存当前的对象存储信息
        返回:
        返回对应的对象存储实例,无则为null
        抛出:
        IllegalStateException - 当前对象已被释放。
      • sci3dToSci

        public static long sci3dToSci(String sci3dConfigFile,
                                      String password,
                                      String sciFolder)
        将*sci3d格式的缓存转化为*sci格式的缓存
        参数:
        sci3dConfigFile - *sci3d格式的缓存配置文件的绝对路径
        password - 缓存的密码
        sciFolder - *sci格式缓存配置文件的文件夹路径
        返回:
        返回值:0表示成功;其他为错误码
      • setIsDisposable

        public static void setIsDisposable(com.supermap.data.InternalHandleDisposable obj,
                                           boolean disposable)

Copyright © 2021–2024 SuperMap. All rights reserved.