com.supermap.data.processing
类 MapCacheBuilder

java.lang.Object
  继承者 com.supermap.data.processing.MapCacheBuilder

public class MapCacheBuilder
extends java.lang.Object

二维地图缓存生成类,用于生成 sci 格式的地图缓存配置文件。二维地图缓存指的是将地图生成主要供二维窗口使用的缓存。

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

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

注意:

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

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


构造方法摘要
MapCacheBuilder()
          构造一个新的地图缓存生成类对象。
MapCacheBuilder(Map map, java.lang.String outputFolder, double[] outputScales)
          根据给定的参数,构造一个新的地图缓存生成类对象。
 
方法摘要
 void addSteppedListener(SteppedListener l)
          添加一个用于接收进度条事件(SteppedEvent)的监听器。
 boolean build()
          生成地图缓存。
 boolean build(boolean buildVectorTile, boolean buildStyle)
          根据参数生成矢量瓦片或风格。
 boolean buildWithoutConfigFile()
          生成地图缓存,但不会生成地图缓存配置文件
 boolean buildWithoutConfigFile(boolean buildVectorTile, boolean buildStyle)
          根据参数生成矢量瓦片或风格,但不生成缓存配置文件。
 java.lang.String computeImageFileName(Point2D center, double scale)
          返回在指定比例尺下,根据给定中心点生成的地图缓存图片名称。
 java.lang.String[] computeImageFileName(Rectangle2D imageBounds, double scale)
          返回在指定比例尺下,根据给定的地理范围生成的地图缓存图片名称。
 boolean computeOutputScales()
          已过时。 计算生成地图缓存时的合适输出比例尺,即提供的默认输出比例尺。该操作会修改 setOutputScales() 方法的设置值,通过该方法可以查看默认的输出比例尺。
 void dispose()
          释放该对象所占用的资源。
static void exportGlyph(java.lang.String path, java.lang.String name, int start, int end)
          导出指定字符编码范围的字体缓存文件(.pbf)。
 boolean fromConfigFile(java.lang.String filename)
          导入地图缓存配置文件,即根据配置文件中的内容来设置该地图缓存对象。
 Rectangle2D getBounds()
          返回地图缓存的地理范围。
 BuildResultInfo getBuildResult()
          已过时。 返回生成缓存的结果信息,包括生成图片数,各种耗时等。
 java.lang.String getCacheName()
          返回生成的地图缓存配置文件的名称。
 GeoRegion getClipRegion()
          返回生成的地图缓存的裁剪区域,用以设置不规则范围来生成缓存。
 DatasourceConnectionInfo getConnectionInfo()
          返回数据源连接信息。
 double[] getDefultOutputScales()
          获取按照当前设置的地图对象所推荐的默认比例尺数组
 double getDPI()
          返回生成缓存的DPI,代表每英寸有多少个像素。
 java.util.HashMap<java.lang.Double,java.lang.String> getGlobalLevelScales()
          返回全球剖分所有层级比例尺。
 Rectangle2D getImageBounds(java.lang.String imageFile)
          返回指定图片的地理范围。
 int getImageCompress()
          已过时。 返回地图缓存图片的压缩率。
 Rectangle2D getIndexBounds()
          返回地图缓存的索引范围。
 Map getMap()
          返回用于创建缓存的地图。
 java.lang.String getOutputFolder()
          返回生成地图缓存的路径。
 java.util.HashMap<java.lang.Double,java.lang.String> getOutputScaleCaptions()
          返回地图缓存比例尺的别名。
 double[] getOutputScales()
          返回地图缓存的比例尺数组。
 java.lang.String getPassword()
          返回地图缓存的密码。
 StorageType getStorageType()
          返回地图缓存图片存储的方式。
 TileFormat getTileFormat()
          返回地图缓存图片的类型。
 TileSize getTileSize()
          返回地图缓存图片的大小。
 MapTilingMode getTilingMode()
          已过时。 返回地图缓存的剖分方式。
 MapCacheVersion getVersion()
          返回缓存的版本。
static java.util.HashMap<java.lang.Double,java.lang.String> globalLevelToScale(int[] levels)
          根据给定的缓存层级数组,计算缓存层级对应的比例尺以及对应的别名称。
static java.util.HashMap<java.lang.Double,java.lang.String> globalLevelToScale(int[] levels, PrjCoordSys value, CacheImageSize tileSize)
           
static java.util.HashMap<java.lang.Double,java.lang.String> globalLevelToScale(int[] levels, PrjCoordSys value, TileSize tileSize)
          根据给定的缓存层级数组、投影信息以及瓦片大小,计算缓存层级对应的比例尺以及对应的别名称。
 boolean isAppending()
          返回是否追加生成缓存。
 boolean isBlockOverRecord()
          已过时。 返回缓存日志文件里是否写入缓存生成的进度信息。即每个比例尺每块缓存生成结束时的结果信息,包括生成图片数,各种耗时等。
 boolean isBuildTriangleListFile()
          获取MVT是否生成索引。
 boolean isDeleteLogFile()
          已过时。 返回缓存生成完成是否删除日志文件。
 boolean isFillMargin()
          返回是否完全填充缓存图片。
 boolean isIgnoreInvalidDrawing()
          返回在生成缓存时,是否忽略无有效数据绘制的出图区域;true,表示忽略,无有效数据绘制的出图区域将不生成瓦片。
 boolean isMongoHighResolution()
          返回生成的MongoDB瓦片是否采用mongo高精度存储。
 boolean isMVTStyleWithoutFont()
          返回生成矢量瓦片风格时是否生成字体,true,表示不生成字体,false,表示生成字体。
 boolean isScaleOverRecord()
          已过时。 返回缓存日志文件里是否写入每个比例尺生成结束时的信息,包括生成图片数,各种耗时等。
 boolean isTaskOverRecord()
          已过时。 返回缓存日志文件里是否写入缓存生成结束时的结果信息,包括生成图片数,各种耗时等。
 boolean isTransparent()
          返回地图缓存图片是否背景透明。
 boolean originalToCompact(java.lang.String originalFileName, java.lang.String compactPath, java.lang.String password)
          原始缓存转为紧凑型缓存,实现对原始缓存文件的压缩,节省磁盘空间,同时也易于拷贝。
 void removeSteppedListener(SteppedListener l)
          移除一个用于接收进度条事件(SteppedEvent)的监听器。
 void setBlockOverRecord(boolean value)
          已过时。 设置缓存日志文件里是否写入缓存生成的进度信息。即每个比例尺每块缓存生成结束时的结果信息,包括生成图片数,各种耗时等。
 void setBounds(Rectangle2D rectangle2D)
          设置地图缓存的地理范围。
 void setBuildTriangleListFile(boolean isbuildTriangleListFile)
          设置MVT是否生成索引。
 void setCacheName(java.lang.String value)
          设置生成的地图缓存配置文件的名称。
 void setClipRegion(GeoRegion geoRegion)
          设置生成的地图缓存的裁剪区域,用以设置不规则范围来生成缓存。
 void setConnectionInfo(DatasourceConnectionInfo info)
          设置数据源连接信息。
 Rectangle2D setCustomIndexBounds(double scale, Point2D anchor)
          用于生成矢量瓦片时设置自定义比例尺;否则,将使用默认的全球剖分层级比例尺,第0层级对应比例尺为 1:295829355.455。
 void setDPI(double dpi)
          设置生成缓存的DPI。
 void setFillMargin(boolean bool)
          设置是否完全填充缓存图片。
 void setIgnoreInvalidDrawing(boolean value)
          设置在生成缓存时,是否忽略无有效数据绘制的出图区域;true,表示忽略,无有效数据绘制的出图区域将不生成瓦片。
 void setImageCompress(int value)
          已过时。 设置地图缓存图片的压缩率。
 void setIndexBounds(Rectangle2D rectangle2D)
          设置地图缓存的索引范围。
 void setIsAppending(boolean value)
          设置是否追加生成缓存。
 void setIsDeleteLogFile(boolean value)
          已过时。 设置缓存生成完成是否删除日志文件。
 void setMap(Map map)
          设置需要生成缓存的地图。
 void setMongoHighResolution(boolean value)
          设置生成的MongoDB瓦片是否采用mongo高精度存储。
 void setMVTStyleWithoutFont(boolean value)
          设置生成矢量瓦片风格时是否生成字体,true,表示不生成字体,false,表示生成字体。
 void setOutputFolder(java.lang.String value)
          设置生成地图缓存的路径。
 void setOutputScaleCaptions(java.util.HashMap<java.lang.Double,java.lang.String> value)
          设置地图缓存比例尺的别名。
 void setOutputScales(double[] value)
          设置地图缓存的比例尺数组。
 void setPassword(java.lang.String value)
          设置地图缓存的密码。
 void setScaleOverRecord(boolean value)
          已过时。 设置缓存日志文件里是否写入每个比例尺生成结束时的信息,包括生成图片数,各种耗时等。
 void setStorageType(StorageType storageType)
          设置地图缓存存储方式。
 void setTaskOverRecord(boolean value)
          设置缓存日志文件里是否写入缓存生成结束时的结果信息,包括生成图片数,各种耗时等。
 void setTileFormat(TileFormat tileFormat)
          设置地图缓存图片的类型。
 void setTileSize(TileSize tileSize)
          设置地图缓存图片的大小。
 void setTilingMode(MapTilingMode tilingMode)
          已过时。 设置地图缓存的剖分方式。

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

注意:

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

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

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

 void setTransparent(boolean value)
          设置地图缓存图片是否背景透明。
 void setVersion(MapCacheVersion version)
          设置缓存的版本。
 boolean toConfigFile(java.lang.String filename)
          将地图缓存的用户设置保存为指定的文件。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

MapCacheBuilder

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


MapCacheBuilder

public MapCacheBuilder(Map map,
                       java.lang.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 geoRegion)
设置生成的地图缓存的裁剪区域,用以设置不规则范围来生成缓存。

参数:
geoRegion - 生成的地图缓存的裁剪区域,用以设置不规则范围来生成缓存。

getBounds

public Rectangle2D getBounds()
返回地图缓存的地理范围。

返回:
指定的地图缓存的地理范围。。

setBounds

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

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

参数:
rectangle2D - 指定的地图缓存的地理范围。。

getCacheName

public java.lang.String getCacheName()
返回生成的地图缓存配置文件的名称。

返回:
生成的地图缓存配置文件的名称。

setCacheName

public void setCacheName(java.lang.String value)
设置生成的地图缓存配置文件的名称。

参数:
value - 生成的地图缓存配置文件的名称。

getOutputScaleCaptions

public java.util.HashMap<java.lang.Double,java.lang.String> getOutputScaleCaptions()
返回地图缓存比例尺的别名。

返回:
地图缓存比例尺的别名。

setOutputScaleCaptions

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

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

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

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

参数:
value - 地图缓存比例尺的别名。

getOutputScales

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

返回:
地图缓存的比例尺数组。

setOutputScales

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

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

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

参数:
value - 地图缓存的比例尺数组。

getTileSize

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

返回:
地图缓存图片的大小。

setTileSize

public void setTileSize(TileSize tileSize)
设置地图缓存图片的大小。

参数:
tileSize - 地图缓存图片的大小。

getImageCompress

public int getImageCompress()
已过时。 返回地图缓存图片的压缩率。

返回:
地图缓存图片的压缩率。
默认值:
默认值为 75。

setImageCompress

public void setImageCompress(int value)
已过时。 设置地图缓存图片的压缩率。

参数:
value - 地图缓存图片的压缩率。

getOutputFolder

public java.lang.String getOutputFolder()
返回生成地图缓存的路径。

返回:
生成地图缓存的路径。

setOutputFolder

public void setOutputFolder(java.lang.String value)
设置生成地图缓存的路径。

参数:
value - 生成地图缓存的路径。

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 value)
设置地图缓存图片是否背景透明。

参数:
value - 地图缓存图片是否背景透明。

getTileFormat

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

返回:
地图缓存图片的类型。

setTileFormat

public void setTileFormat(TileFormat tileFormat)
设置地图缓存图片的类型。

参数:
tileFormat - 地图缓存图片的类型。

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 rectangle2D)
设置地图缓存的索引范围。

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

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

参数:
rectangle2D - 地图缓存的索引范围。

build

public boolean build()
生成地图缓存。

返回:
一个布尔值,若生成缓存成功返回 true,否则返回 false。

toConfigFile

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

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

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

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

fromConfigFile

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

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

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

computeImageFileName

public java.lang.String computeImageFileName(Point2D center,
                                             double scale)
返回在指定比例尺下,根据给定中心点生成的地图缓存图片名称。

参数:
center - 需要计算的中心点。
scale - 计算时指定的比例尺。
返回:
计算得到的地图缓存图片名称。

computeImageFileName

public java.lang.String[] computeImageFileName(Rectangle2D imageBounds,
                                               double scale)
返回在指定比例尺下,根据给定的地理范围生成的地图缓存图片名称。

参数:
imageBounds - 需要计算的地理范围。
scale - 计算时指定的比例尺。
返回:
一个名称数组,为在指定比例尺下,根据给定的地理范围生成的地图缓存图片名称。

addSteppedListener

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

参数:
l - 一个用于接收进度条事件的监听器。

removeSteppedListener

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

参数:
l - 一个用于接收进度条事件的监听器。

computeOutputScales

public boolean computeOutputScales()
已过时。 计算生成地图缓存时的合适输出比例尺,即提供的默认输出比例尺。该操作会修改 setOutputScales() 方法的设置值,通过该方法可以查看默认的输出比例尺。

返回:
一个布尔值,若计算成功返回 true,否则返回 false。

getPassword

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

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

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

setPassword

public void setPassword(java.lang.String value)
设置地图缓存的密码。

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

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

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

参数:
value - 地图缓存的密码。

buildWithoutConfigFile

public boolean buildWithoutConfigFile()
生成地图缓存,但不会生成地图缓存配置文件

返回:
一个布尔值,若生成缓存成功,返回 true,否则返回 false。

dispose

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


getImageBounds

public Rectangle2D getImageBounds(java.lang.String imageFile)
返回指定图片的地理范围。

参数:
imageFile - 指定图片的路径。
返回:
指定图片的地理范围。

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(java.lang.String originalFileName,
                                 java.lang.String compactPath,
                                 java.lang.String password)
原始缓存转为紧凑型缓存,实现对原始缓存文件的压缩,节省磁盘空间,同时也易于拷贝。

参数:
originalFileName - 原始缓存配置文件的全路径名。
compactPath - 生成的紧凑文件输出路径。
password - 所生成紧凑文件的密码。
返回:
一个布尔值,操作成功返回 true;否则,返回 false。

globalLevelToScale

public static java.util.HashMap<java.lang.Double,java.lang.String> globalLevelToScale(int[] levels)
根据给定的缓存层级数组,计算缓存层级对应的比例尺以及对应的别名称。

参数:
levels - 缓存层级数组。
返回:
返回由缓存层级对应的比例尺以及对应的别名称组成的 HashMap,其中,key 为缓存层级对应的比例尺,value 为比例尺对应的别名称。

getDefultOutputScales

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

返回:
返回默认比例尺数组

globalLevelToScale

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

globalLevelToScale

public static java.util.HashMap<java.lang.Double,java.lang.String> globalLevelToScale(int[] levels,
                                                                                      PrjCoordSys value,
                                                                                      TileSize tileSize)
根据给定的缓存层级数组、投影信息以及瓦片大小,计算缓存层级对应的比例尺以及对应的别名称。

参数:
levels - 缓存层级数组。
value - 投影信息。
tileSize - 瓦片大小,默认值为256。
返回:
返回由缓存层级对应的比例尺以及对应的别名称组成的 HashMap,其中,key 为缓存层级对应的比例尺,value 为比例尺对应的别名称。

getTilingMode

public MapTilingMode getTilingMode()
已过时。 返回地图缓存的剖分方式。

返回:
地图缓存的剖分方式。

setTilingMode

public void setTilingMode(MapTilingMode tilingMode)
已过时。 设置地图缓存的剖分方式。

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

注意:

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

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

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

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

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 value)
设置是否追加生成缓存。

缓存追加功能的实现需满足四个条件:用于追加缓存的地图与被追加缓存的地图的投影一致;生成地图缓存的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版本缓存。

参数:
value - 一个布尔值,用来指示是否追加的生成缓存,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();
                }
 

isFillMargin

public boolean isFillMargin()
返回是否完全填充缓存图片。

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

setFillMargin

public void setFillMargin(boolean bool)
设置是否完全填充缓存图片。

参数:
bool - 一个布尔值,用来指示是否完全填充缓存图片,true,表示完全填充缓存图片;false,表示不完全填充缓存图片。

getBuildResult

public BuildResultInfo getBuildResult()
已过时。 返回生成缓存的结果信息,包括生成图片数,各种耗时等。

返回:
生成缓存的结果信息。

isDeleteLogFile

public boolean isDeleteLogFile()
已过时。 返回缓存生成完成是否删除日志文件。

返回:
一个布尔值,用来指示缓存生成完成是否删除日志文件,true,表示删除;false,表示不删除。
默认值:
默认值为false,缓存生成完成不删除日志文件。

setIsDeleteLogFile

public void setIsDeleteLogFile(boolean value)
已过时。 设置缓存生成完成是否删除日志文件。

参数:
value - 一个布尔值,用来指示缓存生成完成是否删除日志文件,true,表示删除;false,表示不删除。

isBlockOverRecord

public boolean isBlockOverRecord()
已过时。 返回缓存日志文件里是否写入缓存生成的进度信息。即每个比例尺每块缓存生成结束时的结果信息,包括生成图片数,各种耗时等。

返回:
一个布尔值,用来指示缓存日志文件里是否写入进度信息,true,表示写入进度信息;false,表示不写入进度信息。
默认值:
默认值为false,缓存日志文件里不写入进度信息。

setBlockOverRecord

public void setBlockOverRecord(boolean value)
已过时。 设置缓存日志文件里是否写入缓存生成的进度信息。即每个比例尺每块缓存生成结束时的结果信息,包括生成图片数,各种耗时等。

参数:
value - 一个布尔值,用来指示缓存日志文件里是否写入进度信息,true,表示写入进度信息;false,表示不写入进度信息。

isScaleOverRecord

public boolean isScaleOverRecord()
已过时。 返回缓存日志文件里是否写入每个比例尺生成结束时的信息,包括生成图片数,各种耗时等。

返回:
一个布尔值,用来指示缓存日志文件里是否写入比例尺性能信息,true,表示写入比例尺性能信息;false,表示不写入比例尺性能信息。
默认值:
默认值为false,缓存文件里不写入每个比例尺生成结束时的信息。

setScaleOverRecord

public void setScaleOverRecord(boolean value)
已过时。 设置缓存日志文件里是否写入每个比例尺生成结束时的信息,包括生成图片数,各种耗时等。

参数:
value - 一个布尔值,用来指示缓存日志文件里是否写入每个比例尺生成结束时的信息,true,表示写入比例尺性能信息;false,表示不写入比例尺性能信息。

isTaskOverRecord

public boolean isTaskOverRecord()
已过时。 返回缓存日志文件里是否写入缓存生成结束时的结果信息,包括生成图片数,各种耗时等。

返回:
一个布尔值,用来指示缓存日志文件里是否写入缓存生成结束时的结果信息,true,表示写入总体信息;false,表示不写入总体信息。
默认值:
默认值为false,缓存日志文件里不写入总体信息。

setTaskOverRecord

public void setTaskOverRecord(boolean value)
设置缓存日志文件里是否写入缓存生成结束时的结果信息,包括生成图片数,各种耗时等。

参数:
value - 一个布尔值,用来指示缓存日志文件里是否写入缓存生成结束时的结果信息,true,表示写入总体信息;false,表示不写入总体信息。

setConnectionInfo

public void setConnectionInfo(DatasourceConnectionInfo info)
设置数据源连接信息。

参数:
info - 数据源连接信息。

getConnectionInfo

public DatasourceConnectionInfo getConnectionInfo()
返回数据源连接信息。

返回:
返回数据源连接信息。

build

public boolean build(boolean buildVectorTile,
                     boolean buildStyle)
根据参数生成矢量瓦片或风格。

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

buildWithoutConfigFile

public boolean buildWithoutConfigFile(boolean buildVectorTile,
                                      boolean buildStyle)
根据参数生成矢量瓦片或风格,但不生成缓存配置文件。

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

getGlobalLevelScales

public java.util.HashMap<java.lang.Double,java.lang.String> getGlobalLevelScales()
返回全球剖分所有层级比例尺。

返回:
返回全球剖分所有层级比例尺。

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,表示生成字体。

exportGlyph

public static void exportGlyph(java.lang.String path,
                               java.lang.String name,
                               int start,
                               int end)
导出指定字符编码范围的字体缓存文件(.pbf)。

参数:
path - 指定的导出文件的保存路径。
name - 指定字体名称。
start - 指定字符编码的起始值。
end - 指定字符编码的终止值。

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 和投影信息计算获得。