【ArcGIS Pro SDK for .Net】Add-in插件开发教程
一、开发环境
在进行ArcGIS Pro Add-in
插件开发之前,确保电脑安装以下依赖
- Visual Studio 2019
- ArcGIS Pro 2.5
- .Net Framework 4.8
在Visual Stuido
中安装 Extension
- ArcGIS Pro SDK for .Net
二、Add-in结构
1. 创建模板
新建ArcGI Pro Module Add-in
模板
关于不同模板的解释参考 Learn ArcGIS Pro SDK
2. 控件级别
Tab
Group
Menu
Control
控件结构关系Daml
结构需要在父控件中添加子控件,子控件必须添加id属性
3. 主题样式
ArcGIS Pro
提供黑白两种主题和大小图标样式,所以Add-In
插件也必须提供两种样式的图标
小图标: 16x16px的png格式栅格图片
大图标: 32x32px的png格式栅格图片
使用方式(默认为白色主题)
4. 创建Module
新建一个Add-in
项目后会自动创建Module
,这部分代码可以不改变
三、Add-in安装
添加一个Button
标签, 并在Group
中引用该Button
, 修改Config.daml
代码如下
新建AddDataButton.cs
类,继承自Pro SDK的button
编译项目
在项目的bin目录下会生成一个.esriAddinX
的文件,双击进行安装
重启ArcGIS Pro
, 就可以发现插件
四、简单Demo
上面我们已经添加了Add multi data
控件,接下来就要在AddDataButton.cs
类里面写逻辑代码
查看Button的定义,有三个重要点
- IsChecked, 该button是否被勾选(Pro中button类似Checkbox效果)
- OnClick, 点击button时的逻辑
- OnUpdate, Pro更新时的逻辑
1. Layer的增删改查
1. OperationalLayer
添加Layer
- 获取此项目的Scene
- 创建使用LayerFactory创建Layer并将其加到Scene容器中
删除Layer
提供删除某个或多个Layer的方法
查询Layer
每个Layer都有一个独一无二URI,以此区分不同Layer。
可以查询Layer的Name,范围大小,可见性等属性
修改Layer
Layer的属性都为只读,只提供修改Name,是否展示Popup以及数据连接方式的方法
2. Basemaps和ElevationSource
Pro中Basemaps
和ElevationSource
不能向OperationalLayer
通过容器的方式添加,
Map类中提供了两个方式添加
Map.SetBasemapLayers()
Map.SetElevationSurface()
Basemap的创建方式
- SDK内置多种Basemap样式
- 从其他Item获取来的,如PortalItem等
ElevationSource的创建方式
- FromJson
- FromXml
其他删除、修改和查询与OperationalLayer
相似
暂不支持多数据源构造Basemap
2. Demo
Layer
的增删改查Demo