本文参考自 GDAL与 MapServer 项目。
1. 简介
Qix 是一种空间索引文件格式,用于加快查询和渲染矢量数据。Qix 前身是 ShapeLib 为提高检索 Shp 文而创建的索引结构(纯内存格式),后由 MapServer 改编为文件格式并推出。GDAL 在2001年引入了自己的空间索引格式 OGR Simple Feature Library(SFL)索引,于2003年加入了 Qix 格式的支持。
2. Qix 文件格式
2.1 Header 部分(16 byte)
起始位置 | 名称 | 值 | 类型 | 位序 |
---|---|---|---|---|
Byte0 | 文件标识 | SQT | Char[3] | - |
Byte3 | 字节位序 | 0 / 1 / 21 | Byte | - |
Byte4 | 版本号 | 1 | Byte | - |
Byte5 | 未使用 | 0 | Byte | - |
Byte6 | 未使用 | 0 | Byte | - |
Byte7 | 未使用 | 0 | Byte | - |
Byte8 | 记录总数 | NumRecords | Int32 | Big / Small2 |
Byte12 | 深度总数 | NumRecords | Int32 | Big / Small |
2.2 Node 部分
起始位置 | 名称 | 值 | 类型 | 位序 |
---|---|---|---|---|
循环 Begin3: | ||||
文件标识 | offsetLength | Int32 | Big / Small | |
X 最小值 | Xmin | double | Big / Small | |
Y最小值 | Ymin | double | Big / Small | |
X 最大值 | Xmax | double | Big / Small | |
Y 最大值 | Ymax | double | Big / Small | |
当前节点包含的要素数量 | NumShapes | Int32 | Big / Small | |
循环 Begin: | ||||
要素序号(从 0 开始) | ShapeIndex | Int32 | Big / Small | |
End | ||||
btye40+4*numShapes | 当前节点的子节点数量 | NumNodes | Int32 | Big / Small |
End |