// Countries layer string filePath = @"..\..\Data\Countries02.shp"; ShapeFileFeatureLayer countryLayer = new ShapeFileFeatureLayer(filePath); countryLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.Country1; countryLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; // Text layer InMemoryFeatureLayer textLayer = new InMemoryFeatureLayer(); textLayer.Open(); textLayer.Columns.Add(new FeatureSourceColumn("text")); PointShape pnt = new PointShape(10, 50); Feature pntf = new Feature(pnt); pntf.ColumnValues.Add("text", "Europe"); textLayer.InternalFeatures.Add(pntf); textLayer.Close(); textLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = TextStyles.CreateSimpleTextStyle("text", "Verdana", 12.0f, DrawingFontStyles.Regular, GeoColor.StandardColors.Black); textLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; // (1) Requested area in world coordinates (degrees) RectangleShape frame = new RectangleShape(0, 80, 40, 0); // (2) Requested size of resulting image in Microsoft Word (**millimeters**) double mapWidth = 70; double mapHeight = 140; // (3) Calculate size of image (in **pixels**), assuming 72/96 DPI and mapHeight/Width given in millimeter int Wpxl = (int)Math.Round(72 * mapWidth / 25.4); int Hpxl = (int)Math.Round(72 * mapHeight / 25.4); Rectangle rect = new Rectangle(0, 0, Wpxl, Hpxl); // (3) Create metafile and Graphics object Metafile metaFile = new Metafile("result.emf", Graphics.FromImage(new Bitmap(1, 1)).GetHdc(), rect, MetafileFrameUnit.Pixel); Graphics graphic = Graphics.FromImage(metaFile); // (3) Create GraphicsGeoCanvas and set ClippingArea (in world coordinates) GraphicsGeoCanvas graphicGeoCanvas = new GraphicsGeoCanvas(); graphicGeoCanvas.ClippingArea = frame; // (4) Draw layers on canvas graphicGeoCanvas.BeginDrawing(graphic, Wpxl, Hpxl, frame, GeographyUnit.DecimalDegree); countryLayer.Open(); countryLayer.Draw(graphicGeoCanvas, new System.Collections.ObjectModel.Collection()); countryLayer.Close(); textLayer.Open(); textLayer.Draw(graphicGeoCanvas, new System.Collections.ObjectModel.Collection()); textLayer.Close(); // Finish and dispose graphicGeoCanvas.EndDrawing(); metaFile.Dispose(); MessageBox.Show(String.Format("The map has been saved as EMF to {0}\\{1}", Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "result.emf"));