private void LoadWorkspace(WorkspaceModel workspace) { mapBoxMainWindow.Map.Center = new GeoAPI.Geometries.Coordinate(workspace.CenterX, workspace.CenterY); mapBoxMainWindow.Map.MapScale = workspace.Scale; mapBoxMainWindow.Map.Layers.Clear(); foreach (var item in workspace.Layers) { SharpMap.Layers.VectorLayer lay1 = new SharpMap.Layers.VectorLayer(item.DbLayerModel.TableName); switch (item.DbLayerModel.Connection.DatabaseType) { case Models.DbType.None: break; case Models.DbType.PostgreSQL: lay1.DataSource = new SharpMap.Data.Providers.PostGIS("Server = " + item.DbLayerModel.Connection.HostOrIp + "; Port = " + item.DbLayerModel.Connection.Port + "; Database = " + item.DbLayerModel.Connection.Database + "; User Id = " + item.DbLayerModel.Connection.Username + "; Password = "******"", item.DbLayerModel.TableName, item.DbLayerModel.UniqColumnName); break; case Models.DbType.Oracle: lay1.DataSource = new SharpMap.Data.Providers.Oracle("User Id=" + item.DbLayerModel.Connection.Username + ";Password="******";Data Source=" + item.DbLayerModel.Connection.HostOrIp + "", item.DbLayerModel.TableName, item.DbLayerModel.UniqColumnName); break; } Brush brushColor = new SolidBrush(item.OutlineColor); lay1.Style.Outline.Brush = brushColor; lay1.Style.Outline.Width = item.PenWidth; Brush brushColor2 = new SolidBrush(item.FillColor); lay1.Style.Fill = brushColor2; lay1.Style.EnableOutline = true; lay1.MinVisible = item.MinVisible; lay1.MaxVisible = item.MaxVisible; lay1.Enabled = item.DbLayerModel.IsOpen; mapBoxMainWindow.Map.Layers.Add(lay1); //mapBox1.Map.ZoomToExtents(); mapBoxMainWindow.Refresh(); var addItem = new DbTableModelItem() { Connection = item.DbLayerModel.Connection, IsOpen = item.DbLayerModel.IsOpen, TableName = item.DbLayerModel.TableName, UniqColumnName = item.DbLayerModel.UniqColumnName }; this.OpenedTables.Add(addItem); LoadLayerList(); } }
public void OpenTable(DbTableModelItem item) { if (!IsLayerOpen(item.TableName)) { SharpMap.Layers.VectorLayer lay1 = new SharpMap.Layers.VectorLayer(item.TableName); switch (item.Connection.DatabaseType) { case Models.DbType.None: break; case Models.DbType.PostgreSQL: lay1.DataSource = new SharpMap.Data.Providers.PostGIS("Server = " + item.Connection.HostOrIp + "; Port = " + item.Connection.Port + "; Database = " + item.Connection.Database + "; User Id = " + item.Connection.Username + "; Password = "******"", item.TableName, item.UniqColumnName); break; case Models.DbType.Oracle: lay1.DataSource = new SharpMap.Data.Providers.Oracle("User Id=" + item.Connection.Username + ";Password="******";Data Source=" + item.Connection.HostOrIp + "", item.TableName, item.UniqColumnName); break; } Random rnd = new Random(); int R = rnd.Next(0, 255); int G = rnd.Next(0, 255); int B = rnd.Next(0, 255); Color col = Color.FromArgb(R, G, B); Brush brushColor = new SolidBrush(col); lay1.Style.Outline.Brush = brushColor; Color col2 = Color.FromArgb(255 - R, 255 - G, 255 - B); Brush brushColor2 = new SolidBrush(col2); lay1.Style.Fill = brushColor2; lay1.Style.EnableOutline = true; lay1.LayerRendered += Lay1_LayerRendered; mapBoxMainWindow.Map.Layers.Add(lay1); //mapBox1.Map.ZoomToExtents(); mapBoxMainWindow.Refresh(); item.IsOpen = true; this.OpenedTables.Add(item); LoadLayerList(); } }