SHX文件如何工作?

时间:2009-01-27 10:13:02

标签: gis shapefile

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

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

2 个答案:

答案 0 :(得分:6)

根据spec,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) | 
+-----------------+------------------+
| ....                               | 
+-----------------+------------------+

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

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

答案 1 :(得分:2)

Paul Dixon的精彩回答。

虽然我想知道你将如何处理它!如果您要编写代码来读取或写入SHP文件,我强烈建议您使用库 - 有一些很好的免费开源代码,如GDAL,也有一些很好的商业代码。