1#ifndef MEFASTTILEDB_H__
2#define MEFASTTILEDB_H__
75 struct FTDHandlerPrivate;
108 struct FTDBuilderPrivate;
229 FTDBuilderPrivate* mPrivate =
nullptr;
526 FTDHandlerPrivate* mPrivate =
nullptr;
#define FTD_EXPORT
Definition: MeFTDGlobal.h:15
FTD 数据库构建器
Definition: MeFTD.h:106
FTDBuilder & setInitRes(double dRes)
设置初始化空间分辨率
FTDBuilder & setOverwrite(bool bOverwrite)
当文件存在时是否对其进行覆盖重写
FTDBuilder & setExtent(const MeFTDExtent &extent)
设置数据范围,数据范围应该与指定的 EPSG 匹配
FTDBuilder & setZoomRange(int nMinZoom, int nMaxZoom)
设置最低和最高级别
FTDBuilder & setFileName(const std::string &strFileName)
设置文件路径
MeFTDHandler * build(std::string &strErrMsg)
构建 FTD 文件,如果失败 strErrMsg 将输出错误消息
FTDBuilder & setInitZooms(const MeFTDZooms &zooms)
设置创建文件后,立即构建空间索引的级别。必须在
FTDBuilder & setTileSize(int nTileSize)
设置瓦片大小,瓦片大小应该与空间分辨率相匹配
FTDBuilder & setEPSG(int nEPSG)
设置 FTD 的空间参考,可以是 FTD_WGS_84_EPSG 或 FTD_MERCATOR_EPSG
FTDBuilder & setProcessor(MeFTDProcessing *pProc, void *pUserData)
设置处理监听器,例如获取初始化级别索引时的进度
MeFTDHandler * build()
构建 FTD 文件
FTDBuilder & setDescription(const std::string &strDesc)
设置附加描述信息
FTDBuilder & setFormat(MeFTDTileFormat eFormat)
设置一个格式用于标记 FTD 中存储的数据类型,如默认的格式
FTD 的处理器,如果您已经有一个构建好的历史文件需要打开进行只读或更新操作,您可以直接构造该
Definition: MeFTD.h:73
bool deleteTile(const MeFTDTileKey &tk)
删除指定的瓦片
bool zoomIsInitialized(const MeFTDZoom &nZoom) const
判断指定的级别是否已经初始化,只有初始化以后的级别才能写入
bool isOpen() const
判断文件是否打开
MeFTDStatisticsResult statistics(MeFTDZoom nZoom=-1) const
对文件瓦片进行统计,如果 nZoom 给定的是 -1 将统计所有级别。
MeFTDZooms initializedZooms() const
获取已经初始化完成的级别
MeFTDIterator * iterator(const MeFTDZoom &nZoom)
瓦片坐标迭代器,用于迭代指定层级的瓦片数据。迭代器不需要释放。
static void destroy(MeFTDHandler *pHandler)
销毁由 FTDBuilder 创建的文件句柄
MeFTDTileExtent tileExtent(const MeFTDZoom &nZoom, const MeFTDExtent &extent) const
获取指定级别范围内的瓦片坐标范围
MeFTDMedata medata() const
获取文件的元信息系
void setProcessor(MeFTDProcessing *pProc, void *pUserData)
设置处理监听器,在 FTD 执行一些耗时操作的时候,通过
MeFTDIterator * iterator(const MeFTDZoom &nZoom, const MeFTDExtent &extent)
瓦片坐标迭代器,用于迭代指定层级范围的瓦片数据。迭代器不需要释放。
bool read(const MeFTDTileKey &tk, MeFTDTileData *pOutBuffer, int &nDataLen) const
读取数据
bool initZoom(const MeFTDZoom &nZoom)
初始化一个级别,默认情况下为了节省磁盘空间,FTD 不会为
MeFTDTileExtent tileExtent(const MeFTDZoom &nZoom) const
获取指定级别的瓦片坐标范围
bool changeTileStatus(const MeFTDTileKey &tk, MeFTDTileStatus eStatus)
修改瓦片状态,文件不能是只读模式。
MeFTDHandler(const std::string &strFileName)
通过文件名构建文件句柄
bool write(const MeFTDTileKey &tk, MeFTDTileData pBuffer, int nDataLen)
写入数据到文件
double zoomResolution(const MeFTDZoom &zoom) const
返回指定级别的空间分辨率
void setLogListener(MeFTDLogListener *pListener, void *pUserData=nullptr)
设置日志监听器,FTD 自身不生成任何日志文件,通过
bool updateTile(const MeFTDTileKey &tk, MeFTDTileData pNewBuffer, int nDataLen)
将指定的瓦片更新为最新数据
MeFTDTileStatus tileStatus(const MeFTDTileKey &tk, bool &bOk) const
检查指定瓦片在数据库中的状态
static void destroyTileData(MeFTDTileData pData)
销毁瓦片数据缓存
OpenMode
文件打开模式
Definition: MeFTD.h:84
void setLogLevel(MeFTDLogListener::LogLevel eLevel)
设置监听日志的级别
bool calcPixelsSize(const MeFTDZoom &zoom, long long &nWidth, long long &nHeight, const MeFTDExtent &extent=MeFTDExtent())
计算指定级别范围内的像素宽度和高度,未指定 extent 时,使用
std::string fileName() const
获取文件名
static MeFTDHandler * fromFile(const std::string &strFileName, OpenMode eMode=ReadOnly)
从一个文件构建文件句柄,这个文件必须由 FTDBuilder 构建
bool vacuum()
回收碎片空间,无论如何你都应该知道,执行 vacuum 是一项代价高昂
bool open(OpenMode eMode)
打开文件
long long tileCount(const MeFTDZoom &nZoom) const
获取指定级别的瓦片数量
bool geoTransform(const MeFTDZoom &zoom, double *pTransform, const MeFTDExtent &extent=MeFTDExtent())
获取指定级别的仿射变换六参数,文件必须打开。当未给定 extent 范围时
瓦片数据迭代器。
Definition: MeFTDIterator.h:12
FTD 默认不会输出任何日志信息,将日志的持久化记录交给运用层面。
Definition: MeFTDApi.h:87
LogLevel
Definition: MeFTDApi.h:90
在进行一些耗时操作时(例如:初始化级别索引),我们想要知道
Definition: MeFTDApi.h:129
瓦片坐标。
Definition: MeFTDTileKey.h:25
Fast Tile Database 简称(FTD)是一个轻量级的瓦片数据本地持久化存储数据库,它的出现主要
Definition: MeFTD.h:32
MeFTDTileFormat
常见瓦片格式枚举。
Definition: MeFTDMedata.h:12
int MeFTDZoom
金字塔级别。
Definition: MeFTDTileKey.h:12
MeFTDTileStatus
有的时候我们可能需要将单张瓦片标记为某种状态,FTD 默认允许将瓦片标记为初始化、正常、失败、忽略、无数据、删除六种状态。
Definition: MeFTDApi.h:28
std::vector< MeFTDZoom > MeFTDZooms
金字塔级别集合。
Definition: MeFTDTileKey.h:18
void * MeFTDTileData
Definition: MeFTDApi.h:17
定义一个矩形范围。
Definition: MeFTDExtent.h:13
FTD 的文件元信息
Definition: MeFTDMedata.h:35
描述FTD的数据统计信息,包括有效的瓦片数量占比
Definition: MeFTDApi.h:47
瓦片坐标范围,在FTD中瓦片坐标永远定义为从 0 开始
Definition: MeFTDExtent.h:40