====== 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());
}
}
}