Как сделать версию шейп-файлов - PullRequest
1 голос
/ 27 июля 2011

Программа, над которой я работаю, имеет несколько шейп-файлов с довольно большим количеством атрибутов. На данный момент они хранятся в нашем контроле версий (Subversion) в виде сжатых BLOB-объектов (dbf.gz, shp.gz и shx.gz). Это то, как они используются программой, но это крайне неудобно для управления версиями. Мы не получаем информации об изменениях записей или атрибутов - просто что-то где-то в файле изменилось. Нет полезных различий.

DBF имеет атрибуты. Я думал, может быть, мы могли бы сохранить его как CSV, а затем как часть процесса сборки преобразовать его в DBF и сделать ??? (будет определено), чтобы сделать его действительным шейп-файлом, а затем создайте сжатую версию, как она используется в настоящее время.

Другой подход может заключаться в том, чтобы удалить почти все атрибуты из шейп-файла, сохранить их в CSV / YAML / что угодно (что может быть красиво оформлено), и либо искать их по идентификаторам формы, либо пытаться прикрепить их к нашим объектам после того, как они были созданы из шейп-файлов, что-то вроде этого.

Но, возможно, у людей с большим опытом работы с шейп-файлами есть лучшие идеи?

1 Ответ

0 голосов
/ 27 июля 2011

DBF, который вы имеете в виду, начиная со второго абзаца, имеет атрибуты.Почему бы не сбросить таблицу на основе «Shape» в файл стиля XML и использовать TH для подрывной деятельности.Если вы на самом деле работаете в Visual Foxpro (который также использует файлы стилей DBF), вы можете использовать функцию CursorToXML () и просто запустить ее через цикл различных фигур и выгружать в каждый соответствующий файл XML.Затем при чтении обратно в .... XMLToCursor () для формы файла.

...