教程:创建 Web 编辑应用程序

复杂程度: 中级 数据要求: 使用自备的数据 目标: 使用 ArcGIS Server 管理器创建可以在 Web 上执行编辑的应用程序。

通过 ArcGIS Server 可以创建用于编辑数据的 Web 应用程序,而无需编写任何代码。在 ArcGIS Server 管理器中创建此类应用程序。本示例显示了在管理器中创建 Web 编辑应用程序的方法。

创建应用程序实际上是大型工作流程的最后一步。此流程的第一步是使数据可供 ArcSDE 地理数据库使用。本示例使用了数据库服务器 (ArcSDE for SQL Server Express),因为它使用免费的 Microsoft SQL Server Express 数据库,并且可与工作组级别的 ArcGIS Server 结合使用。在数据可供 ArcSDE 使用之后,需要依据这些数据创建一个地图并相应地将其符号化。然后将此地图文档发布到 ArcGIS Server,以供 Web 应用程序的用户使用。最后,您将创建和配置 Web 应用程序与编辑任务。本文档介绍了此工作流程的各个部分。

使数据供 ArcSDE 使用

本教程不需要特别准备数据。建议您使用自己的数据(包含一些点、线、面图层)的一个子集。通过将自己的数据用于此测试应用程序,您就会对创建您的生产应用程序有充分的准备。

安装 ArcSDE

在管理器中创建 Web 编辑应用程序需要您的数据在 ArcSDE 地理数据库中可用,原因在于 ArcSDE 地理数据库允许多名用户同时编辑。这种情况与使用 Web 应用程序遇到的情况相同。

如果您的数据已经在 ArcSDE 中,可以跳过这一部分的其余内容。如果您的数据为其他格式,需要将其移动到 ArcSDE 中。构建小型部署的一个简单方法就是使用 ArcGIS Server Workgroup 含有的 ArcSDE,后者使用 Microsoft SQL Server Express 数据库。

如果还没有安装 ArcSDE for SQL Server Express,则首先需要安装此数据库。ArcSDE CD 或 DVD 随 ArcGIS Server 提供,其中包含一个安装指南,该指南可以帮助您完成安装和安装后配置。

注: 如果您要使用本教程并具有 ArcGIS Server Enterprise,还要保证数据已在 ArcSDE 中。否则,在继续本教程之前需要安装 ArcSDE Enterprise 并且将数据移动到其中。以下步骤仅供工作组级别的 ArcGIS Server 使用,不适用于 ArcGIS Server Enterprise。有关管理企业地理数据库的详细信息,请参阅 ArcGIS Desktop 帮助中的管理通过 ArcGIS Server Enterprise 获得许可的地理数据库部分。

创建地理数据库

如果已安装 ArcSDE for SQL Server Express,请按以下步骤创建地理数据库:

步骤:
  1. 启动 ArcCatalog 并找到数据库服务器结点。数据库服务器是一台包含 SQL Server Express 数据库和 ArcSDE for SQL Server Express 的计算机。在数据库服务器中可以添加和管理地理数据库。
  2. 双击添加数据库服务器并输入想要连接的 SQL Server Express 实例。大多数情况下,该实例格式为:<数据库服务器名称>\sqlexpress。列表中将显示此服务器。

    提示:如果连接数据库服务器遇到困难,请参阅数据库服务器疑难解答

  3. ArcGIS Server 对象容器 (SOC) 帐户需要权限才能从数据库服务器读取数据。右键单击刚添加的数据库服务器并单击权限
  4. 单击添加用户添加 SOC 帐户。
  5. 现在可以添加一个新的地理数据库。在数据库服务器列表中,右键单击之前添加的服务器并单击新建地理数据库
  6. 为新的地理数据库输入名称,然后设置位置初始大小。不必担心设置的初始大小过小;地理数据库会根据需要自动增大,直到达到 SQL Server Express 4 GB 的限制。
  7. 此前已经授予 SOC 帐户使用该数据库服务器的权限,但您现在还需要定义 SOC 帐户使用这个特定地理数据库的权限。右键单击新的地理数据库并单击管理 > 权限
  8. 单击该 SOC 帐户,授予它读/写权限,然后单击“确定”。

    提示:如果列表中没有该 SOC 帐户,请确认是否已经完成步骤 3 和 4。

  9. 可以使用 ArcCatalog 复制和粘贴任何想要添加至新的地理数据库的现有要素类。

关于属性域和子类型的注意事项

为了提升编辑器任务的用户体验并防止数据输入错误,在适当情况下可以配置数据集以使用子类型属性域。属性域和子类型可以对数据进行分类,并确保编辑数据时输入合适的值。某些情况下,编辑器任务可以检测并使用子类型和域。例如,如果有一个域将消火栓颜色限制为红色、黄色或蓝色,则编辑器任务会显示一个下拉列表,并只允许从这三种颜色中选择一个。

下图显示了部分编辑器任务,其中已将道路要素类配置为使用域。用户现在可以使用下拉列表对道路进行分类。

请记住,如果想要这些下拉列表在编辑器任务中可用,需要通过创建域和子类型来准备地理数据库。这一准备工作可以在发布服务或创建 Web 应用程序之前提早完成。

创作地图

Web 编辑应用程序使用的地图可以同时包含可编辑和不可编辑图层。按照以下步骤创建地图:

步骤:
  1. 启动 ArcMap 并打开一个新的空地图。
  2. 添加所有希望在地图上看到的图层。所添加图层中应至少包含一个 ArcSDE 地理数据库图层。因为只有 ArcSDE 地理数据库图层才可以通过编辑器任务进行编辑。
  3. 设置所需的符号系统和图层顺序。

    提示:如果基于唯一值设置图层的符号系统,那么各个不同的符号将作为单个按钮出现在编辑器任务中。这可以帮助用户快速选择所要创建的要素类型。例如,下图显示了当地图的建筑物图层应用了唯一值渲染器时,编辑器任务的外观。渲染器基于一个建筑物类型字段。该任务显示了创建各种建筑类型所需的按钮。单击绿色按钮允许用户创建一个住宅建筑物。

  4. 保存地图文档。

发布地图服务

地图文档完成后,可以将其作为地图服务发布。发布地图服务时,需要使其可供 ArcGIS Server 使用,这样就可以允许多名用户同时访问此服务。

选择池化或非池化

可以选择让服务在池化或非池化模式下可用。若使用池化服务,当您通过编辑会话工作时,可以与许多其他用户共享实例。相反,若使用非池化服务,整个编辑会话中从始至终都是您专用服务实例。使用非池化服务时,如果其他人需要与您同时使用该服务,必须另外建立一个实例,而这样势必会消耗服务器的资源。

在 Web 上编辑时可以同时使用池化服务和非池化服务。当使用池化服务编辑时,会即时保存每个编辑内容。这意味着数据不能版本化,也无法撤销编辑内容。但是,使用池化服务,可以容纳比非池化服务更多的同时编辑人员。

设置所需权限

在发布服务之前,请务必阅读并遵守准备要作为服务发布的资源提供的指导原则。这些指导原则将帮助您确保服务器有权限读取并访问所有地图数据。具体来说,SOC 帐户需要具有地图文档和地图文档中任何数据的读取权限。它还应具有任何所需编辑数据的写入权限。

发布服务

按照以下步骤发布可用于编辑的地图服务:

步骤:
  1. 登录 ArcGIS Server 管理器,然后单击发布地图、globe 或其他 GIS 资源作为服务

    提示:管理器中有两个向导可以用来发布服务。此链接指向发布 GIS 资源向导,这是创建服务最简单的方法。它只要求创建服务所需的最少信息量。

    创建服务的另一种方法是通过添加新服务向导完成。此向导以完全手动的方式发布服务,它会向您提示所有服务参数。

  2. 在此向导的第一页,提示您获取想要发布的资源。该资源即为您刚创建的地图文档。如果该地图文档在一个共享目录里,则可以通过浏览找到它。如果它没有在共享位置,请仔细输入此地图文档的路径。
  3. 为该服务加上名称。或者,如果服务按照文件夹分组,也可以选择想要发布服务所在的文件夹。单击下一步,移至向导的第二页。
  4. 请注意,制图功能默认启用。其他可用功能会随地图上图层类型的不同而有所差异。对于此示例,可以接受默认设置,然后单击下一步
  5. 向导的最后一页说明将创建此服务并为其指定 URL。单击完成发布服务并关闭向导。

重要信息:此向导默认创建池化服务。如果要执行版本化编辑或者要使用撤消/恢复功能,则需将其更改为非池化服务。在管理器中,单击服务选项卡,找到该服务,然后单击编辑(铅笔)图标。单击池化选项卡并将服务更改为非池化。单击保存

创建 Web 应用程序

只要具有一个正在运行的地图服务,就可以创建 Web 编辑应用程序。要实现这一点,请使用管理器向导界面创建一个 Web 制图应用程序。在此向导中所要做的最重要的事情就是为该应用程序选择要显示的地图(使用本地连接表示)并配置编辑器任务。

按照以下步骤创建 Web 应用程序:

步骤:
  1. 单击管理器中的应用程序选项卡,然后单击创建 Web 应用程序。会弹出一个帮助创建应用程序的向导。
  2. 为应用程序输入名称。此名称将显示在应用程序的 URL 中。也可以在管理器中输入使用说明,单击下一步
  3. 下一个页面帮助您选择想要显示在地图中的服务。您需要添加刚发布的包含可编辑图层的地图服务,因此请单击添加图层
  4. 检查可用服务对话框中的服务器列表。列表中是否有后跟 ArcGIS Server Local 字样的服务器名称?如果没有,需要单击添加 GIS 服务器,选择添加一个 ArcGIS Server 本地连接,然后输入服务器名称并单击添加

    请记住:有了 ArcGIS Server 本地连接才能进行编辑。虽然 Web 应用程序仍然可以通过 Internet 使用,但应用程序本身需要建立到 GIS 服务器的本地连接才能进行编辑。

  5. 成功添加服务器以后,您会看到可添加至地图的可用服务列表。单击刚发布的地图服务,再单击添加
  6. 在您看到图层已被成功添加的消息后,单击关闭关闭对话框,并单击下一步移至向导的下一个页面。
  7. 在此面板上,可以选择想要添加至应用程序的任务。因为您想要在应用程序中包含编辑器任务,所以单击添加任务。在可用任务项目列表中,单击编辑器,并单击确定
  8. 在编辑器任务仍然选中的情况下,单击配置。可以使用弹出的对话框(任务配置程序)执行以下操作:
    • 选择可以编辑的图层和版本

      您可能不希望将所有图层显示在地图上进行编辑。同样,也可能希望用户仅编辑指定的版本。在常规选项卡上,可以选中和取消选中可编辑的图层和版本。

    • 选择用户可以编辑的类型

      在配置程序的设置选项卡上,可以选择是否允许用户添加要素、编辑属性或编辑要素。例如,您可能希望用户能够添加新要素,但是要保证他们不会对数据库中的任何现有要素作出修改。

    • 设置选择规则

      要编辑要素,首先需要选中它。该配置程序给出了几个关于选择要素的选项,通过它们可以设置用户做出选择的方式以及可以同时选择的要素数量。可以在此设置这些选项,或者也可以选择通过任务显示这些选项,从而使每个用户可以按照自己的偏好对其进行设置。

    • 设置捕捉规则

      编辑某个要素时,可能需要共享一些现有要素的边界或折点。通过使用捕捉这种方法,您可以确保将某个元素放置到足够接近现有折点或边界时,这个元素能够共享该折点或边界。捕捉对于维护数据质量非常重要,它有助于避免拓扑问题,如超出预定点与狭长面之类的问题。

      在配置程序的设置选项卡上,可以设置捕捉规则,如可以捕捉的要素以及通过单击进行捕捉时需要多么近的距离(此距离称作捕捉容差)。

    • 设置冲突解决规则

      当两个人编辑相同的要素,然后又都保存了编辑内容,会发生什么?在配置程序的高级选项卡上,可以设置数据库处理上述情况的规则。有关各种冲突解决选项的详细信息,请参阅编辑器任务这一主题。

      如果正在编辑池化服务,则不能设置任何冲突解决选项,这是因为在非版本化的编辑环境中,会即时保存编辑内容。如果两个人编辑同一个要素,那么最后所做的编辑内容将保留在数据库中。

    提示:如果出现地图不包含可编辑图层的信息,请确认是否如本文档前文所述,已经指定 SOC 帐户对地理数据库具有读/写权限。您的地图必须至少包含一个地理数据库图层,然后才能进行编辑。

  9. 如果已经按照所需方式配置完编辑器任务,请单击确定关闭此对话框,并单击下一步移至向导的下一个页面。阅读有关本地连接的相关信息,如有必要,请更改用于进行本地连接的帐户。
  10. 您已经完成了配置编辑器任务的重要部分,因此可以单击下一步前进至向导的其余页面。可以通过这些页面自定义应用程序的外观。当您准备好创建应用程序后,请单击完成

使用 Web 编辑应用程序

查看新的 Web 应用程序时,在地图顶部会看到一个任务列表。可以从这个任务栏打开编辑器任务。编辑器任务在自己的浮动面板内运行,您可以在屏幕上移动该面板。

此应用程序具有内置帮助,可以通过单击右上角的帮助链接访问帮助。帮助中有一个“编辑数据”部分,此部分介绍了“编辑器任务”对话框中的所有工具。这个帮助在 HTML 中创建,因此如有必要,可以对其进行自定义。

在 Web 应用程序中编辑与在 ArcMap 中编辑略有不同。使用编辑器任务时,经常需要在环境中指向与单击,而在 ArcMap 中,更习惯于单击与拖动。此外,在捕捉时,指针不会自动跳转到屏幕上的捕捉点,但是只要将捕捉点放在捕捉范围内,就会发生捕捉。

本教程有助于为编辑人员准备一个练习应用程序,这样编辑人员就可以熟悉 Web 编辑环境。特别需要注意的是,如果编辑人员使用非版本化数据,则撤消/恢复功能不可用。


7/10/2012