自动化 Field Maps

您可以自动化 ArcGIS Field Maps 以简化您准备地图并将其部署到外业的方式。 您可以使用 Webhook 和脚本来自动执行各种任务,例如在地图之间复制表单以及在检查资产时自动生成电子邮件通知。 以下是自动执行 Field Maps 任务的两种方法:

  • Make 中设置 webhook(之前称为 Integromat)- 当移动工作人员在外业中创建、编辑或删除要素时,接近实时地自动接收通知。
  • 使用 ArcGIS API for Python — 使用 Python 脚本和笔记本来配置和部署地图以及管理和分析 Field Maps 中收集的数据。

Make 中设置 webhook

Webhook 允许应用程序为其他应用程序提供事件驱动型信息。 webhook 的常见用途包括通过电子邮件或 SMS 发送通知、向社交媒体发布消息、自动将记录写入电子表格,以及更新企业级数据库。 Field Maps 通过第三方工作流自动化服务 Make(之前称为 Integromat)支持 webhook。 Make 有一个内置的 Field Maps 应用程序,可让您将 Field Maps 集成到 Webhook 工作流中。 您可以通过以下方式集成 Field Maps 应用程序:

  • 触发 webhook - 观察要素触发对在 Field Maps 移动应用程序中添加、编辑或删除的要素的观察。
  • 发出 API 调用 - 发出 API 调用操作允许您向 ArcGIS Web 服务发出 API 请求。
注:

Make 中的 Field Maps 应用程序仅支持托管要素服务,目前 ArcGIS Enterprise 不支持。

添加 Field Maps 应用程序

要将 Field Maps 应用程序添加至 Make 中的 webhook,请完成以下步骤:

  1. 浏览至 https://www.make.com/ 并登录。

    如果您没有帐户,请免费注册开始使用。

  2. 单击创建新方案
  3. 搜索 ArcGIS Field Maps,将其选中并单击继续

    ArcGIS Field Maps 应用程序在您的方案中列为收藏。

  4. 单击屏幕中间的模块按钮,然后从菜单中选择 ArcGIS Field Maps

    将添加 ArcGIS Field Maps 应用程序。 您可以使用该应用程序触发 Webhook对 ArcGIS Web 服务发出 API 调用

连接到 ArcGIS 组织

如果您首次在 Make 中使用 Field Maps,则需要设置与 ArcGIS 组织的连接。 您如何连接到您的组织取决于您使用的模块和您正在访问的服务。

将观察要素触发器连接到 ArcGIS 组织

要将观察要素触发器连接到 ArcGIS 组织,请完成以下步骤:

  1. Field Maps 应用程序添加到 Make 中的 webhook。
  2. 选择观察要素触发器。
  3. Webhook 下,单击添加
  4. 连接下,单击添加并为连接 ArcGIS 命名。

    要连接到 ArcGIS Online,请单击继续以登录到您的 ArcGIS 组织。

您可以在 Make连接选项卡上查看和编辑您建立的连接。 要在 ArcGIS 中连接到多个 Web 服务,您可能需要创建多个连接。 例如,如果您使用发出 API 调用模块查询要素图层并使用另一个发出 API 调用模块访问共享 API,则您需要单独连接到每个服务。

注:

如果您在 90 天内未使用连接,则刷新令牌将过期,您必须重新连接到您的 ArcGIS 组织。 如果为您的组织配置了 maxTokenExpirationMinutes 并且少于 90 天,则刷新令牌将根据该值到期。

将发出 API 调用操作连接到 ArcGIS 组织

要将发出 API 调用操作连接到 ArcGIS 组织,请完成以下步骤:

  1. Field Maps 应用程序添加到 Make 中的 webhook。
  2. 选择发出 API 调用操作。
  3. 连接下,单击添加并提供以下内容:
    1. 连接名称 - 提供连接的名称,例如 ArcGIS。
      注:

      如果要访问共享 API,请单击继续以登录到您的 ArcGIS 组织,而不是完成以下子步骤。

    2. 子域 - 指定服务连接到的位置。 例如,如果您要连接到要素服务,请输入 services

      注:

      如果您要连接到要素服务,请查看要使用的子域的要素图层的项目页面。 在 URL 下,显示的链接开始于 https://<services>.arcgis.com。 使用 <services> 中的文本作为子域将模块连接到要素服务。

    3. ArcGIS Online URL - 单击显示高级设置并为 ArcGIS 组织提供 URL。

      要连接到 ArcGIS Online,请单击继续以登录到您的 ArcGIS 组织。

您可以在 Make连接选项卡上查看和编辑您建立的连接。 要在 ArcGIS 中连接到多个 Web 服务,您可能需要创建多个连接。 例如,如果您使用发出 API 调用模块查询要素图层并使用另一个发出 API 调用模块访问共享 API,则您需要单独连接到每个服务。

注:

如果您在 90 天内未使用连接,则刷新令牌将过期,您必须重新连接到您的 ArcGIS 组织。 如果为您的组织配置了 maxTokenExpirationMinutes 并且少于 90 天,则刷新令牌将根据该值到期。

使用 Field Maps 应用程序触发 webhook

Field Maps 或其他应用程序(例如 Map Viewer)中创建、更新或删除要素时,可以设置和激活 Webhook。 例如,在 Field Maps 中收集新要素后,Webhook 可以触发另一个操作,例如发送电子邮件通知。 在 Make 中完成以下步骤以创建 Webhook,每次在 Field Maps 移动应用程序中创建、更新或删除功能时都会发送电子邮件通知:

注:

有关分步教程,请参阅自动化字段更新的电子邮件通知博客文章和使用 Make 自动化电子邮件通知视频。

  1. Field Maps 应用程序添加到 Make 中的 webhook。
  2. 选择观察要素触发器模块。

    每次创建、更新或删除要素时,此模块都会运行该方案。

    方案图标随即更改颜色,并显示一个窗口以帮助您配置 Field Maps 模块。

  3. 单击添加并提供 webhook 的名称。
    将使用 webhook 的工程或地图的名称必须唯一。
  4. 如果您首次在 Make 中使用此模块,则需要设置与 ArcGIS 组织的连接
    注:

    如果您为发出 API 调用模块创建了一个连接,您可以将该连接重复用于观察要素模块。

  5. 要素图层下,从您的 ArcGIS 组织中选择要连接的可编辑要素图层。
  6. 选择以下一项或多项触发事件以包含在 Webhook 中:
    • 已创建要素 - 在创建要素时触发方案。
    • 已更新要素 - 在更新要素时触发方案。
    • 已删除要素 - 在删除要素时触发方案。
  7. 单击保存
  8. 单击确定

    Field Maps 模块已配置。

  9. 工具部分,单击流程控制
  10. 从选项列表中,选择迭代器

    迭代器模块将自动连接到 Field Maps 模块。 如果同时返回多个要素,它允许 webhook 迭代一组要素。

  11. 选择迭代器模块并单击数组文本框。
  12. ArcGIS Field Maps - 观察要素服务下的下拉菜单中,查找并选择以下数组之一:
    • 添加 [] - 用于正在创建的要素
    • 更新 [] - 用于正在更新的要素
    • 删除 ID [] - 用于正在删除的要素
  13. 单击确定
  14. 单击迭代器模块旁边的添加另一个模块按钮。
  15. 搜索要使用的电子邮件服务,例如 Microsoft 365 Email,然后选择应用程序。
  16. 选择创建并发送消息操作。
  17. 如果您首次在 Make 中使用模块,请单击添加以设置与电子邮件帐户的连接。 选择连接类型并登录到您的帐户。

    您只需执行一次。 Make 保存连接以供将来使用。

  18. 向电子邮件添加主题正文内容文本。

    您可以使用映射来包含图层中的属性以设置文本框的格式。 如果您使用映射,请添加来自迭代器模块的图层属性。

  19. 添加收件人电子邮件地址。

    这是触发电子邮件将发送到的电子邮件地址。

  20. 单击确定
  21. 单击保存以保存您的方案。

    或者,单击运行一次以测试 webhook。 单击运行一次后,请打开 Field Maps 并收集、更新或删除要素。 确认收件人将收到电子邮件。

  22. 使用计划切换按钮以激活方案。 将计划设置为立即以确保每次要素更新时,该方案都会运行。
注:

有关 Make 支持,请参阅 Make 文档

使用 Field Maps 应用程序发出 API 调用

Field Maps 应用程序可用于向 ArcGIS Web 服务发出 API 请求。 例如,如果用户在 Field Maps 中收集了一个新要素,您可以使用发出 API 调用模块来检索该用户的电子邮件地址并向他们发送电子邮件。 您还可以使用该模块查询要素图层并创建要素,例如 Workforce 任务。 以下是如何使用 Field Maps 应用程序发出 API 请求的示例:

向共享 API 发出请求

共享 API 允许您请求有关组织中的用户、群组和内容的信息。 您可以使用它来查找用户信息、搜索地图、查看内容等。 您可以在 Webhook 中使用 Field Maps 应用程序从共享 API 中检索信息。 例如,要向刚完成检查的用户发送电子邮件,您可以使用 Field Maps 应用程序检索他们的电子邮件地址。 要将 Field Maps 应用程序配置为从共享 API 检索用户信息,请完成以下步骤:

  1. Field Maps 应用程序添加到 Make 中的 webhook。
  2. 选择发出 API 调用操作模块。

    方案图标随即更改颜色,并显示一个窗口以帮助您配置 Field Maps 模块。

  3. 如果您首次在 Make 中使用此模块,则需要设置与 ArcGIS 组织的连接
    注:

    如果您为观察要素模块创建了一个连接,您可以重用该连接来连接到发出 API 调用模块中的共享 API。

  4. URL 下,提供到共享 API 的路径。

    对于本示例,使用以下路径访问用户信息:

    /sharing/rest/community/<username>
    有关详细信息,请参阅共享 API 简介

  5. 方法下,选择获取
  6. 查询字符串下,单击添加项目
  7. 提供以下输入:
    1. - f
    2. - json
  8. 单击确定
  9. 单击保存以保存您的方案。

触发后,Field Maps 模块将从共享 API 中检索用户信息。

注:

有关 Make 支持,请参阅 Make 文档

发出请求查询要素图层

您可以发出 API 请求查询要素图层。 例如,您希望通过电子邮件向您发送当天汇总信息。 您可以设置 Field Maps 应用程序来查询一天检查的统计数据并将其包含在电子邮件中。 要配置 Field Maps 应用程序查询要素图层,请完成以下步骤:

  1. Field Maps 应用程序添加到 Make 中的 webhook。
  2. 选择发出 API 调用操作模块。

    方案图标随即更改颜色,并显示一个窗口以帮助您配置 Field Maps 模块。

  3. 如果您首次在 Make 中使用此模块,则需要设置与 ArcGIS 组织的连接
  4. URL 下,提供您要查询的要素服务的路径:

    /<org-id>/arcgis/rest/services/<layer-name>/FeatureServer/<layer-id>/query

    有关详细信息,请参阅查询(要素服务/图层)
  5. 方法下,选择获取
  6. 添加查询字符串项目。
    1. 查询字符串下,单击添加项目并提供以下输入:

      1. - f
      2. - json

    2. 单击添加
    3. 单击添加项目并提供以下输入:

      1. - where
      2. - 1=1

    4. 单击添加
    5. 单击添加项目并提供以下输入:

      1. - outFields
      2. - *

    6. 单击添加
  7. 单击确定
  8. 单击保存以保存您的方案。

触发后,Field Maps 模块将根据您提供的参数查询要素图层。

注:

有关 Make 支持,请参阅 Make 文档

发出请求创建要素

您可以发出 API 请求创建要素。 例如,如果在 Field Maps 中完成了消火栓检查,则可以触发在 ArcGIS Workforce 中创建任务要素。 要配置 Field Maps 应用程序将要素添加到图层,请完成以下步骤:

  1. Field Maps 应用程序添加到 Make 中的 webhook。
  2. 选择发出 API 调用操作模块。

    方案图标随即更改颜色,并显示一个窗口以帮助您配置 Field Maps 模块。

  3. 如果您首次在 Make 中使用此模块,则需要设置与 ArcGIS 组织的连接
  4. URL 下,提供您要添加要素的要素服务的路径:

    /<org-id>/arcgis/rest/services/<layer-name>/FeatureServer/<layer-id>/applyEdits

    有关详细信息,请参阅应用编辑内容(要素服务/图层)
  5. 方法下,选择发布
  6. 标题下,单击编辑
  7. 更改为 application/x-www-form-urlencoded
  8. 单击保存
  9. 正文下,输入 f=json&adds=[<json-object>]

    <json-object> 的值必须为代表要素的 JSON 字符串。 要使用的确切规范取决于您的图层。 有关详细信息,请参阅要素对象

  10. 单击确定
  11. 单击保存以保存您的方案。

触发后,Field Maps 模块将向图层中添加要素。

注:

有关 Make 支持,请参阅 Make 文档

使用 ArcGIS API for Python

使用 ArcGIS API for PythonField Maps 自动执行任务并编写脚本。 您可以使用表单模块来创作和编辑用于数据收集的表单,并且您可以访问 GitHub 上的 Field Maps 脚本存储库,例如脚本和笔记本。 脚本和笔记本允许您自动执行任务,例如在地图之间复制表单和从要素图层下载附件。

注:

要使用表单模块,必须使用 ArcGIS API for Python 1.9.0 或更高版本。