分配图层 ID
在 ArcGIS Pro 中,您可以共享包含多个图层(和独立表)的地图以作为 web 图层或服务。 当您共享 web 要素图层 、 地图图像图层 、 web 切片图层 或 地图服务 时,地图中的图层将变为服务子图层。 每个子图层都通过唯一数字 ID 标识,以便您在 web 地图或应用程序中进行处理和引用。 例如,您可以通过 URL 引用服务子图层: https://<service-url>/<layerID> 。
默认情况下,您共享的每个图层都会根据 内容 窗格中的 绘制顺序 自动分配 ID,第一个图层从 0 开始。 如果您共享从地图中选择的图层,ID 将基于所选图层的顺序,包括图层所在的图层组。 当您添加、移除或重新排序图层时,其 ID 将相应地更改。
可以手动分配图层 ID,地图修改时此 ID 保持静态。 您可以使用 地图属性 对话框中的 允许向共享 web 图层分配唯一数字 ID 设置启用此功能。 激活此设置后,每个图层的 ID 都在 图层属性 对话框中可见,可以在发布之前在此进行自定义。
注:
如果未手动分配图层 ID,则在共享 web 图层时,可能会遇到分析器 错误 00374 。
如果您打算将来覆盖 web 图层或服务,则最佳做法是在发布之前手动分配图层 ID。 否则,当 web 图层或服务被覆盖时,服务子图层 ID 可能会改变,导致引用服务子图层的 web 应用程序断开连接。 手动为地图中的图层分配 ID 可以使您在地图内容改变时,不必更新 web 应用程序中的服务子图层引用。 在覆盖之前,比较和查看分配的图层 ID 并确保 ID 与现有服务子图层 ID 一致。
要了解有关覆盖 web 图层和服务的详细信息,请参阅 覆盖 Web 要素图层 、 覆盖地图图像图层 或 覆盖地图服务 。
制作包含静态 ID 的图层和独立表
要制作包含静态 ID 的图层和独立表,请按照以下步骤操作:
右键单击 内容 窗格中的地图,然后单击 属性
。在 地图属性 对话框的 常规 选项卡上,选中 允许对共享 Web 图层分配唯一的数字 ID ,然后单击 确定 。
随即为地图中的每个图层和独立表分配顺序 ID。
或者,也可以为地图中的图层和独立表分配自定义 ID。
在 内容 窗格中右键单击图层或独立表,然后单击 属性
。在 图层属性 或 独立表属性 对话框的 常规 选项卡上,将自定义整数 ID 输入到 图层 ID 或 表 ID 文本框中。
提示:
分配 ID 时,您应该有意地进行,例如以 10 的倍数连续为图层编号(10、20、30 等)。 这可以为未来添加图层提供空间。 例如,您可以在现有图层之间添加图层并分配介于 10 的倍数之间的 ID(15、25、35 等)。
如有必要,可以针对每个图层或独立表重复前两个步骤。
将地图共享为 web 要素图层 、 地图图像图层 或 地图服务 。
地图中的图层和独立表具有静态 ID,如果未来 web 图层和服务被覆盖,则无需更新客户端应用程序。
为关联分配唯一 ID
当图层(或表)参与关联并且共享为服务子图层时,必须由服务级别的不同唯一 ID 来表示每个要素类与表之间的关系。 在对地图或地理数据库进行更改后,此操作可防止地图或要素服务修改 ID。
注意:
要为关联分配唯一 ID,必须将图层、表和属性关系类(如果适用)添加至地图。 如果地图中缺少这些内容,则服务将无法显示图层和表之间的任何关系。
如果在更新地图属性之前建立关联,您可能需要取消选中并重新选中 允许分配唯一数值 ID 以共享 Web 图层 以显示唯一 ID。
可以使用图层或表属性中的 关联 选项卡来查看和分配唯一 ID。 请按照以下步骤操作:
右键单击 内容 窗格中的地图,然后单击 属性
。 在 常规 选项卡上,选中 允许向共享 Web 图层分配唯一数字 ID ,然后单击 确定 。右键单击 内容 窗格中的图层或表,然后单击 属性 。
在 图层属性 或 独立表属性 对话框的 关联 选项卡上,展开关联。
展开 用于共享 Web 图层的关联 ID 部分以查看所有关系,然后在 关系 ID 文本框中键入自定义整数 ID。
共享 Web 图层时查看分配的 ID
在共享 Web 图层之前,请查看分配给地图中的图层和独立表的 ID。 如果您要覆盖 Web 图层,请参阅下面的 覆盖 Web 图层时比较 ID 部分。
在 共享为 Web 图层 窗格中,单击 内容 选项卡。
已分配 ID 的新 Web 图层和子图层将显示在窗格中。 查看每个子图层的 ID。

在本例中,地图图像图层通过关联的 Web 要素图层共享。 已为子图层分配图层和表 ID。 注:
如果分配的 ID 未显示在窗格中,请确保在 地图属性 对话框上选中 允许向共享 Web 图层分配唯一数字 ID 选项。
不会为以下图层显示 ID:矢量切片图层,此类图层无法通过服务子图层 URL 引用;Web 场景图层,此类图层仅具有始终设置为 0 的单个子图层。
要更改 ID,单击图层或独立表旁边的数字。
随即显示 图层属性 或 独立表属性 选项卡。
在 常规 选项卡上,在 图层 ID 或 表 ID 文本框中提供自定义整数 ID,然后单击 确定 。
分配的 ID 将更新在 共享为 Web 图层 窗格中。
覆盖 Web 图层时比较 ID
在覆盖 Web 图层之前,将地图中的已分配 ID 与现有 Web 图层的子图层 ID 进行比较。
该短视频提供了该工作流的快速概览以比较 ID。
此视频是使用 ArcGIS Pro 3.5 创建的。
在 覆盖 Web 图层 窗格的 完成共享 下,单击 比较
检查当前地图中的 ID 和您要覆盖的现有 Web 图层中的 ID 之间的差异。注:
如果 比较 按钮
处于禁用状态,确保在 地图属性 对话框中选中 允许向共享 web 图层分配唯一数字 ID 选项。如果发现差异,则会在 内容 下显示一条警告,例如地图和现有 Web 图层间的 ID 对和图层名称不一致。 可通过将光标悬停在 ID 旁的警告符号
上,查看有关警告的信息。 下表介绍了可能的警告:警告
说明
建议的解决方案
图层 ID 在地图中不存在。
在当前地图中未找到具有现有服务子图层 ID 的图层。
确保当前地图中存在该图层并更改其已分配 ID 以与现有服务子图层 ID 相匹配。
ID 对应的图层名称已更改。
当前地图中的图层与现有服务子图像的 ID 相同,但是名称不同。
更改图层名称以与现有服务子图层名称相匹配。 或者,如果地图中的另一个图层具有相同 ID,则改为分配唯一 ID。

在此示例中,显示了一条警告,因为现有服务中表的 ID 为 2,而地图中独立表的已分配 ID 为 4。 如有必要,可通过更改当前地图中的已分配 ID 或图层名称解决差异。
要更改 ID,在 当前地图 下,单击图层或独立表旁边的数字。
随即显示 图层属性 或 独立表属性 选项卡。
在 常规 选项卡上,在 图层 ID 或 表 ID 文本框中提供自定义整数 ID,然后单击 确定 。
已分配 ID 即会在 覆盖 Web 图层 窗格中进行更新。
在确认已在地图中分配所需的图层 ID 后,如果您对覆盖 Web 图层的决定很有把握,可单击 发布 。