diff --git a/Cyberpipe.suo b/Cyberpipe.suo index f12e10e..a56b834 100644 --- a/Cyberpipe.suo +++ b/Cyberpipe.suo Binary files differ diff --git a/Cyberpipe.suo b/Cyberpipe.suo index f12e10e..a56b834 100644 --- a/Cyberpipe.suo +++ b/Cyberpipe.suo Binary files differ diff --git a/MainFrm.cs b/MainFrm.cs index 77d2e86..ad9e1c7 100644 --- a/MainFrm.cs +++ b/MainFrm.cs @@ -1577,96 +1577,23 @@ } #endregion - //TODO LIST: wxl? Tag更正 -// private void layerTree_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) -// { -// if (e.Button != MouseButtons.Right) return; -// layerTree.SelectedNode = e.Node; -// if (e.Node.Tag == null) return; -// if (e.Button == MouseButtons.Right && e.Node.Tag.ToString().Contains("|")) -// { -// -// if (e.Node.Tag.ToString().Split('|')[0] == "locaserver") -// { -// -// foreach (ToolStripItem item in layerNodeContexMenu.Items) -// { -// item.Visible = false; -// } -// return; -// -// } -// -// if (e.Node.Tag.ToString().Split('|')[0] == "new") -// { -// LayerEditableMenuItem.Enabled = true; -// foreach (ToolStripItem item in layerNodeContexMenu.Items) -// { -// item.Visible = false; -// } -// //LayerSelectableMenuItem.Visible = true; -// //LayerEditableMenuItem.Visible = true; -// RemoveLayer.Visible = true; -// RefreshLayerFeatureListMenuItem.Visible = true; -// //SaveLayerMenuItem.Visible = true; -// //LayerFlyMenuItem.Visible = true; -// } -// -// LayerSelectableMenuItem.Visible = true; -// LayerEditableMenuItem.Visible = true; -// SaveLayerMenuItem.Visible = true; -// LayerFlyMenuItem.Visible = true; -// 导出CADToolStripMenuItem1.Visible = true; -// -// layerNodeContexMenu.Show(layerTree, e.X, e.Y); -// layerNodeContexMenu.Tag = e.Node; -// GSOLayer layer = globeControl1.Globe.Layers.GetLayerByCaption(e.Node.Tag.ToString().Split('|')[1]); -// if (layer != null) -// { -// LayerSelectableMenuItem.Checked = layer.Selectable; -// LayerEditableMenuItem.Checked = layer.Editable; -// } -// } -// else -// { -// if (e.Node.Tag is GSOLayer && e.Node.Parent != null && e.Node.Parent.Text.Trim() == "临时图层") -// { -// contextMenuStripDeleteLayerNode.Show(layerTree, e.X, e.Y); -// contextMenuStripDeleteLayerNode.Tag = e.Node; -// } -// else if (e.Node.Tag is GSOFeature && e.Node.Parent != null && e.Node.Parent.Text.Trim() == "我的地标") -// { -// contextMenuStripDeleteLayerNode.Show(layerTree, e.X, e.Y); -// contextMenuStripDeleteLayerNode.Tag = e.Node; -// } -// } -// } private void layerTree_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { if (e.Button != MouseButtons.Right) return; layerTree.SelectedNode = e.Node; - if (e.Node.Tag == null) return; - if (e.Button == MouseButtons.Right) - { - //来自locaserver的数据,直接返回就行了,目前只有一个180fd,暂时单独处理 - GSOLayer gsoLayer = e.Node.Tag as GSOLayer; - if (gsoLayer==null||gsoLayer.Caption.Equals(Utility.roadLayerName)) return; - //搜遍宇宙角角落落没有发现呐,故注释掉了 -// if (e.Node.Tag.ToString().Split('|')[0] == "new") -// { -// LayerEditableMenuItem.Enabled = true; -// foreach (ToolStripItem item in layerNodeContexMenu.Items) -// { -// item.Visible = false; -// } -// //LayerSelectableMenuItem.Visible = true; -// //LayerEditableMenuItem.Visible = true; -// RemoveLayer.Visible = true; -// RefreshLayerFeatureListMenuItem.Visible = true; -// //SaveLayerMenuItem.Visible = true; -// //LayerFlyMenuItem.Visible = true; -// } + if (e.Node.Tag == null || e.Node.Parent == null) return; //排除无图层节点和第一级节点 + //来自locaserver的数据,直接返回就行了,目前只有一个180fd,暂时单独处理 + GSOLayer gsoLayer = e.Node.Tag as GSOLayer; + if (gsoLayer == null || gsoLayer.Caption.Equals(Utility.roadLayerName)) return; + if (e.Node.Parent.Text.Equals("临时图层") || e.Node.Parent.Text.Equals("我的地标")) + { + //临时图层下的子节点应该展示的 + contextMenuStripDeleteLayerNode.Show(layerTree, e.X, e.Y); + contextMenuStripDeleteLayerNode.Tag = e.Node; + } + else + { LayerSelectableMenuItem.Visible = true; LayerEditableMenuItem.Visible = true; SaveLayerMenuItem.Visible = true; @@ -1677,16 +1604,7 @@ LayerSelectableMenuItem.Checked = gsoLayer.Selectable; LayerEditableMenuItem.Checked = gsoLayer.Editable; } - else - { - if (e.Node.Parent != null && ( - (e.Node.Tag is GSOLayer && e.Node.Parent.Text.Trim() == "临时图层") || - (e.Node.Tag is GSOFeature && e.Node.Parent.Text.Trim() == "我的地标"))) - { - contextMenuStripDeleteLayerNode.Show(layerTree, e.X, e.Y); - contextMenuStripDeleteLayerNode.Tag = e.Node; - } - } + } /// @@ -1702,15 +1620,7 @@ { if (!(node.Tag is GSOLayer)) return; GSOLayer layer = node.Tag as GSOLayer; - -// for (int i = globeControl1.Globe.Layers.Count - 1; i >= 0; i--) -// { -// if (globeControl1.Globe.Layers[i].Caption == layer.Caption) -// { -// globeControl1.Globe.Layers.Remove(globeControl1.Globe.Layers[i]); -// } -// } - globeControl1.Globe.Layers.Remove(layer);//wxl? 上面为何不直接移除呢? + globeControl1.Globe.Layers.Remove(layer); globeControl1.Globe.Refresh(); node.Remove(); }else if (node.Parent.Text.Trim() == "我的地标") @@ -1737,22 +1647,26 @@ private void 保存ToolStripMenuItem_Click(object sender, EventArgs e) { - //TreeNode node = layerNodeContexMenu.Tag as TreeNode; - TreeNode node = contextMenuStripDeleteLayerNode.Tag as TreeNode; - - string layerCaption = node.Text;//.Split('|')[1]; - GSOLayer layer = globeControl1.Globe.Layers.GetLayerByCaption(layerCaption); +// TreeNode node = contextMenuStripDeleteLayerNode.Tag as TreeNode; + TreeNode node = layerTree.SelectedNode; + if (node == null||node.Tag==null) return; + GSOLayer layer = node.Tag as GSOLayer; + if (layer == null) return; layer.Dataset.Save(); } //TODO LIST: wxl? Tag更正 private void 定位ToolStripMenuItem_Click(object sender, EventArgs e) { TreeNode node = layerTree.SelectedNode; - - if (node == null) return; + if (node == null||node.Parent==null) return; if (node.Parent.Text.Trim() == "临时图层") { - GSOLayer lsLayer = globeControl1.Globe.Layers.GetLayerByCaption(node.Text); + GSOLayer lsLayer = node.Tag as GSOLayer; + if (lsLayer == null) + { + LogHelper.WriteLog(typeof(MainFrm),"要定位的临时图层不存在:"+node.Text); + return; + } double x = lsLayer.LatLonBounds.Center.X; double y = lsLayer.LatLonBounds.Center.Y; if (x.Equals(0) && y.Equals(0)) @@ -1765,20 +1679,14 @@ } else { -// GSOLayer layer = globeControl1.Globe.Layers.GetLayerByCaption(node.Tag.ToString().Split('|')[1]); GSOLayer layer = node.Tag as GSOLayer; if (layer == null) return; - if (layer.Caption == "红线") + if (layer.Caption.Equals("红线")) { globeControl1.Globe.FlyToPosition(new GSOPoint3d(120.610963, 31.188121, 50), EnumAltitudeMode.Absolute, -4, 50, 1000); globeControl1.Globe.FlyToPointSpeed = 10000000; globeControl1.Globe.Action = EnumAction3D.SelectObject; - - GSOLayer redLayer = globeControl1.Globe.Layers.GetLayerByCaption("红线"); - if (redLayer != null) - { - redLayer.Visible = true; - } + layer.Visible = true; globeControl1.Refresh(); } else @@ -1794,34 +1702,6 @@ { TreeNode node = layerTree.SelectedNode; if (node == null) return; -// GSOLayer layer = node.Tag as GSOLayer; -// if (layerTree.SelectedNode.Tag.ToString().Contains("|")) -// { -// string nodeTag = layerTree.SelectedNode.Tag.ToString().Split('|')[1]; -// GSOLayer layer = globeControl1.Globe.Layers.GetLayerByCaption(nodeTag); -// if (layer != null) -// { -// if (layer.Caption == "红线") -// { -// globeControl1.Globe.FlyToPosition(new GSOPoint3d(120.610963, 31.188121, 50), EnumAltitudeMode.Absolute, -4, 50, 1000); -// globeControl1.Globe.FlyToPointSpeed = 10000000; -// globeControl1.Globe.Action = EnumAction3D.SelectObject; -// -// GSOLayer redLayer = globeControl1.Globe.Layers.GetLayerByCaption("红线"); -// if (redLayer != null) -// { -// redLayer.Visible = true; -// } -// globeControl1.Refresh(); -// } -// else -// { -// double x = layer.LatLonBounds.Center.X; -// double y = layer.LatLonBounds.Center.Y; -// globeControl1.Globe.FlyToPosition(new GSOPoint3d(x, y, 0), EnumAltitudeMode.Absolute); -// } -// } -// } if (node.Tag is GSOLayer) { GSOLayer layer = node.Tag as GSOLayer; diff --git a/Cyberpipe.suo b/Cyberpipe.suo index f12e10e..a56b834 100644 --- a/Cyberpipe.suo +++ b/Cyberpipe.suo Binary files differ diff --git a/MainFrm.cs b/MainFrm.cs index 77d2e86..ad9e1c7 100644 --- a/MainFrm.cs +++ b/MainFrm.cs @@ -1577,96 +1577,23 @@ } #endregion - //TODO LIST: wxl? Tag更正 -// private void layerTree_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) -// { -// if (e.Button != MouseButtons.Right) return; -// layerTree.SelectedNode = e.Node; -// if (e.Node.Tag == null) return; -// if (e.Button == MouseButtons.Right && e.Node.Tag.ToString().Contains("|")) -// { -// -// if (e.Node.Tag.ToString().Split('|')[0] == "locaserver") -// { -// -// foreach (ToolStripItem item in layerNodeContexMenu.Items) -// { -// item.Visible = false; -// } -// return; -// -// } -// -// if (e.Node.Tag.ToString().Split('|')[0] == "new") -// { -// LayerEditableMenuItem.Enabled = true; -// foreach (ToolStripItem item in layerNodeContexMenu.Items) -// { -// item.Visible = false; -// } -// //LayerSelectableMenuItem.Visible = true; -// //LayerEditableMenuItem.Visible = true; -// RemoveLayer.Visible = true; -// RefreshLayerFeatureListMenuItem.Visible = true; -// //SaveLayerMenuItem.Visible = true; -// //LayerFlyMenuItem.Visible = true; -// } -// -// LayerSelectableMenuItem.Visible = true; -// LayerEditableMenuItem.Visible = true; -// SaveLayerMenuItem.Visible = true; -// LayerFlyMenuItem.Visible = true; -// 导出CADToolStripMenuItem1.Visible = true; -// -// layerNodeContexMenu.Show(layerTree, e.X, e.Y); -// layerNodeContexMenu.Tag = e.Node; -// GSOLayer layer = globeControl1.Globe.Layers.GetLayerByCaption(e.Node.Tag.ToString().Split('|')[1]); -// if (layer != null) -// { -// LayerSelectableMenuItem.Checked = layer.Selectable; -// LayerEditableMenuItem.Checked = layer.Editable; -// } -// } -// else -// { -// if (e.Node.Tag is GSOLayer && e.Node.Parent != null && e.Node.Parent.Text.Trim() == "临时图层") -// { -// contextMenuStripDeleteLayerNode.Show(layerTree, e.X, e.Y); -// contextMenuStripDeleteLayerNode.Tag = e.Node; -// } -// else if (e.Node.Tag is GSOFeature && e.Node.Parent != null && e.Node.Parent.Text.Trim() == "我的地标") -// { -// contextMenuStripDeleteLayerNode.Show(layerTree, e.X, e.Y); -// contextMenuStripDeleteLayerNode.Tag = e.Node; -// } -// } -// } private void layerTree_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { if (e.Button != MouseButtons.Right) return; layerTree.SelectedNode = e.Node; - if (e.Node.Tag == null) return; - if (e.Button == MouseButtons.Right) - { - //来自locaserver的数据,直接返回就行了,目前只有一个180fd,暂时单独处理 - GSOLayer gsoLayer = e.Node.Tag as GSOLayer; - if (gsoLayer==null||gsoLayer.Caption.Equals(Utility.roadLayerName)) return; - //搜遍宇宙角角落落没有发现呐,故注释掉了 -// if (e.Node.Tag.ToString().Split('|')[0] == "new") -// { -// LayerEditableMenuItem.Enabled = true; -// foreach (ToolStripItem item in layerNodeContexMenu.Items) -// { -// item.Visible = false; -// } -// //LayerSelectableMenuItem.Visible = true; -// //LayerEditableMenuItem.Visible = true; -// RemoveLayer.Visible = true; -// RefreshLayerFeatureListMenuItem.Visible = true; -// //SaveLayerMenuItem.Visible = true; -// //LayerFlyMenuItem.Visible = true; -// } + if (e.Node.Tag == null || e.Node.Parent == null) return; //排除无图层节点和第一级节点 + //来自locaserver的数据,直接返回就行了,目前只有一个180fd,暂时单独处理 + GSOLayer gsoLayer = e.Node.Tag as GSOLayer; + if (gsoLayer == null || gsoLayer.Caption.Equals(Utility.roadLayerName)) return; + if (e.Node.Parent.Text.Equals("临时图层") || e.Node.Parent.Text.Equals("我的地标")) + { + //临时图层下的子节点应该展示的 + contextMenuStripDeleteLayerNode.Show(layerTree, e.X, e.Y); + contextMenuStripDeleteLayerNode.Tag = e.Node; + } + else + { LayerSelectableMenuItem.Visible = true; LayerEditableMenuItem.Visible = true; SaveLayerMenuItem.Visible = true; @@ -1677,16 +1604,7 @@ LayerSelectableMenuItem.Checked = gsoLayer.Selectable; LayerEditableMenuItem.Checked = gsoLayer.Editable; } - else - { - if (e.Node.Parent != null && ( - (e.Node.Tag is GSOLayer && e.Node.Parent.Text.Trim() == "临时图层") || - (e.Node.Tag is GSOFeature && e.Node.Parent.Text.Trim() == "我的地标"))) - { - contextMenuStripDeleteLayerNode.Show(layerTree, e.X, e.Y); - contextMenuStripDeleteLayerNode.Tag = e.Node; - } - } + } /// @@ -1702,15 +1620,7 @@ { if (!(node.Tag is GSOLayer)) return; GSOLayer layer = node.Tag as GSOLayer; - -// for (int i = globeControl1.Globe.Layers.Count - 1; i >= 0; i--) -// { -// if (globeControl1.Globe.Layers[i].Caption == layer.Caption) -// { -// globeControl1.Globe.Layers.Remove(globeControl1.Globe.Layers[i]); -// } -// } - globeControl1.Globe.Layers.Remove(layer);//wxl? 上面为何不直接移除呢? + globeControl1.Globe.Layers.Remove(layer); globeControl1.Globe.Refresh(); node.Remove(); }else if (node.Parent.Text.Trim() == "我的地标") @@ -1737,22 +1647,26 @@ private void 保存ToolStripMenuItem_Click(object sender, EventArgs e) { - //TreeNode node = layerNodeContexMenu.Tag as TreeNode; - TreeNode node = contextMenuStripDeleteLayerNode.Tag as TreeNode; - - string layerCaption = node.Text;//.Split('|')[1]; - GSOLayer layer = globeControl1.Globe.Layers.GetLayerByCaption(layerCaption); +// TreeNode node = contextMenuStripDeleteLayerNode.Tag as TreeNode; + TreeNode node = layerTree.SelectedNode; + if (node == null||node.Tag==null) return; + GSOLayer layer = node.Tag as GSOLayer; + if (layer == null) return; layer.Dataset.Save(); } //TODO LIST: wxl? Tag更正 private void 定位ToolStripMenuItem_Click(object sender, EventArgs e) { TreeNode node = layerTree.SelectedNode; - - if (node == null) return; + if (node == null||node.Parent==null) return; if (node.Parent.Text.Trim() == "临时图层") { - GSOLayer lsLayer = globeControl1.Globe.Layers.GetLayerByCaption(node.Text); + GSOLayer lsLayer = node.Tag as GSOLayer; + if (lsLayer == null) + { + LogHelper.WriteLog(typeof(MainFrm),"要定位的临时图层不存在:"+node.Text); + return; + } double x = lsLayer.LatLonBounds.Center.X; double y = lsLayer.LatLonBounds.Center.Y; if (x.Equals(0) && y.Equals(0)) @@ -1765,20 +1679,14 @@ } else { -// GSOLayer layer = globeControl1.Globe.Layers.GetLayerByCaption(node.Tag.ToString().Split('|')[1]); GSOLayer layer = node.Tag as GSOLayer; if (layer == null) return; - if (layer.Caption == "红线") + if (layer.Caption.Equals("红线")) { globeControl1.Globe.FlyToPosition(new GSOPoint3d(120.610963, 31.188121, 50), EnumAltitudeMode.Absolute, -4, 50, 1000); globeControl1.Globe.FlyToPointSpeed = 10000000; globeControl1.Globe.Action = EnumAction3D.SelectObject; - - GSOLayer redLayer = globeControl1.Globe.Layers.GetLayerByCaption("红线"); - if (redLayer != null) - { - redLayer.Visible = true; - } + layer.Visible = true; globeControl1.Refresh(); } else @@ -1794,34 +1702,6 @@ { TreeNode node = layerTree.SelectedNode; if (node == null) return; -// GSOLayer layer = node.Tag as GSOLayer; -// if (layerTree.SelectedNode.Tag.ToString().Contains("|")) -// { -// string nodeTag = layerTree.SelectedNode.Tag.ToString().Split('|')[1]; -// GSOLayer layer = globeControl1.Globe.Layers.GetLayerByCaption(nodeTag); -// if (layer != null) -// { -// if (layer.Caption == "红线") -// { -// globeControl1.Globe.FlyToPosition(new GSOPoint3d(120.610963, 31.188121, 50), EnumAltitudeMode.Absolute, -4, 50, 1000); -// globeControl1.Globe.FlyToPointSpeed = 10000000; -// globeControl1.Globe.Action = EnumAction3D.SelectObject; -// -// GSOLayer redLayer = globeControl1.Globe.Layers.GetLayerByCaption("红线"); -// if (redLayer != null) -// { -// redLayer.Visible = true; -// } -// globeControl1.Refresh(); -// } -// else -// { -// double x = layer.LatLonBounds.Center.X; -// double y = layer.LatLonBounds.Center.Y; -// globeControl1.Globe.FlyToPosition(new GSOPoint3d(x, y, 0), EnumAltitudeMode.Absolute); -// } -// } -// } if (node.Tag is GSOLayer) { GSOLayer layer = node.Tag as GSOLayer; diff --git a/bin/x86/Debug/Cyberpipe.exe b/bin/x86/Debug/Cyberpipe.exe index 53a3047..d81e34f 100644 --- a/bin/x86/Debug/Cyberpipe.exe +++ b/bin/x86/Debug/Cyberpipe.exe Binary files differ diff --git a/Cyberpipe.suo b/Cyberpipe.suo index f12e10e..a56b834 100644 --- a/Cyberpipe.suo +++ b/Cyberpipe.suo Binary files differ diff --git a/MainFrm.cs b/MainFrm.cs index 77d2e86..ad9e1c7 100644 --- a/MainFrm.cs +++ b/MainFrm.cs @@ -1577,96 +1577,23 @@ } #endregion - //TODO LIST: wxl? Tag更正 -// private void layerTree_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) -// { -// if (e.Button != MouseButtons.Right) return; -// layerTree.SelectedNode = e.Node; -// if (e.Node.Tag == null) return; -// if (e.Button == MouseButtons.Right && e.Node.Tag.ToString().Contains("|")) -// { -// -// if (e.Node.Tag.ToString().Split('|')[0] == "locaserver") -// { -// -// foreach (ToolStripItem item in layerNodeContexMenu.Items) -// { -// item.Visible = false; -// } -// return; -// -// } -// -// if (e.Node.Tag.ToString().Split('|')[0] == "new") -// { -// LayerEditableMenuItem.Enabled = true; -// foreach (ToolStripItem item in layerNodeContexMenu.Items) -// { -// item.Visible = false; -// } -// //LayerSelectableMenuItem.Visible = true; -// //LayerEditableMenuItem.Visible = true; -// RemoveLayer.Visible = true; -// RefreshLayerFeatureListMenuItem.Visible = true; -// //SaveLayerMenuItem.Visible = true; -// //LayerFlyMenuItem.Visible = true; -// } -// -// LayerSelectableMenuItem.Visible = true; -// LayerEditableMenuItem.Visible = true; -// SaveLayerMenuItem.Visible = true; -// LayerFlyMenuItem.Visible = true; -// 导出CADToolStripMenuItem1.Visible = true; -// -// layerNodeContexMenu.Show(layerTree, e.X, e.Y); -// layerNodeContexMenu.Tag = e.Node; -// GSOLayer layer = globeControl1.Globe.Layers.GetLayerByCaption(e.Node.Tag.ToString().Split('|')[1]); -// if (layer != null) -// { -// LayerSelectableMenuItem.Checked = layer.Selectable; -// LayerEditableMenuItem.Checked = layer.Editable; -// } -// } -// else -// { -// if (e.Node.Tag is GSOLayer && e.Node.Parent != null && e.Node.Parent.Text.Trim() == "临时图层") -// { -// contextMenuStripDeleteLayerNode.Show(layerTree, e.X, e.Y); -// contextMenuStripDeleteLayerNode.Tag = e.Node; -// } -// else if (e.Node.Tag is GSOFeature && e.Node.Parent != null && e.Node.Parent.Text.Trim() == "我的地标") -// { -// contextMenuStripDeleteLayerNode.Show(layerTree, e.X, e.Y); -// contextMenuStripDeleteLayerNode.Tag = e.Node; -// } -// } -// } private void layerTree_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { if (e.Button != MouseButtons.Right) return; layerTree.SelectedNode = e.Node; - if (e.Node.Tag == null) return; - if (e.Button == MouseButtons.Right) - { - //来自locaserver的数据,直接返回就行了,目前只有一个180fd,暂时单独处理 - GSOLayer gsoLayer = e.Node.Tag as GSOLayer; - if (gsoLayer==null||gsoLayer.Caption.Equals(Utility.roadLayerName)) return; - //搜遍宇宙角角落落没有发现呐,故注释掉了 -// if (e.Node.Tag.ToString().Split('|')[0] == "new") -// { -// LayerEditableMenuItem.Enabled = true; -// foreach (ToolStripItem item in layerNodeContexMenu.Items) -// { -// item.Visible = false; -// } -// //LayerSelectableMenuItem.Visible = true; -// //LayerEditableMenuItem.Visible = true; -// RemoveLayer.Visible = true; -// RefreshLayerFeatureListMenuItem.Visible = true; -// //SaveLayerMenuItem.Visible = true; -// //LayerFlyMenuItem.Visible = true; -// } + if (e.Node.Tag == null || e.Node.Parent == null) return; //排除无图层节点和第一级节点 + //来自locaserver的数据,直接返回就行了,目前只有一个180fd,暂时单独处理 + GSOLayer gsoLayer = e.Node.Tag as GSOLayer; + if (gsoLayer == null || gsoLayer.Caption.Equals(Utility.roadLayerName)) return; + if (e.Node.Parent.Text.Equals("临时图层") || e.Node.Parent.Text.Equals("我的地标")) + { + //临时图层下的子节点应该展示的 + contextMenuStripDeleteLayerNode.Show(layerTree, e.X, e.Y); + contextMenuStripDeleteLayerNode.Tag = e.Node; + } + else + { LayerSelectableMenuItem.Visible = true; LayerEditableMenuItem.Visible = true; SaveLayerMenuItem.Visible = true; @@ -1677,16 +1604,7 @@ LayerSelectableMenuItem.Checked = gsoLayer.Selectable; LayerEditableMenuItem.Checked = gsoLayer.Editable; } - else - { - if (e.Node.Parent != null && ( - (e.Node.Tag is GSOLayer && e.Node.Parent.Text.Trim() == "临时图层") || - (e.Node.Tag is GSOFeature && e.Node.Parent.Text.Trim() == "我的地标"))) - { - contextMenuStripDeleteLayerNode.Show(layerTree, e.X, e.Y); - contextMenuStripDeleteLayerNode.Tag = e.Node; - } - } + } /// @@ -1702,15 +1620,7 @@ { if (!(node.Tag is GSOLayer)) return; GSOLayer layer = node.Tag as GSOLayer; - -// for (int i = globeControl1.Globe.Layers.Count - 1; i >= 0; i--) -// { -// if (globeControl1.Globe.Layers[i].Caption == layer.Caption) -// { -// globeControl1.Globe.Layers.Remove(globeControl1.Globe.Layers[i]); -// } -// } - globeControl1.Globe.Layers.Remove(layer);//wxl? 上面为何不直接移除呢? + globeControl1.Globe.Layers.Remove(layer); globeControl1.Globe.Refresh(); node.Remove(); }else if (node.Parent.Text.Trim() == "我的地标") @@ -1737,22 +1647,26 @@ private void 保存ToolStripMenuItem_Click(object sender, EventArgs e) { - //TreeNode node = layerNodeContexMenu.Tag as TreeNode; - TreeNode node = contextMenuStripDeleteLayerNode.Tag as TreeNode; - - string layerCaption = node.Text;//.Split('|')[1]; - GSOLayer layer = globeControl1.Globe.Layers.GetLayerByCaption(layerCaption); +// TreeNode node = contextMenuStripDeleteLayerNode.Tag as TreeNode; + TreeNode node = layerTree.SelectedNode; + if (node == null||node.Tag==null) return; + GSOLayer layer = node.Tag as GSOLayer; + if (layer == null) return; layer.Dataset.Save(); } //TODO LIST: wxl? Tag更正 private void 定位ToolStripMenuItem_Click(object sender, EventArgs e) { TreeNode node = layerTree.SelectedNode; - - if (node == null) return; + if (node == null||node.Parent==null) return; if (node.Parent.Text.Trim() == "临时图层") { - GSOLayer lsLayer = globeControl1.Globe.Layers.GetLayerByCaption(node.Text); + GSOLayer lsLayer = node.Tag as GSOLayer; + if (lsLayer == null) + { + LogHelper.WriteLog(typeof(MainFrm),"要定位的临时图层不存在:"+node.Text); + return; + } double x = lsLayer.LatLonBounds.Center.X; double y = lsLayer.LatLonBounds.Center.Y; if (x.Equals(0) && y.Equals(0)) @@ -1765,20 +1679,14 @@ } else { -// GSOLayer layer = globeControl1.Globe.Layers.GetLayerByCaption(node.Tag.ToString().Split('|')[1]); GSOLayer layer = node.Tag as GSOLayer; if (layer == null) return; - if (layer.Caption == "红线") + if (layer.Caption.Equals("红线")) { globeControl1.Globe.FlyToPosition(new GSOPoint3d(120.610963, 31.188121, 50), EnumAltitudeMode.Absolute, -4, 50, 1000); globeControl1.Globe.FlyToPointSpeed = 10000000; globeControl1.Globe.Action = EnumAction3D.SelectObject; - - GSOLayer redLayer = globeControl1.Globe.Layers.GetLayerByCaption("红线"); - if (redLayer != null) - { - redLayer.Visible = true; - } + layer.Visible = true; globeControl1.Refresh(); } else @@ -1794,34 +1702,6 @@ { TreeNode node = layerTree.SelectedNode; if (node == null) return; -// GSOLayer layer = node.Tag as GSOLayer; -// if (layerTree.SelectedNode.Tag.ToString().Contains("|")) -// { -// string nodeTag = layerTree.SelectedNode.Tag.ToString().Split('|')[1]; -// GSOLayer layer = globeControl1.Globe.Layers.GetLayerByCaption(nodeTag); -// if (layer != null) -// { -// if (layer.Caption == "红线") -// { -// globeControl1.Globe.FlyToPosition(new GSOPoint3d(120.610963, 31.188121, 50), EnumAltitudeMode.Absolute, -4, 50, 1000); -// globeControl1.Globe.FlyToPointSpeed = 10000000; -// globeControl1.Globe.Action = EnumAction3D.SelectObject; -// -// GSOLayer redLayer = globeControl1.Globe.Layers.GetLayerByCaption("红线"); -// if (redLayer != null) -// { -// redLayer.Visible = true; -// } -// globeControl1.Refresh(); -// } -// else -// { -// double x = layer.LatLonBounds.Center.X; -// double y = layer.LatLonBounds.Center.Y; -// globeControl1.Globe.FlyToPosition(new GSOPoint3d(x, y, 0), EnumAltitudeMode.Absolute); -// } -// } -// } if (node.Tag is GSOLayer) { GSOLayer layer = node.Tag as GSOLayer; diff --git a/bin/x86/Debug/Cyberpipe.exe b/bin/x86/Debug/Cyberpipe.exe index 53a3047..d81e34f 100644 --- a/bin/x86/Debug/Cyberpipe.exe +++ b/bin/x86/Debug/Cyberpipe.exe Binary files differ diff --git a/bin/x86/Debug/Cyberpipe.pdb b/bin/x86/Debug/Cyberpipe.pdb index ffbe36f..1e4e6f8 100644 --- a/bin/x86/Debug/Cyberpipe.pdb +++ b/bin/x86/Debug/Cyberpipe.pdb Binary files differ