Пример #1
0
        public void LayerStyle_Ctrl()
        {
            Layer3Ds layer3ds = this.m_sceneControl.Scene.Layers;

            if (layer3ds.Count <= 0)
            {
                return;
            }
            TreeNode             treeNode     = this.m_LayersControl.Layer3DsTree.SelectedNode;
            Layer3DsTreeNodeBase treeNodeBase = treeNode as Layer3DsTreeNodeBase;

            if (treeNodeBase == null)
            {
                MessageBox.Show("请先选择一矢量图层");
                return;
            }
            Layer3D layer3D = treeNodeBase.GetData() as Layer3D;

            if (layer3D == null)
            {
                return;
            }
            if (layer3D.Type == Layer3DType.Dataset || layer3D.Type == Layer3DType.VectorFile)
            {
                if (m_DlgSetLayerStyle == null || m_DlgSetLayerStyle.IsDisposed)
                {
                    m_DlgSetLayerStyle = new DlgSetLayerStyle();
                }

                m_DlgSetLayerStyle.Initialize(m_sceneControl, layer3D, false);
                m_DlgSetLayerStyle.StartPosition = FormStartPosition.CenterScreen;
                m_DlgSetLayerStyle.Show();
            }
        }
Пример #2
0
        private void FlyToLayerToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Layer3DsTreeNodeBase node = this.layersControl.Layer3DsTree.SelectedNode as Layer3DsTreeNodeBase;
            Layer3D layer             = node.GetData() as Layer3D;

            this.m_sceneControl.Scene.EnsureVisible(layer.Bounds);
        }
Пример #3
0
        private void EditableToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Layer3DsTreeNodeBase node = this.layersControl.Layer3DsTree.SelectedNode as Layer3DsTreeNodeBase;
            Layer3D layer             = node.GetData() as Layer3D;

            layer.IsEditable = !(layer.IsEditable);
            this.layersControl.Refresh();
        }
Пример #4
0
        //移除图层
        private void RemoveLayerToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Layer3DsTreeNodeBase node = this.layersControl.Layer3DsTree.SelectedNode as Layer3DsTreeNodeBase;
            Layer3D layer             = node.GetData() as Layer3D;

            if (layer.Type == Layer3DType.KML && layer.Name.Contains("Flatten"))
            {
                if (m_layerOSGB != null)
                {
                    m_layerOSGB.ClearFlattenRegions();
                }
            }
            this.m_sceneControl.Scene.Layers.Remove(layer.Name);
        }
Пример #5
0
        //////////////////////////////////////////////////////////////////////////////////////



        //图层选择事件
        void Layer3DsTree_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (m_sceneControl.Scene.Layers.Count <= 0)
            {
                return;
            }
            TreeNode[] treeNodes = e.SelectedNodes;
            if (treeNodes.Length <= 0)
            {
                return;
            }
            TreeNode             treeNode     = treeNodes[0];
            Layer3DsTreeNodeBase treeNodeBase = treeNode as Layer3DsTreeNodeBase;

            m_selectedLayer = treeNodeBase.GetData() as Layer3D;
            if (m_selectedLayer == null)
            {
                return;
            }
            if (m_selectedLayer.Type == Layer3DType.Dataset || m_selectedLayer.Type == Layer3DType.VectorFile)
            {
                if (m_selectedLayer.ShadowType == ShadowType.SELECTION)
                {
                    this.ShadowSelection_ToolStripMenuItem.Checked = true;
                    this.ShadowAll_ToolStripMenuItem.Checked       = false;
                    this.NoShadow_ToolStripMenuItem.Checked        = false;
                }
                else if (m_selectedLayer.ShadowType == ShadowType.ALL)
                {
                    this.ShadowAll_ToolStripMenuItem.Checked       = true;
                    this.ShadowSelection_ToolStripMenuItem.Checked = false;
                    this.NoShadow_ToolStripMenuItem.Checked        = false;
                }
                else if (m_selectedLayer.ShadowType == ShadowType.NONE)
                {
                    this.NoShadow_ToolStripMenuItem.Checked        = true;
                    this.ShadowAll_ToolStripMenuItem.Checked       = false;
                    this.ShadowSelection_ToolStripMenuItem.Checked = false;
                }
            }
        }
Пример #6
0
        //保存节点动画
        private void btn_AddToKML_Click(object sender, EventArgs e)
        {
            if (m_bIsSaveTrack)
            {
                Feature3Ds   features     = m_layerKML.Features;
                int          nCount       = this.cb_Track.Items.Count - 1;
                Feature3D    feature3D    = new Feature3D();
                GeoPlacemark geoPlacemark = new GeoPlacemark();
                m_style3D.LineColor      = Color.Green;
                m_style3D.AltitudeMode   = AltitudeMode.RelativeToGround;
                m_style3D.BottomAltitude = 0.5;
                m_geoLine3D.Style3D      = m_style3D;
                geoPlacemark.Geometry    = m_geoLine3D;
                feature3D.Geometry       = geoPlacemark;
                feature3D.Description    = "track" + nCount;
                feature3D.Name           = feature3D.Description;
                features.Add(feature3D);

                //刷新图层树
                Layer3DsTreeNodeBase node = this.m_layersControl.Layer3DsTree.FindNode(m_layerKML);
                this.m_layersControl.Layer3DsTree.RefreshNode(node);
                node.Expand();

                //将新保存的运动轨迹添加的轨迹列表中
                if (!this.cb_Track.Items.Contains(feature3D.Name))
                {
                    this.cb_Track.Items.Add(feature3D.Name);
                    this.cb_Track.SelectedItem = feature3D.Name;
                }

                ////保存kml
                //String kmlPath = m_layerKML.DataName;
                //m_layerKML.Features.ToKMLFile(kmlPath);
            }


            this.m_sceneControl.Scene.TrackingLayer.Clear();
            this.btn_AddToKML.Enabled = false;
        }