ChartDataSourceAdapter Class
The base class for data adapters that provide data to generate chart items.
Namespace: DevExpress.XtraMap
Assembly: DevExpress.XtraMap.v24.1.dll
NuGet Package: DevExpress.Win.Map
Declaration
public abstract class ChartDataSourceAdapter :
DataSourceAdapterBase,
IMapChartDataAdapter,
IMapDataAdapter,
ILockableObject,
ILegendDataProvider,
IChartDataAdapterCore,
IChartDataAdapter,
IDataSourceDataAdapter,
IDataAdapter,
IDisposable
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 you to specify rules for size changes based on chart item values.
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;
}