How to: Automatically Generate Pie Charts Items from a Datasource
- 2 minutes to read
The PieChartDataAdapter class is intended to automatically generate pie charts from a data source.
To do this, create the PieChartDataAdapter object, set its DataSourceAdapterBase.DataSource property and assign this data adapter to the VectorItemsLayer.Data property.
Then, specify the following properties of the PieChartDataAdapter object.
- 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.
Note
A complete sample project is available at https://github.com/DevExpress-Examples/how-to-use-piechartdataadapter-to-add-pie-charts-to-a-map-t141324
// Assign a PieChartDataAdapter object to Data.
PieLayer.Data = CreateData();
// Create 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;
}