操作方法
在 ArcGIS Online 和 Portal for ArcGIS Map Viewer 中,通过 Arcade 表达式配置的弹出窗口可以跨多个要素字段显示和排序字段名称及其值。 这使得判断面内事件数量最多或最少的产品或问题变得更加直观。 本文提供了示例和使用 Arcade 表达式的说明,指导用户在 Map Viewer 中创建弹出窗口,展示字段名称和值按降序排列的多个字段。
下图显示了 Map Viewer 弹出窗口中各字段及记录的分隔效果。
function Comp (a, b) { When( IsEmpty(a[1]), -1, IsEmpty(b[1]), 1, Iif(a[1]>b[1], 1, -1) ); };
var <variableName1> = [ ["<fieldName1>", $feature.<fieldName1>], ["<fieldName2>", $feature.<fieldName2>], ["<fieldName3>", $feature.<fieldName3>], ["<fieldName4>", $feature.<fieldName4>], ["<fieldName5>", $feature.<fieldName5>], ["<fieldName6>", $feature.<fieldName6>], ["<fieldName7>", $feature.<fieldName7>], ["<fieldName8>", $feature.<fieldName8>], ["<fieldName9>", $feature.<fieldName9>], ];
<variableName1> = Reverse(Sort(<variableName1>, Comp));
var <variableName2> = ""; for (var i in <variableName1>) { if (<variableName2> == "") { <variableName2> = Replace(Replace(Replace(<variableName1>[i], '["', ""), '",', ": "), ']', ""); } else { <variableName2> += TextFormatting.NewLine + Replace(Replace(Replace(<variableName1>[i], '["', ""), '",', ": "), ']', ""); } } return <variableName2>;
下面的代码块是完整工作表达式的示例。
function Comp (a, b) { When( IsEmpty(a[1]), -1, IsEmpty(b[1]), 1, Iif(a[1]>b[1], 1, -1) ); }; var arr = [ ["BREASTCANCER", $feature.BREASTCANCER], ["CARDIOVASCULAR", $feature.CARDIOVASCULAR], ["CERVICALCANCER", $feature.CERVICALCANCER], ["COLONCANCER", $feature.COLONCANCER], ["DIABETES", $feature.DIABETES], ["INFLUENZA", $feature.INFLUENZA], ["LUNGCANCER", $feature.LUNGCANCER], ["PROSTATECANCER", $feature.PROSTATECANCER], ["SKINCANCER", $feature.SKINCANCER], ]; arr = Reverse(Sort(arr, Comp)); var result = ""; for (var i in arr) { if (result == "") { result = Replace(Replace(Replace(arr[i], '["', ""), '",', ": "), ']', ""); } else { result += TextFormatting.NewLine + Replace(Replace(Replace(arr[i], '["', ""), '",', ": "), ']', ""); } } return result;
下图展示了使用 Arcade 表达式后,弹出窗口中新增的 Diseases-Sorted 字段,其中多个字段名称及其值按降序排列。
获取来自 ArcGIS 专家的帮助
下载 Esri 支持应用程序