Creating and using a custom MapGraphic layer
A GraphicLayer can be used to draw objects, not in a feature class, on the map display.
To create a new custom GraphicLayer you can use the generic class template and then edit the class file created. In Visual Studio, use the Project\Add Class menu to access the Add New item menu, where you can select the class template and choose an appropriate name. The class file is added to your solution automatically. The example below shows some basic code which is used to store and draw a series of points as a graphic layer.
public class CustomGraphicLayer: MapGraphicLayer { /// Defines a symbol class instance for displaying point private Symbol m_pointSymbol; /// Defines a CoordinateCollection instance to store custom features private CoordinateCollection m_coordinateCollection = new CoordinateCollection(); /// Get or set coordinate collection stored in custom graphic layer public CoordinateCollection Coordinates { get { return m_coordinateCollection; } set { m_coordinateCollection = value; } } /// Initializes a new instance of custom graphic layer public CustomGraphicLayer(): base("CustomGraphicLayer") { m_pointSymbol = new Symbol( new PointPaintOperation( Color.LightGreen, 2, 0, Color.LightGreen, 50, 25, PointPaintStyle.Circle)); } /// Draw method being called after adding to map protected override void Draw(Display display) { //return if display is null if (display == null) return; //return if drawing is cancelled if (display.DrawingCanceled) return; //draw coordinate collection using DrawMultipoint method m_pointSymbol.DrawMultipoint(display, m_coordinateCollection); }
In order to create an instance of this custom graphic layer, use the code shown below. Once the class is instantiated it can be added to the map just like any other graphic layer.
// Initializes a custom graphic layer instance CustomGraphicLayer graphicLayer = new CustomGraphicLayer(); //Add custom graphic layer to MapGraphicLayers collection map1.MapGraphicLayers.Add(graphicLayer);
Where to get the sample
The sample is available for download from here.