要离线使用企业级地理数据库中的数据以进行编辑,可以发布一个启用同步功能的可编辑 ArcGIS Server 要素图层(要素服务)。 然后,您可以将要素服务添加到配置为离线使用的 Web 地图中,客户端可以下载 Web 地图及其内容,从而在未连接到网络时使用。
在启用了同步功能的要素服务中使用的数据可以是启用存档功能的非版本化数据,如果您的组织数据或工作流需要,也可以将数据注册为版本化。
必须以相同的方式配置进行发布的地图中的所有数据;地图不能包含版本化数据和非版本化数据的组合或传统版本化数据或分支版本化数据的组合。
数据准备的要求可能有所不同,具体取决于数据是否版本化以及所使用的离线编辑工作流类型。 这些数据和离线工作流要求还会影响您在发布要素服务时进行的配置设置。 以下部分讨论了这些要求。
注:
要将离线服务离线使用,不是必须要启用编辑功能,您可以对要素服务启用查询和同步,以将其仅用于离线参考。 但是,要素服务最常见的离线使用场景是允许移动工作人员在外业工作中执行编辑。 为此,以下部分介绍了离线编辑工作流。
场景 1:无需进行版本化
如果您的工作流不需要版本化数据,可以对数据启用存档,然后发布一个启用同步的可编辑 ArcGIS Server 要素服务,以供离线编辑。
在这种场景下,未版本化数据。 当客户端在建立网络连接后连接到要素服务以获取最新更改时,将接收到来自地理数据库的数据的当前表示。
提示:
如果处于此场景下,请在编辑启用同步的要素服务时经常保存编辑内容。
要在启用同步的要素服务中使用非版本化数据,需要以下数据和发布设置:
此场景的数据要求
进行发布之前配置以下内容:
- 地图中的所有数据必须来自同一企业级地理数据库,并且数据必须注册到地理数据库。
- 要发布的所有要素类必须启用存档。
- 要发布的每个要素类必须包含全局 ID 字段。
添加至离线数据集的全局 ID 不能基于自定义字段;它们必须明确使用由 ArcGIS 创建的全局 ID 字段。 要为数据添加全局 ID,请使用添加全局 ID 地理处理工具,或位于目录树中要素类、要素数据集和表快捷菜单上的添加全局 ID 命令。
- 如果要发布的数据集参与关系类或具有附件,则这些关系必须使用全局 ID 主键。
如果以 ObjectID 列作为主键,则会在下载离线用数据时返回错误。 可以使用迁移关系类地理处理工具将基于 ObjectID 的关系类和附件转换为以全局 ID 字段作为主键。
- 离线使用要素服务时,必须在其中包含以下字段。 这意味着不能在要发布的任何要素类中隐藏这些列:具有子类型的字段、关系类或附近的主键和外键字段、编辑者追踪字段(如果在数据集上启用编辑者追踪)。
- 必须向在用于访问数据的数据库连接中指定的登录帐户授予对地理数据库中的数据的适当权限,以允许其执行为要素服务配置的编辑操作。
要素服务配置
发布要素图层时,必须在配置 Web 图层属性对话框中设置以下内容,可从共享为 Web 图层窗格的配置选项卡访问该对话框:
- 启用编辑,然后选择允许的编辑级别。
注:
这些设置仅适用于不拥有要素服务的非管理员用户。 ArcGIS Server 管理员和服务所有者对启用了所有操作的服务具有完全访问权限。
因此,管理员或服务所有者离线使用的数据始终可编辑。 如果您需要只读离线要素图层,则这些图层必须由非管理用户而非要素服务所有者离线使用。
- 启用同步。
- 将同步选项设置为无。
场景 2:使用分支版本化管理多用户编辑
如果您使用分支版本化管理多用户编辑场景或使用需要分支版本化的地理数据库功能(例如公共设施网络或宗地结构),则可以使用接下来两个部分中介绍的工作流之一。
每个工作流都需要特定的数据设置以及特定的数据发布设置。
有关使用这些工作流的示例,请参阅使用离线地图和分支版本化数据。
注:
对于引用已注册分支版本化的数据的要素图层,可以在 10.6 或更高版本的企业级地理数据库中进行发布。
离线数据使用简单模型创建。 使用公共设施网络或宗地结构时,离线地理数据库中仅包含相关要素类。 离线数据中不包括公共设施网络数据集和宗地结构。
为同步创建的版本名称不能超过 30 字节。
与默认版本同步
如果您不需要在将数据提供给其他人之前查看编辑内容或对数据运行属性规则,则此工作流最有用。 因为您无法查看和解决由不同编辑者进行的更改所造成的冲突,所以应用于默认版本的最后编辑内容将保存到默认版本。
此工作流中编辑内容的生效几乎没有滞后时间,但是您无法在其他人看到编辑内容之前进行检查。 如果需要先查看离线编辑内容,然后才能将其提供给其他访问数据的用户,则必须使用复本版本。
可以从以下版本的默认分支版本发布数据:从 ArcGIS Pro 2.1 或更高版本到 ArcGIS Enterprise 10.7 或更高版本。
此场景的数据要求
进行发布之前配置以下内容:
- 地图中的所有数据必须来自同一企业级地理数据库,并且数据必须注册到地理数据库。
- 要发布的所有要素类必须注册为分支版本化,这需要每个要素类具有全局 ID 字段。
- 离线使用要素服务时,必须在其中包含以下字段。 这意味着不能在要发布的任何要素类中隐藏这些列:具有子类型的字段、关系类或附近的主键和外键字段、编辑者追踪字段(如果在数据集上启用编辑者追踪)。
- 必须向在用于访问数据的数据库连接中指定的登录帐户授予对地理数据库中的数据的适当权限,以允许其执行为要素服务配置的编辑操作。
要素服务配置
发布要素图层时,必须在配置 Web 图层属性对话框中设置以下内容,可从共享为 Web 图层窗格的配置选项卡访问该对话框:
- 启用编辑,然后选择允许的编辑级别。
注:
这些设置仅适用于不拥有要素服务的非管理员用户。 ArcGIS Server 管理员和服务所有者对启用了所有操作的服务具有完全访问权限。
因此,管理员或服务所有者离线使用的数据始终可编辑。 如果您需要只读离线要素图层,则这些图层必须由非管理用户而非要素服务所有者离线使用。
- 启用同步。
- 将同步选项设置为无。
与复本版本同步
如果您需要手动查看编辑内容或通过对数据运行属性规则的脚本来查看编辑内容,然后再将其提供给其他人使用,则此工作流将非常有用。 您还可以查看移动编辑者和内业编辑人员在编辑相同数据时出现的任何冲突。
只要移动编辑者离线使用数据,就会根据企业级地理数据库中默认的当前状态创建指定版本。 在离线工作流中,此指定版本称为复本版本。 当移动编辑者同步字段编辑时,这些编辑内容将应用至复本版本。 移动工作人员可以反复将编辑内容同步到复本版本。
此工作流适用于 ArcGIS Pro 2.6 及更高版本,以及 ArcGIS Enterprise 10.8.1 及更高版本。
此场景的数据要求
进行发布之前配置以下内容:
- 地图中的所有数据必须来自同一企业级地理数据库,并且数据必须注册到地理数据库。
- 要发布的所有要素类必须注册为分支版本化,这需要每个要素类具有全局 ID 字段。
- 要发布的所有要素类必须启用复本追踪。
可以使用启用复本追踪地理处理工具,或在 ArcGIS Pro 的目录窗格中右键单击数据集,单击管理,然后单击复本追踪。
- 离线使用要素服务时,必须在其中包含以下字段。 这意味着不能在要发布的任何要素类中隐藏这些列:具有子类型的字段、关系类或附近的主键和外键字段、编辑者追踪字段(如果在数据集上启用编辑者追踪)。
- 必须向在用于访问数据的数据库连接中指定的登录帐户授予对地理数据库中的数据的适当权限,以允许其执行为要素服务配置的编辑操作。
要素服务配置
发布要素图层时,必须在配置 Web 图层属性对话框中设置以下内容,可从共享为 Web 图层窗格的配置选项卡访问该对话框:
- 启用编辑,然后选择允许的编辑级别。
注:
这些设置仅适用于不拥有要素服务的非管理员用户。 ArcGIS Server 管理员和服务所有者对启用了所有操作的服务具有完全访问权限。
因此,管理员或服务所有者离线使用的数据始终可编辑。 如果您需要只读离线要素图层,则这些图层必须由非管理用户而非要素服务所有者离线使用。
- 启用同步。
- 将同步选项设置为为每个下载的地图创建版本。
场景 3:使用传统版本管理多用户编辑
如果组织因为您使用了数据的质量保证版本而需要使用传统版本,则可以使用以下离线工作流。 每个工作流都具有特定的数据和发布部分,如下所列。
有关这些工作流的示例,请参阅离线地图与版本化数据。
注:
为同步创建的版本名称不能超过 30 字节。
下载用于数据维护的地图
如果移动工作人员需要其下载的地图具有地理数据库中默认版本的最新数据,则请使用此工作流。 返回办公室后,他们将与默认地理数据库版本同步外业编辑内容、移除地图并协调和提交地图的版本。 该过程每天可能重复多次。 每一步完成后,移动工作人员都将删除离线地图版本。
此场景的数据要求
进行发布之前配置以下内容:
- 地图中的所有数据必须来自同一企业级地理数据库,并且数据必须注册到地理数据库。
- 要发布的所有要素类必须注册为完全传统版本化;不支持将编辑移至基表的注册选项。
- 要发布的每个要素类必须包含全局 ID 字段。
添加至离线数据集的全局 ID 不能基于自定义字段;它们必须明确使用由 ArcGIS 创建的全局 ID 字段。 要为数据添加全局 ID,请使用添加全局 ID 地理处理工具,或位于目录树中要素类、要素数据集和表快捷菜单上的添加全局 ID 命令。
- 如果要发布的数据集参与关系类或具有附件,则这些关系必须使用全局 ID 主键。
如果以 ObjectID 列作为主键,则会在下载离线用数据时返回错误。 可以使用迁移关系类地理处理工具将基于 ObjectID 的关系类和附件转换为以全局 ID 字段作为主键。
- 离线使用要素服务时,必须在其中包含以下字段。 这意味着不能在要发布的任何要素类中隐藏这些列:具有子类型的字段、关系类或附近的主键和外键字段、编辑者追踪字段(如果在数据集上启用编辑者追踪)。
- 必须向在用于访问数据的数据库连接中指定的登录帐户授予对地理数据库中的数据的适当权限,以允许其执行为要素服务配置的编辑操作。
要素服务配置
发布要素图层时,必须在配置 Web 图层属性对话框中设置以下内容,可从共享为 Web 图层窗格的配置选项卡访问该对话框:
- 启用编辑,然后选择允许的编辑级别。
注:
这些设置仅适用于不拥有要素服务的非管理员用户。 ArcGIS Server 管理员和服务所有者对启用了所有操作的服务具有完全访问权限。
因此,管理员或服务所有者离线使用的数据始终可编辑。 如果您需要只读离线要素图层,则这些图层必须由非管理用户而非要素服务所有者离线使用。
- 启用同步。
- 将同步选项设置为为每个下载的地图创建版本。
下载短期工程的地图
可以将此工作流用于短期离线工程,在此期间移动工作人员可进行频繁的编辑和同步。
在此工作流中,移动工作人员在早上或一天结束时同步编辑内容。 您可以在夜间运行协调和提交过程,以使移动工作人员的版本始终与其他移动工作人员的编辑保持一致。 每位移动工作人员在第二天早上进行同步时都会看见其他移动工作人员的编辑。 工程完成后,所有外业编辑内容均会进行同步并应用到工程版本。 然后对工程版本进行检查,并将其协调并提交到默认地理数据库版本。 工程完成后,负责工程管理的人员将删除要素服务和移动工作人员版本。 在本工作流中,移动工作人员数据的延迟不得超过 1 周。
此场景的数据要求
进行发布之前配置以下内容:
- 地图中的所有数据必须来自同一企业级地理数据库,并且数据必须注册到地理数据库。
- 要发布的所有要素类必须注册为完全传统版本化;不支持将编辑移至基表的注册选项。
- 要发布的每个要素类必须包含全局 ID 字段。
添加至离线数据集的全局 ID 不能基于自定义字段;它们必须明确使用由 ArcGIS 创建的全局 ID 字段。 要为数据添加全局 ID,请使用添加全局 ID 地理处理工具,或位于目录树中要素类、要素数据集和表快捷菜单上的添加全局 ID 命令。
- 如果要发布的数据集参与关系类或具有附件,则这些关系必须使用全局 ID 主键。
如果以 ObjectID 列作为主键,则会在下载离线用数据时返回错误。 可以使用迁移关系类地理处理工具将基于 ObjectID 的关系类和附件转换为以全局 ID 字段作为主键。
- 离线使用要素服务时,必须在其中包含以下字段。 这意味着不能在要发布的任何要素类中隐藏这些列:具有子类型的字段、关系类或附近的主键和外键字段、编辑者追踪字段(如果在数据集上启用编辑者追踪)。
- 必须向在用于访问数据的数据库连接中指定的登录帐户授予对地理数据库中的数据的适当权限,以允许其执行为要素服务配置的编辑操作。
要素服务配置
发布要素图层时,必须在配置 Web 图层属性对话框中设置以下内容,可从共享为 Web 图层窗格的配置选项卡访问该对话框:
- 启用编辑,然后选择允许的编辑级别。
注:
这些设置仅适用于不拥有要素服务的非管理员用户。 ArcGIS Server 管理员和服务所有者对启用了所有操作的服务具有完全访问权限。
因此,管理员或服务所有者离线使用的数据始终可编辑。 如果您需要只读离线要素图层,则这些图层必须由非管理用户而非要素服务所有者离线使用。
- 启用同步。
- 将同步选项设置为为每个用户创建版本。
下载持续性工程的地图
将此工作流用于持续进行多个星期或更长时间的离线工程。
在此工作流中,移动工作人员可以同步离线时执行的编辑。 然后在早上或一天结束的时候连接至网络并进行同步。 由于工程持续进行,因此从质量保证版本发布要素服务而不是直接从默认版本发布。 这表示需要其他检查、协调和提交过程。
此场景的数据要求
进行发布之前配置以下内容:
- 地图中的所有数据必须来自同一企业级地理数据库,并且数据必须注册到地理数据库。
- 要发布的所有要素类必须注册为完全传统版本化;不支持将编辑移至基表的注册选项。
- 要发布的每个要素类必须包含全局 ID 字段。
添加至离线数据集的全局 ID 不能基于自定义字段;它们必须明确使用由 ArcGIS 创建的全局 ID 字段。 要为数据添加全局 ID,请使用添加全局 ID 地理处理工具,或位于目录树中要素类、要素数据集和表快捷菜单上的添加全局 ID 命令。
- 如果要发布的数据集参与关系类或具有附件,则这些关系必须使用全局 ID 主键。
如果以 ObjectID 列作为主键,则会在下载离线用数据时返回错误。 可以使用迁移关系类地理处理工具将基于 ObjectID 的关系类和附件转换为以全局 ID 字段作为主键。
- 离线使用要素服务时,必须在其中包含以下字段。 这意味着不能在要发布的任何要素类中隐藏这些列:具有子类型的字段、关系类或附近的主键和外键字段、编辑者追踪字段(如果在数据集上启用编辑者追踪)。
- 必须向在用于访问数据的数据库连接中指定的登录帐户授予对地理数据库中的数据的适当权限,以允许其执行为要素服务配置的编辑操作。
要素服务配置
发布要素图层时,必须在配置 Web 图层属性对话框中设置以下内容,可从共享为 Web 图层窗格的配置选项卡访问该对话框:
- 启用编辑,然后选择允许的编辑级别。
注:
这些设置仅适用于不拥有要素服务的非管理员用户。 ArcGIS Server 管理员和服务所有者对启用了所有操作的服务具有完全访问权限。
因此,管理员或服务所有者离线使用的数据始终可编辑。 如果您需要只读离线要素图层,则这些图层必须由非管理用户而非要素服务所有者离线使用。
- 启用同步。
- 将同步选项设置为为每个用户创建版本。
其他设置以及设置对离线数据的影响
您需要离线使用的数据可能还会配置为使用其他地理处理功能(例如属性规则或编辑者追踪)。 请注意当编辑者将离线编辑内容与地理数据库共享时,这些功能会如何影响数据。
属性规则
从 ArcGIS Pro 发布的参考注册数据的要素图层可以包含属性规则。 编辑要素图层时,ArcGIS 将应用您在地理数据库中定义的属性计算和约束规则。 当编辑违反其中一个规则时,编辑者将收到错误。 但是,如果离线编辑数据,则属性规则信息不会包含在离线数据中。 对数据与要素图层进行同步时,将同时应用规则。 违规的处理方式取决于数据的注册方式。
- 如果使用注册为版本的数据,则属性规则冲突将阻止同步进程。 当编辑违反属性规则时,同步将返回错误。 您必须在数据的离线版本中解决冲突,然后再次同步。
- 如果使用启用存档的非版本化数据,则将完成同步,但是不会应用违反属性规则的编辑。 对于未同步的编辑内容,系统会将信息写入 ArcGIS Server 日志。 如果使用非版本化数据和属性规则,则应在同步后检查 ArcGIS Server 日志,以查看未同步的编辑内容(如果存在)。 解决离线版本数据中的冲突,然后再次同步。
如果您在启用同步的要素服务中包含属性规则错误图层,则请勿编辑离线地图中的错误图层。 如果这样做,在同步时编辑将不会应用于错误图层。
编辑者追踪
可以使用编辑者追踪离线时编辑的数据。 将数据下载到客户端以供离线使用时,编辑者追踪字段的现有值会随数据其余部分一起复制到客户端。 离线使用数据时,创建或编辑要素的日期和时间将在相应的日期字段中进行记录。 数据与服务进行同步时会保留这些值。
注:
如果日期字段以某个时区而不是协调世界时间 (UTC) 来存储值,请在发布服务时指定该时区。 如果未指定该时区,则假定为 UTC。 ArcGIS 会将指定的时区应用于所有追踪日期字段的编辑器。
离线数据包括离线使用地图的用户的名称。 它与编辑器追踪如下一同使用:
- 对于离线状态下创建的要素,创建者名称值将设置为使用离线地图的用户。
- 对于离线状态下编辑的现有要素,编辑者名称值将设置为使用离线地图的用户。 这些要素的创建者名称值不会发生更改。
基于所有权的访问控制
在数据上启用编辑者追踪时,您可以在要素服务上配置基于所有权的访问控制以基于要素服务的创建者限制对要素的访问权限。 如果离线客户端执行的任何编辑违反基于所有权的访问控制规则,则不会将这些编辑与服务进行同步。 这种情况下,同步编辑操作所用的登录帐户将被视为编辑者。
但是,如果 ArcGIS Server 管理员同步由离线编辑者进行的编辑,基于所有权的访问控制将取决于离线使用地图的指定用户,而非管理员。
同步权限
当您对 ArcGIS Server 要素服务使用同步功能时,同步过程将在企业级地理数据库中创建一个临时表,以在应用程序和数据库之间移动数据。 这意味着连接以执行同步的数据库用户必须能够在数据库中创建临时表。 在某些数据库管理系统中,创建临时表需要特定的权限或其他配置。 请查阅数据库管理系统文档,以验证使用数据库中的临时表所需的权限和空间要求,并咨询您的数据库管理员,以确保您具有这些权限或所需表空间的访问权限。
如果离线进行的编辑已与要素服务同步,则连接以进行同步的数据库用户必须具有对企业级地理数据库中源数据的插入、更新和删除权限。
引用同一要素类的地图图层
有时,地图作者会多次将同一要素类添加到地图。 这些要素类在地图中显示为单独的图层,但是在地理数据库中是同一要素类。 如果您从地图发布一个 ArcGIS Server 要素服务,其中包含两个或多个基于同一要素类源的图层,则无法在离线工作流中使用该要素服务。
例如,如果将道路要素类从地理数据库添加至地图以显示所有道路,添加相同道路要素类并针对其设置定义查询以显示正在施工的道路,然后从地图发布要素服务,则无法对要素服务进行离线编辑,也无法在建立网络连接时同步更改。