操作方法
在 Portal for ArcGIS 和 ArcGIS Online Map Viewer 中,自动识别范围内的缺失数字可以简化错误检测和更正过程。 对于大型数据集而言,这一点尤其重要,因为人工检查几乎无法实现。
本文介绍了在 Portal for ArcGIS 和 ArcGIS Online Map Viewer 中使用 Arcade 在弹出窗口字段中标识缺失数字范围的工作流。 在本示例中,TestNumber 字段中列出的数字范围(1 到 20)中缺失一些数字,如下图所示。
var range = [];
for (var i = 1; i <= 20; i++) {
Push(range, i);
}
var features = FeaturesetByName($map, "<layerName>", ["<fieldName>"]);
var testNumbers = [];
for (var f in features) {
if (!IsEmpty(f.TestNumber)) {
Push(testNumbers, Number(f.TestNumber));
}
}
if (Count(testNumbers) == 0) {
return "No test numbers available.";
}
testNumbers = Sort(testNumbers);
var missingNumbers = [];
for (var i in range) {
if (IndexOf(testNumbers, range[i]) == -1) {
Push(missingNumbers, range[i]);
}
}
var missingNumbersString = Concatenate(missingNumbers, ", ");
if (Count(missingNumbers) == 0) {
return "No missing test numbers within the range 1 to 20.";
} else {
return "Missing test numbers within the range 1 to 20: " + missingNumbersString;
}
以下代码显示了完整的工作脚本范例:
var range = [];
for (var i = 1; i <= 20; i++) {
Push(range, i);
}
var features = FeaturesetByName($map, "Pointsss", ["TestNumber"]);
var testNumbers = [];
for (var f in features) {
if (!IsEmpty(f.TestNumber)) {
Push(testNumbers, Number(f.TestNumber));
}
}
if (Count(testNumbers) == 0) {
return "No test numbers available.";
}
testNumbers = Sort(testNumbers);
var missingNumbers = [];
for (var i in range) {
if (IndexOf(testNumbers, range[i]) == -1) {
Push(missingNumbers, range[i]);
}
}
var missingNumbersString = Concatenate(missingNumbers, ", ");
if (Count(missingNumbers) == 0) {
return "No missing test numbers within the range 1 to 20.";
} else {
return "Missing test numbers within the range 1 to 20: " + missingNumbersString;
}
按钮。下图通过弹出窗口显示了根据指定范围列出的缺失数字。

文章 ID: 000032685
获取来自 ArcGIS 专家的帮助
立即开始聊天