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(); } }
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); }
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(); }
//移除图层 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); }
////////////////////////////////////////////////////////////////////////////////////// //图层选择事件 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; } } }
//保存节点动画 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; }