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 DisplayS57File; 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; HydrographyFeatureLayer featureLayer; Bitmap bitmap; public Sample() { InitializeComponent(); } private void DisplayASimpleMap_Load(object sender, EventArgs e) { bitmap = new Bitmap(map.Width, map.Height); mapEngine = new MapEngine(); featureLayer = new HydrographyFeatureLayer(@"../data/US1HA02M/US1HA02M.000"); mapEngine.StaticLayers.Add(featureLayer); mapEngine.CurrentExtent = ExtentHelper.GetDrawingExtent(new RectangleShape(-158.523134580469, 21.9638280846873, -155.875429502344, 20.2607274987498), map.Width, map.Height); mapEngine.BackgroundFillBrush = new GeoSolidBrush(GeoColor.FromHtml("#d8f4e1")); DrawImage(); } private void rbtnStyleType_CheckedChanged(object sender, EventArgs e) { if (rbtnEmbedded.Checked) { featureLayer.StylingType = HydrographyStylingType.EmbeddedStyling; featureLayer.StylingType = HydrographyStylingType.EmbeddedStyling; featureLayer.SymbolTextDisplayMode = HydrographySymbolTextDisplayMode.English; featureLayer.IsMetaObjectsVisible = true; featureLayer.IsShallowWaterPatternVisible = true; } else { featureLayer.StylingType = HydrographyStylingType.StandardStyling; featureLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(S57StyleFactory.GetMaritimeStyle()); featureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; } DrawImage(); } private void Query_Btn_Click(object sender, EventArgs e) { featureLayer.FeatureSource.Open(); DataTable dataTable = featureLayer.FeatureSource.ExecuteQuery(textBox1.Text); dataGridView1.Columns.Clear(); foreach (DataColumn column in dataTable.Columns) { DataGridViewColumn dgColumn = new DataGridViewColumn(); dgColumn.CellTemplate = new DataGridViewTextBoxCell(); dgColumn.HeaderText = column.ColumnName; dataGridView1.Columns.Add(dgColumn); } foreach (DataRow row in dataTable.Rows) { int index = dataGridView1.Rows.Add(); for (int i = 0; i < dataTable.Columns.Count; i++) { string objValues = row[i] as string; dataGridView1.Rows[index].Cells[i].Value = objValues; } } featureLayer.FeatureSource.Close(); } private void DrawImage() { bitmap = new Bitmap(map.Width, map.Height); mapEngine.OpenAllLayers(); mapEngine.DrawStaticLayers(bitmap, GeographyUnit.DecimalDegree); mapEngine.CloseAllLayers(); map.Image = bitmap; } private void map_ClientSizeChanged(object sender, EventArgs e) { if (bitmap != null && (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(); } } 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(); } }
using ThinkGeo.MapSuite.Core; using System.Collections.Generic; namespace DisplayS57File { class S57StyleFactory { public static ValueStyle GetMaritimeStyle() { ValueStyle classValueStyle = new ValueStyle(); classValueStyle.ColumnName = "OBJL"; ValueItem item1 = new ValueItem("74", PointStyles.CreateSimpleCircleStyle(GeoColor.SimpleColors.Transparent, 14.0f, GeoColor.FromArgb(100, 255, 0, 255), 1.0f)); classValueStyle.ValueItems.Add(item1); ValueItem item2 = new ValueItem("9", PointStyles.CreateSimpleCircleStyle(GeoColor.SimpleColors.Transparent, 14.0f, GeoColor.FromArgb(100, 255, 255, 0), 1.0f)); classValueStyle.ValueItems.Add(item2); ValueItem item3 = new ValueItem("12", PointStyles.CreateSimpleCircleStyle(GeoColor.SimpleColors.Transparent, 14.0f, GeoColor.FromArgb(255, 0, 255, 0), 1.0f)); classValueStyle.ValueItems.Add(item3); ValueItem item4 = new ValueItem("19", PointStyles.CreateSimpleCircleStyle(GeoColor.SimpleColors.Transparent, 14.0f, GeoColor.FromArgb(100, 0, 255, 255), 1.0f)); classValueStyle.ValueItems.Add(item4); ValueItem item5 = new ValueItem("73", AreaStyles.CreateSimpleAreaStyle(GeoColor.FromArgb(255, 115, 170, 198), GeoColor.FromArgb(100, 0, 0, 0))); classValueStyle.ValueItems.Add(item5); ValueItem item6 = new ValueItem("1", AreaStyles.CreateSimpleAreaStyle(GeoColor.SimpleColors.Transparent, GeoColor.FromArgb(100, 0, 0, 0))); classValueStyle.ValueItems.Add(item6); ValueItem item7 = new ValueItem("105", PointStyles.CreateSimpleCircleStyle(GeoColor.SimpleColors.Red, 20.0f, GeoColor.FromArgb(100, 255, 0, 255), 1.0f)); classValueStyle.ValueItems.Add(item7); ValueItem item8 = new ValueItem("13", PointStyles.CreateSimpleCircleStyle(GeoColor.SimpleColors.DarkOrange, 4.0f, GeoColor.FromArgb(255, 0, 0, 0), 1.0f)); classValueStyle.ValueItems.Add(item8); ValueItem item9 = new ValueItem("72", PointStyles.CreateSimpleCircleStyle(GeoColor.SimpleColors.Transparent, 4.0f, GeoColor.FromArgb(255, 0, 0, 0), 1.0f)); classValueStyle.ValueItems.Add(item9); ValueItem item10 = new ValueItem("84", PointStyles.CreateSimpleCircleStyle(GeoColor.SimpleColors.Transparent, 14.0f, GeoColor.FromArgb(255, 0, 0, 255), 1.0f)); classValueStyle.ValueItems.Add(item10); ValueItem item11 = new ValueItem("75", PointStyles.CreateSimpleCircleStyle(GeoColor.SimpleColors.Transparent, 14.0f, GeoColor.FromArgb(255, 0, 0, 0), 1.0f)); classValueStyle.ValueItems.Add(item11); ValueItem item12 = new ValueItem("39", PointStyles.CreateSimpleCircleStyle(GeoColor.SimpleColors.Transparent, 14.0f, GeoColor.FromArgb(255, 0, 0, 0), 1.0f)); classValueStyle.ValueItems.Add(item12); ValueItem item13 = new ValueItem("153", PointStyles.CreateSimpleCircleStyle(GeoColor.SimpleColors.Transparent, 14.0f, GeoColor.FromArgb(100, 255, 0, 255), 1.0f)); classValueStyle.ValueItems.Add(item13); ValueItem item14 = new ValueItem("159", PointStyles.CreateSimpleTriangleStyle(GeoColor.SimpleColors.Transparent, 14.0f, GeoColor.FromArgb(200, 0, 0, 0), 1.0f)); classValueStyle.ValueItems.Add(item14); ValueItem item15 = new ValueItem("127", PointStyles.CreateSimpleSquareStyle(GeoColor.SimpleColors.Transparent, 10.0f, GeoColor.FromArgb(100, 0, 0, 0), 1.0f)); classValueStyle.ValueItems.Add(item15); ValueItem item16 = new ValueItem("42", AreaStyles.CreateSimpleAreaStyle(GeoColor.SimpleColors.Transparent, GeoColor.FromHtml("#5f6a60"))); classValueStyle.ValueItems.Add(item16); ValueItem item17 = new ValueItem("30", LineStyles.CreateSimpleLineStyle(GeoColor.FromArgb(255, 255, 0, 0), 1.0f, true)); classValueStyle.ValueItems.Add(item17); ValueItem item18 = new ValueItem("43", LineStyles.CreateSimpleLineStyle(GeoColor.FromHtml("#abc0b1"), 1.0f, true)); classValueStyle.ValueItems.Add(item18); ValueItem item19 = new ValueItem("22", LineStyles.CreateSimpleLineStyle(GeoColor.FromHtml("#88acac"), 1.0f, LineDashStyle.Dash, true)); classValueStyle.ValueItems.Add(item19); ValueItem item20 = new ValueItem("48", AreaStyles.CreateSimpleAreaStyle(GeoColor.SimpleColors.Transparent, GeoColor.FromArgb(255, 0, 0, 0), 1, LineDashStyle.DashDotDot)); classValueStyle.ValueItems.Add(item20); ValueItem item21 = new ValueItem("50", AreaStyles.CreateSimpleAreaStyle(GeoColor.SimpleColors.Transparent, GeoColor.FromArgb(100, 0, 0, 0), 1, LineDashStyle.Dash)); classValueStyle.ValueItems.Add(item21); ValueItem item22 = new ValueItem("308", AreaStyles.CreateSimpleAreaStyle(GeoColor.SimpleColors.Transparent, GeoColor.FromArgb(100, 0, 0, 0))); classValueStyle.ValueItems.Add(item22); ValueItem item23 = new ValueItem("119", AreaStyles.CreateSimpleAreaStyle(GeoColor.SimpleColors.Transparent, GeoColor.FromArgb(100, 0, 0, 0))); classValueStyle.ValueItems.Add(item23); ValueItem item24 = new ValueItem("121", AreaStyles.CreateSimpleAreaStyle(GeoColor.FromArgb(100, 0, 0, 0), GeoColor.FromArgb(100, 0, 0, 0))); classValueStyle.ValueItems.Add(item24); ValueItem item25 = new ValueItem("112", AreaStyles.CreateSimpleAreaStyle(GeoColor.SimpleColors.Transparent, GeoColor.FromArgb(255, 200, 0, 200), 2, LineDashStyle.Dash)); classValueStyle.ValueItems.Add(item25); ValueItem item26 = new ValueItem("302", AreaStyles.CreateSimpleAreaStyle(GeoColor.SimpleColors.Transparent, GeoColor.FromArgb(100, 0, 0, 0))); classValueStyle.ValueItems.Add(item26); ValueItem item27 = new ValueItem("306", AreaStyles.CreateSimpleAreaStyle(GeoColor.SimpleColors.Transparent, GeoColor.FromArgb(100, 0, 0, 0))); classValueStyle.ValueItems.Add(item27); ValueItem item28 = new ValueItem("305", AreaStyles.CreateSimpleAreaStyle(GeoColor.SimpleColors.Transparent, GeoColor.FromArgb(100, 0, 0, 0))); classValueStyle.ValueItems.Add(item28); ValueItem item29 = new ValueItem("71", AreaStyles.CreateSimpleAreaStyle(GeoColor.FromArgb(255, 177, 170, 107), GeoColor.FromArgb(100, 0, 0, 0))); classValueStyle.ValueItems.Add(item29); ValueItem item30 = new ValueItem("86", AreaStyles.CreateSimpleAreaStyle(GeoColor.FromArgb(255, 115, 170, 198), GeoColor.FromArgb(255, 0, 0, 0), 2, LineDashStyle.Dot)); classValueStyle.ValueItems.Add(item30); ValueItem item31 = new ValueItem("31", AreaStyles.CreateSimpleAreaStyle(GeoColor.SimpleColors.Transparent, GeoColor.FromHtml("#abc0b1"), 1, LineDashStyle.Solid)); classValueStyle.ValueItems.Add(item31); ValueItem item32 = new ValueItem("27", AreaStyles.CreateSimpleAreaStyle(GeoColor.SimpleColors.Transparent, GeoColor.FromArgb(255, 200, 0, 200), 2, LineDashStyle.Dash)); classValueStyle.ValueItems.Add(item32); ValueItem item33 = new ValueItem("83", AreaStyles.CreateSimpleAreaStyle(GeoColor.SimpleColors.Transparent, GeoColor.FromArgb(255, 200, 0, 200), 1, LineDashStyle.DashDotDot)); classValueStyle.ValueItems.Add(item33); return classValueStyle; } } }