public CIMMaplexLabelPlacementProperties MaplexLabelPlacementProperties {get; set;}
Public Property MaplexLabelPlacementProperties As CIMMaplexLabelPlacementProperties
public CIMMaplexLabelPlacementProperties MaplexLabelPlacementProperties {get; set;}
Public Property MaplexLabelPlacementProperties As CIMMaplexLabelPlacementProperties
//Note: call within QueuedTask.Run() //Get the layer's definition var lyrDefn = featureLayer.GetDefinition() as CIMFeatureLayer; //Get the label classes - we need the first one var listLabelClasses = lyrDefn.LabelClasses.ToList(); var theLabelClass = listLabelClasses.FirstOrDefault(); //Modify label Placement //Check if the label engine is Maplex or standard. CIMGeneralPlacementProperties labelEngine = MapView.Active.Map.GetDefinition().GeneralPlacementProperties; if (labelEngine is CIMStandardGeneralPlacementProperties) //Current labeling engine is Standard labeling engine theLabelClass.StandardLabelPlacementProperties.PointPlacementMethod = StandardPointPlacementMethod.OnTopPoint; else //Current labeling engine is Maplex labeling engine theLabelClass.MaplexLabelPlacementProperties.PointPlacementMethod = MaplexPointPlacementMethod.CenteredOnPoint; lyrDefn.LabelClasses = listLabelClasses.ToArray(); //Set the labelClasses back featureLayer.SetDefinition(lyrDefn); //set the layer's definition
//Note: call within QueuedTask.Run() //Get the layer's definition var lyrDefn = featureLayer.GetDefinition() as CIMFeatureLayer; //Get the label classes - we need the first one var listLabelClasses = lyrDefn.LabelClasses.ToList(); var theLabelClass = listLabelClasses.FirstOrDefault(); //Modify label Rotation CIMMaplexRotationProperties rotationProperties = new CIMMaplexRotationProperties { Enable = true, //Enable rotation RotationField = "ELEVATION", //Field that is used to define rotation angle AdditionalAngle = 15, //Additional rotation RotationType = MaplexLabelRotationType.Arithmetic, AlignmentType = MaplexRotationAlignmentType.Perpendicular, AlignLabelToAngle = true }; theLabelClass.MaplexLabelPlacementProperties.RotationProperties = rotationProperties; lyrDefn.LabelClasses = listLabelClasses.ToArray(); //Set the labelClasses back featureLayer.SetDefinition(lyrDefn); //set the layer's definition
//Note: call within QueuedTask.Run() //Get the layer's definition var lyrDefn = featureLayer.GetDefinition() as CIMFeatureLayer; //Get the label classes - we need the first one var listLabelClasses = lyrDefn.LabelClasses.ToList(); var theLabelClass = listLabelClasses.FirstOrDefault(); //Spread Labels (words and characters to fill feature) // Spread words to fill feature theLabelClass.MaplexLabelPlacementProperties.SpreadWords = true; //Spread Characters to a fixed limit of 50% theLabelClass.MaplexLabelPlacementProperties.SpreadCharacters = true; theLabelClass.MaplexLabelPlacementProperties.MaximumCharacterSpacing = 50.0; lyrDefn.LabelClasses = listLabelClasses.ToArray(); //Set the labelClasses back featureLayer.SetDefinition(lyrDefn); //set the layer's definition
//Note: call within QueuedTask.Run() //Get the layer's definition var lyrDefn = featureLayer.GetDefinition() as CIMFeatureLayer; //Get the label classes - we need the first one var listLabelClasses = lyrDefn.LabelClasses.ToList(); var theLabelClass = listLabelClasses.FirstOrDefault(); //If TextSymbol is a callout the leader line anachor point can be modified theLabelClass.MaplexLabelPlacementProperties.PolygonAnchorPointType = MaplexAnchorPointType.Perimeter; lyrDefn.LabelClasses = listLabelClasses.ToArray(); //Set the labelClasses back featureLayer.SetDefinition(lyrDefn); //set the layer's definition
Target Platforms: Windows 11, Windows 10