Escrevi a expressão de rótulo abaixo para verificar o comprimento do tubo e o formato da seção transversal e determinar se um rótulo deve ser gerado para o tubo e como ele deve ser exibido. Ela funciona perfeitamente no ArcGIS Pro e, quando colo a expressão no ArcGIS Online, o código é validado e retorna uma string de teste como esperado (para ambas as funções de rótulo na expressão).
No entanto, nenhum rótulo é exibido no mapa. Tenho uma função semelhante (e mais simples) que está funcionando perfeitamente.
function ChooseLabelFormat(ML,PL,Sec){
//Chama a função de rótulo com base no formato do tubo
return When(
PL >= ML && Sec == 'Circular', GetMainLabel ($feature.NominalDiameter,$feature.Material),
PL >= ML && Sec != 'Circular', GetMainLabelNC ($feature.Material,$feature.BoxHeight,$feature.BoxWidth),
"")
};
function GetMainLabel(Dia,Mat){
//Retorna o diâmetro e/ou o material, excluindo os valores -999 e Unk
return When(
Dia !=-999 && Mat != "Unk", Dia + "'' " + Mat,
Dia !=-999 && Mat == "Unk", Dia + "''",
Dia ==-999 && Mat != "Unk", Mat,
"")
};
function GetMainLabelNC(Mat,BH,BW){
//Retorna a altura x largura e/ou o material, excluindo os valores -999 e Unk
return When(
BH !=-999 && Mat != "Unk", BH + "'' x " + BW + "'' " + Mat,
BH !=-999 && Mat == "Unk", BH + "'' x " + BW + "'' ",
BH ==-999 && Mat != "Unk", Mat,
"")
};
//Define as variáveis e chama a função para gerar o rótulo
var Section = DomainName($feature, 'CrossSectionShape');
// Define o valor MinLabel como o comprimento mínimo do elemento a ser rotulado:
var MinLabel = 50;
var PipeLen = $feature.SHAPE__Length; //var PipeLen = Length(Geometry($feature), 'feet')
return ChooseLabelFormat(MinLabel,PipeLen,Section);<SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>