操作方法

操作方法:在 ArcGIS Online 中使用 Arcade 根据其他要素图层字段的属性填充要素图层字段

Last Published: February 22, 2024

描述

在 ArcGIS Online 中,可以使用 Arcade 表达式使用其他要素图层中的属性值来填充图层中的字段。 此方法可用于增强数据完整性以及实现跨图层同步分析。

在本文中,将使用名为 Cities 和 ClimateData 的两个要素图层。 Cities 要素图层包含名为 CityAddress 和 ClimateLocationID 的两个字段。 ClimateData 要素图层另外包含名为 ClimateAddress 和 LocationID 的两个字段。 当 CityAddress 字段值与 ClimateAddress 字段值相匹配时,将在 ClimateLocationID 字段中自动填充 LocationID 值。

下图显示了 Cities 和 ClimateData 要素图层的属性表。

属性表显示了 Cities 要素图层
属性表显示了 ClimateData 要素图层

解决方案或解决方法

  1. 在 ArcGIS Online 中,单击托管要素图层。 在项目详细信息页面上,单击数据选项卡。
  2. 视图中,单击字段标头并选择计算。 在本示例中,将选择 ClimateLocationID。
  3. 计算字段对话框中,单击 Arcade
  4. Arcade 计算器对话框中,指定表达式字段,如下所示:
var <variable1> = FeatureSetByPortalItem(Portal('https://www.arcgis.com'), '<Item_ID>', <layer_index), ['*'], false);
  1. 将 <variable1> 替换为所需变量名称。 在本示例中,将使用 climateDataLayer。
  2. 将 <Item_ID> 替换为托管图层的项目 ID。
  3. 将 <layer_index> 替换为值 0 或 1。 第一个图层的索引为 0,而第二个图层的索引为 1。 在本示例中,将使用 0 作为要填充的第一个图层。
var <variable2> = $feature['<field_name1>']; 

for (var<variable3> in <variable1> ) {
 var <variable4> = climateFeature['<field_name2>'];
 
    if <variable2> == <variable4>) {
        return <varibale3>['<field_name3>'];
    }
}

null
  1. 将 <variable2>、<variable3> 和 <variable4> 替换为所需变量名称。 在本示例中,将使用 cityAddress、climateFeature 和 climate Address。
  2. 将 <field_name1> 替换为第一个要素图层中的字段名称。 在本示例中,将使用 CityAddress。
  3. 将 <field_name2> 替换为第二个要素图层中的字段名称。 在本示例中,将使用 ClimateAddress。
  4. 将 <field_name3> 替换为第二个要素图层中的字段名称以提取字段值。 在本示例中,将使用 LocationID。

以下是 Arcade 表达式的完整工作代码。

var climateDataLayer = FeatureSetByPortalItem(Portal('https://www.arcgis.com'), 'fd3161f30d6f47aba8b58f6fcb5ed488', 0, ['*'], false);

var cityAddress = $feature['CityAddress']; 

for (var climateFeature in climateDataLayer) {
    var climateAddress = climateFeature['ClimateAddress'];

    if (cityAddress == climateAddress) {
        return climateFeature['LocationID']; 
    }
}

null
  1. 单击测试以验证表达式,然后单击确定以应用查询。
Arcade 表达式配置.jpg

当 CityAddress 字段值与 ClimateAddress 相匹配时,以下属性表显示了 Cities 要素图层的 ClimateLocationID 字段,该字段填充了 ClimateData 要素图层的 LocationID 字段中的值。

ClimateLocationID 字段由 LocationID 字段值填充.png

文章 ID: 000031934

获得人工智能支持

使用 Esri Support AI Chatbot 快速解决您的问题。

立即开始聊天

获取来自 ArcGIS 专家的帮助

联系技术支持部门

立即开始聊天

转至下载选项