ArcGIS Arcade 可用于计算使用 QuickCapture 捕获的记录中的字段。 工程作者可以编写表达式,该表达式将使用 Arcade 函数、运算符和记录值。
Arcade QuickCapture 配置文件包含以下变量,这些变量可用于返回记录值:
- $feature - 当前记录的属性
- $layer - 与当前记录位于同一图层中的要素
- $datastore - 与当前记录位于同一要素服务或数据库中的图层
- $map - QuickCapture 工程使用的 web 地图中的要素服务图层集合
有关详细信息,请参阅 QuickCapture 配置文件变量。
默认情况下,工程 web 地图不包含工程图层,因此,为了能够使用按名称引用图层的表达式,例如 var layername = FeatureSetByName($map, "layer_name"),您必须在配置 QuickCapture 工程时选择创建 web 地图的选项,或者使用包含表达式所需所有图层的 web 地图替换默认 web 地图。 有关详细信息,请参阅工程地图配置。
注:
如果计划在工程中使用 Arcade 表达式,请检查工程图层和 web 地图中是否存在仅日期、仅时间、时间戳偏移或大整型字段类型。 必须创建排除这些字段的托管要素图层视图,并改用工程中的图层视图。 这些字段类型不适用于 QuickCapture 移动应用程序中使用的 Arcade 版本 (1.18)。
以下是可以构造为 Arcade 表达式的示例用例:
- 根据来自另一个字段的值计算值
- 执行多边形内点查询以返回属性值
- 使用函数以计算捕获的折线的持续时间
QuickCapture 设计器包含一个表达式构建器,以帮助作者编写表达式并使用 QuickCapture 配置文件。 类似于定义一次用户输入,即可将其用于多个按钮的方式,将 Arcade 表达式保存在设计器中后,即可将其分配给多个按钮。
工程作者可以在数据选项卡上为每个字段配置 Arcade 表达式。 要将 Arcade 表达式分配给按钮的捕获字段,请从数据选项卡上捕获字段的下拉菜单中选择 Arcade 表达式,然后选择新建。
由 ArcGIS 管理的字段(例如 OBJECTID、GlobalID、CreationDate、Creator、EditDate 和 Editor)不应用于表达式中,因为只有在提交记录后,才知道这些字段的值。 如果表达式需要用户名或记录捕获日期的值,则该表达式应引用已使用设备变量填充的字段。
注:
仅当设备下次在线时,才会对设备离线时捕获的包含 Arcade 表达式的记录进行处理,然后才会发送这些记录。