Пример #1
0
        //将数据集添加到场景中
        private void AddToSceneToolStripMenuItem_Click(object sender, EventArgs e)
        {
            WorkspaceTreeNodeBase node = this.workspaceControl.WorkspaceTree.SelectedNode as WorkspaceTreeNodeBase;
            Dataset      dataset       = node.GetData() as Dataset;
            Layer3D      layer3D       = null;
            TerrainLayer terrainLayer  = null;
            String       layerName     = dataset.Name + "@" + dataset.Datasource.Alias;

            switch (node.NodeType)
            {
            case WorkspaceTreeNodeDataType.DatasetVector:
            {
                Random random = new Random(Guid.NewGuid().GetHashCode());

                DatasetVector        datasetVector = dataset as DatasetVector;
                Layer3DSettingVector settingVector = new Layer3DSettingVector();
                GeoStyle3D           style         = new GeoStyle3D();
                style.FillMode      = FillMode3D.LineAndFill;
                style.MarkerColor   = Color.FromArgb(random.Next(0, 255), random.Next(0, 255), random.Next(0, 255));    //Color.Red;
                style.LineColor     = Color.FromArgb(random.Next(0, 255), random.Next(0, 255), random.Next(0, 255));    //Color.SaddleBrown;
                style.FillForeColor = Color.FromArgb(random.Next(0, 255), random.Next(0, 255), random.Next(0, 255));    //Color.SkyBlue;
                if (datasetVector.Type == DatasetType.Line3D)
                {
                    style.AltitudeMode = AltitudeMode.Absolute;
                    style.LineWidth    = 4;
                }
                settingVector.Style = style;
                layer3D             = this.m_sceneControl.Scene.Layers.Add(datasetVector, settingVector, true, layerName);
                break;
            }

            case WorkspaceTreeNodeDataType.DatasetGrid:
            {
                DatasetGrid datasetGrid = dataset as DatasetGrid;
                terrainLayer = this.m_sceneControl.Scene.TerrainLayers.Add(datasetGrid, true);
                break;
            }

            case WorkspaceTreeNodeDataType.DatasetImage:
            {
                DatasetImage        datasetImage = dataset as DatasetImage;
                Layer3DSettingImage settingImage = new Layer3DSettingImage();
                layer3D = this.m_sceneControl.Scene.Layers.Add(datasetImage, settingImage, true, layerName);
                break;
            }
            }
            //if (layer3D != null)
            //{
            //    this.m_sceneControl.Scene.EnsureVisible(layer3D.Bounds);
            //}
            //if (terrainLayer != null)
            //{
            //    this.m_sceneControl.Scene.EnsureVisible(terrainLayer.Bounds);
            //}
            this.m_sceneControl.Scene.Refresh();
        }
Пример #2
0
        //删除数据集
        private void DelDataset_ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            WorkspaceTreeNodeBase node = this.workspaceControl.WorkspaceTree.SelectedNode as WorkspaceTreeNodeBase;
            Dataset dataset            = node.GetData() as Dataset;

            //如果该图层在场景中打开,移除图层
            Layer3Ds layers = this.m_sceneControl.Scene.Layers;
            int      nLayer = layers.Count;

            for (int i = 0; i < nLayer; i++)
            {
                Layer3D layer = layers[i];
                if (layer.Caption.Contains(dataset.Name))
                {
                    layers.Remove(layer.Name);
                    nLayer--;
                    i--;
                }
            }
            Datasource datsource = dataset.Datasource;
            bool       ret       = datsource.Datasets.Delete(dataset.Name);

            datsource.Refresh();
        }
Пример #3
0
        private void AddData()
        {
            try
            {
                WorkspaceTreeNodeBase     node = workspaceControl1.WorkspaceTree.SelectedNode as WorkspaceTreeNodeBase;
                WorkspaceTreeNodeDataType type = node.NodeType;
                if ((type & WorkspaceTreeNodeDataType.Dataset) != WorkspaceTreeNodeDataType.Unknown)
                {
                    type = WorkspaceTreeNodeDataType.Dataset;
                }
                switch (type)
                {
                case WorkspaceTreeNodeDataType.Dataset:
                {
                    Dataset dataset = node.GetData() as Dataset;
                    layersControl1.Map.Layers.Add(dataset, true);
                    layersControl1.Map.Refresh();
                    m_mapControlEagleEye.Map.Layers.Add(dataset, true);
                    m_mapControlEagleEye.Map.Refresh();
                }
                break;

                case WorkspaceTreeNodeDataType.MapName:
                {
                    mapName = node.GetData() as String;
                    mapControl1.Map.Open(mapName);
                    geoMap.MapName = mapName;
                    rect           = new Rectangle2D(new Point2D(850, 1300), new Size2D(1500, 1500));
                    geoRect        = new GeoRectangle(rect, 0);
                    geoMap.Shape   = geoRect;
                    elements.AddNew(geoMap);
                    m_mapControlEagleEye.Map.Open(mapName);
                    mapControl1.Map.Refresh();
                    m_mapControlEagleEye.Map.Refresh();
                    m_mapControlEagleEye.Map.ViewEntire();
                }
                break;

                case WorkspaceTreeNodeDataType.SymbolMarker:
                {
                    SymbolLibraryDialog.ShowDialog(workspace1.Resources, SymbolType.Marker);
                }
                break;

                case WorkspaceTreeNodeDataType.SymbolLine:
                {
                    SymbolLibraryDialog.ShowDialog(workspace1.Resources, SymbolType.Line);
                }
                break;

                case WorkspaceTreeNodeDataType.SymbolFill:
                {
                    SymbolLibraryDialog.ShowDialog(workspace1.Resources, SymbolType.Fill);
                }
                break;

                default:
                    break;
                }
            }
            catch
            { }
        }