J’ai écrit l’expression d’étiquetage ci-dessous pour vérifier la longueur et la forme de la section transversale d’une conduite afin de déterminer si une étiquette doit être générée pour celle-ci et, le cas échéant, laquelle. Elle fonctionne très bien dans ArcGIS Pro et, lorsque je colle l’expression dans ArcGIS Online, le code est validé et renvoie une chaîne de test comme prévu (pour les deux fonctions d’étiquetage de l’expression).
Cependant, aucune étiquette ne s’affiche sur la carte. J’ai une fonction similaire (et plus simple) qui fonctionne très bien.
function ChooseLabelFormat(ML,PL,Sec){
//Calls the label function based on pipe shape
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){
//Returns Diameter and/or material excluding -999 and Unk values
return When(
Dia !=-999 && Mat != "Unk", Dia + "'' " + Mat,
Dia !=-999 && Mat == "Unk", Dia + "''",
Dia ==-999 && Mat != "Unk", Mat,
"")
};
function GetMainLabelNC(Mat,BH,BW){
//Returns HeightxWidth and/or material excluding -999 and Unk values
return When(
BH !=-999 && Mat != "Unk", BH + "'' x " + BW + "'' " + Mat,
BH !=-999 && Mat == "Unk", BH + "'' x " + BW + "'' ",
BH ==-999 && Mat != "Unk", Mat,
"")
};
//Set variables and call function for labeleling
var Section = DomainName($feature, 'CrossSectionShape');
// Set MinLabel value as the minimum feature length to be labeled:
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>