windowsforms-17229-controls-and-libraries-map-control-examples-vector-data-providing-data-how-to-manually-generate-pie-chart-items.md
The following example illustrates how to manually add a MapPie object to the Map control.
using System;
using System.Drawing;
using System.Windows.Forms;
using DevExpress.XtraMap;
namespace MapPieItem {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e) {
// Create a layer to show vector items.
VectorItemsLayer itemsLayer = new VectorItemsLayer() {
Data = CreateData(),
Colorizer = CreateColorizer()
};
mapControl1.Layers.Add(itemsLayer);
// Show a color legend.
mapControl1.Legends.Add(new ColorListLegend() { Layer = itemsLayer });
}
// Create a storage to provide data for the vector layer.
private IMapDataAdapter CreateData() {
MapItemStorage storage = new MapItemStorage();
// Create a pie with several segments.
MapPie pie = new MapPie();
pie.Size = 200;
pie.Segments.Add(new PieSegment() { Argument = "A", Value = 100 });
pie.Segments.Add(new PieSegment() { Argument = "B", Value = 50 });
pie.Segments.Add(new PieSegment() { Argument = "C", Value = 120 });
storage.Items.Add(pie);
return storage;
}
// Create a colorizer to provide colors for bubble items.
private MapColorizer CreateColorizer() {
KeyColorColorizer colorizer = new KeyColorColorizer();
// Add colors to the colorizer.
colorizer.Colors.Add(Color.Coral);
colorizer.Colors.Add(Color.Orange);
colorizer.Colors.Add(Color.LightBlue);
colorizer.Keys.Add(new ColorizerKeyItem() { Key = "A", Name = "Category A" });
colorizer.Keys.Add(new ColorizerKeyItem() { Key = "B", Name = "Category B" });
colorizer.Keys.Add(new ColorizerKeyItem() { Key = "C", Name = "Category C" });
// Load color indexes from bubbles via the 'Color' attribute
colorizer.ItemKeyProvider = new ArgumentItemKeyProvider();
return colorizer;
}
}
}
Imports System
Imports System.Drawing
Imports System.Windows.Forms
Imports DevExpress.XtraMap
Namespace MapPieItem
Partial Public Class Form1
Inherits Form
Public Sub New()
InitializeComponent()
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
' Create a layer to show vector items.
Dim itemsLayer As New VectorItemsLayer() With {.Data = CreateData(), .Colorizer = CreateColorizer()}
mapControl1.Layers.Add(itemsLayer)
' Show a color legend.
mapControl1.Legends.Add(New ColorListLegend() With {.Layer = itemsLayer})
End Sub
' Create a storage to provide data for the vector layer.
Private Function CreateData() As IMapDataAdapter
Dim storage As New MapItemStorage()
' Create a pie with several segments.
Dim pie As New MapPie()
pie.Size = 200
pie.Segments.Add(New PieSegment() With {.Argument = "A", .Value = 100})
pie.Segments.Add(New PieSegment() With {.Argument = "B", .Value = 50})
pie.Segments.Add(New PieSegment() With {.Argument = "C", .Value = 120})
storage.Items.Add(pie)
Return storage
End Function
' Create a colorizer to provide colors for bubble items.
Private Function CreateColorizer() As MapColorizer
Dim colorizer As New KeyColorColorizer()
' Add colors to the colorizer.
colorizer.Colors.Add(Color.Coral)
colorizer.Colors.Add(Color.Orange)
colorizer.Colors.Add(Color.LightBlue)
colorizer.Keys.Add(New ColorizerKeyItem() With {.Key = "A", .Name = "Category A"})
colorizer.Keys.Add(New ColorizerKeyItem() With {.Key = "B", .Name = "Category B"})
colorizer.Keys.Add(New ColorizerKeyItem() With {.Key = "C", .Name = "Category C"})
' Load color indexes from bubbles via the 'Color' attribute
colorizer.ItemKeyProvider = New ArgumentItemKeyProvider()
Return colorizer
End Function
End Class
End Namespace