每个要素类和表都由按其数据类型定义的字段组成。
创建要素类和表时,请为各字段选择特定的数据类型。 字段的数据类型是最重要的属性,因为您选择的数据类型决定了字段可以存储的数据类型。 可以设置的其他字段属性(例如字段的精度、小数位数和长度)也取决于字段的数据类型。
在 ArcGIS Pro 中,可应用于字段的可用数据类型包括各种数字类型(整型、浮点、双精度)、文本、仅日期、时间戳偏移、二进制大对象 (BLOB) 和全局唯一标识符 (GUID)。 有关每种数据类型的完整列表和其他详细信息,请参阅 ArcGIS 数据类型。
在 ArcGIS Pro 中,可以使用以下任一方法将数据类型应用于新的或现有的表或要素类上的字段。
通过确保正确的数据存储在表和要素类中,为字段选择最佳数据类型有助于促进数据分析、提高性能并提高数据完整性。 了解什么是数据类型、它们为何重要以及它们如何影响存储要求,将帮助您充分利用数据。
ArcGIS 数据类型
ArcGIS 使用多种数据类型来存储和管理地理数据库中的属性值。
地理数据库中支持的属性数据类型包括以下内容:
提示:
单击下面的链接了解有关每种数据类型的更多信息。
- 数字 - 可以是以下数值数据类型之一:
- Short — 短整型(16 位)
- Long—长整型(32 位)
- Big integer - 大整型(64 位)
警告:
某些客户端应用程序可能不完全支持此字段类型,并且可能会发生变化。 ArcGIS Pro 中的对象 ID(64 位)和大整型(64 位)字段类型仅限于存储最多 53 位安全整数的值。 53 位安全整数值支持 (-9007199254740991) 和 (9007199254740991) 之间的范围,也可写为 -(253) -1 和 (2 53) -1。 对象 ID(64 位)中大于 53 位的值以及从外部源添加的大整型字段可以从 ArcGIS Pro 客户端读取。 尝试在 ArcGIS Pro 中写入或编辑超出此范围的数字将生成错误。 在其他客户端中,该值可能会四舍五入并导致功能损坏。
- Float — 单精度(32 位)浮点数
- Double — 双精度(64 位)浮点数
- 文本 - 任何一组特定长度的字母数字字符。
- 日期和时间 - 可以为以下日期或时间数据类型之一:
- 日期 - 日期和时间值
- 仅日期 - 仅日期值,无时间值
- 仅时间 - 仅时间值,无日期值
- 时间戳偏移 - 日期、时间和相对于 UTC 值的偏移
- BLOB - 二进制大对象用于存储文档、照片或其他大型数据。
- 全局标识符 - 可以是以下之一:
- GUID - 数据类型可存储注册表样式的字符串,该字符串包含用大括号括起来的 36 个字符。 这些字符串用于唯一识别单个地理数据库中和跨多个地理数据库的要素或表行。 这些字符串经常用于管理关系,尤其是数据管理、版本化、仅更改更新和复制。
- 全局 ID - 全局 ID 用于唯一表示一个和多个地理数据库中的要素或表行。
- 对象 ID - 对象标识符是唯一的整数字段,不能包含空值,并在 ArcGIS 中创建地理数据库表或要素类时添加。 该对象 ID 字段存储表中每一行的唯一 ID,并且默认在表和要素类中创建为 32 位对象 ID。 如果对象 ID 字段需要存储值大于 21.4 亿,则可以使用将对象 ID 迁移到 64 位地理处理工具将对象 ID 字段迁移到 64 位对象 ID。
警告:
某些客户端应用程序可能不完全支持此字段类型,并且可能会发生变化。 ArcGIS Pro 中的对象 ID(64 位)和大整型(64 位)字段类型仅限于存储最多 53 位安全整数的值。 53 位安全整数值支持 (-9007199254740991) 和 (9007199254740991) 之间的范围,也可写为 -(253) -1 和 (2 53) -1。 对象 ID(64 位)中大于 53 位的值以及从外部源添加的大整型字段可以从 ArcGIS Pro 客户端读取。 尝试在 ArcGIS Pro 中写入或编辑超出此范围的数字将生成错误。 在其他客户端中,该值可能会四舍五入并导致功能损坏。
- 栅格 - 栅格数据类型可以添加到地理数据库要素类或表中,并且可以将栅格数据存储在地理数据库中或与地理数据库一起存储。 移动地理数据库不支持栅格。
注:
文件和移动地理数据库数据类型与 ArcGIS 数据类型相同。 不过,对于数据库管理系统 (DBMS),ArcGIS 数据类型会映射到数据库数据类型,并且可能会因 DBMS 的不同而有所不同。 要了解有关 ArcGIS 数据类型如何映射到 DBMS 数据类型的详细信息,请参阅 ArcGIS 支持的 DBMS 数据类型。
数值
数字可存储为以下数值数据类型中的一种类型:
- Short — 短整型(16 位)
- Long — 长整型(32 位)
- Big integer — 大整型(64 位)
- Float — 单精度(32 位)浮点数
- Double — 双精度(64 位)浮点数
下表提供了数值数据类型、对应的范围和存储要求的摘要。 此表中列出的范围适用于文件和移动地理数据库。 数据库和企业级地理数据库的范围略有不同。
数据类型 | 可存储的范围 | 大小(位) | 应用程序 |
---|---|---|---|
短整型 | -32,768 至 32,767 | 16 | 特定数值范围内不含小数值的数值;编码值 |
长整型 | -2,147,483,648 至 2,147,483,647 | 32 | 特定数值范围内不含小数值的数值 |
大整数 | -9,007,199,254,740,991 到 9,007,199,254,740,991 | 64 | 特定数值范围内不含小数值的数值 |
浮点型(单精度浮点数) | 约为 -3.4E38 到 1.2E38 | 32 | 特定数值范围内包含小数值的数值 |
双精度型(双精度浮点数) | 约为 -2.2E308 到 1.8E308 | 64 | 特定数值范围内包含小数值的数值 |
选择存储数字的数据类型时,请考虑以下因素:
- 确定如何最好地存储数值数据 - 整数还是小数
- 整数 - 如果需要存储没有小数位的整数,例如4; 5575; 101,272;或超过 21.4 亿的值,分别指定短整型、长整型或大整型。
注:
在 ArcGIS Pro 中,字段的数据类型将显示为Short或Long,而非Short Integer或Long Integer。
- 小数 - 如果需要存储带小数的数字,可以指定浮点型或双精度型数据类型。 使用浮点型或双精度型时(有时称为单精度型或双精度浮点型),小数点可以位于字段中的任何位置,因此,存储在字段中的不同值的小数点可以从一个位置“浮动”到另一个位置。
- 整数 - 如果需要存储没有小数位的整数,例如4; 5575; 101,272;或超过 21.4 亿的值,分别指定短整型、长整型或大整型。
使用消耗最少存储空间的数据类型。
在 ArcGIS Pro 中创建字段时,建议选择消耗存储空间最少的数据类型,以提高性能。 在某些情况下创建字段时,即使将数据类型指定为短整型,该字段的数据类型也会更改为长整型。 计算机仅能存储有限的位数,具体情况取决于分配的存储空间。
如果需要在短整型、长整型与大整型之间或者浮点型与双精度型之间做出选择,请为需要存储的数字范围选择存储空间占用最小的数据类型。 这能够最大限度地减少所需的存储量,并提高性能。
例如,要仅存储介于 -32,768 和 32,767 之间的整数,则可指定短整型数据类型,因为它占用 2 个字节,而长整型数据类型却占用 4 个字节。 要仅存储介于 -3.4E38 和 1.2E38 之间的小数,则可指定浮点数据类型,因为它仅占用 4 个字节,而双精度型数据类型却占用 8 个字节。
可以格式化数值字段类型以为属性提供其他上下文,使其不只是一个数字。 数值字段格式为图层属性,只能在当前地图中进行设置。
请参阅设置数字和日期字段格式以了解如何将数字格式应用于图层或独立表中的字段。
短整型
短数据类型是一个 16 位有符号整数,只能存储 -32,768 到 32,767 范围内的整数值。 即便将精度设置为 5,也无法在短整型字段中存储大于 32,767 或小于 -32,768 的值。 例如,4、515 或 29715 的整数值可以存储在短整型字段中。
长整型
长整型数据类型是 32 位有符号整数,可以存储 -21.4 亿到 21.4 亿范围内的整数值。 不能在长整型字段中存储大于 2,147,483,648 或小于 -2,147,483,647 的值。
大整数
大整型数据类型是 64 位有符号整数,可以存储非常大的整数值,范围为 -(253) -1 和 253 -1,存储大小为 8 个字节。 如果需要存储超出长整型数据类型范围 -21.4 亿到 21.4 亿的整数,请使用大整型数据类型。
警告:
某些客户端应用程序可能不完全支持此字段类型,并且可能会发生变化。 ArcGIS Pro 中的对象 ID(64 位)和大整型(64 位)字段类型仅限于存储最多 53 位安全整数的值。 53 位安全整数值支持 (-9007199254740991) 和 (9007199254740991) 之间的范围,也可写为 -(253) -1 和 (2 53) -1。 对象 ID(64 位)中大于 53 位的值以及从外部源添加的大整型字段可以从 ArcGIS Pro 客户端读取。 尝试在 ArcGIS Pro 中写入或编辑超出此范围的数字将生成错误。 在其他客户端中,该值可能会四舍五入并导致功能损坏。
浮点型
浮点数据类型是单精度 32 位浮点数,可以精确存储最多仅包含六位数字的数字。 例如,无法将数字 515297.15 精确地存储到浮点型字段中,因为此数字包含的位数多于六个。 此数字仍可输入到文件地理数据库的浮点型字段中,但将四舍五入为包含允许的 6 位数的数字 515,297。 如果需要精确地存储此数字,将其存储在双精度字段中。 数据库和企业级地理数据库中的浮点型字段严格禁止指定超过该字段精度位数的数字,因此并不会进行四舍五入。
双精度
双精度数据类型是一种双精度 64 位浮点数,只能在数据库和地理数据库中精确存储最多包含 15 位数字的数字,因为这是可以放入 8 字节存储空间的最长数字。 位于多于此值的数字将被四舍五入,然后以类似于科学记数法的格式进行存储,使它们仅为近似数字。 例如,如果输入包含 20 位数的数字,例如 12,345,678,901,234,567,890,则它会被四舍五入,然后存储为 15 位的数字 1.23456789012346E+19。 结尾的编码值 E+19 可限定小数点的放置位置。
精度和小数位数
字段的精度和小数位数属性表示可在字段中存储的数据的最大精度和大小。
对于某些字段类型(例如日期和数值字段),精度属性的含义有所不同。 对于数值字段,精度代表可存储在字段中的最大总位数。 所有位数都被计算在内,无论其位于小数点的哪一侧。 对于日期字段,精度是指其记录毫秒值的能力。 标准日期字段将时间记录到秒,并显示精度值 0。 已迁移至高精度的日期字段将时间记录到毫秒,并显示精度值 1。
小数位数是一个字段属性,仅用于浮点型或双精度型数据类型,表示数字中小数点右侧(如果为正)或左侧(如果为负 - 很少使用)的位数。 例如,数字 4703338.13 的小数位数为 2,精度为 9。
指定精度和小数位数可限制字段可接受的值范围和数字格式,便于您更好地加以控制。 例如,如果您指定精度为 4、小数位数为 2 的浮点型,则字段将接受 46.22。 如果要在字段中输入 46.223,则会显示错误消息,因为这超出了所允许的最大位数和小数位数。 或者,如果指定精度为 5、小数位数为 3 的浮点型,则可存储值 46.223。
文件或移动地理数据库中的精度和小数位数
文件和移动地理数据库不显示精度或小数位数值,因为用户无法定义它们。 因此,如果要向文件地理数据库或移动地理数据库中的表或要素类添加数值字段,只需指定数据类型。 如果提供精度或小数位数的值,则将忽略该值,精度和小数位数属性将不在字段视图中显示。
文件或移动地理数据库中数据类型为浮点型的字段可精确存储最多仅包含 6 位的数字。 例如,无法将数字 410534.208 精确地存储到浮点型字段中,因为此数字包含的位数多于六个。 此数字仍可输入到文件地理数据库的浮点型字段中,但将四舍五入为包含允许的 6 位数的数字 410534。 因此,要精确地存储数字 410534.208,必须将其存储在双精度字段中。
数据库或企业级地理数据库中的精度和小数位数
如果要向数据库或企业级地理数据库中的表或要素类添加数值字段,可指定精度(字段的最大长度)。 如果字段为浮点或双精度数据类型,还可以指定字段值的范围(最大小数位数)。 企业级地理数据库和数据库中的浮点型字段严格禁止存储超过该字段精度小数位数的数字,因此并不会进行四舍五入。
下表提供了在字段视图中添加字段时可指定的精度和小数位数值的汇总。 精度必须始终大于范围。 范围不适用于整型,因为它们不存储十进制值。 使用此信息有助于选择数据类型、精度和范围。
数据类型 | 精度(字段长度) | 范围(小数位数) |
---|---|---|
短整型* |
| 0 |
| 0 | |
| 0 | |
1-6 | 1-6 | |
7+ | 1+ |
*默认情况下,在 ArcGIS Pro 中创建的短整型精度为 5。 但是,短整型列只可存储介于 -32,768 和 32,767 之间的值。 即便将精度设置为 5,也无法在短整型字段中存储大于 32,767 或小于 -32,768 的值。 无需在 Oracle 以外的数据库中为在 ArcGIS Pro 中创建的短整型列指定精度。
下表提供了一些数字范围及其如何存储在数据库或企业级地理数据库中的示例:
可存储的范围 | 数据类型 | 精度(字段长度) | 范围(小数位数) |
---|---|---|---|
0 至 99 | 短整型 | 2 | 0 |
-99 到 99* | 短整型 | 3 | 0 |
-32,768 到 32,767* | 短整型 | 5 | 0 |
-99,999 到 99,999* | 长整型 | 5 | 0 |
-9,007,199,254,740,991 到 0* | 大整数 | 19 | 0 |
0 到 9,007,199,254,740,991 | 大整数 | 18 | 0 |
0.001 至 0.999 | 浮点型 | 4 | 3 |
1,000.00 至 9,999.99 | 浮点型 | 6 | 2 |
-123,456.78 到 0* | 双精度 | 9 | 2 |
0 至 1,234.56789 | 双精度 | 9 | 5 |
*负数需要额外的精度存储负号。
文本
文本字段表示一系列字母数字符号。 其中可包括街道名称、特性属性或其他文本描述。 在地理数据库中重复使用文本属性的替代方法是建立编码值。 在此情况中,文本描述将使用数值进行编码。 例如,您可以通过数值对道路类型进行编码:将 1 指定给铺好的改良路面、将 2 指定给碎石路面等等。 这样做的好处是减少地理数据库中占用的存储空间;但是,这些编码值必须为数据用户所了解。 如果在地理数据库的编码值域中定义编码值并将该域与存储编码的整型字段相关联,则在 ArcGIS Pro 中查看该表时,地理数据库将显示文本描述。
文本中所用字符视语言而定。 为了在各种语言之间更方便地转换文本,ArcGIS 将使用 Unicode 对字符进行编码。
日期和时间
许多数据集会存储日期和时间(时态)信息。 日期和时间值可能表示要素在特定位置的时间或在现实世界中首次观察到要素的时间。 日期和时间也可能与图层中的其他非空间属性相关,例如,财产出售的时间、最后一次从特定水体抽取样本的时间、或者从特定消防站派遣消防车的日期和时间。
您可以以下日期或时间数据类型之一存储时间值:
- 日期 - 日期和时间值仅精确到秒。
提示:
从 ArcGIS Pro 3.2 开始,您可以将表中的日期字段迁移到高精度以支持毫秒时间。
- 仅日期 - 仅日期值,无时间值
- 仅时间 - 仅时间值,仅精确到秒,精度没有日期值
- 时间戳偏移 - 日期、时间以及协调世界时间 (UTC) 区域的偏移
警告:
ArcGIS Pro 3.1 及更低版本无法访问包含以下数据类型字段的地理数据库表或要素类:仅日期、仅时间、时间戳偏移、大整型或 64 位对象 ID。 尽管您可以将这些数据类型发布到 ArcGIS Enterprise 11.2,但是它们得不到完全支持,其在 ArcGIS Enterprise 11.2 Web 图层中的使用被视为测试功能。
可以访问日期和时间数据类型的一些工具包括字段视图、添加字段地理处理工具、创建要素类向导和创建要素类地理处理工具。
在 ArcGIS Pro 中,可以在字段视图下查看和管理图层或表字段。 这样,您便可以构建由表中的要素或对象集合共享的属性的模型。 在字段视图中,可以编辑字段及其属性、删除字段和创建新字段。
您可以从多种日期格式中进行选择以应用于日期类别。 将格式应用于日期或时间字段类型有助于为日期和时间值提供附加上下文并提高其可读性。 日期字段格式为图层属性,只能为当前地图中的图层设置。 请参阅设置数字和日期字段格式以了解如何将日期格式应用于图层或独立表中的字段。
下表提供了日期和时间数据类型、对应的格式和格式和使用案例的示例。
日期和时间字段类型 | 描述 | 日期和时间格式 | 示例 | 使用情况 |
---|---|---|---|---|
字段类型是日期。 日期字段支持精度高达秒的日期和时间值。 |
|
日期 + 时间
| 这些时间值全部位于 UTC 或全部位于同一本地时区中。
| |
日期字段可以迁移到高精度以支持毫秒时间值。 | 高精度日期字段
| 日期 + 高精度时间
| 高精度时间值全部位于 UTC 或全部位于同一本地时区中。
| |
字段类型为仅日期。 仅日期字段支持不带时间值的日期值。 |
|
日期
| 按天的粒度采集的数据,或适用于或代表一整天的属性值。
| |
字段类型为仅时间。 仅时间字段支持不带日期值的时间值。 |
| 时间
| 每天重复的数据或仅时间组件相关的内容。
| |
此字段类型为时间戳偏移。 时间戳偏移字段支持日期、时间和与协调世界时间 (UTC) 区域的时区偏移。 |
|
日期 + 时间 + UTC 偏移
| 对于本地时间值很重要且日期可以跨越多个时区的时间值。
|
您可以在文件、移动和企业级地理数据库中使用这些新的日期和时间字段类型创建或更新要素类或表。 某些新的日期和时间字段类型不受支持,具体取决于所使用的数据库,并且您可能无法添加某些新的日期和时间字段类型。 将字段添加到表或要素类时,如果工作空间不支持所选的数据类型,您将看到以下错误:工作空间不支持该数据类型。 必须使用工作空间支持的数据类型。
要了解有关各种数据库工作空间支持的数据类型的详细信息,请参阅 ArcGIS 支持的 DBMS 数据类型和 ArcGIS 支持的云数据仓库数据类型。
日期
无论您要显示、计算还是选择日期属性,都必须确定适当的方式来使用 ArcGIS Pro 中的日期数据类型。 地理数据库数据源使用日期数据类型存储日期。 日期数据类型可存储日期、时间或同时存储日期和时间。 显示信息的默认格式为 mm/dd/yyyy hh:mm:ss,同时还将指定 AM 或 PM。 通过 ArcGIS 在表中输入日期字段时,输入的数据将转换为此格式。
注:
- 日期字段支持日期和时间值,始终以低精度创建,并且默认情况下支持存储最高仅秒精度的时间值。
- 在 ArcGIS Pro 中,您无法插入或查看 100 CE 之前的日期值。 如果您使用存储时间的日期类型,则时间 00:00:00 相当于上午 12(午夜)。
如果计算日期字段的值以填充或查询该字段,则日期必须以 MM/DD/YYYY hh:mm:ss 的格式输入,并用单引号括起来。 不支持在日期字段中单独存储时间;时间必须始终是日期的一部分。 如果不提供时间,则时间默认为 12:00 a.m.,ArcGIS Pro 使用系统短日期格式(数值)显示日期。
Microsoft Windows 系统中的设置决定了 ArcGIS Pro 中的日期显示方式,例如,M/D/YY、MM/DD/YY、YY/MM/DD。 ArcGIS Pro 使用系统短日期格式(数值)显示日期。 尽管这些是默认格式,但日期还可以格式化为在表和弹出窗口中以不同方式显示。
在按属性选择图层地理处理工具和类似的查询构建对话框中选择和显示日期字段值是通过 SQL 语法完成的。 SQL 语法用于选择并显示日期字段值,这些值根据数据库类型而有所不同。 ArcGIS 中使用的查询表达式的 SQL 参考主题对此进行了详细描述。
将日期字段迁移至高精度
使用将日期字段迁移至高精度地理处理工具将表中的日期字段迁移至高精度。 高精度日期字段允许日期字段中的时间值支持小数秒到千分之一位或毫秒,并将显示为 MM/DD/YYYY hh:mm:ss.sss。
警告:
- 对于所含日期字段已迁移为包含毫秒时间值的地理数据库表或要素类,无法使用 ArcGIS Pro 3.1 及更低版本的客户端访问。
- 将日期字段迁移至高精度后,将无法在字段上撤消。 要将日期数据恢复为低精度日期,请创建新的日期字段(低精度),然后使用计算字段地理处理工具从高精度日期字段填充此新日期字段(低精度)。
在 ArcGIS Pro 中,星号 * 符号表示特殊属性与特定字段关联。 将日期字段迁移到高精度后,字段视图中高精度日期字段名称旁边将出现星号。
注:
当您在创建要素类向导中导入高精度日期字段时,它们会作为低精度日期导入。 导入具有高精度日期字段的 XML 工作空间文档将保留高精度日期值。
仅日期
仅日期数据类型表示不带时间的特定日期。 由于它没有时间组件,因此它表示从一天开始到一天结束的日期。 此结构非常适合存储特定日期,例如出生日期、周年纪念日、假期或业务相关日期。
尽管您可以使用日期数据类型而忽略时间组件,但与日期类型相比,使用仅日期类型的好处之一是,如果日期数据类型存在时区偏移,则可以滚动到前一天或后一天。 仅日期不能被时区偏移,并且它始终代表设置的日期。
ArcGIS Pro 中仅日期数据类型的格式选项仅更改数据值的显示方式,不会影响数据的存储方式或数据的输入方式。 例如,下图显示了仅日期数据类型的格式示例。
请参阅格式化数值和日期字段以了解更多信息。
仅时间
仅时间数据类型表示 24 小时的时间段,当您只需要表示时间时,可用于替换日期数据类型。 由于仅时间数据类型表示非特定日期的小时、分钟和秒,因此该数据类型的时间值限制在 00:00:00 - 23:59:59 的范围内。ArcGIS Pro 中仅时间字段的格式选项仅更改时间值的显示方式;它们不会影响数据的存储方式或数据的输入方式。 请参阅格式化数值和日期字段以了解更多信息。
由于仅时间数据类型表示一天中的时间值,因此在添加值时,时间会在 24 小时时间范围内适当向前和向后滚动。
以下是一些示例:
- 如果员工的轮班时间从 18:00 开始并持续 8 小时,则在仅时间值上添加 8 小时将转至 2:00。
- 如果企业的关闭时间存储为 01:30:00 来表示凌晨 1:30,并且他们最近决定在周一和周二提前四个小时关门,则从 01:30:00 减去四个小时,将新的关闭时间值向后滚动至 21:30:00,即晚上 9:30。
ArcGIS Pro 中仅时间数据类型的格式选项仅更改时间值的显示方式,不会影响时间值的存储方式或时间值的输入方式。 例如,下图显示了仅时间数据类型的格式示例。
请参阅格式化数值和日期字段以了解更多信息。
时间戳偏移
时间戳偏移数据类型包括日期数据类型的所有功能以及时区感知,并且可以使用日期和时间,以便任何日期和时间值明确标识单个时间点。 时间戳偏移是本地时间与 UTC(协调世界时间,以前的格林尼治时间)之间的差异(以小时和分钟为单位)。
使用时间戳偏移数据类型可处理与 UTC 的偏移(或差值)已知的日期和时间。 时间戳偏移数据类型将日期和时间值与该时间的 UTC 的偏移组合在一起。 由于其与 UTC 的关系,单个日期和时间值明确标识单个时间点。 这使得时间戳偏移值比日期值更容易从一台计算机移植到另一台计算机。
尽管时间戳偏移值包含偏移,但它不是完全时区感知的数据结构。 虽然与 UTC 的偏移是时区的特征之一,但它并不能明确标识时区。 不仅多个时区与 UTC 的偏移相同,而且单个时区的偏移如果遵守夏令时也会发生变化。
ArcGIS Pro 中时间戳偏移数据类型的格式选项仅更改值的显示方式,不会影响值的存储方式或值的输入方式。 例如,下图显示了时间戳偏移数据类型的格式示例。
请参阅格式化数值和日期字段以了解更多信息。
全局标识符
全局 ID 和 GUID 数据类型可存储注册表样式的字符串,该字符串包含用大括号括起来的 36 个字符。 仅地理数据库支持全局 ID。 在除 Microsoft SQL Server 中的地理数据库之外的所有地理数据库中,全局 ID 都存储在文本字段中,并且存储在文本全局 ID 字段中的字符始终为大写字符。
生成全局 ID 时,进程将考虑设备和时间。 鉴于产生重复值的概率可以忽略不计,这些字符串用于唯一标识地理数据库中和地理数据库间的要素或表格行。 这就是在单向和双向地理数据库复制操作中跟踪要素的方法。 开发人员可在关系中或者在需要 GUID 所有应用程序中使用这些字符串。 在某关系中,如果全局 ID 字段是原始键,则 GUID 字段必须为目标键。 可以使用添加全局 ID 地理处理工具将全局 ID 添加到地理数据库的数据集中。 地理数据库之后将自动保留这些值。 也可以创建 GUID 字段,但是必须自行保留该字段的值。
包含本地 GUID 数据类型的数据库(如 SQL Server)会将全局 ID 和 GUID 存储为 16 个字节的值。 不含有本地 GUID 数据类型的数据库会将它们存储为 38 个字节的值。
有关全局 ID 的注意事项
使用全局 ID 时应谨记以下信息:
- 使用字段视图或表窗口中的新建字段命令可将 GUID 字段添加到地理数据库数据集中。
- 可以将全局 ID 添加到地理数据库中独立要素类、表和具有属性的关系类。 全局 ID 不能添加到要素数据集中的单个数据集中;当您在要素数据集上启用全局 ID 时,它们会添加到要素数据集中的所有数据集中。
- 全局 ID 无法添加至数据库中的表。
- 如果存在现有全局 ID 列,则添加全局 ID 工具将保留原有列;它不会删除现有全局 ID 列并添加新的全局 ID 列。
- 如果在地理数据库中将某个要素类添加到要素数据集中并要向其中添加一个全局 ID 列,则必须针对该要素数据集运行添加全局 ID 工具。 此操作将为新要素类添加全局 ID 列。 要素数据集中具有现有全局 ID 列的要素类将保持不变。
- 对于复制与粘贴、数据提取和 XML 工作空间导出及导入操作,会在输出地理数据库中保留全局 ID 值,因此数据库中可能具有非唯一的全局 ID。 对于其他数据导出及导入方法,这些值将不会保留。
对象标识符
在 ArcGIS 中创建表时,将向表中添加唯一的不可为空的整型字段,以用作对象标识符(对象 ID)。 对象 ID 字段由 ArcGIS 维护并保证表中每行具有唯一 ID。 查看某个表或某个图层的属性表时,您通常会发现,对象 ID 字段以别名 OID 或 ObjectID(针对表)或 FID(针对 web 要素图层和 shapefile)列出。 主要功能(如滚动和显示选择集)将取决于此字段的显示情况。
将表注册到企业级地理数据库中时,也需要对象 ID。 有关注册表时的对象 ID 要求的说明,请参阅将表或视图注册到地理数据库。
大多数 ArcGIS Pro 功能(例如使用识别工具)都要求对象 ID 字段中的值唯一。 因此,在 ArcGIS 之外直接使用数据时须谨慎,避免出现重复的对象 ID。 例如,在数据库中使用一对多关系创建视图时,可能会复制对象 ID。 这将导致 ArcGIS Pro 功能中的行为不一致。
当您向地图中添加数据库表时,需要使用对象标识符。 如果 ArcGIS 找不到非空整型字段以用作对象标识符,则系统将提示您选择要用作对象标识符的字段。 有关详细信息,请参阅唯一标识符字段。
注:
ArcGIS 不会保留这些数据库字段中的值,并且无法保证这些字段中的所有值均唯一。
64 位对象 ID
在 ArcGIS 中,默认情况下,地理数据库表和要素类使用 32 位对象 ID 创建。 但是,在某些情况下,对象 ID 值需要大于 21.4 亿。 例如,您可能需要对包含超过 30 亿个公共设施要素的数据集进行建模,或者您可能需要使用云数据仓库中包含几十亿行的表。
将对象 ID 迁移到 64 位地理处理工具接受一个或多个地理数据库要素类或表作为输入数据集,并将其对象 ID 字段迁移到 64 位对象 ID 字段。
警告:
某些客户端应用程序可能不完全支持此字段类型,并且可能会发生变化。 ArcGIS Pro 中的对象 ID(64 位)和大整型(64 位)字段类型仅限于存储最多 53 位安全整数的值。 53 位安全整数值支持 (-9007199254740991) 和 (9007199254740991) 之间的范围,也可写为 -(253) -1 和 (2 53) -1。 对象 ID(64 位)中大于 53 位的值以及从外部源添加的大整型字段可以从 ArcGIS Pro 客户端读取。 尝试在 ArcGIS Pro 中写入或编辑超出此范围的数字将生成错误。 在其他客户端中,该值可能会四舍五入并导致功能损坏。
将对象 ID 迁移到 64 位地理处理工具可用于通过提供要素数据集作为输入数据集值来迁移参与拓扑或宗地结构的要素类的对象 ID 字段。 此外,工具还支持迁移关系类的对象 ID 字段。
警告:
当对象 ID 字段迁移为存储 64 位对象 ID 时,更改无法撤消,并且数据集不能再与 ArcMap 或以前版本的 ArcGIS Pro 一起使用。
要确定要素类或表是否可以存储 32 位对象 ID 还是 64 位对象 ID,请在目录窗格中右键单击要素类或表,或者在内容窗格中右键单击图层,然后单击属性 > Source > 数据源。 支持的位级别列在 ObjectID 行中。
栅格
与仅将要素的字段链接到某图像的超链接不同,栅格字段数据类型可在地理数据库中存储栅格数据或者将该数据与地理数据库一同存储。 所有支持的栅格数据集格式均可用,但建议您仅将小图片用于此字段。 每个表中只能使用一个 Raster 类型的字段。 要了解详细信息,请参阅将栅格数据集作为要素类的属性添加。
几何
在 ArcGIS 中,几何数据类型用于指示表中所存储几何的类型(点、线、面、多点或多面体)。 通过 ArcGIS 创建的存储为几何类型的字段命名为 SHAPE。
几何类型属于 ArcGIS 使用的数据类型。 例如,如果为新要素类选择面要素,则默认添加的 SHAPE 字段的 ArcGIS 数据类型为几何。
对于创建要素类工具的几何类型参数,默认几何类型为面。
如果创建具有其他要素类型的要素类,如线、点、多点、多面体、尺寸或注记,则 SHAPE 字段的几何类型也将相应地变为线、点、多点、多面体或者面(尺寸和注记)。
每个要素类只能包含一个几何类型字段。
在数据库或企业级地理数据库的要素类中创建几何字段时,必须考虑数据库数据类型。 在 DBMS 中存储几何值的方式将取决于 DBMS 使用的几何存储类型。 在企业级地理数据库中创建要素类时,使用的几何存储类型由您指定的配置关键字中的 GEOMETRY_STORAGE 参数设置来确定。 当使用 ArcGIS 在数据库中创建要素类时,您可在创建要素类工具的地理数据库设置部分的配置关键字参数中定义字段的空间类型。