我工作的程序有几个shapefile,有很多属性。目前它们作为压缩blob(dbf.gz,shp.gz和shx.gz)存储在我们的版本控制(Subversion)中。这是程序使用它们的方式,但它对版本控制非常不方便。我们没有获得有关条目或属性更改的信息 - 只是文件中的某些内容已更改。没有用的差异。
DBF是具有属性的那个。我想也许我们可以将它存储为CSV然后作为构建过程的一部分,convert it to DBF并做??? (待定)使其成为有效的shapefile,然后制作当前使用的压缩版本。
另一种方法可能是从shapefile中删除几乎所有属性,将它们存储在CSV / YAML /中(可以很好地进行版本化),并通过形状ID查找它们或尝试将它们附加到我们的对象从shapefile中实例化后,就像那样。
但也许那些对shapefile有更多经验的人有更好的想法?
答案 0 :(得分:0)
您指的是开始第二段的DBF具有属性。为什么不在“每个形状”的基础上将表转储到XML样式文件,并使用THAT进行subversion。如果您实际上在Visual Foxpro中工作(它也使用DBF样式文件),您可以使用函数CursorToXML()并通过不同形状的循环运行它并转储到每个相应的XML文件。然后,当读回....每个文件形状的XMLToCursor()时。