Создать шейп-файл с автоинкрементным первичным ключом в QGIS

11

Есть ли способ создать столбец первичного ключа с автоинкрементом при создании нового шейп-файла в QGIS?

mattwigway
источник

Ответы:

7

Насколько я знаю, в шейп-файлах нет понятия первичного ключа или типа данных с автоинкрементом.

Что вы можете сделать, это использовать Калькулятор поля, чтобы заполнить столбец с номером строки.

Подземье
источник
Единственная проблема заключается в том, что они меняются, когда я редактирую данные и пересчитываю их; Я думаю, что лучший вариант - перейти на Spatialite.
Mattwigway
3

Я часто получаю этот вопрос в списке рассылки pyshp, и underdark верен. Формат шейп-файла не предоставляет уникальных идентификаторов для записей геометрии или атрибутов.

Идентификатор объекта, идентификатор функции или другой идентификатор GUID - это перехват программного обеспечения, которое вы используете, и это просто номер строки, назначенный при чтении записей. Единственные варианты - назначить новый атрибут с помощью сценариев или программного обеспечения для работы с электронными таблицами, или загрузить данные в пространственную базу данных.

GeospatialPython.com
источник
1

Шейп-файл имеет поле OBJECTID; который служит его ключевым и основным индексом, который должен соответствовать вашим целям.

DEWright
источник
Я считаю, что это то же самое, что и номер строки, и это то, что использует ArcGIS, но я не уверен.
Mattwigway
1
Но OBJECTID может меняться при удалении строк; но это основной индекс.
DEWright