ThinkGeo Cloud
ThinkGeo UI Controls
ThinkGeo Open Source
Help and Support
External Resources
ThinkGeo Cloud
ThinkGeo UI Controls
ThinkGeo Open Source
Help and Support
External Resources
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<SimpleCandidate> 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); } } } } }
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); } } } }
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestForm.aspx.cs" Inherits="GraphicLogoAdornmentWeb.TestForm" %> <%@ Register Assembly="WebEdition" Namespace="ThinkGeo.MapSuite.WebEdition" TagPrefix="cc1" %> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <link href="~/theme/default/samplepic/style.css" rel="stylesheet" type="text/css" /> <title>Graphic Logo Adornment Layer</title> </head> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <cc1:Map ID="Map1" runat="server" Height="100%" Width="100%"> </cc1:Map> <%-- <description:descriptionpanel ID="DescPanel" runat="server"> This sample displays a google map. Click buttons below to switch between different Google maps. <br /> <br /> <asp:Button CssClass="btn" ID="btnRoad" runat="server" Text="Normal" OnClientClick="Map1.SetCurrentBackgroundMapType(G_NORMAL_MAP); return false;" /> <asp:Button CssClass="btn" ID="btnAerial" runat="server" Text="Hybrid" OnClientClick="Map1.SetCurrentBackgroundMapType(G_HYBRID_MAP); return false;" /><br /> <asp:Button CssClass="btn" ID="btnSatellite" runat="server" Text="Satellite" OnClientClick="Map1.SetCurrentBackgroundMapType(G_SATELLITE_MAP); return false;" /> <asp:Button CssClass="btn" ID="btnPhysical" runat="server" Text="Physical" OnClientClick="Map1.SetCurrentBackgroundMapType(G_PHYSICAL_MAP); return false;" /> </description:descriptionpanel>--%> </form> </body> </html>