====== Source Code WebEditionSample GraphicLogoAdornmentLayer CS 100317.zip ====== ====GraphicLogoAdornmentLayer.cs==== using System.Collections.ObjectModel; using System.Drawing; using System.Drawing.Imaging; using System.IO; using ThinkGeo.MapSuite.Core; namespace GraphicLogoAdornmentWeb { class GraphicLogoAdornmentLayer: AdornmentLayer { Bitmap logoImage; public GraphicLogoAdornmentLayer() : base() { Location = AdornmentLocation.LowerRight; } public Bitmap LogoImage { get { return logoImage; } set { logoImage = value; } } protected override void DrawCore(GeoCanvas canvas, Collection labelsInAllLayers) { if (IsVisible) { ScreenPointF screenPointF = GetDrawingLocation(canvas, logoImage.Width, logoImage.Height); // If the canvas happens to be using GDI+ then we can do an optimization and skip // the GeoImage. Otherwise we go the longer route in the else statement if (canvas is GdiPlusGeoCanvas) { GdiPlusGeoCanvas gdiPlusGeoCanvas = canvas as GdiPlusGeoCanvas; gdiPlusGeoCanvas.DrawScreenImageWithoutScaling(logoImage, screenPointF.X + logoImage.Width * 0.5f, screenPointF.Y + logoImage.Height * 0.5f, DrawingLevel.LevelOne, 0, 0, 0); } else { // Here we have to convert the stream to a TIFF to be used in the GeoImage Stream stream = new MemoryStream(); logoImage.Save(stream, ImageFormat.Tiff); GeoImage geoImage = new GeoImage(stream); canvas.DrawScreenImageWithoutScaling(geoImage, screenPointF.X + logoImage.Width * 0.5f, screenPointF.Y + logoImage.Height * 0.5f, DrawingLevel.LevelOne, 0, 0, 0); } } } } } ====TestForm.aspx.cs==== using System; using System.Configuration; using System.Drawing; using ThinkGeo.MapSuite.Core; using ThinkGeo.MapSuite.WebEdition; namespace GraphicLogoAdornmentWeb { public partial class TestForm : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { Map1.MapBackground.BackgroundBrush = new GeoSolidBrush(GeoColor.FromHtml("#E5E3DF")); Map1.CurrentExtent = new RectangleShape(-136,52,-30,2); Map1.MapUnit = GeographyUnit.DecimalDegree; Map1.MapTools.OverlaySwitcher.Enabled = true; Map1.MapTools.MouseCoordinate.Enabled = true; //LayerOverlay for geographic layers such as countries. LayerOverlay layerOverlay = new LayerOverlay("WorldOverlay", false, TileType.SingleTile); layerOverlay.TransitionEffect = TransitionEffect.None; string shapePath = MapPath("App_Data Countries02.shp"); ShapeFileFeatureLayer Layer1 = new ShapeFileFeatureLayer(shapePath); Layer1.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.Country1; Layer1.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; layerOverlay.Layers.Add("Countries", Layer1); //LayerOverlay for adornment layers such as GraphicLogoAdornmentLayer LayerOverlay adornmentOverlay = new LayerOverlay("adornemntOverlay", false, TileType.SingleTile); adornmentOverlay.TransitionEffect = TransitionEffect.None; string logoPath = MapPath("App_Data logo.png"); GraphicLogoAdornmentLayer graphicLogoAdornmentLayer = new GraphicLogoAdornmentLayer(); graphicLogoAdornmentLayer.Location = AdornmentLocation.LowerLeft; graphicLogoAdornmentLayer.LogoImage = new Bitmap(logoPath); adornmentOverlay.Layers.Add(graphicLogoAdornmentLayer); Map1.CustomOverlays.Add(layerOverlay); Map1.CustomOverlays.Add(adornmentOverlay); } } } } ====TestForm.aspx==== <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestForm.aspx.cs" Inherits="GraphicLogoAdornmentWeb.TestForm" %> <%@ Register Assembly="WebEdition" Namespace="ThinkGeo.MapSuite.WebEdition" TagPrefix="cc1" %> Graphic Logo Adornment Layer
<%-- This sample displays a google map. Click buttons below to switch between different Google maps.


--%>