PieChartDataAdapter Class
The data adapter that provides data to generate Pie chart items.
Namespace: DevExpress.XtraMap
Assembly: DevExpress.XtraMap.v24.1.dll
NuGet Package: DevExpress.Win.Map
Declaration
[PieChartDataAdapter.PieBindingProperties]
public class PieChartDataAdapter :
ChartDataSourceAdapter,
IPieDataAdapter,
IChartDataAdapter,
IDataSourceDataAdapter,
IDataAdapter,
IDisposable
Example
The PieChartDataAdapter
class is intended to automatically generate pie charts from a data source.
Create the PieChartDataAdapter object, set its DataSourceAdapterBase.DataSource property and assign this data adapter to the VectorItemsLayer.Data property.
Specify the following PieChartDataAdapter properties:
- The PieChartDataAdapter.PieItemDataMember property;
- The MapItemMappingInfo.Latitude and MapItemMappingInfo.Longitude mappings of the PieChartDataAdapter.Mappings property;
- The MapChartItemMappingInfo.Value mapping of the PieChartDataAdapter.Mappings property;
- The MapPieMappingInfo.PieSegment mapping of the PieChartDataAdapter.Mappings property.
Initialize the VectorItemsLayer.Colorizer property with a KeyColorColorizer object.
Note
The example uses a BingMapDataProvider to load image tiles. This provider requires you to set the BingMapDataProvider.BingKey property.
public Form1() {
InitializeComponent();
// Assign a PieChartDataAdapter object to Data.
PieLayer.Data = CreateData();
// Assign a KeyColorColorizer object to Colorizer.
PieLayer.Colorizer = CreateColorizer();
}
// Create a pie chart data adapter and specify its parameters.
IMapDataAdapter CreateData() {
PieChartDataAdapter adapter = new PieChartDataAdapter() {
DataSource = LoadDataFromXml(xmlFilepath),
PieItemDataMember = "Name",
ItemMinSize = 20,
ItemMaxSize = 60
};
// Specify mappings.
adapter.Mappings.Latitude = "CapitalLat";
adapter.Mappings.Longitude = "CapitalLon";
adapter.Mappings.PieSegment = "MedalClass";
adapter.Mappings.Value = "Quantity";
// Specify measure rules.
adapter.MeasureRules = new MeasureRules();
adapter.MeasureRules.RangeStops.Add(1);
adapter.MeasureRules.RangeStops.Add(10);
adapter.MeasureRules.RangeStops.Add(20);
adapter.MeasureRules.RangeStops.Add(30);
adapter.MeasureRules.RangeStops.Add(40);
return adapter;
}
private DataTable LoadDataFromXml(string path) {
DataSet ds = new DataSet();
ds.ReadXml(path);
DataTable table = ds.Tables[0];
return table;
}
// Create a colirizer and specify its options.
MapColorizer CreateColorizer() {
KeyColorColorizer colorizer = new KeyColorColorizer() {
ItemKeyProvider = new ArgumentItemKeyProvider()
};
colorizer.Colors.Add(Color.FromArgb(255, 207, 98));
colorizer.Colors.Add(Color.FromArgb(169, 181, 188));
colorizer.Colors.Add(Color.FromArgb(233, 152, 118));
colorizer.Keys.Add(new ColorizerKeyItem() { Key = 1, Name = "Gold" });
colorizer.Keys.Add(new ColorizerKeyItem() { Key = 2, Name = "Silver" });
colorizer.Keys.Add(new ColorizerKeyItem() { Key = 3, Name = "Bronze" });
return colorizer;
}