当前位置: 首页 > news >正文

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

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

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

e9c4fa1a0d5440b7a3926a17823065b8.png


 一、创建一个空的工程

更新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());}

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

通过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

 

http://www.lryc.cn/news/14328.html

相关文章:

  • Qt OpenGL(四十)——Qt OpenGL 核心模式-雷达扫描效果
  • 群智能优化算法求解标准测试函数F1~F23之种群动态分布图(视频)
  • vue-axios封装与使用
  • 重要节点排序方法
  • 【2.20】动态规划 +项目 + 存储引擎
  • 触摸屏单个按键远程控制led
  • JVM12 class文件
  • 等保三级认证基本要求
  • Python 基本数据类型(一)
  • win10 环境变量及其作用大全
  • @Valid与@Validated的区别
  • 【LeetCode】剑指 Offer 09. 用两个栈实现队列 p68 -- Java Version
  • Java并发编程面试题——JUC专题
  • CAS概述
  • Ansys Zemax / SPEOS | 光源文件转换器
  • PRML笔记2-关于回归参数w的先验的理解
  • Selenium原理
  • Disconf、Apollo和Nacos分布式配置框架差异对比
  • 高新技术企业认定条件条件 高企认定要求
  • 华为OD机试 - 新学校选址(JavaScript) | 机试题+算法思路+考点+代码解析 【2023】
  • 二进制部署K8S
  • 高效获知Activity的生命周期
  • 分析现货黄金价格一般有什么方法
  • Spring中的拦截器
  • 【Linux操作系统】【综合实验四 Linux的编译环境及线程编程】
  • Switch 如何使用NSCB 转换XCI NSP NSZ教程
  • JVM12 字节码指令集
  • centos之python安装与多版本python之间的共存
  • SpringBoot学习笔记(一)
  • 美国原装KEYSIGHT E4981A(安捷伦) E4981A电容计