管道基础大数据平台系统开发-【CS】-ExportMap
13693261870
2024-04-24 614480aec772ce65205fa9d674e1ee8c623f375f
加载shp文件
已修改2个文件
41 ■■■■■ 文件已修改
TEWin/FrmTool.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
TEWin/FrmWin.cs 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
TEWin/FrmTool.cs
@@ -13,7 +13,7 @@
    {
        FrmWin win;
        List<string> codes = new List<string> { "重置鼠标", "打开方案", "保存方案", "矢量数据", "影像数据", "地形数据", "模型数据(osgb)", "模型数据(obj)", "编辑数据", "点量算", "坡向分析", "线量算", "面量算", "体量算", "角量算", "空间统计", "空间分析", "剖面分析", "坡度分析", "等值线", "剖切分析", "地理场景产品组装", "传统4D产品派生", "打开fly" };
        List<string> codes = new List<string> { "重置鼠标", "打开方案", "保存方案", "矢量数据", "影像数据", "地形数据", "模型数据(osgb)", "模型数据(obj)", "编辑数据", "点量算", "坡向分析", "线量算", "面量算", "体量算", "角量算", "空间统计", "空间分析", "剖面分析", "坡度分析", "等值线", "剖切分析", "地理场景产品组装", "传统4D产品派生", "打开fly", "加载shp" };
        public FrmTool(FrmWin win)
        {
TEWin/FrmWin.cs
@@ -38,6 +38,8 @@
        string angleGroupName = "角量算";
        string shpGroupName = "矢量数据";
        string mainUrl = Application.StartupPath;
        public FrmWin()
@@ -178,6 +180,8 @@
                    InvokeOsgbLab(); break;
                case 0xd7: // 打开fly
                    SG.Open(this.fly); break;
                case 0xd8: // 加载shp
                    LoadShp(); break;
            }
        }
@@ -492,5 +496,40 @@
            ExecCmd(new List<string> { "taskkill /f /t /im OSGBLab.exe" });
            RunExe(GetAbsolutePath("osgblabPath"), null, false);
        }
        private void LoadShp()
        {
            OpenFileDialog dialog = new OpenFileDialog();
            dialog.Filter = "Shapefile文件 (*.shp)|*.shp";
            dialog.RestoreDirectory = true;
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                LoadShp(dialog.FileName);
            }
        }
        private void LoadShp(string shpFile)
        {
            string gid = GetGroupIdByName(shpGroupName);
            string conn = "FileName=" + shpFile + ";TEPlugName=OGR;"; // 连接字符串
            string shpName = Path.GetFileNameWithoutExtension(shpFile);
            IFeatureLayer71 layer = SG.Creator.CreateFeatureLayer(shpName, conn, gid); // 加载shp
            layer.Refresh();
            SG.Navigate.FlyTo(layer.ID);
        }
        private string GetGroupIdByName(string groupName)
        {
            string gid = SG.ProjectTree.FindItem(groupName);
            if (string.IsNullOrEmpty(gid) || !SG.ProjectTree.IsGroup(gid))
            {
                gid = SG.ProjectTree.CreateGroup(groupName, SG.ProjectTree.RootID);
            }
            return gid;
        }
    }
}