ChartDataSourceAdapter Class
The base class for data adapters that provide data to generate chart items.
Namespace: DevExpress.XtraMap
Assembly: DevExpress.XtraMap.v18.2.dll
Declaration
public abstract class ChartDataSourceAdapter :
DataSourceAdapterBase,
IMapChartDataAdapter,
IMapDataAdapter,
ILockableObject,
ILegendDataProvider,
IChartDataAdapterCore
Remarks
This class introduces the ChartDataSourceAdapter.ItemMinSize and ChartDataSourceAdapter.ItemMaxSize properties to specify the maximum and minimum sizes of adapter generated chart items. The ChartDataSourceAdapter
also introduces the ChartDataSourceAdapter.MeasureRules property, that allows specifying the rules for size changes, depending on the chart item value.
Example
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;
}