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; using System.Collections.ObjectModel; using System.Data; using System.Drawing; using System.Windows.Forms; using ThinkGeo.MapSuite.Core; public partial class Sample : Form { private MapEngine mapEngine; FileGeoDatabaseFeatureLayer fileGeoDatabaseFeatureLayer; Bitmap bitmap; public Sample() { InitializeComponent(); } private void DisplayASimpleMap_Load(object sender, EventArgs e) { bitmap = new Bitmap(map.Width, map.Height); mapEngine = new MapEngine(); mapEngine.BackgroundFillBrush = new GeoSolidBrush(GeoColor.GeographicColors.ShallowOcean); fileGeoDatabaseFeatureLayer = new FileGeoDatabaseFeatureLayer(@"../../data/Shapes.gdb", "Cities", "OBJECTID"); fileGeoDatabaseFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.Country1; fileGeoDatabaseFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = LineStyles.Canal1; fileGeoDatabaseFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = PointStyles.City1; fileGeoDatabaseFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; mapEngine.StaticLayers.Add(fileGeoDatabaseFeatureLayer); mapEngine.LayersDrawn += new EventHandler<LayersDrawnEventArgs>(mapEngine_LayersDrawn); mapEngine.CurrentExtent = ExtentHelper.GetDrawingExtent(new RectangleShape(-133.291207591435, 52.4457064436166, -65.7348915320567, 18.5637124044684), map.Width, map.Height); this.cmbTables.SelectedIndex = 0; } void mapEngine_LayersDrawn(object sender, LayersDrawnEventArgs e) { Collection<Feature> features = fileGeoDatabaseFeatureLayer.QueryTools.GetFeaturesInsideBoundingBox(e.WorldExtent, ReturningColumnsType.AllColumns); DataTable dataTable = new DataTable(); Collection<FeatureSourceColumn> columns = fileGeoDatabaseFeatureLayer.QueryTools.GetColumns(); foreach (FeatureSourceColumn column in columns) { dataTable.Columns.Add(column.ColumnName); } for (int i = 0; i < features.Count; i++) { DataRow dataRow = dataTable.NewRow(); foreach (FeatureSourceColumn column in columns) { dataRow[column.ColumnName] = features[i].ColumnValues[column.ColumnName]; } dataTable.Rows.Add(dataRow); } dataGridView1.DataSource = dataTable; } private void cmbTables_SelectedIndexChanged(object sender, EventArgs e) { fileGeoDatabaseFeatureLayer.TableName = this.cmbTables.SelectedItem.ToString(); DrawImage(); } private void DrawImage() { 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(-133.291207591435, 52.4457064436166, -65.7348915320567, 18.5637124044684), 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 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.DecimalDegree).Scale; mapEngine.CurrentExtent = ExtentHelper.SnapToZoomLevel((RectangleShape)mapEngine.CurrentExtent.CloneDeep(), GeographyUnit.DecimalDegree, map.Width, map.Height, new ZoomLevelSet()); mapEngine.CurrentExtent = ExtentHelper.ZoomToScale(scale, mapEngine.CurrentExtent, GeographyUnit.DecimalDegree, map.Width, map.Height); DrawImage(); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace FileGeoDatabaseTest { static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Sample()); } } }