예제 #1
0
        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();
            }
        }
예제 #2
0
        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();
            }
        }