ObjectID 字段由 ArcGIS 维护并保证表中每行具有唯一 ID。查看表或图层的属性表时,您通常会发现,ObjectID 字段在 OID 或 ObjectID 别名下面列出。主要功能(如滚动和显示选择集)将取决于此字段的显示情况。
ArcCatalog 和 ArcMap 支持的大多数数据源都在其表格数据中提供了 ObjectID 字段。在这些情况下,可直接访问 ObjectID 字段并通过 ArcMap 中的表 窗口和 ArcCatalog 中的表预览进行使用。但是,以下数据源未将 ObjectID 字段包含在表格数据中:
- OLE DB 数据
- 分隔的文本文件数据
- Microsoft Excel 数据
- SDE 3 中的非空间数据(注:空间数据包含 ObjectID 字段。)
- ArcSDE 中未注册的非空间数据(注:未注册的空间数据包含 ObjectID 字段。)
- 个人地理数据库中未注册的数据
如果不确定您正在使用什么类型的表以及表中是否包含 ObjectID 字段,可以通过快速查找确定。在 ArcMap 中内容列表窗口的顶部,单击按源列出按钮 ,右键单击内容列表中的表,然后单击属性。单击表属性 对话框中的源选项卡,然后查找包含 Object-ID 字段条目的“是”或“否”。在 ArcMap 或 ArcCatalog 中,可以打开表的属性 对话框,然后单击字段选项卡。如果未列出任何包含 ObjectID 数据类型的字段,则数据不包含 ObjectID 字段。
如果表缺少 ObjectID 字段,则无法执行以下操作:
- 在地图的图层中选择要素。虽然可以在表 窗口中选择记录(包括在按属性选择 上使用表达式进行选择),但该选择集不会反映在地图上。
- 应用定义查询以仅显示记录或要素的子集。
- 创建关联。不过,可以将包含 ObjectID 字段的表关联到不包含 ObjectID 字段的表。在这种情况下,“识别”工具可以使用该关联列出相关记录。无法通过关联进行选择。
- 启动编辑会话并编辑属性。不过,可直接在磁盘上编辑图层所基于的表,例如,如果文件是 .txt 文件,则可在文本编辑器中进行编辑。下次刷新地图时,您的更改便会反映到地图上。
获取数据的 ObjectID 字段的方法有以下几种:
- 如果使用 x,y 坐标的表且在 ArcMap 中显示这些坐标,则可以将 x,y 图层导出到新要素类中。还可以在 ArcCatalog 中将坐标的表转换为新点要素类。这两个过程都会创建具有 ObjectID 且功能完整的要素类。
- 您可以通过创建查询表工具使用 OLE DB 连接创建表,并指定要用于 ObjectID 的列,或动态添加 ObjectID。
- 使用某些数据源,您可以将数据注册到 ArcGIS,这样会添加 ObjectID 字段。