public class MapCacheBuilder
extends com.supermap.data.InternalHandleDisposable
地图缓存是一种用于改善地图浏览用户体验的优化策略。服务器端创建了地图缓存之后,客户端用户的每一次地图浏览,比如平移、放大、缩小地图,都会向服务器端发送一个 URL 请求,此时,服务器端按照匹配的条件,将已缓存的数据返回到客户端。
使用 SuperMap Deskpro .NET 6R 产品支持以 ImagePlugin 方式加载二维地图缓存,即以数据源方式加载缓存数据,此时,缓存数据表现为影像数据集。
注意:
关于二维地图缓存的详细介绍请参见《二三维缓存》技术文档。
构造器和说明 |
---|
MapCacheBuilder()
构造一个新的地图缓存生成类对象。
|
MapCacheBuilder(Map map,
String outputFolder,
double[] outputScales)
根据给定的参数,构造一个新的地图缓存生成类对象。
|
限定符和类型 | 方法和说明 |
---|---|
void |
addSteppedListener(SteppedListener l)
添加一个用于接收进度条事件(
SteppedEvent )的监听器。 |
boolean |
build()
生成地图缓存。
|
boolean |
build(boolean buildTile)
开始创建地图缓存
|
boolean |
build(boolean buildVectorTile,
boolean buildStyle)
根据参数生成矢量瓦片或风格。
|
boolean |
build(int level,
int row,
int col)
生成指定层级行列号的矢量瓦片。
|
boolean |
buildWithoutConfigFile()
生成地图缓存,但不会生成地图缓存配置文件
|
boolean |
buildWithoutConfigFile(boolean buildVectorTile,
boolean buildStyle)
根据参数生成矢量瓦片或风格,但不生成缓存配置文件。
|
boolean |
calcMosaicOverlapRawCol()
已过时。
|
String |
computeImageFileName(Point2D center,
double scale)
返回在指定比例尺下,根据给定中心点生成的地图缓存图片名称。
|
String[] |
computeImageFileName(Rectangle2D imageBounds,
double scale)
返回在指定比例尺下,根据给定的地理范围生成的地图缓存图片名称。
|
boolean |
computeOutputScales()
已过时。
计算生成地图缓存时的合适输出比例尺,即提供的默认输出比例尺。该操作会修改
setOutputScales() 方法的设置值,通过该方法可以查看默认的输出比例尺。 |
boolean |
createMongoDB()
根据现有设置创建mongoDB库中缓存结构。
|
void |
dispose()
释放该对象所占用的资源。
|
static String |
exportGlyph(String path,
String name,
int start,
int end)
导出指定字符编码范围的字体缓存文件(.pbf)。
|
boolean |
fromConfigFile(String path)
导入地图缓存配置文件,即根据配置文件中的内容来设置该地图缓存对象。
|
Rectangle2D |
getBounds()
返回地图缓存的地理范围。
|
BuildResultInfo |
getBuildResult()
已过时。
此接口已不再支持。
返回生成缓存的结果信息,包括生成图片数,各种耗时等。
|
String |
getCacheName()
返回生成的地图缓存配置文件的名称。
|
GeoRegion |
getClipRegion()
返回生成的地图缓存的裁剪区域,用以设置不规则范围来生成缓存。
|
TileStorageConnection |
getConnectionInfo()
获取mongoDB或GPKG库连接信息。
|
double[] |
getDefultOutputScales()
获取按照当前设置的地图对象所推荐的默认比例尺数组
|
double |
getDPI()
返回生成缓存的DPI,代表每英寸有多少个像素。
|
Rectangle2D |
getGlobalIndexBounds()
获取当前缓存设置下的全球有效全副范围。
|
HashMap<Double,String> |
getGlobalLevelScales()
返回全球剖分所有层级比例尺。
|
String |
getHashCode()
获取当前缓存的哈希值。
|
Rectangle2D |
getImageBounds(String imageFile)
返回指定图片的地理范围。
|
int |
getImageCompress()
已过时。
返回地图缓存图片的压缩率。
|
byte[] |
getImageData(String imgFilePath,
String strPwd)
已过时。
此接口已不再支持,可以直接使用CompactFile类进行瓦片读取。
|
int |
getImageQuality()
获取缓存图片质量
|
Rectangle2D |
getIndexBounds()
返回地图缓存的索引范围。
|
Map |
getMap()
返回用于创建缓存的地图。
|
int |
getMVTTileBuffer()
获取矢量缓存瓦片的缓冲区范围。
|
int |
getMVTTileExtent()
获取矢量缓存瓦片内部模大小。
|
ObjectStorageInfo |
getObjectStorageInfo()
获取缓存当前的对象存储信息
|
String |
getOutputFolder()
返回生成地图缓存的路径。
|
HashMap<Double,String> |
getOutputScaleCaptions()
返回地图缓存比例尺的别名。
|
double[] |
getOutputScales()
返回地图缓存的比例尺数组。
|
String |
getPassword()
返回地图缓存的密码。
|
String |
getResultInfo()
获取缓存生成结构信息。
|
double |
getScaleOriginalResolution()
获取使用基础比例尺生成时的基础比例尺。
|
StorageType |
getStorageType()
返回地图缓存图片存储的方式。
|
TileFormat |
getTileFormat()
返回地图缓存图片的类型。
|
TileSize |
getTileSize()
返回地图缓存图片的大小。
|
MapTilingMode |
getTilingMode()
已过时。
此接口已不再支持。
返回地图缓存的剖分方式。
|
MapCacheVersion |
getVersion()
返回缓存的版本。
|
TileVersion |
getVersionInfo()
获取mongoDB缓存当前版本信息。
|
HashMap<Double,String> |
globalLevelToScale(int[] levels)
已过时。
11.2.0已废弃,请使用getGlobalLevelScales接口获取标准的全球剖分比例尺。
|
static HashMap<Double,String> |
globalLevelToScale(int[] levels,
PrjCoordSys value,
CacheImageSize imageSize)
已过时。
|
static HashMap<Double,String> |
globalLevelToScale(int[] levels,
PrjCoordSys value,
TileSize tileSize)
已过时。
11.2.0已废弃,请使用getGlobalLevelScales接口获取标准的全球剖分比例尺。
|
static HashMap<Double,String> |
globalLevelToScale(int[] levels,
PrjCoordSys value,
TileSize tileSize,
double dpi)
已过时。
11.2.0已废弃,请使用getGlobalLevelScales接口获取标准的全球剖分比例尺。
|
boolean |
isAppending()
返回是否追加生成缓存。
|
boolean |
isBlockOverRecord()
已过时。
此接口已不再支持。
返回缓存日志文件里是否写入缓存生成的进度信息。即每个比例尺每块缓存生成结束时的结果信息,包括生成图片数,各种耗时等。
|
boolean |
isBuildFromOriginalResolution()
获取是否使用基础比例尺方式生成。
|
boolean |
isBuildTriangleListFile()
获取MVT是否生成索引。
|
boolean |
isDeleteLogFile()
已过时。
此接口已不再支持。
返回缓存生成完成是否删除日志文件。
|
boolean |
isFillMargin()
返回是否完全填充缓存图片。
|
boolean |
isHashCodeEnabled()
获取当前缓存是否忽略哈希值。
|
boolean |
isIgnoreInvalidDrawing()
返回在生成缓存时,是否忽略无有效数据绘制的出图区域;true,表示忽略,无有效数据绘制的出图区域将不生成瓦片。
|
boolean |
isMongoHighResolution()
返回生成的MongoDB瓦片是否采用mongo高精度存储。
|
boolean |
isMultiProcessing()
获取当前生成场景是否在多进程模式下。
|
boolean |
isMVTSimplifyGeometry()
获取矢量缓存生成时是否简化对象。
|
boolean |
isMVTStyleWithoutFont()
返回生成矢量瓦片风格时是否生成字体,true,表示不生成字体,false,表示生成字体。
|
boolean |
isMVTWithAllField()
获取矢量缓存生成时是否包含所有字段信息。
|
boolean |
isMVTWithoutFilter()
获取矢量缓存是否采用数据与风格脱离的方式生成。
|
boolean |
isScaleOverRecord()
已过时。
此接口已不再支持。
返回缓存日志文件里是否写入每个比例尺生成结束时的信息,包括生成图片数,各种耗时等。
|
boolean |
isTaskOverRecord()
已过时。
此接口已不再支持。
|
boolean |
isTransparent()
返回地图缓存图片是否背景透明。
|
static boolean |
isValidCacheName(String value)
判断传入的参数是否为有效的缓存名称。
|
boolean |
mergeConfigFile(String path)
合并缓存文件
|
boolean |
mergeMosaicOverlapRowCol()
已过时。
|
static MapCacheBuilder |
mongoDB2Builder(String server,
String database,
String name,
String user,
String password)
使用mongoDB缓存信息构建本类实例。
|
boolean |
originalToCompact(String originalFileName,
String compactPath,
String password)
原始缓存转为紧凑型缓存,实现对原始缓存文件的压缩,节省磁盘空间,同时也易于拷贝。
|
void |
removeSteppedListener(SteppedListener l)
移除一个用于接收进度条事件(
SteppedEvent )的监听器。 |
void |
resumable(boolean value)
设置缓存生成过程中是否生成进度文件。
|
static long |
sci3dToSci(String sci3dConfigFile,
String password,
String sciFolder)
将*sci3d格式的缓存转化为*sci格式的缓存
|
void |
setBlockOverRecord(boolean value)
已过时。
此接口已不再支持。
设置缓存日志文件里是否写入缓存生成的进度信息。即每个比例尺每块缓存生成结束时的结果信息,包括生成图片数,各种耗时等。
|
void |
setBounds(Rectangle2D bounds)
设置地图缓存的地理范围。
|
void |
setBuildFromOriginalResolution(boolean value)
设置是否使用基础比例尺方式生成。
|
void |
setBuildTriangleListFile(boolean isbuildTriangleListFile)
设置MVT是否生成索引。
|
void |
setCacheName(String value)
设置生成的地图缓存配置文件的名称。
|
void |
setClipRegion(GeoRegion value)
设置生成的地图缓存的裁剪区域,用以设置不规则范围来生成缓存。
|
void |
setConnectionInfo(TileStorageConnection info)
设置mongoDB或GPKG库连接信息。
|
Rectangle2D |
setCustomIndexBounds(double scale,
Point2D anchor)
用于生成矢量瓦片时设置自定义比例尺;否则,将使用默认的全球剖分层级比例尺,第0层级对应比例尺为 1:295829355.455。
|
void |
setDPI(double dpi)
设置生成缓存的DPI。
|
void |
setFillMargin(boolean bool)
设置是否完全填充缓存图片。
|
void |
setHashCodeEnabled(boolean enable)
设置当前缓存是否忽略哈希值。
|
void |
setIgnoreInvalidDrawing(boolean value)
设置在生成缓存时,是否忽略无有效数据绘制的出图区域;true,表示忽略,无有效数据绘制的出图区域将不生成瓦片。
|
void |
setImageCompress(int imageCompress)
已过时。
设置地图缓存图片的压缩率。
|
void |
setImageQuality(int imageQuality)
设置缓存图片质量
|
void |
setIndexBounds(Rectangle2D bounds)
设置地图缓存的索引范围。
|
void |
setIsAppending(boolean isAppending)
设置是否追加生成缓存。
|
void |
setIsDeleteLogFile(boolean value)
已过时。
此接口已不再支持。
设置缓存生成完成是否删除日志文件。
|
static void |
setIsDisposable(com.supermap.data.InternalHandleDisposable obj,
boolean disposable) |
void |
setMap(Map map)
设置需要生成缓存的地图。
|
void |
setMongoHighResolution(boolean value)
设置生成的MongoDB瓦片是否采用mongo高精度存储。
|
void |
setMultiProcessing(boolean value)
设置当前生成场景是否在多进程模式下。
|
void |
setMVTSimplifyGeometry(boolean value)
设置矢量缓存生成时是否简化对象。
|
void |
setMVTStyleWithoutFont(boolean value)
设置生成矢量瓦片风格时是否生成字体,true,表示不生成字体,false,表示生成字体。
|
void |
setMVTTileBuffer(int value)
设置矢量缓存瓦片的缓冲区范围。
|
void |
setMVTTileExtent(int value)
设置矢量缓存瓦片内部模大小。
|
void |
setMVTWithAllField(boolean value)
设置矢量缓存生成时是否包含所有字段信息。
|
void |
setMVTWithoutFilter(boolean value)
设置矢量缓存是否采用数据与风格脱离的方式生成。
|
void |
setObjectStorageInfo(ObjectStorageInfo info)
设置缓存的对象存储信息
|
void |
setOutputFolder(String outputFolder)
设置生成地图缓存的路径。
|
void |
setOutputScaleCaptions(HashMap<Double,String> scaleCaptions)
设置地图缓存比例尺的别名。
|
void |
setOutputScales(double[] values)
设置地图缓存的比例尺数组。
|
void |
setPassword(String passwd)
设置地图缓存的密码。
|
void |
setScaleOriginalResolution(double 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)
已过时。
此接口已不再支持。
设置地图缓存的剖分方式。
地图缓存的剖分方式包括全球剖分和区域剖分两种。 注意: 当选择以全球剖分方式生成地图缓存时,需注意以下几点:
该接口只支持设置5.0版本缓存的剖分方式。 |
void |
setTransparent(boolean bool)
设置地图缓存图片是否背景透明。
|
void |
setVersion(MapCacheVersion version)
设置缓存的版本。
|
void |
setVersionInfo(TileVersion value)
设置mongoDB当前版本信息。
|
boolean |
toConfigFile(String path)
将地图缓存的用户设置保存为指定的文件。
|
boolean |
updateMongoDB()
根据现有设置更新mongoDB库中指定缓存信息。
|
public Map getMap()
public void setMap(Map map)
map
- 需要生成缓存的地图。public GeoRegion getClipRegion()
public void setClipRegion(GeoRegion value)
value
- 生成的地图缓存的裁剪区域,用以设置不规则范围来生成缓存。public Rectangle2D getBounds()
public void setBounds(Rectangle2D bounds)
如未调用此属性,则默认为(0, 0, 0, 0)。在此情况下,生成的缓存范围为整幅地图的范围。
bounds
- 指定的地图缓存的地理范围。。public String getCacheName()
public static boolean isValidCacheName(String value)
value
- 需判断的名称。public void setCacheName(String value)
value
- 生成的地图缓存配置文件的名称。public HashMap<Double,String> getOutputScaleCaptions()
public void setOutputScaleCaptions(HashMap<Double,String> scaleCaptions)
一般设置为比例尺大小倒数的字符串,如1:10000为10000。
当设置的别名不唯一时,程序抛出异常。
注意:2.0到4.0版本的缓存比例尺的别名必须采用底层计算好的默认值。
scaleCaptions
- 地图缓存比例尺的别名。public double[] getOutputScales()
public void setOutputScales(double[] values)
OutputScales中的比例尺必须 >= 1:2000000000,否则缓存生成失败。
缓存比例尺数组中有一个非法(数值非法或地图固定比例尺显示,出缓存时比例尺数组不是子集)时,缓存生成失败。
values
- 地图缓存的比例尺数组。@Deprecated public int getImageCompress()
@Deprecated public void setImageCompress(int imageCompress)
imageCompress
- 地图缓存图片的压缩率。public int getImageQuality()
public void setImageQuality(int imageQuality)
imageQuality
- public String getOutputFolder()
public void setOutputFolder(String outputFolder)
outputFolder
- 生成地图缓存的路径。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版本缓存加载时支持背景透明效果。
各个版本缓存,生成的缓存都支持背景透明效果。
public void setTransparent(boolean bool)
bool
- 地图缓存图片是否背景透明。public boolean isFillMargin()
public void setFillMargin(boolean bool)
bool
- 一个布尔值,用来指示是否完全填充缓存图片,true,表示完全填充缓存图片;false,表示不完全填充缓存图片。public StorageType getStorageType()
StorageType.Original
,即原始模式。public void setStorageType(StorageType storageType)
storageType
- 地图缓存存储方式。public Rectangle2D getIndexBounds()
如果在缓存版本为1.0(MapCacheVersion.VERSION_10)和5.0(MapCacheVersion.VERSION_50)的全球剖分模式(MapTileType.Global)下,设置indexBounds不起作用。
public void setIndexBounds(Rectangle2D bounds)
如果在缓存版本为1.0(MapCacheVersion.VERSION_10)和5.0(MapCacheVersion.VERSION_50)的全球剖分模式(MapTileType.Global)下,设置indexBounds不起作用。
如未设置此属性,则默认为(0, 0, 0, 0)。在此情况下,生成的缓存索引范围为整幅地图的范围。
bounds
- 地图缓存的索引范围。public String getPassword()
该密码不会写到地图缓存配置文件中,同时,fromConfigFile
方法也不会还原该密码。
public void setPassword(String passwd)
默认情况下,可直接进行地图缓存的加载;否则,需要使用生成缓存时设置的密码才可成功地加载地图缓存。
该密码不会写到缓存配置文件中,同时,fromConfigFile
方法也不会还原该密码。
注意:当 StorageType.Original 时,该方法是无效的;当 StorageType.Compact 时,该方法才有效。
passwd
- 地图缓存的密码。public boolean build()
public boolean build(boolean buildTile)
buildTile
- 是否生成瓦片数据public boolean build(boolean buildVectorTile, boolean buildStyle)
buildVectorTile
- 是否生成矢量瓦片,true表示生成;false表示不生成。buildStyle
- 是否生成矢量瓦片风格,true表示生成;false表示不生成。public boolean build(int level, int row, int col)
level
- 层级。row
- 行号。col
- 列号。public boolean buildWithoutConfigFile()
public boolean buildWithoutConfigFile(boolean buildVectorTile, boolean buildStyle)
buildVectorTile
- 是否生成矢量瓦片,true表示生成;false表示不生成。buildStyle
- 是否生成矢量瓦片风格,true表示生成;false表示不生成。public boolean toConfigFile(String path)
通过该方法导出的地图缓存配置文件只用来保存用户对于地图缓存的设置,包括缓存配置文件名称、缓存图片格式、缓存图片大小、背景是否透明、地图名称、输出的地理范围、裁剪区域、索引范围、图片压缩率、比例尺设置、图片位深、存储方式。但该文件并不与缓存图片一起作为完整的地图缓存进行加载。
与该地图缓存对象对应的 setMap()
方法的设置值不会写到文件中。
path
- 指定文件的路径。public boolean fromConfigFile(String path)
该方法不会对 setMap()
方法的设置值进行修改。
path
- 指定的地图缓存配置文件的路径。public boolean mergeConfigFile(String path)
path
- public String computeImageFileName(Point2D center, double scale)
center
- 需要计算的中心点。scale
- 计算时指定的比例尺。public String[] computeImageFileName(Rectangle2D imageBounds, double scale)
imageBounds
- 需要计算的地理范围。scale
- 计算时指定的比例尺。@Deprecated public boolean computeOutputScales()
setOutputScales()
方法的设置值,通过该方法可以查看默认的输出比例尺。public double[] getDefultOutputScales()
public HashMap<Double,String> getGlobalLevelScales()
public Rectangle2D getGlobalIndexBounds()
public void addSteppedListener(SteppedListener l)
SteppedEvent
)的监听器。l
- 一个用于接收进度条事件的监听器。public void removeSteppedListener(SteppedListener l)
SteppedEvent
)的监听器。l
- 一个用于接收进度条事件的监听器。public void dispose()
public Rectangle2D getImageBounds(String imageFile)
imageFile
- 指定图片的路径。public String getHashCode()
@Deprecated public byte[] getImageData(String imgFilePath, String strPwd)
imgFilePath
- 根据行列号拼接的完整路径。strPwd
- 紧凑缓存密码。public void setHashCodeEnabled(boolean enable)
为iServer开放的接口,iServer不会使用到,隐藏掉,
该接口当前仅为资源三号项目开放。没有写入文档。
enable
- true代表忽略,缓存目录中不再出现哈希值,false反之。public boolean isHashCodeEnabled()
为iServer开放的接口,iServer不会使用到,隐藏掉,
该接口当前仅为资源三号项目开放。没有写入文档。
public MapCacheVersion getVersion()
随着缓存技术的发展,SuperMap GIS 6R 系列产品对于缓存的生成也在不断地发展和完善,因此,产生的多种缓存生成策略,为了便于对不同版本产品缓存的使用和管理,提供了MapCacheVersion枚举,用来定义缓存版本类型常量。
从 SuperMap Objects Java 6R(2012) Service Pack 2开始,MapCacheVersion 枚举的默认值为 Version_50,之前的版本默认值为 Version_40。
public void setVersion(MapCacheVersion version)
随着缓存技术的发展,SuperMap GIS 6R 系列产品对于缓存的生成也在不断地发展和完善,因此,产生的多种缓存生成策略,为了便于对不同版本产品缓存的使用和管理,提供了MapCacheVersion枚举,用来定义缓存版本类型常量。
从 SuperMap Objects Java 6R(2012) Service Pack 2开始,MapCacheVersion 枚举的默认值为 Version_50,之前的版本默认值为 Version_40。
version
- 一个枚举值,指定缓存的版本。public boolean originalToCompact(String originalFileName, String compactPath, String password)
originalFileName
- 原始缓存配置文件的全路径名。compactPath
- 生成的紧凑文件输出路径。password
- 所生成紧凑文件的密码。@Deprecated public static HashMap<Double,String> globalLevelToScale(int[] levels, PrjCoordSys value, TileSize tileSize)
levels
- 缓存层级数组。value
- 投影信息。tileSize
- 瓦片大小,默认值为256。@Deprecated public static HashMap<Double,String> globalLevelToScale(int[] levels, PrjCoordSys value, TileSize tileSize, double dpi)
levels
- 缓存层级数组。value
- 投影信息。tileSize
- 瓦片大小,默认值为256。dpi
- DPI。@Deprecated public static HashMap<Double,String> globalLevelToScale(int[] levels, PrjCoordSys value, CacheImageSize imageSize)
levels
- 缓存层级数组。value
- 投影信息。imageSize
- 瓦片大小,默认值为256。@Deprecated public HashMap<Double,String> globalLevelToScale(int[] levels)
levels
- 指定的层级数组public double getDPI()
若DPI为0,则根据地图DPI出缓存。
该接口只支持返回生成5.0版本缓存的DPI。
public void setDPI(double dpi)
该接口用于实现按指定DPI生成缓存。
在生成地图缓存时,通过该接口设置生成缓存的DPI,如果不对该值进行设置或该值为0,则按地图DPI生成缓存。
该接口只支持设置生成5.0版本缓存的DPI。
DPI不能为负值。
dpi
- 生成缓存的DPI。public boolean isAppending()
该接口只支持返回是否追加生成5.0版本缓存。
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,表示不追加生成缓存。假设下面函数操作的地图为安装目录\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(); }
@Deprecated public void setTilingMode(MapTilingMode tilingMode)
地图缓存的剖分方式包括全球剖分和区域剖分两种。
注意:
当选择以全球剖分方式生成地图缓存时,需注意以下几点:
该接口只支持设置5.0版本缓存的剖分方式。
tilingMode
- 地图缓存的剖分方式。@Deprecated public MapTilingMode getTilingMode()
public TileSize getTileSize()
public void setTileSize(TileSize tileSize)
tileSize
- 地图缓存图片的大小。public TileFormat getTileFormat()
public void setTileFormat(TileFormat tileFormat)
tileFormat
- 地图缓存图片的类型。@Deprecated public BuildResultInfo getBuildResult()
public String getResultInfo()
@Deprecated public boolean isDeleteLogFile()
@Deprecated public void setIsDeleteLogFile(boolean value)
value
- 一个布尔值,用来指示缓存生成完成是否删除日志文件,true,表示删除;false,表示不删除。@Deprecated public boolean isBlockOverRecord()
@Deprecated public void setBlockOverRecord(boolean value)
value
- 一个布尔值,用来指示缓存日志文件里是否写入进度信息,true,表示写入进度信息;false,表示不写入进度信息。@Deprecated public boolean isScaleOverRecord()
@Deprecated public void setScaleOverRecord(boolean value)
value
- 一个布尔值,用来指示缓存日志文件里是否写入每个比例尺生成结束时的信息,true,表示写入比例尺性能信息;false,表示不写入比例尺性能信息。@Deprecated public boolean isTaskOverRecord()
public void setTaskOverRecord(boolean value)
value
- 一个布尔值,用来指示缓存日志文件里是否写入缓存生成结束时的结果信息,true,表示写入总体信息;false,表示不写入总体信息。public void resumable(boolean value)
value
- true代表生成,false反之。public void setConnectionInfo(TileStorageConnection info)
info
- 连接信息对象。public TileStorageConnection getConnectionInfo()
public void setVersionInfo(TileVersion value)
value
- 版本信息实例。public TileVersion getVersionInfo()
public boolean createMongoDB()
public boolean updateMongoDB()
public boolean isMultiProcessing()
public void setMultiProcessing(boolean value)
此方法只供多任务模式下内部使用。
value
- ture代表在多进程模式下,false反之。public boolean isIgnoreInvalidDrawing()
public void setIgnoreInvalidDrawing(boolean value)
value
- 一个布尔值,指示在生成缓存时,是否忽略无有效数据绘制的出图区域;true,表示忽略,无有效数据绘制的出图区域将不生成瓦片。public boolean isMVTStyleWithoutFont()
public void setMVTStyleWithoutFont(boolean value)
value
- 一个布尔值,指示生成矢量瓦片风格时是否生成字体,true,表示不生成字体,false,表示生成字体。public boolean isMVTWithAllField()
public void setMVTWithAllField(boolean value)
value
- true代表包含所有字段内容,false反之。public int getMVTTileBuffer()
public void setMVTTileBuffer(int value)
value
- 缓存区范围值。public int getMVTTileExtent()
public void setMVTTileExtent(int value)
value
- 瓦片模大小值。public boolean isMVTWithoutFilter()
public void setMVTWithoutFilter(boolean value)
使用数据与风格脱离方式方便后面独立局部更新数据瓦片,而不用重新生成。
value
- true代表数据与风格脱离,false反之。public boolean isMVTSimplifyGeometry()
public void setMVTSimplifyGeometry(boolean value)
value
- true代表简化对象,false反之。public static String exportGlyph(String path, String name, int start, int end)
path
- 指定的导出文件的保存路径。name
- 指定字体名称。start
- 指定字符编码的起始值。end
- 指定字符编码的终止值。public static MapCacheBuilder mongoDB2Builder(String server, String database, String name, String user, String password)
server
- mongoDB服务地址。database
- mongoDB数据库名称。name
- mongoDB缓存名称。user
- mongoDB账号用户。password
- mongoDB账号密码。public boolean isBuildFromOriginalResolution()
public void setBuildFromOriginalResolution(boolean value)
value
- true使用基础比例尺方式,false反之。public double getScaleOriginalResolution()
public void setScaleOriginalResolution(double value)
value
- 比例尺。public boolean isBuildTriangleListFile()
public void setBuildTriangleListFile(boolean isbuildTriangleListFile)
isbuildTriangleListFile
- 一个布尔值,指示生成MVT瓦片时是否生成索引。true表示生成索引,false表示不生成索引。public boolean isMongoHighResolution()
public void setMongoHighResolution(boolean value)
value
- 一个布尔值,用来指示生成的MongoDB瓦片是否采用mongo高精度存储,true,表示启用mongo高精度存储;否则为false。public Rectangle2D setCustomIndexBounds(double scale, Point2D anchor)
矢量切片默认采用全球剖分层级比例尺,此方法可修改第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层级左上角点坐标。@Deprecated public boolean calcMosaicOverlapRawCol()
@Deprecated public boolean mergeMosaicOverlapRowCol()
public void setObjectStorageInfo(ObjectStorageInfo info)
info
- 对象存储信息对象IllegalStateException
- 当前对象已被释放。public ObjectStorageInfo getObjectStorageInfo()
IllegalStateException
- 当前对象已被释放。public static long sci3dToSci(String sci3dConfigFile, String password, String sciFolder)
sci3dConfigFile
- *sci3d格式的缓存配置文件的绝对路径password
- 缓存的密码sciFolder
- *sci格式缓存配置文件的文件夹路径public static void setIsDisposable(com.supermap.data.InternalHandleDisposable obj, boolean disposable)
Copyright © 2021–2024 SuperMap. All rights reserved.