准备供离线使用的数据

要在离线时仍可使用地图,您可以在地图所使用的要素服务中启用同步功能。同步功能包括允许客户端使用数据本地副本的操作。如果发布者选择启用此功能,客户端便可编辑数据的本地副本并在连接可用时与要素服务进行同步。

注注:

ArcGIS 客户端和开发人员 SDK 会逐步在要素服务中增加同步功能支持。支持离线使用地图的首批客户端为 ArcGIS Collector 和 ArcGIS Runtime SDK 的 10.2.1 版本。这两种客户端预计在 2014 年初发布。

数据准备

要使用同步功能,要素服务中的所有数据必须都来自企业级地理数据库。此外,您还必须准备数据,以便数据可在离线时使用,并根据需要在您建立连接时通过要素服务进行同步。准备数据的方式取决于数据的本地副本为可编辑还是只读,以及在本地数据副本为只读的情况下,您是否要在要素服务中使用版本化数据。

如果客户端要在离线时编辑数据并在建立连接时同步所做的更改,则要素服务必须包含非版本化数据。非版本化数据必须按下述方式进行准备,才可以与同步功能结合使用:

有关此场景的演练的详细信息,请参阅教程:设置要素服务数据以供离线使用

如果客户端只查询自己下载的数据,要素服务中的数据既可以为非版本化也可以为版本化。如果为非版本化数据,则请按上述操作进行准备。如果为版本化数据,则请按下述操作进行配置:

仅当地图中的所有数据配置完全相同时,才能启用同步功能;数据不可以具有多种配置。例如,如果客户端要编辑数据,则数据不能进行版本化,地图中的所有数据都必须启用存档功能且包含全局 ID。全局 ID 不能基于自定义字段;它们必须明确使用由 ArcGIS 创建的全局 ID 字段。要为数据添加全局 ID,请使用添加全局 ID 地理处理工具,或位于目录树中要素类、要素数据集和表快捷菜单上的添加全局 ID 命令。

附件和关系类

如果要离线使用的数据包含附件或加入到某关系类,则表之间或表与附件之间的关系必须以全局 ID 列或用户管理的字段作为主键。如果以 ObjectID 列作为主键,则会在下载离线用数据时返回错误。可以使用迁移关系类地理处理工具将基于 ObjectID 的关系类和附件转换为以全局 ID 字段作为主键。

使用 ArcGIS Server 的托管数据库

如果在向 ArcGIS Server 的托管数据库发布时启用同步功能,则不需要进行数据准备。发布过程会将数据自动设置为支持同步功能。如果不向 ArcGIS Server 托管数据库发布,或在向托管数据库发布之后才启用同步功能,则必须按之前部分所述准备地理数据库数据。

编辑器追踪

可以使用编辑器追踪离线时编辑的数据。将数据下载到客户端以供离线使用时,编辑器追踪字段的现有值会随数据其余部分一起复制到客户端。离线使用数据时,创建或编辑要素的日期和时间会分别记录到创建日期和编辑日期这两个字段中。数据与服务进行同步时会保留这些值。

注注:

所有数据值必须为 UTC 格式。

由于离线工作时无法连接到服务器且无法访问服务器的用户存储,因此编辑者和创建者名称值会在数据与服务同步时进行填充。

  • 对于离线时创建的要素,创建者名称值会设为连接到服务以同步数据的用户。
  • 对于离线时编辑的现有要素,编辑者名称值会设为连接到服务以同步数据的用户。这些要素的创建者名称值不会发生更改。

托管要素服务

如果您正在发布 ArcGIS Online 托管的要素服务,则会在启用同步功能后自动准备数据以使用同步功能。这是因为发布者无法访问 ArcGIS Online 托管服务器,因而无法手动准备数据以使用同步功能。

如果将托管服务发布到 Portal for ArcGIS,则必须手动更改数据。有关详细信息,请参阅 Portal for ArcGIS 帮助中的为离线制图启用托管要素服务

要素服务准备

创作要素服务时,发布者会选择一些选项,这些选项用于定义可通过服务执行的编辑。以下部分将介绍离线使用地图时应用这些选项的方法:

允许的操作(功能)

要素服务功能可定义使用要素服务时允许执行的操作。对于参与离线地图使用的要素服务,支持的配置有两种:

  • 只读数据 - 如果客户端仅查询从要素服务下载的数据以离线使用,则在要素服务上设置“查询”和“同步”功能。进行此配置后,数据将无法再次同步到服务。
  • 可编辑数据 - 如果客户端要在离线时编辑数据并在建立连接时将所做更改与要素服务进行同步,则在要素服务上设置“创建”、“删除”、“查询”、“同步”和“更新”功能。请注意,您必须授权所有编辑功能。

任何其他配置都会在下载或同步数据时返回错误。

创建要素服务后,发布者和管理员可以选择禁用同步功能。例如,发布者或管理员可以在执行数据维护任务(如重新构建索引)期间禁用服务上的同步功能,以阻止客户端与服务同步。

短事务

编辑启用同步功能的要素服务时,避免编辑事务长时间处于打开状态。例如,如果您计划在 ArcMap 中编辑数据,而该数据同时由要素服务用于同步功能,请确保定期保存编辑并在编辑会话完成时停止编辑。

几何更新和真曲线

可以将要素服务配置为允许对包含真曲线的数据进行几何更新和编辑。将编辑从客户端同步到服务时会强制执行这些设置。如果客户端执行的任何编辑违反要素服务的几何更新和真曲线设置,则不会将这些编辑与服务进行同步。

基于所有权的访问控制

可以使用基于所有权的访问控制来控制要素访问。如果客户端执行的任何编辑违反基于所有权的访问控制规则,则不会将这些编辑与服务进行同步。这种情况下,同步编辑所用的登录用户将被视为编辑者。

不可见和只读字段

创作要素服务时,可以选择将某些字段设置为只读字段或对要素服务不可见。对要素服务不可见的字段不会被下载到客户端以供离线使用。只读字段在已下载的数据中仍为只读状态。

通过本地数据副本下载或与服务同步进行的输出

将数据下载到本地客户端时,会在 ArcGIS Server 输出目录中创建一个包含相应数据的文件,然后您的客户端将下载该文件。默认情况下,任何超过 10 分钟未被任何进程访问的文件均会从输出目录中移除。如果您预计 10 分钟后客户端才开始下载该文件,则可以创建另一个清理时间更长的输出目录,并为您的要素服务使用此输出目录。此外,您还可以延长默认输出目录的清理时间,但是这将影响使用此默认输出目录的所有服务。

同步和异步模式

用于下载本地数据副本或将更改同步到服务的同步操作既可在同步模式下运行也可在异步模式下运行。使用同步模式时,由服务完成处理;因此,会应用服务设置,包括使用的最小和最大实例数、超时间隔和回收间隔等。使用异步模式时,由随 ArcGIS Server 提供的预先配置的 SyncTools 地理处理服务完成处理;因此,会应用 SyncTools 地理处理服务的设置。

同步过程的系统信息

下载数据以供离线地图使用或将更改同步回服务时,与这些过程相关的信息会存储在要素服务的源数据使用的企业级地理数据库的系统表中。要素服务的复本资源列出了要素服务的元数据。如果服务受保护,则只会列出与登录用户或匿名用户相关的元数据。地理数据服务也包含复本资源,其中列出了引用地理数据库的所有要素服务的元数据。管理员可使用地理数据服务执行多种任务,如列出每个服务的元数据或移除属于已移除要素服务的元数据。

客户端通过 ArcGIS REST API 访问同步功能。

6/13/2014