目錄
一、開發環境
在進行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.1. OperationalLayer
添加Layer
- 獲取此項目的Scene
- 創建使用LayerFactory創建Layer並將其加到Scene容器中
刪除Layer
提供刪除某個或多個Layer的方法
查詢Layer
每個Layer都有一個獨一無二URI,以此區分不同Layer。
可以查詢Layer的Name,範圍大小,可見性等屬性
修改Layer
Layer的屬性都爲只讀,只提供修改Name,是否展示Popup以及數據連接方式的方法
1.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