Hi Esther and Gonzalo,
Thanks for the repro.
The additional values required are:
labelBuilder.AppendLine("\"allowOverlapOfFeatureBoundary\": \"allow\" ,");
labelBuilder.AppendLine("\"allowOverlapOfFeatureInterior\": \"allow\" ,");
Note I also removed the `multiPart` since this only relates to Polygons:
labelBuilder.AppendLine("\"multiPart\": \"labelLargest\",");
To give this set of options:
StringBuilder labelBuilder = new StringBuilder();
labelBuilder.AppendLine("{");
labelBuilder.AppendLine("\"allowOverrun\": true ,");
labelBuilder.AppendLine("\"deconflictionStrategy\": \"dynamic\" ,");
labelBuilder.AppendLine("\"removeDuplicates\": \"none\" ,");
labelBuilder.AppendLine("\"labelExpressionInfo\": {");
labelBuilder.AppendLine("\"expression\": \"return $feature.Name;\"},");
labelBuilder.AppendLine("\"labelPlacement\": \"esriServerLinePlacementCenterAlong\",");
labelBuilder.AppendLine("\"allowOverlapOfFeatureBoundary\": \"allow\" ,");
labelBuilder.AppendLine("\"allowOverlapOfFeatureInterior\": \"allow\" ,");
labelBuilder.AppendLine("\"symbol\": {");
labelBuilder.AppendLine("\"color\": [255,255,255,255],");
labelBuilder.AppendLine("\"haloColor\": [51,51,51,255],");
labelBuilder.AppendLine("\"haloSize\": 2,");
labelBuilder.AppendLine("\"font\": {\"size\": 13, \"weight\": \"bold\"},");
labelBuilder.AppendLine("\"type\": \"esriTS\"}");
labelBuilder.AppendLine("}");
return labelBuilder;
Which results in:
While testing, because the label text values were identical I appended a value to differentiate and separate from duplicate removal behavior.
Hopefully this solves your scenario?
Regarding the doc on the JSON properties, this has been temporarily removed pending a full developer API for labeling in an upcoming release of ArcGIS Runtime.
Again, thanks for the simplified repro (and thanks to my colleague Peter for advice on labeling options).