====== Source Code ServicesEditionSample TABFile CS 150104.zip ====== ====Sample.cs==== using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; using ThinkGeo.MapSuite.Core; public partial class Sample : Form { private MapEngine mapEngine; private Bitmap bitmap; private RectangleShape fullExtent; private readonly Dictionary tabTypeFiles = new Dictionary(); public Sample() { tabTypeFiles.Add("PointStyle", @"..\..\Data\US_CUSTG.TAB"); tabTypeFiles.Add("LineStyle", @"..\..\Data\US_HIWAY.TAB"); tabTypeFiles.Add("AreaStyle", @"..\..\Data\HoustonMuniBdySamp_Boundary.TAB"); tabTypeFiles.Add("TextStyle", @"..\..\Data\LocalStreetNames.TAB"); InitializeComponent(); } private void DisplayASimpleMap_Load(object sender, EventArgs e) { mapEngine = new MapEngine(); mapEngine.ShowLogo = true; foreach (string tabFile in tabTypeFiles.Keys) { sampleFileListBox.Items.Add(tabFile); } // Display the first file in the list sampleFileListBox.SelectedIndex = 0; } private void sampleFileListBox_SelectedIndexChanged(object sender, EventArgs e) { TabFeatureLayer layer = new TabFeatureLayer(tabTypeFiles[sampleFileListBox.SelectedItem.ToString()]); layer.RequireIndex = false; // Render the data using embedded style in the CAD file if (radioButtonEmbeddedStyle.Checked) { layer.StylingType = TabStylingType.EmbeddedStyling; } // Render the data using a customized style else { layer.StylingType = TabStylingType.StandardStyling; layer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = LineStyles.Equator1; layer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = PointStyles.City7; layer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.County2; layer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; layer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = TextStyles.City6("TabDefaultTextColumn"); } mapEngine.StaticLayers.Clear(); mapEngine.StaticLayers.Add(layer); Cursor = Cursors.WaitCursor; layer.Open(); fullExtent = ExtentHelper.GetDrawingExtent(layer.GetBoundingBox(), map.Width, map.Height); mapEngine.CurrentExtent = fullExtent; DrawImage(); Cursor = Cursors.Default; } private void radioButtonStandardStyle_CheckedChanged(object sender, EventArgs e) { TabFeatureLayer layer = ((TabFeatureLayer)mapEngine.StaticLayers[0]); if (radioButtonStandardStyle.Checked) { layer.StylingType = TabStylingType.StandardStyling; layer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = LineStyles.Equator1; layer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = PointStyles.City7; layer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.County2; layer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; layer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = TextStyles.City6("TabDefaultTextColumn"); } else { layer.StylingType = TabStylingType.EmbeddedStyling; } DrawImage(); } private void DrawImage() { bitmap = new Bitmap(map.Width, map.Height); mapEngine.OpenAllLayers(); mapEngine.DrawStaticLayers(bitmap, GeographyUnit.Meter); 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 = fullExtent; 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 map_ClientSizeChanged(object sender, EventArgs e) { if (map.Width > bitmap.Width || map.Height > bitmap.Height) { bitmap = new Bitmap(map.Width, map.Height); double scale = new ZoomLevelSet().GetZoomLevel(mapEngine.CurrentExtent, map.Width, GeographyUnit.Meter).Scale; mapEngine.CurrentExtent = ExtentHelper.SnapToZoomLevel((RectangleShape)mapEngine.CurrentExtent.CloneDeep(), GeographyUnit.Meter, map.Width, map.Height, new ZoomLevelSet()); mapEngine.CurrentExtent = ExtentHelper.ZoomToScale(scale, mapEngine.CurrentExtent, GeographyUnit.Meter, map.Width, map.Height); DrawImage(); } } } ====Program.cs==== using System; using System.Windows.Forms; namespace SourceDisplayASimpleMap { static class Program { /// /// The main entry point for the application. /// [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Sample()); } } }