你好!我试图返回别名字段名,而不是在街机托管功能层弹出的实际字段名。基本上,我正在搜索我的特征层的任何字段的值“Yes”,并希望返回一个字段列表。我试图使用模式函数,但不断得到一个语法错误。有人知道我哪里做错了吗?
//创建一个特征集,我的层叫做ParkRecreationFacilities
var features = FeatureSetByName($map,"Park_and_Recreation_Facilities_public - Park and Recreation Facilities", ['*'], false);
//创建一个包含模式的字典
var aDict =模式(特征);
//创建一个包含字典字段信息的数组
var aArray = aDict["fields"];
//直接访问字段位置1的字典
var adit2 = aArray;
//创建输出变量,该变量将提取别名字段名
var output = aDict2["alias"];
var returnstring = "Yes"
For (var I in $feature) {
If ($feature[i] == returnstring) {
output += i + TextFormatting.NewLine;
}
}
返回输出
解决了!转到解决方案。
发生的事情是你的var输出行失败,因为它不是一个字典,而是一个字典数组。你必须遍历每一个才能得到正确的别名。
下面是显示别名的一种方法
var features = FeatureSetByName($map, 'your layer', ['*'], false);var aDict =模式(特征);var aArray = aDict["fields"];var输出;{if ($feature[i] == 0) {for(var j in aArray) {var dict = aArray[j];如果(dict['名称')= =我){/ /控制台(dict(“别名”));output += dict['alias'] + TextFormatting.NewLine;}}}}返回输出;
注意:忽略“return output:”后面的代码。解析器发生了一些奇怪的事情。
发生的事情是你的var输出行失败,因为它不是一个字典,而是一个字典数组。你必须遍历每一个才能得到正确的别名。
下面是显示别名的一种方法
var features = FeatureSetByName($map, 'your layer', ['*'], false);var aDict =模式(特征);var aArray = aDict["fields"];var输出;{if ($feature[i] == 0) {for(var j in aArray) {var dict = aArray[j];如果(dict['名称')= =我){/ /控制台(dict(“别名”));output += dict['alias'] + TextFormatting.NewLine;}}}}返回输出;
注意:忽略“return output:”后面的代码。解析器发生了一些奇怪的事情。
是的!谢谢你!我不得不调整一个小东西,它工作!万岁!这是最终的语法:
var features = FeatureSetByName($map, 'Park_and_Recreation_Facilities_public - Park and Recreation Facilities', ['*'], false);
var aDict =模式(特征);
var aArray = aDict["fields"];
var输出;
For (var I in $feature){
if ($feature[i] == "是"){
for(var j in aArray) {
var dict = aArray[j];
If (dict['name'] == i){
output += dict['alias'] + TextFormatting.NewLine;
}
}
}
}
返回输出;
大家好!
我不是一个专家与街机我正在寻求帮助,以解决一个问题
所以我用这段代码在弹出窗口中隐藏空字段它有用吗但是我想把“字段名”改为“字段别名”
这是一张相关的桌子,但我想这没有问题。
谢谢大家!
var skipFields = ['Creator', 'CreationDate', 'Editor', 'EditDate', 'OBJECTID', 'GlobalID'];var allFields = ";for(var i in $feature){var skip = False;for(var j in skipFields){if(Text(i) == Text(skipFields[j])){skip = True;}} if(isEmpty($feature[i])){控制台(连接('Null Field: ', i));} else if(跳过){控制台(连接('跳过字段:',i));} else {Console(Concatenate('包括字段:',i));allFields = Concatenate([allFields, Upper(i), TextFormatting.]换行,文本($feature[i]),文本格式。换行符,TextFormatting.NewLine]);}}控制台(allFields);返回allFields;