【ArcGIS Pro二次开发】(6):工程(Project)的基本操作

在ArcGIS Pro中我们对工程的基本操作一般包括打开、新建、保存等。下面演示在二次开发中如何用代码进行以上操作。

新建一个项目,命名为【ProjectManager】,添加8个按钮,命名为【CreateEmptyProject、CreateProjectByDefault、OpenExProjest、SaveProject、SaveAsProjest、GetCurrentProject、GetDefaultGDBPath、AddMap】,分别对应8种基本操作的演示,如下图所示:

【ArcGIS Pro二次开发】(6):工程(Project)的基本操作_第1张图片


 一、创建一个空的工程

更新OnClick()事件,就一个方法,无参数。

代码如下:

        protected override async void OnClick()
        {
            // 创建一个空的工程
            await Project.CreateAsync();
        }

二、根据系统默认模板来创建新工程

同样是创建工程的方法,但需要输入一个【设置】参数,【设置】直接引用系统默认。

更新OnClick()事件,代码如下:

        protected override async void OnClick()
        {
            // 获取系统默认的工程设置
            var defaultProjectSettings = Project.GetDefaultProjectSettings();
            // 按模板创建新的工程
            await Project.CreateAsync(defaultProjectSettings);
        }

三、打开现有工程

通过打开对话框,获取要打开工程的路径,然后按此路径打开工程。

更新OnClick()事件,代码如下:

        protected override async void OnClick()
        {
            OpenItemDialog openDlg = new OpenItemDialog()
            {
                Title = "选择一个工程",      //打开对话框标题
                MultiSelect = false,          //是否可以多选
                Filter = ItemFilters.Projects,       //类型筛选
            };
            //打开对话框
            bool? ok = openDlg.ShowDialog();
            //如果没有选择内容,则返回
            if (!ok.HasValue || openDlg.Items.Count() == 0)
                return;
            //如果有选择内容,返回选择的内容
            var item = openDlg.Items.First();
            // 按返回的工程路径打开工程
            await Project.OpenAsync(item.Path);
        }
    }

四、保存当前工程

更新OnClick()事件,也是一个简单的方法,无参数。代码如下:

        protected override async void OnClick()
        {
            // 保存工程
            await Project.Current.SaveAsync();
        }

五、工程另存为

通过打开对话框,获取要另存工程的路径,然后按此路径保存工程。

更新OnClick()事件,代码如下:

        protected override async void OnClick()
        {
            SaveItemDialog saveDlg = new SaveItemDialog()
            {
                Title = "保存项目为",      //打开对话框标题
                Filter = ItemFilters.Projects,       //类型筛选
            };
            //打开对话框
            bool? ok = saveDlg.ShowDialog();
            //如果没有选择内容,则返回
            if (!ok.HasValue)
                return;
            // 按返回的工程路径保存
            await Project.Current.SaveAsAsync(saveDlg.FilePath);
        }
    }

六、获取当前工程

获取当前的工程,并通过消息框的方法显示。

更新OnClick()事件,代码如下:

        protected override void OnClick()
        {
            // 获取当前的工程
            var project = Project.Current;
            // 用消息框显示
            MessageBox.Show("当前项目为:\r\n" + project.Path);
        }

七、获取当前工程默认的GDB数据库

获取当前工程默认的GDB数据库,并通过消息框的方法显示。

更新OnClick()事件,代码如下:

        protected override void OnClick()
        {
            // 获取工程默认数据库
            var DefalutGDB = Project.Current.DefaultGeodatabasePath;
            // 用消息框显示
            MessageBox.Show("当前项目的默认数据库:\r\n" + DefalutGDB.ToString());

        }

八、获取当前工程默认的文件夹位置

获取当前工程默认的文件夹位置。

        protected override void OnClick()
        {
            // 获取工程默认文件夹位置
            var DefalutGDB = Project.Current.HomeFolderPath;
        }

九、在当前工程中创建新的地图

通过MapFactory.Instance.CreateMap方法创建新地图。有4个参数,第1个参数是地图名,第2,3个参数一般默认,第4个参数是要调用的底图。

更新OnClick()事件,代码如下:

        protected override async void OnClick()
        {
            await QueuedTask.Run(() =>
            {
                // 创建示例地图
                var map = MapFactory.Instance.CreateMap("示例地图",MapType.Map,MapViewingMode.Map,Basemap.Oceans);
                ProApp.Panes.CreateMapPaneAsync(map);
            });
        }

十、工程文件分享

最后,放上工程文件的链接:

ProjectManagerhttps://pan.baidu.com/s/1enqUi4YpzxoQB-GvVfB9Xw?pwd=357c

你可能感兴趣的:(ArcGIS,ArcGIS,Pro,SDK,arcgis,c#)