User Tools

Site Tools


source_code_serviceseditionsample_watermarkadornmentlayer_cs_090728.zip

Source Code ServicesEditionSample WaterMarkAdornmentLayer CS 090728.zip

Program.cs

 using System;  
 using System.Collections.Generic;  
 using System.Linq;  
 using System.Windows.Forms;  
 
 namespace WatermarkAdornmentLayer  
 {  
     static class Program  
     {  
         /// <summary>  
         /// The main entry point for the application.  
         /// </summary>  
         [STAThread]  
         static void Main()  
         {  
             Application.EnableVisualStyles();  
             Application.SetCompatibleTextRenderingDefault(false);  
             Application.Run(new TestForm());  
         }  
     }  
 }  
 

TestForm.cs

 using System;  
 using System.Drawing;  
 using System.Windows.Forms;  
 using ThinkGeo.MapSuite.Core;  
 
 namespace WatermarkAdornmentLayer  
 {  
     public partial class TestForm : Form  
     {  
         private MapEngine mapEngine = new MapEngine();  
         private Bitmap bitmap = null;  
         ShapeFileFeatureLayer worldLayer = null;  
 
         public TestForm()  
         {  
             InitializeComponent();  
         }  
 
         private void TestForm_Load(object sender, EventArgs e)  
         {  
             // Set the full extent and the background color  
             mapEngine.CurrentExtent = ExtentHelper.GetDrawingExtent(new RectangleShape(-180.0, 83.0, 180.0, -90.0), Map.Width, Map.Height);  
             mapEngine.BackgroundFillBrush = new GeoSolidBrush(GeoColor.GeographicColors.ShallowOcean);  
 
             // Add the static layers to the MapEngine  
             worldLayer = new ShapeFileFeatureLayer(@"..\..\Data\Countries02.shp", ShapeFileReadWriteMode.ReadOnly);  
             worldLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.County1;  
             worldLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;  
             mapEngine.StaticLayers.Add("WorldLayer", worldLayer);  
 
             // Add the watermarkLayer to the MapEngine  
             WatermarkAdornmentLayer watermarkLayer = new WatermarkAdornmentLayer();  
             mapEngine.StaticLayers.Add("WatermarkLayer", watermarkLayer);  
 
             DrawImage();  
         }  
 
 
         private void DrawImage()  
         {  
             if (bitmap != null) { bitmap.Dispose(); }  
             bitmap = new Bitmap(Map.Width, Map.Height);  
             mapEngine.OpenAllLayers();  
             mapEngine.DrawStaticLayers(bitmap, GeographyUnit.DecimalDegree);  
             mapEngine.CloseAllLayers();  
             Map.Image = bitmap;  
         }  
 
         private void ToolBar_ButtonClick(object sender, ToolBarButtonClickEventArgs e)  
         {  
             switch (e.Button.Tag.ToString())  
             {  
                 case "Zoom In":  
                     mapEngine.CurrentExtent.ScaleDown(50);  
                     break;  
                 case "Zoom Out":  
                     mapEngine.CurrentExtent.ScaleUp(50);  
                     break;  
                 case "Full Extent":  
                     mapEngine.CurrentExtent = ExtentHelper.GetDrawingExtent(new RectangleShape(-180.0, 83.0, 180.0, -90.0), Map.Width, Map.Height);  
                     break;  
                 case "Pan Left":  
                     mapEngine.CurrentExtent = ExtentHelper.Pan(mapEngine.CurrentExtent, PanDirection.Left, 20);  
                     break;  
                 case "Pan Right":  
                     mapEngine.CurrentExtent = ExtentHelper.Pan(mapEngine.CurrentExtent, PanDirection.Right, 20);  
                     break;  
                 case "Pan Up":  
                     mapEngine.CurrentExtent = ExtentHelper.Pan(mapEngine.CurrentExtent, PanDirection.Up, 20);  
                     break;  
                 case "Pan Down":  
                     mapEngine.CurrentExtent = ExtentHelper.Pan(mapEngine.CurrentExtent, PanDirection.Down, 20);  
                     break;  
                 default:  
                     break;  
             }  
             DrawImage();  
         }  
 
         private void btnClose_Click(object sender, EventArgs e)  
         {  
             this.Close();  
         }  
     }  
 }  
 

WatermarkAdornmentLayer.cs

 using System.Collections.ObjectModel;  
 using ThinkGeo.MapSuite.Core;  
 
 namespace WatermarkAdornmentLayer  
 {  
     public class WatermarkAdornmentLayer : AdornmentLayer  
     {  
         private string watermarkText = string.Empty;  
 
         public WatermarkAdornmentLayer()  
             : this("Watermark")  
         { }  
 
         public WatermarkAdornmentLayer(string watermarkText)  
             : base()  
         {  
             this.watermarkText = watermarkText;  
         }  
 
         public string WatermarkText  
         {  
             get { return watermarkText; }  
             set { watermarkText = value; }  
         }  
 
         protected override void DrawCore(GeoCanvas canvas, Collection<SimpleCandidate> labelsInAllLayers)  
         {  
             GeoFont font = new GeoFont("Arial", 12);  
             GeoBrush brush = new GeoSolidBrush(GeoColor.StandardColors.Pink);  
             Collection<ScreenPointF> textPath = new Collection<ScreenPointF>();  
 
             int interval = 100;  
             if (canvas.Width > interval)  
             {  
                 for (int x = 1; x < canvas.Width / interval; x++)  
                 {  
                     for (int y = 1; y < canvas.Height / interval; y++)  
                     {  
                         textPath.Add(new ScreenPointF(x * interval, y * interval));  
                     }  
                 }  
             }  
             else  
             {  
                 textPath.Add(new ScreenPointF(canvas.Width / 2, canvas.Height / 2));  
             }  
 
             canvas.DrawText(watermarkText, font, brush, textPath, DrawingLevel.LevelOne);  
         }  
     }  
 }  
 
source_code_serviceseditionsample_watermarkadornmentlayer_cs_090728.zip.txt · Last modified: 2015/09/09 03:20 by admin