下载并离线使用包含可编辑要素服务且使用版本化数据的地图时,将通过已发布数据使用的版本创建新的地理数据库版本。当客户端与要素服务同步编辑内容时,编辑内容将应用于此新版本。需要其他后台管理协调与提交处理才能与其他人共享编辑内容。
如果地图包含只读要素服务(仅在要素服务上启用“查询”和“同步”)且要素服务包含版本化数据,则下载地图时不会创建任何版本。客户端与要素服务同步时,它们对源数据的所有编辑内容都有访问权限。
提供的以下两个选项允许要素服务所有者或 ArcGIS Server 管理员选择针对特定可编辑要素内容创建版本的方式。发布要素服务时设置这些选项。
为每个离线地图创建版本
这是默认选项。通过此选项,在每次离线使用包含可编辑要素服务的地图时都会使用已发布的版本生成新版本。版本名称包括:
- 下载地图的用户的姓名
- 要素服务的名称
- 唯一标识符 (ID)
这三个组件可确保版本名称唯一。例如,如果用户 Bob 下载包含要素服务 NetFS 的地图,则创建的版本的名称为 Bob_NetFS_1404578882000。如果同一用户多次下载该地图(例如在多个设备上),则用户在每台设备进行同步时均采用不同的版本。因此,一台设备不具有对其他设备的编辑内容的访问权限。但新下载的地图与已发布的版本匹配。如果存在多个已下载的地图,则存在多个地图版本。从用于离线编辑的应用程序中移除下载的地图后,可协调、提交和删除其版本。
注:
如果要素服务已发布到未与门户联合的 ArcGIS Server 站点或您不具有 ArcGIS Server 中的单个用户帐户,则地图版本的名称将为 Esri_Anonymous_<要素服务名称>_<ID>。
为每个用户创建版本
通过此选项,将为每个下载包含可编辑要素服务的地图的用户生成版本。例如,如果 10 位用户下载一个地图,则会生成 10 个版本。每个版本特定于一位用户,版本名称由用户名和服务名称组成(如 Joe_InspectionFS)。如果用户多次下载该地图(例如在多个设备上),则用户在每台设备进行同步时均采用相同版本。因此,一台设备具有对其他设备的编辑内容的访问权限。但是,新下载的地图将仅更新至用户最后一次协调的版本。只要用户下载地图就会一直保留用户版本。
注:
如果使用此选项,您应将 ArcGIS Server 站点与门户联合或配置 ArcGIS Server 中的用户帐户。如果未执行此操作,创建的地图版本的名称将为 Esri_Anonymous_<要素服务名称>,连接至门户的每个用户均使用同一版本。
示例
以下部分将指导您使用之前两个部分中描述的版本选项完成工作流示例:
- 工作流 1:下载用于数据维护的地图
- 工作流 2:下载用于持续时间较短的项目的地图
- 工作流 3:下载用于正在进行的项目的地图
下面将比较每个工作流的组件:
工作流 1:下载用于数据维护的地图
该工作流面向在现场使用 Collector for ArcGIS 确认红线地图提供的编辑内容的组织成员。在本例中,数据将进行版本化,同时工作人员需要从默认版本的地理数据库下载地图以获得最新数据。返回办公室后,工作人员将与默认地理数据库版本一同同步现场的编辑内容、移除地图并协调并提交地图的版本。该过程每天可能重复多次。完成每个过程后,将删除离线地图版本。
为此,Web 地图由办公室工作人员组成员的公司组织帐户提供。如果工作人员是该组的成员,则可以使用办公室中其中一个可用设备上运行的 Collector for ArcGIS 访问 Web 地图。在离开办公室前,该工作人员会使用 Collector 下载地图。然后工作人员会转到现场并检查请求的更新。使用 Collector 在现场进行校正。返回办公室后,工作人员的校正会同步到要素服务,然后使用默认版本进行协调和提交。
以下部分介绍了此工作流:
发布要素服务
要创建 Web 地图,首先应发布要素服务。
发布者启用 ArcMap 并将默认版本中的数据添加到此地图。在本示例中,数据包括一些来自公司企业级地理数据库中要素类的新型传感器。已将此要素类注册为版本。
发布者将通过 ArcMap 发布名为 NetFS 的要素服务。
发布期间,发布者选中服务编辑器中的同步功能,因为该服务设计为用于离线地图中。由于将对此数据进行编辑,发布者还会选中查询、更新、创建以及删除功能。发布者还将单击高级选项以显示要素服务高级选项。
在高级选项对话框中启用针对每项创建版本选项。对于此示例,发布者将选中下载地图。通过设置此选项,外业工作人员离线使用地图时将为离线地图创建唯一命名的版本。然后工作人员同步时将使用此版本。
发布者同时还会与办公室工作人员组共享服务,从而使组织中的其他成员可访问数据。
创建 Web 地图
创建要素服务后的下一步是创建 Web 地图。发布者通过登录到组织(Portal for ArcGIS 或 ArcGIS Online)、创建 Web 地图、向地图添加要素图层以及与办公室工作人员组共享地图来完成此操作。将 Web 地图的离线模式属性设置为已启用,使其可离线用于 Collector for ArcGIS 中。现在,办公室工作人员组的员工可下载此地图。
下载 Web 地图
如有可用的 Web 地图,工作人员可将该地图下载到 Collector for ArcGIS,然后到现场检查所需更新。为此,工作人员 Bob 将启动 Collector 并登录到组织中。随即显示新分享的 web 地图。
由于 web 地图已启用了离线模式,因此其在 Collector 中显示有下载按钮。Bob 单击下载按钮开始下载过程。
然后,Bob 选择已下载地图的范围和底图分辨率。
下载进程开始时,将通过后台地理数据库中的已发布版本(默认)创建一个名为 Bob_NetFS_1404578882000 的版本。由于已将服务设置为创建每个下载地图的版本,因此将生成唯一的版本名称。名称由现场工作人员的登录名 (Bob)、要素服务名称 (NetFS) 和唯一 ID 组成。将在对下载地图进行同步时使用该版本。
随即会将数据下载到设备中。下载完成后,Collector 会将地图切换至引用本地数据。此时,无需连接网络即可编辑地图。Collector 地图中出现同步按钮,表示现在正在引用本地数据。
同步编辑内容
在现场中,Bob 注意到其中一个传感器的位置不正确,它位于街道的错误一侧。Bob 在现场中使用 Collector 对其进行了校正。
Bob 在白天访问了其他位置并进行了其他校正。如果连通性可用,Bob 还会选择同步现场中的编辑内容。Bob 回到办公室后,他连接到了设备上的内部网络并进行了最终同步。这可保证在现场进行的所有校正均已应用到 Bob_NetFS_1404578882000 版本。
现在 Bob 已回到办公室且已同步编辑内容,将从 Collector 中移除本地地图并返回到设备。移除本地地图的过程会将 Bob_NetFS_1404578882000 版本标记为不再与离线地图相关。随后,Bob 会连接到 ArcMap 中的 Bob_NetFS_1404578882000 版本,并以默认版本对其进行协调和提交。Bob 使用基于属性的冲突检测并手动解决所有冲突。
保存编辑内容且 Bob 已切换回默认版本后,需要删除 Bob_NetFS_1404578882000 版本。
由于 Bob 会在办公室中进一步检查红线编辑内容,因此他需要再次前往现场。每次前往现场均需要一个新的下载地图和 Bob_NetFS_<ID> 版本。每个新版本都将包括默认版本的最新编辑内容。在与地图断开连接、协调和提交之前,这些版本将保存在地理数据库中。
除 Bob 外,其他办公室工作人员可同时与 Bob 执行类似的任务。
将 Bob 的更改内容协调并提交到默认版本后,他需要删除 Bob_NetFS_<ID> 版本。
工作流 2:下载用于持续时间较短的项目的地图
在本示例中,现场工作人员将离线编辑版本化数据。然后在早上或一天结束的时候同步编辑内容。夜间运行协调和提交过程以使该现场工作人员的版本始终与其他现场工作人员的编辑保持一致。每位现场工作人员在第二天早上进行同步时都会看见其他现场工作人员的编辑。项目完成后,现场的所有编辑内容均会进行同步并应用到项目版本。然后对项目版本进行检查,并将其协调并提交到默认地理数据库版本。项目完成后,将删除要素服务和现场工作人员版本。在本工作流中,现场工作人员数据的延迟不得长于 1 周。
以下介绍了完成此工作流所需的步骤:
发布要素服务
在本示例中,项目经理需要将工作人员部署到现场执行传感器检查。每年会定期执行传感器检查。检查期间,现场工作人员将检查并记录传感器损坏和可访问性等问题。该信息用于计划修复并了解可以轻松访问哪些传感器。计划在一周的某个时间段发生此项目。对于数据几何,向每个现场工作人员提供一个运行 Collector for ArcGIS 的智能手机。
对于此项目,项目经理计划在公司的组织帐户中创建并共享传感器检查的 Web 地图。该 Web 地图将引用公司的预置 ArcGIS Server 中运行的要素服务。
为创建要素服务,项目经理启动了 ArcMap 并添加了默认版本的预置企业级地理数据库中的传感器要素类。已将此要素类注册为版本。用黄色标记用于检查的传感器。
为组织工作,项目经理创建了一个名为“检查”的版本并更改了地图以引用此版本。
接下来,项目经理将从 ArcMap 发布 InspectionFS 要素。
项目经理将检查服务编辑器中的同步功能,因为该服务将用于离线地图中。项目经理还将单击高级选项显示要素服务高级选项。
在要素服务高级选项中,项目经理将选择为每位用户创建版本选项。借助此选项,现场工作人员首次下载地图时将为其创建版本。然后工作人员同步编辑内容时将使用此版本。
创建 Web 地图
发布要素服务后,项目经理将在 Portal for ArcGIS 中创建 Web 地图并会将其与所有成员均为现场工作人员的组进行共享。
项目经理将执行以下步骤:
- 登录到组织。
- 创建 Web 地图。
- 从刚刚发布的 ArcGIS Server 添加要素服务。
- 保存 Web 地图。
- 与包括现场工作人员的组共享 Web 地图和要素服务。
- 启用 Web 地图上的离线模式属性以使该地图可离线用于 Collector for ArcGIS。
下载 Web 地图
每个现场工作人员均可通过 Collector for ArcGIS 登录到他们的帐户来访问 Web 地图。
通过可用的 Web 地图,每个现场工作人员可启动 Collector 并登录到组织。随即显示新分享的 web 地图。
由于 Web 地图已启用了离线模式,因此在 Collector 中显示时具有下载按钮(标有箭头的云)。其中一个现场工作人员 (Joe) 单击下载按钮开始下载过程。
Joe 将为他的地图选择范围和底图分辨率。
下载进程开始时,将根据已发布的版本在后台地理数据库中创建一个名为 Joe_InspectionFS 的版本。由于要素服务已设置为为每个用户创建版本,版本名称将取决于现场工作人员的登录帐户 (Joe) 和从其中创建该版本的要素名称 (InspectionFS)。同步下载的地图时将使用该版本。
注:
Joe 无论在何时从 InspectionFS 服务下载地图时,均要引用 Joe_InspectionFS 版本。例如,某些情况下 Joe 可能需要移除本地地图并使用较大的范围重新创建。再次下载地图时,Joe 将查看之前从 Joe_InspectionFS 版本同步的所有编辑内容。
下载地图和数据后,Collector 会将地图切换至引用本地数据。此时,无需连接网络即可编辑地图。Collector 地图中出现的同步按钮表示现在正在引用本地数据。
第二个现场工作人员 (Mary) 将执行的步骤与 Joe 相同。这将导致在后端地理数据库中创建 Mary_InspectionFS 版本。
同步编辑内容
在现场中,Joe 被分配在地图的东侧进行工作。Joe 完成传感器检查后,将适当标记传感器要素的状态。如果传感器通过检查,将显示为绿色。如果传感器损坏且需要修复,则显示为红色。
如果 Joe 在一天结束时建立连接,需要单击 Collector 上的同步按钮。这会将编辑内容应用到后端地理数据库中的 Joe_InspectionFS 版本。
在一天结束时,Mary 还会从地图西侧同步她的传感器检查。
夜间运行地理数据库处理
在晚上,将运行自动过程以协调并提交现场工作人员编辑内容。该过程首先将每个现场版本与检查版本进行协调并提交。该过程将应用冲突策略,在该策略中将保留最后的编辑内容且基于属性进行冲突检测。
将现场中的所有编辑内容应用于检查版本中后,将在数据上运行验证脚本。这些脚本会查找并更正具有无效值或超出边界要素的编辑内容。例如,状态字段必须具有有效的状态值。如果该值无效,会将其设置回需要检查并使用黄点进行符号化。验证完成后,会将现场工作人员版本与检查版本进行协调以确保每个版本的更改内容均为最新的。
Joe 和 Mary 在第二天早上进行同步后,将可以看见彼此的更新内容。
注:
夜间处理过程还可与默认版本进行协调以引入由于启动项目而对默认版本进行的编辑。但项目经理仅选择在项目结束时与默认版本进行协调。该操作允许检测冲突并在提交到默认版本前手动进行检查。如果在项目结束时完成此过程,工作人员可能会对最终协调过程上未显示为冲突的这些要素执行其他编辑内容。
同时在此示例中还需注意将在夜间运行协调和提交现场工作人员编辑内容的自动过程。这表示现场工作人员在第二天之前不会看见由其他工作人员的最新编辑。要减少此延迟,可更频繁地运行该过程。例如,如果每小时运行一次此过程,现场工作人员可每小时进行一次同步以获取其他工作人员的最新编辑。
删除下载的地图并执行最终协调和提交过程
上述过程将在项目的一周时间范围内继续。完成对所有传感器的检查后,项目完成。现场工作人员需要在项目结束时同步最后的编辑内容并从 Collector for ArcGIS 中移除本地地图。从 Collector 中移除本地地图后,现场工作人员的版本将不再与下载的地图相关联。然后可停止并删除此要素服务。
已在所有现场工作人员的版本上完成最终协调和提交过程且已删除这些版本。然后,项目经理会将检查版本与默认版本进行协调并提交。会在此过程期间手动检查并解决冲突。完成后,最新的传感器检查信息可用于默认版本中的所有步骤。最后一步是删除检查版本。
工作流 3:下载用于正在进行的项目的地图
此示例工作流与之前的工作流相似(下载用于持续时间较短的项目的地图),因为现场工作人员同步了离线所做的编辑。然后在早上或一天结束的时候连接至网络并进行同步。但由于在此工作流中项目正在继续,因此从质量保证版本发布要素服务而不是直接从默认版本发布。这表示需要其他检查、协调和提交过程。
以下介绍了完成此工作流所需的步骤。
发布要素服务
对于此项目,项目经理计划在公司的组织帐户中创建并共享传感器检查的 Web 地图。该 Web 地图将引用公司的预置 ArcGIS Server 中运行的要素服务。
为创建要素服务,项目经理启动了 ArcMap 并添加了默认版本的预置企业级地理数据库中的传感器要素类。已将此要素类注册为版本。用黄色标记用于检查的传感器。
为组织工作,项目经理创建了一个名为“检查”的版本并更改了地图以引用此版本。
接下来,项目经理将从 ArcMap 发布 InspectionFS 要素。
项目经理将选中服务编辑器中的同步功能,因为该服务可用于离线地图中。项目经理还将单击高级选项显示要素服务高级选项。
在要素服务高级选项中,项目经理将选择为每位用户创建版本选项。借助此选项,现场工作人员首次下载地图时将为其创建版本。然后工作人员同步编辑内容时将使用此版本。
创建 Web 地图
发布要素服务后,项目经理将在 Portal for ArcGIS 中创建 Web 地图并会将其与所有成员均为现场工作人员的组进行共享。
项目经理将执行以下步骤:
- 登录到组织。
- 创建 Web 地图。
- 从刚刚发布的 ArcGIS Server 添加要素服务。
- 保存 Web 地图。
- 与包括现场工作人员的组共享 Web 地图和要素服务。
- 启用 Web 地图上的离线模式属性以使该地图可离线用于 Collector for ArcGIS。
下载 Web 地图
每个现场工作人员均可通过 Collector for ArcGIS 登录到他们的帐户来访问 Web 地图。
通过可用的 Web 地图,每个现场工作人员可启动 Collector 并登录到组织。随即显示新分享的 web 地图。
由于 Web 地图已启用了离线模式,因此在 Collector 中显示时具有下载按钮(标有箭头的云)。其中一个现场工作人员 (Joe) 单击下载按钮开始下载过程。
Joe 将为他的地图选择范围和底图分辨率。
下载进程开始时,将根据已发布的版本在后台地理数据库中创建一个名为 Joe_InspectionFS 的版本。由于要素服务已设置为为每个用户创建版本,版本名称将取决于现场工作人员的登录帐户 (Joe) 和从其中创建该版本的要素名称 (InspectionFS)。同步地图时将使用该版本。
注:
Joe 无论在何时从 InspectionFS 服务下载地图时,均要引用 Joe_InspectionFS 版本。例如,某些情况下 Joe 可能需要移除本地地图并使用较大的范围重新创建。再次下载地图时,Joe 将查看之前从 Joe_InspectionFS 版本同步的所有编辑内容。
下载数据和地图后,Collector 会将地图切换至引用本地数据。此时,无需连接网络即可编辑地图。Collector 地图中出现的同步按钮表示现在正在引用本地数据。
第二个现场工作人员 (Mary) 将执行的步骤与 Joe 相同。这将导致在后端地理数据库中创建 Mary_InspectionFS 版本。
Mary 和 Joe 在现场编辑内容时,办公室工作人员会向默认地图数据库添加新的传感器。新型传感器是此区域中新项目的结果。安装新型传感器后需要进行检测,因此显示为黄色。
同步编辑内容
在现场中,Joe 被分配在地图的东侧进行工作。Joe 完成传感器检查后,将适当标记传感器要素的状态。如果传感器通过检查,将显示为绿色。如果传感器损坏且需要修复,则显示为红色。
如果 Joe 在一天结束时建立连接,需要单击 Collector 上的同步按钮。这会将编辑内容应用到后端地理数据库中的 Joe_InspectionFS 版本。
在一天结束时,Mary 还会从地图西侧同步她的传感器检查。
夜间运行地理数据库处理
在晚上,将运行自动过程以协调并提交现场工作人员编辑内容。该过程首先将每个现场工作人员版本与检查版本进行协调并提交。该过程将应用冲突策略,在该策略中将保留最后的编辑内容且基于属性进行冲突检测。
将现场中的所有编辑内容应用于检查版本中后,将在检查版本的数据上运行验证脚本。这些脚本会查找并更正具有无效值或超出边界要素的编辑内容。
注:
此时,该过程中的 Mary_InspectionFS 版本会具有 Joe 的编辑内容,但 Joe_InspectionFS 版本不具有 Mary 的编辑内容。这是因为已在 Mary_InspectionFS 版本前协调并提交 Joe_InspectionFS 版本。
自动过程的下一步骤涉及将检查版本与默认版本进行协调并提交。将自动解决冲突并会使用基于属性的冲突检测。通过协调可将默认版本(新型传感器)中的编辑内容引入到检查版本中,而通过提交会将检查版本(Joe 和 Mary 的编辑内容)中的编辑内容应用到默认版本中。
会将每个现场工作人员版本与检查版本再次进行协调以完成该自动过程。现在,每个现场工作人员的版本将保持最新状态。
提示:
要将最新更改应用到现场工作人员,需要协调过程但不需要提交过程。一些组织可能会运行单独的过程以将编辑内容提交到默认版本,因为通过该操作可将编辑内容用于项目外部的其他成员。
Joe 和 Mary 在第二天进行同步时会看到其他现场工作人员版本的已更新传感器以及默认版本的新型传感器。由于位于地图的东侧,因此 Joe 将检查新型传感器并同步结果。夜间运行该过程后,Joe 针对新型传感器检查的信息将在第二天应用到默认版本中。
将每天不断重复此过程。只要 Joe 和 Mary 继续执行传感器检查,就会保留 Joe_InspectionFS 和 Mary_InspectionFS 版本。如果在某一时刻停止处理项目,则在 Joe 和 Mary 执行完最终同步、取消注册其本地地图且已在 Joe_InspectionFS 和 Mary_InspectionFS 版本上执行最终协调和提交过程后可移除这些版本。