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

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


一、创建一个空的工程

更新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 Pro二次开发】(6):工程(Project)的基本操作相关推荐

  1. 【ArcGIS Pro二次开发】(15):用地用海名称和代码互转

    在国土空间规划中,用地用海的名称和代码是一一对应的,手动修改用地代码后,还需要相应的修改名称,纯纯的重复工作,因此做了这个工具. 之前用Arcpy做过同样的功能的工具,参看这个: ArcGisPro脚 ...

  2. 【ArcGIS Pro二次开发】系列学习笔记,持续更新,记得收藏

    一.前言 这个系列是本人的一个学习笔记. 作为一个ArcGIS Pro二次开发的初学者,最困扰的就是无从入手.网上关于ArcGIS Pro二次开发的中文资料极少,官方文档对于我这样的英文苦手又太不友好 ...

  3. 【ArcGIS Pro二次开发】(7):地图(Map)的基本操作

    地图是ArcGIS Pro中的基础起点,也是大多数工程的基础.主要用于显示表示空间数据的图层. 一.地图(Map)的基本操作示例 1.获取当前地图 var map = MapView.Active.M ...

  4. ArcGIS Pro二次开发环境配置及项目创建示例

    一.软件版本 ArcGIS Pro 2.8 Visual Studio 2019 二.组件 ArcGIS Pro 2.8 SDK for .NET: proapp-sdk-templates.vsix ...

  5. 【ArcGIS Pro二次开发】(5):UI管理_自定义控件的位置

    新增的自定义控件一般放在默认的[加载项]选项卡下,但是根据需求,我们可能需要将控件放在新的自定义选项卡下,在自定义选项卡添加系统自带的控件,将自定义的按钮等控件放在右键菜单栏里以方便使用,等等. 下面 ...

  6. 【ArcGIS Pro二次开发】(8):图层(Layer)的基本操作

    在ArcGIS中,图层(Layer)是地理数据的集合.可以在 ArcGIS Pro中将很多不同类型的数据表示为图层. 图层通常包含矢量(要素)或栅格数据. 图层的类型取决于您拥有的数据类型.其基础结构 ...

  7. 【ArcGIS Pro二次开发】(26):数据筛选器

    在使用[OpenItemDialog]打开数据时,其中一个重要的属性[Filter],可用于筛选要打开的数据.示例代码如下: // 打开文件对话框OpenItemDialog dlg = new Op ...

  8. 【ArcGIS Pro二次开发】(14):使用字典(Dictionary)创建表格(Table)

    在规划工作中,经常需要输入表格数据,如[用地用海分类表]. 之前的经验是做一个Excel表格,通过导入Excel,转换成数据库表格(Tabel). 但这样有一点不好的地方,Excel表格作为输入数据, ...

  9. 【ArcGIS Pro二次开发】(17):打开GDB、SHP、CAD等各种数据

    一.打开GDB数据库 // 输入一个数据库路径string gdbPath = @"C:\Users\Administrator\Documents\ArcGIS\Projects\Test ...

最新文章

  1. 体素法滤波(附实现代码)
  2. Python---进阶---logging---logger
  3. Keras之DNN::基于Keras(sigmoid+binary_crossentropy+predict_classes)利用DNN实现二分类——DIY二分类数据集预测新数据点
  4. Transformer变体层出不穷,它们都长什么样?
  5. Python基本数据类型(三)
  6. 【剑指offer】反转链表
  7. C#线程的使用和测试
  8. c# 正则表达式 html标签,C#匹配HTML标签,正则表达式谁会?
  9. gevent 学习笔记一
  10. linux树莓派 ssh密码,树莓派之SSH连接经验
  11. 运维测试工作笔记0002---网站访问的UV,IP,PV,VV是什么意思
  12. 北京公交“十三五”将通过大数据实现线路优化
  13. esxi6.7密码设置规则_太神奇了!excel表格竟然可以设置查看密码
  14. Ubuntu 16.04安装crossover17 并安装 TIM
  15. 周志华----第5章神经网络(误差逆传播算法)
  16. 深度学习(PyTorch)——shape、view、reshape用法及其区别
  17. 点云库pcl从入门到精通 第十章
  18. Python|range函数用法完全解读
  19. 44 - 操作MySQL数据库
  20. C语言标准化输入、输出字符

热门文章

  1. 一文详细理解计算机网络体系结构(考试和面试必备)
  2. MySQL数据库:注释及数据类型
  3. Time-Ordered Recent Event (TORE) Volumes for Event Cameras论文笔记
  4. permutation importance
  5. python中的位运算符
  6. Weinre《调试使用》
  7. 一战赚了1090亿,恐怖的头条CEO张一鸣!
  8. Android IBinder的linkToDeath介绍
  9. gdal-ogr2ogr空间数据转换
  10. react学习—ref Hook