我工作的程序有几个 shapefile,有很多属性。目前,它们作为压缩 blob(dbf.gz、shp.gz 和 shx.gz)存储在我们的版本控制 (Subversion) 中。这就是程序使用它们的方式,但是对于版本控制来说非常不方便。我们没有得到有关条目或属性更改的信息 - 只是文件中某处的某些内容发生了更改。没有有用的差异。
DBF 是具有属性的那个。我在想也许我们可以将它存储为 CSV,然后作为构建过程的一部分,将其转换为 DBF并执行 ??? (待定)使其成为有效的 shapefile,然后制作当前使用的压缩版本。
另一种方法可能是从 shapefile 中删除几乎所有属性,将它们存储在 CSV/YAML/whatever 中(可以很好地进行版本控制),然后通过形状 ID 查找它们,或者在它们拥有之后尝试将它们附加到我们的对象从 shapefile 实例化,类似的东西。
但也许对 shapefile 有更多经验的人有更好的想法?