SHX文件如何工作?

Mne*_*nth 3 gis shapefile

如果您有以ESRI形状存储的地理数据,则至少有三个文件:一个以包含vector-data的.shp结尾,一个以包含属性的.dbf结尾,另一个以包含索引的.shx结尾的文件.

我对shx文件感兴趣.它是如何工作的?它是否包含完整的映射,例如"每个几何体的第一个几何图谱映射到dbf中的第三行,第二个几何图谱映射到第一行"?或者它的工作方式不同?

Pau*_*xon 6

根据规范,shx包含一个100字节的头,后跟一个8字节的记录序列.每条记录在主.shp数据文件中存储4字节偏移量和4字节内容长度.

+-----------------------------------------------+
| header (100 bytes)                            |
+-----------------+------------------+----------+
| offset(4 bytes) | length (4 bytes) | 
+-----------------+------------------+
| offset(4 bytes) | length (4 bytes) | 
+-----------------+------------------+
| offset(4 bytes) | length (4 bytes) | 
+-----------------+------------------+
| offset(4 bytes) | length (4 bytes) | 
+-----------------+------------------+
| ....                               | 
+-----------------+------------------+
Run Code Online (Sandbox Code Playgroud)

请注意,偏移量以16位字指定,因此第一条记录的偏移量为50(因为.shp标头为100字节,或50字,长).内容长度也以16位字指定.

因此,您可以计算出记录的数量(index_file_length-100)/8,并使用索引随机或按顺序访问.shp文件中的特定形状记录.