Я экспортирую геометрию с прикрепленными текстовыми атрибутами из базы данных Oracle в формат шейп-файла esri (.shp) с библиотекой Java и Geotools.
Столбцы атрибутов в нашей базе данных имеют имена, содержащие более 10 символов, и Geotools заставляет их усекать. Я понимаю, что это связано со спецификацией файлов .shp или .dbf.
Я могу обойти это, создав некоторый простой текстовый файл с «shrtname» = «Полное и длинное имя», но, очевидно, он не будет понят и импортирован любым другим программным обеспечением, кроме нашего.
Существует ли официальный способ сопоставления коротких имен полей и длинных полнотекстовых имен?
Например, XML-файл рядом со всеми другими .shp .dbf .shx файлами.
Есть стандартный способ справиться с этим, хотя ваши клиенты могут быть не совсем довольны этим: вы экспортируете два файла, шейп-файл и файл данных в формате, который их программное обеспечение может прочитать. Шейп-файл имеет только уникальный идентификатор [Id] для атрибутов. Файл данных имеет несколько атрибутов: [Id] для соответствия форме, [Field] для предоставления имени поля, [Type] для указания его типа и один атрибут каждого возможного типа данных для хранения значения. Каждое поле в исходном файле хранится в виде записи в этом файле данных.
Например, исходная таблица выглядит следующим образом:
будет иметь соответствующий файл данных
Должно быть очевидно, как использовать эти данные в любой СУБД и как конвертировать туда и обратно между двумя форматами.
источник
Если ваш клиент использует ArcGIS, вы можете предоставить скрипт для массового назначения псевдонимов полей . Это дало бы им вид длинных имен полей при использовании данных.
Подобные сценарии могут также работать с псевдонимами в других пакетах ГИС.
источник
Самый простой путь - это сохранить ТОЛЬКО вашу геометрию в виде шейп-файла, поскольку для отличных возможностей редактирования геометрии, которые существуют во многих ГИС-приложениях, YET сохраняет все ваши полевые данные (или большую их часть) в sqlite в виде таблиц. Присоединяйтесь к ним по мере необходимости, чтобы исследовать ваши полевые данные.
НО, если вам нужно редактировать таблицы при выполнении пространственных запросов или при выборе объектов шейп-файлов в QGIS, вам нужно будет забыть [шейп-файлы, соединенные с таблицами sqlite] в качестве опции, и вместо этого экспортировать все в Spatialite. Научитесь использовать Qspatialite и Spatialite_GUI (они оба дополняют друг друга многими функциями, которых нет у других - вам понадобится и то и другое, если вы много делаете с SQLITE)
Важно помнить, что эти таблицы (присоединенные к шейп-файлу) не будут редактироваться одновременно с объединением. Поэтому переход на Spatialite станет отличной альтернативой шейп-файлам. Он поддерживает простоту и переносимость шейп-файлов, предлагая при этом большинство достоинств базы данных SQL, не усложняя PostgreSQL.
источник
Временное исправление может быть сохранено в виде файла TAB, который может содержать имена столбцов длиной до 31 символа.
источник