答案
ArcGIS Desktop 产品要求独立表和属性表均具有 ObjectID 字段,该字段包含唯一的长整型用于标识每个记录。 此 ID 由 Esri 软件管理,无法手动对其进行更改。
Shapefile、地理数据库要素类和独立表将以不同的方式处理对 ObjectID 的需求。
- 在 shapefile 中,“FID”字段包含 ObjectID,并且值从 0 开始。
- 在地理数据库要素类或地理数据库内的独立表中,“OBJECTID”字段包含 ObjectID,并且值从 1 开始。
- 在独立 dBase 表中,“OID”字段包含 ObjectID,并且值从 0 开始。
通过 ArcGIS Desktop 对数据进行编辑时,不同 ObjectID 字段的功能有所不同:
- 如果删除 shapefile 中的记录,则将重新对 FID 进行编号,以使其从 0 开始并顺序增加。 编号中没有间隔。
- 如果删除地理数据库要素类或地理数据库表中的记录,则不会对 OBJECTID 重新进行编号,并且列表中的间隔仍然存在。
- 如果删除 dBase 表中的记录,则将从 0 开始对 OID 重新进行编号。 编号中没有间隔。
数据转换将导致 ObjectID 被重写。
- 在导出地理数据库要素类或将其转换为 shapefile 格式,或者将地理数据库表导出为 dBase 格式时,将在输出 shapefile 或表中,从 0 开始按顺序对记录重新进行编号。
- 在导出地理数据库要素类或将其转换为新的地理数据库要素类,或者导出地理数据库表或将其转换为新的地理数据库表时,将在输出要素类或表中,从 1 开始按顺序对记录重新进行编号。
在选择用于连接或关联表的字段时,请务必注意这些行为。 如果使用 FID 和 OBJECTID 字段将 shapefile 连接到要素类,则不会将 FID = 0 的 shapefile 记录与要素类中的记录进行匹配,因为要素类中不存在 OBJECTID = 0 的记录。