原创 ArcObjects SDK對象的序列化和反序列化

在ArcObjects SDK,序列化接口是IPersistStream,該接口的定義如下。 其中GetClassID函數可以獲取實際類型的唯一ID,Load函數是反序列化函數,Save函數爲序列化函數。我們看下Load和Save函數是接

原创 .Net引用根目錄子文件夾下的dll文件

在.Net開發的時候,有時候會引用一套庫,這些庫是由多個dll文件。正常情況下,這些dll文件需要拷貝到運行根目錄下。如果這些dll文件比較多,加上其他直接引用的dll,這樣會導致根目錄下非常亂。我們希望可以把引用的這套庫單獨放在根目錄下一

原创 Potree 002 Desktop開發環境搭建

1、工程創建 我們使用Visual Studio 2022開發,把下載好後的PotreeDesktop源碼添加到Visual Studio中。 打開Visual Studio 2022,新建Asp.Net Core空項目,如下圖所示。 點

原创 Potree 001 Potree介紹

1、Potree是什麼 Potree是一種基於WebGL的點雲數據可視化解決方案,包含點雲數據轉化,以及進行可視化的源碼。該解決方案的主要優勢在於對點雲數據進行了多尺度的管理,在數據傳輸和可視化上都做了優化。它是一套開源的系統,基於Thre

原创 ArcObjects SDK開發 024開發的技術和技巧

1、基本技術 開發方面。會使用C#開發語言和Visual Studio開發工具。會使用WinForm或者WPF開發。 理論知識方面。瞭解GIS的相關概念,例如矢量數據,柵格數據,空間參考、比例尺等概念。 工具方面。能夠較爲熟練的使用ArcM

原创 ArcObjects SDK開發 023 開發框架搭建-MainApp

MainApp定義了啓動界面,主界面等。主界面的整體流程如下。 1、驗證許可。 //ArcGIS許可驗證 RuntimeManager.Bind(ProductCode.Desktop); var myAoLicenseCheck = n

原创 ArcObjects SDK開發 022 開發框架搭建-FrameWorkUI包設計

1、CommandUIs部分 這部分主要是定義承載Command和Tool的具體UI。如下圖所示。 以CommandUI結尾的這幾個類都是繼承了Framework.Engine裏面的ICommandUI接口,這樣我們定義的Command和

原创 ArcObjects SDK開發 021 開發框架搭建-FrameWork包設計

1、框架引擎部分 引擎模塊其實就是之前我們說的App-Command-Tool模塊,通過這個模塊,把系統的主幹框架搭建起來。 其中大部分出現在菜單以及工具條上的按鈕都會繼承這個框架定義ICommand和ITool。整個系統也是通過整合一些

原创 ArcObejcts SDK開發 020 開發框架搭建-架構設計

1、技術選型 ArcObjects SDK 10.8(ArcGIS 10.8),.Net FrameWork 4.8,VS2022,WPF(WinForm)、DEV。 用的時候,打包的ArcObjects SDK dll文件,可以使用低版本

原创 ArcObjects SDK開發 019 SpatialReference

1、SpatialReference的結構 ArcObjects SDK幫助中Esri.ArcGIS.Geometry命名空間幫助中的Object Model Diagram共兩頁,第一頁就是Geometry的結構,第二頁就是Spatial

原创 ArcObjects SDK開發 018 Geometry

1、Geometry體系結構 如果要看完整的Geometry體系結構,那麼可以去查看幫助中的類結構圖,非常完整和嚴謹。可以通過下圖方式打開。 點擊打開後,會發現裏面的結構非常複雜。但如果我們抽絲剝繭的看的話,其結構邏輯又非常嚴謹。如下圖所

原创 ArcObjects SDK開發 017 在ArcObject SDK 中使用Toolbox

1、Geoprocessor和IGPProcess Geoprocessor是ArcObjects SDK中定義Tool執行器。IGPProcess接口是ArcObjects SDK中定義的ArcTool接口。也就是說ArcObjects

原创 ArcObjects SDK開發 016 在ArcMap中使用Toolbox

1、如何找到ToolBox 通過Geoprocessing菜單上的ArcToolbox菜單項,可以打開ArcToolbox面板。 工具欄上也有一個ArcToolbox的按鈕,點擊該按鈕也可以打開。 通過Arccatalog打開。 2、

原创 ArcObject SDK開發 015 出圖

1、核心出圖代碼 出圖主要是靠IExport接口,繼承該接口的類如下圖所示。 出不同格式的圖,實例化不同的類即可。例如導出jpg格式的圖片的代碼如下。 private void Export(string pMxdFilePath, s

原创 ArcObjects SDK開發 014 MapSurround和普通Element

1、如何獲取MapSurround 和獲取MapFrame類似,如果你已經獲取指北針、比例尺等對象,可以通過IGraphicsContainer的FindFrame函數獲取。如果沒有,則通過IGraphicsContainer循環所有Ele