基於ArcGIS Pro SDK的開發定製

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

課程主要包含:

  1. ArcGIS Pro2.6學習

                    ①GIS中的數據

                    ②GIS中的座標系

                    ③企業級地理數據庫(SDE)設置

                    ④數據編輯及拓撲檢查

                    ⑤簡單製圖

                   ⑥空間分析

     2.ArcGIS Enterprise學習

                  ①環境部署

                  ②二三維服務發佈(矢量切片、要素服務、地圖切片、地形服務、三維服務等)

                  ③使用及運維(詳細介紹如何確定enterprise部署架構,簡單介紹相應的運維工具)

      3.開發體系梳理

 

參考:

https://pro.arcgis.com/zh-cn/pro-app/sdk/

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章