User Tools

Site Tools


source_code_serviceseditionsample_filegeodatabase_cs_120831.zip

Source Code ServicesEditionSample FileGeoDatabase CS 120831.zip

DisplayFileGeoDatabase.cs

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

Program.cs

 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());  
         }  
     }  
 }  
 
 
source_code_serviceseditionsample_filegeodatabase_cs_120831.zip.txt · Last modified: 2015/09/09 03:17 by admin