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


11

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

Ответы:


7

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

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


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

3

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

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


1

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


Я считаю, что это то же самое, что и номер строки, и это то, что использует ArcGIS, но я не уверен.
Mattwigway

1
Но OBJECTID может меняться при удалении строк; но это основной индекс.
DEWright
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.