You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ArcGIS Online Arcade中获取Feature Set指定属性值

获取Arcade自定义Feature Set中要素的属性值

你之前通过joinedDict.fields[3].name拿到的是字段定义的名称,因为joinedDict.fields是用来描述FeatureSet结构的元数据,并非实际存储要素属性的地方。要获取具体的属性数值,需要访问joinedDict.features数组里的要素对象——每个要素的attributes属性才是存储属性值的容器。

以下是几种常见的获取方式:

1. 获取单个要素的指定属性值

如果只需要取第一个要素的AddressCount,可以直接访问features数组的索引,再读取对应属性:

// 取features数组中的第一个要素(索引从0开始)
var targetFeature = joinedDict.features[0];
// 提取该要素的AddressCount属性值
var addressCountValue = targetFeature.attributes.AddressCount;
return addressCountValue;

2. 遍历所有要素,收集属性值

如果需要批量获取所有要素的AddressCount,可以用循环遍历features数组:

var addressCountList = [];
// 遍历features数组中的每个要素
for (var feat in joinedDict.features) {
    // 将当前要素的AddressCount加入数组
    Push(addressCountList, feat.attributes.AddressCount);
}
// 返回所有AddressCount组成的数组
return addressCountList;

3. 直接操作转换后的FeatureSet

你最后已经将joinedDict转换为了FeatureSet对象,也可以直接遍历这个FeatureSet来读取属性,写法更简洁:

// 先将字典转换为FeatureSet
var resultFeatureSet = FeatureSet(Text(joinedDict));
var total = 0;
// 遍历FeatureSet中的每个要素
for (var f in resultFeatureSet) {
    // 直接通过字段名访问属性值(无需.attributes)
    total += f.AddressCount;
}
// 返回所有AddressCount的总和
return total;

注意事项

  • 确保joinedDict.features数组不为空,否则访问索引会报错,可提前加判断:if (Count(joinedDict.features) > 0) { ... }
  • 字段名严格区分大小写,必须和你在joinedDict.fields中定义的name完全一致

内容的提问来源于stack exchange,提问作者spiderman90

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 12:30:43