如果你具有存储在ESRI形状的地理数据,必须至少三个文件:一个用含有矢量数据的.shp结束,一个与含有的.dbf属性结束,并用含有一个索引的.shx结尾的文件

我感兴趣的SHX文件。它是如何工作的?是否包含一个完整的映射,比如“第一个几何映射到第三行中的dbf和第二几何映射到第一行”为每一个几何?或者,它的工作原理不同?

有帮助吗?

解决方案

按照规格中SHX包含一个100字节的标题,随后由8个字节记录的序列。每个记录存储一个4字节的偏移量和在主.SHP数据文件的记录的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文件。

其他提示

由保罗·迪克森精细答案。

虽然我不知道你会用它做什么!如果你要编写代码来读取或写入SHP文件,我会强烈建议使用一个库,而不是 - 有一些很好的开源免费的像的 GDAL 时,也有一些好的商业的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top