网站建设公司友情链接,天津建设工程信息网投标信息系统,免费网页浏览器,营销培训课程视频ArcGIS Pro自带了1000种以上的GeoProcessing工具#xff0c;几乎可以实现所有你想要做的事。 ArcGIS Pro的二次开发并不需要我们从底层做起#xff0c;很多功能只要学会调用工具并组合使用#xff0c;就完全可以实现。
下面介绍如何调用系统自带的GeoProcessing工具#x…ArcGIS Pro自带了1000种以上的GeoProcessing工具几乎可以实现所有你想要做的事。 ArcGIS Pro的二次开发并不需要我们从底层做起很多功能只要学会调用工具并组合使用就完全可以实现。
下面介绍如何调用系统自带的GeoProcessing工具以及自己做的自定义工具箱。 一、调用GepProcessing工具
以【缓冲区】工具为例直接上代码 protected override async void OnClick(){// 获取当前地图var map MapView.Active.Map;// 获取图层var ly map.GetLayersAsFlattenedList()[0];// 生成缓冲区工具所需的参数var par Geoprocessing.MakeValueArray(ly, null, 100 Meters,null,null, ALL);// 开启异步await QueuedTask.Run(() {// 执行缓冲工具Geoprocessing.ExecuteToolAsync(analysis.Buffer, par);});}
主要用到2个方法
1、【Geoprocessing.MakeValueArray()】方法用于生成工具所需的参数。
每个Geoprocessing工具都必须有参数否则不能执行。
上面以【缓冲区】为例在ArcGIS Pro中我们可以看到工具参数如下 MakeValueArray()中的参数要按照顺序一一填写遇到参数是空值或采用默认值时以null代替即可。请无视上面的参数78。
2、【Geoprocessing.ExecuteToolAsync()】方法用于执行工具。
该方法有2个参数。
参数1为工具名这个和Arcpy工具是一致的比说如【缓冲区】工具在Arcpy中的名称为【arcpy.analysis.Buffer】在Geoprocessing里的名称则为【analysis.Buffer】。
可以看一下我之前的文章里面有介绍方便的查找方法
Python小技巧【4】——在脚本中调用系统工具或者自定义工具的小技巧https://blog.csdn.net/xcc34452366/article/details/128734176?spm1001.2014.3001.5501参数2即为上面MakeValueArray()方法生成的参数。
执行结果如下 二、调用自定义工具箱
以自定义的工具【ZH-消除重复要素】为例已放入文章末尾的工程文件里可自行下载 protected override async void OnClick(){// 获取当前地图var map MapView.Active.Map;// 获取图层var ly map.GetLayersAsFlattenedList()[0];// 生成缓冲区工具所需的参数var par Geoprocessing.MakeValueArray(ly, result_fc);// 开启异步await QueuedTask.Run(() {// 执行缓冲工具var ToolPath E:\0-资料\GIS相关\ArcGIS Pro二次开发工具\GeoprocessingTool\消除重复要素\cc工具箱.tbx\Repeat;Geoprocessing.ExecuteToolAsync(ToolPath, par);});}}
和Geoprocessing工具不同的是在ExecuteToolAsync()方法的第一个参数需要输入完整的工具路径。需要注意的是最后的【Repeat】是工具名不是在目录里看到的标注名【ZH-消除重复要素】可右键单击工具属性查看。
其它的就没有什么区别了。 三、工程文件分享
最后放上工程文件的链接
GeoprocessingToolhttps://pan.baidu.com/s/14Do5RaVGvgxwv7KtNfaqug?pwdi8fh