1.環境搭建
1.1軟體
Visual studio 2017或2019
NET Framework 4.6.1+
ArcGIS Pro 2.5
1.2環境搭建
1)打開Visual studio
2)進入工具->擴展與更新

3)進入聯網選項欄,搜索ArcGIS Pro SDK,在搜索結果中找到ArcGIS Pro SDK for .NET,點擊下載,

4)下載完成后,關閉Visual Studio,會彈出安裝視窗

5)等待安裝結束后,既環境搭建完成,
2. 使用ArcGIS Pro SDK開發
2.1創建第一個Pro Addin程式
1)打開Visual Studio,新建專案選擇ArcGIS Pro模塊加載項,點擊確定

2)創建完工程后結構如下,其中Config.daml用于編輯界面

3)右鍵專案,添加->新建項,可以添加控制元件,例如我們添加ArcGIS Pro按鈕

4)點擊添加后Config.daml內容中會自動添加一個button控制元件,專案中也會添加Button1.cs檔案,

5)在Button.cs中實作點擊Button的效果,

6)啟動專案,進入ArcGIS Pro會看到我們添加的Addin和Button,點擊Buton按鈕就可以實作寫入的功能,

2.2界面配置(Config.daml)

2.2.1 Module
宣告一個新模塊,所有組成插件宣告包含在insertModule元素是隱式插入,
模塊內的控制元件可以被多個參考,而不需要別重復定義,和框架分離,
2.2.2 Tab
Tab是界面中的選項卡,一個模塊中可以有多個Tab,同時Tab通過refID可關聯多個Group,

2.2.3 group
group是控制元件的分組,一個group中通過refID關聯多個控制元件,
2.2.4 Controls
在Controls中定義控制元件,控制元件中id都是唯一的,通過Control的id及group的refID,可以實作group與Control多對多的關系,
2.3 類別庫
2.3.1 核心組件
| 集合 | 描述 |
| ArcGIS.Core.dll | 提供CIM,空間資料庫,空間圖形和設施網路等API |
| ArcGIS.CoreHost.dll | 提供獨立初始化ArcGIS.Core.dll |
| ArcGIS.Desktop.Framework.dll | 提供程式框架 |
2.3.2 擴展組件
| 集合 | 描述 |
| ArcGIS.Desktop.Catalog.dl | 專案project content items 包括,map items, layout items, style items, folder items 等 |
| ArcGIS.Desktop.Core.dll | 創建和管理Project專案,獲取相關事件,執行GP工具, |
| ArcGIS.Desktop.DataReviewer.dll | 要用過做資料檢查, |
| ArcGIS.Desktop.Editing.dll | 提供圖形編輯的類別庫, |
| ArcGIS.Desktop.Extensions.dll | 提供對Pro 中定義的類擴展的方法, |
| ArcGIS.Desktop.Geoprocessing.dll | 主要的GP工具 |
| ArcGIS.Desktop.Layouts.dll | 提供了地圖的布局和匯出圖片的各種方式 |
| ArcGIS.Desktop.Mapping.dll | 提供了創建地圖,圖層的方法,查詢,可視化二三維地圖,也可以創建柵格圖層, |
2.3.3 非公共API的擴展組件
目前僅Esri內部使用,包含3D分析、圖表、空間統計、網路分析(設定,網路圖,傳輸)、發布服務…等功能

2.4 ArcGIS Pro中的地圖
2.4.1 MapView
在ArcGIS Pro的工程中可以包含多個二維或三維地圖即多個MapView,MapView在二維或者三維視圖中提供圖層顯示,要素選擇、查詢、編輯,
1. 可以通過MapView.Active獲取當前激活狀態的MapView,通過Camera調整地圖視角,
地圖視角查看事例如下:
public void RotateView(double heading)
{
var mapView = MapView.Active;
if (mapView == null)
return;
var camera = mapView.Camera;
camera.Heading = heading;
mapView.ZoomToAsync(camera, TimeSpan.Zero);
}
2. MapView有二維或三維全球(SceneGlobal)、三維本地(SceneLocal)狀態,
獲取MapView狀態事例如下:
public bool IsView3D()
{
var mapView = MapView.Active;
if (mapView == null)
return false;
return mapView.ViewingMode == ArcGIS.Core.CIM.MapViewingMode.SceneLocal || mapView.ViewingMode == ArcGIS.Core.CIM.MapViewingMode.SceneGlobal;
}
【附錄】
歡迎大家關注我的收費課程《ArcGIS Pro 2.6和ArcGIS Enterprise學習》,共8小時,有理論有實操:https://edu.csdn.net/course/detail/31690
課程主要包含:
- ArcGIS Pro2.6學習
①GIS中的資料
②GIS中的坐標系
③企業級地理資料庫(SDE)設定
④資料編輯及拓撲檢查
⑤簡單制圖
⑥空間分析
2.ArcGIS Enterprise學習
①環境部署
②二三維服務發布(矢量切片、要素服務、地圖切片、地形服務、三維服務等)
③使用及運維(詳細介紹如何確定enterprise部署架構,簡單介紹相應的運維工具)
3.開發體系梳理
參考:
https://pro.arcgis.com/zh-cn/pro-app/sdk/
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/255186.html
標籤:其他
