Vytvořil jsem níže uvedený výraz pro popisky, který kontroluje délku potrubí a tvar průřezu a podle toho určuje, zda a jak se popisek potrubí vytvoří. V ArcGIS Pro funguje bez problémů a když výraz vložím do ArcGIS Online, kód se ověří a vrátí očekávaný testovací řetězec (pro obě funkce popisků ve výrazu).
Na mapě se však žádné popisky nezobrazují. Podobnou (a jednodušší) funkci mám, která funguje bez problémů.
function ChooseLabelFormat(ML,PL,Sec){
//Volá funkci pro popisek podle tvaru potrubí
return When(
PL >= ML && Sec == 'Kruhový', GetMainLabel ($feature.NominalDiameter,$feature.Material),
PL >= ML && Sec != 'Kruhový', GetMainLabelNC ($feature.Material,$feature.BoxHeight,$feature.BoxWidth),
"")
};
function GetMainLabel(Dia,Mat){
//Vrací průměr a/nebo materiál, s výjimkou hodnot -999 a Unk
return When(
Dia !=-999 && Mat != "Unk", Dia + "'' " + Mat,
Dia !=-999 && Mat == "Unk", Dia + "''",
Dia ==-999 && Mat != "Unk", Mat,
"")
};
function GetMainLabelNC(Mat,BH,BW){
//Vrací výšku x šířku a/nebo materiál, s výjimkou hodnot -999 a Unk
return When(
BH !=-999 && Mat != "Unk", BH + "'' x " + BW + "'' " + Mat,
BH !=-999 && Mat == "Unk", BH + "'' x " + BW + "'' ",
BH ==-999 && Mat != "Unk", Mat,
"")
};
//Nastaví proměnné a zavolá funkci pro popisky
var Section = DomainName($feature, 'CrossSectionShape');
// Nastaví hodnotu MinLabel jako minimální délku prvku, pro kterou se zobrazí popisek:
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>