I'm trying to rendering a point feature layer with graduated colors rendering and manual interval method using Pro SDK. The field is double format. The values of all records of that field are negative. I take a reference from ProSnippets Render and ArcGIS Pro SDK Community Sample Code and implement the code. However, the rendering regards all the negative values as out-of-range and fails to render with correct symbol. If I apply with another break method (e.g. natural break) or with positive values, it won't have that problem.
Here are the code snippets:
List<CIMClassBreak> listClassBreaks = new List<CIMClassBreak>
{
new CIMClassBreak
{
Symbol = SymbolFactory.Instance.ConstructPointSymbol(ColorFactory.Instance.RedRGB, 12).MakeSymbolReference(),
UpperBound = -4124.13
},
new CIMClassBreak
{
Symbol = SymbolFactory.Instance.ConstructPointSymbol(ColorFactory.Instance.GreenRGB, 12).MakeSymbolReference(),
UpperBound = -3389.27
},
new CIMClassBreak
{
Symbol = SymbolFactory.Instance.ConstructPointSymbol(ColorFactory.Instance.BlueRGB, 12).MakeSymbolReference(),
UpperBound = -2321.95
},
new CIMClassBreak
{
Symbol = SymbolFactory.Instance.ConstructPointSymbol(ColorFactory.Instance.GreyRGB, 12).MakeSymbolReference(),
UpperBound = -1566.68
},
new CIMClassBreak
{
Symbol = SymbolFactory.Instance.ConstructPointSymbol(ColorFactory.Instance.WhiteRGB, 12).MakeSymbolReference(),
UpperBound = -38.51
}
};
CIMClassBreaksRenderer cimClassBreakRenderer = new CIMClassBreaksRenderer
{
ClassBreakType = ClassBreakType.GraduatedColor,
ClassificationMethod = ClassificationMethod.Manual,
//Field = SDKHelpers.GetNumericField(featureLayer),
Field = "NewPressure",
Breaks = listClassBreaks.ToArray()
};
featureLayer?.SetRenderer(cimClassBreakRenderer);
Could anyone give some advice or ways to work around? Thank you very much.
Hi Dominic
Please add the MinimumBreak property in the CIMClassBreaksRenderer. That allows it to display the values. Like this:
CIMClassBreaksRenderer cimClassBreakRenderer = new CIMClassBreaksRenderer
{
ClassBreakType = ClassBreakType.GraduatedColor,
ClassificationMethod = ClassificationMethod.Manual,
//Field = SDKHelpers.GetNumericField(featureLayer),
Field = "NewPressure",
MinimumBreak = -15, //Replace with your minimum value
Breaks = listClassBreaks.ToArray()
};
That solves my problem. Thank you, Uma!