ArcGIS Engine 系統開發設計(一):簡單的地圖讀取、展示
終於到暑假了。。。開始認真整理整理相關學習的心得體會咯~
先把很久之前挖的關於C# 二次開發的坑給填上好了~ 這次先計劃用一個月把C# ArcEngine 10.0相關開發的學習心得給釋出出來好啦~
第一部分就是最簡單的helloworld了:掌握使用控制元件建立簡單的GIS應用程式~
(前期相關環境配置略掉~請自行百度~)
首先開啟VS2010,,通過(檔案--新建--專案--Windos窗體應用程式) ,我們新建一個名叫“MyHelloWorld”的Windows 窗體應用程式。然後就要開始往裡面填控制元件了:
在 VS 的工具箱中找到到和 ArcGIS Engine 相關的控制元件 ,在這裡我們使用AxTOCControl(目錄控制元件),AxLicenseControl (許可控制元件),以及MapControl,在這裡MapControl對應於 ArcMap 中的資料檢視,它封裝了Map 物件,並提供了額外的屬性,方法,事件等。是我們在接來下的一系列開發中必不可少的一環。
將3個控制元件排列一下後,效果如下圖所示:
注意:
1.其中AxLicenseControl 控制元件是整個Arcengine開發中必須的許可控制元件,如果沒有它或者沒有ArcEngine的Lisence許可的話,我們是無法呼叫任何GIS功能的。
2.將三個控制元件拖入窗體後,我們會發現系統自動匯入了相關引用,但無論是系統自己匯入的引用還是我們手動匯入的,請注意將引用屬性中的“複製本地”設定為False,否則可能會產生無法執行程式碼的情況。
控制元件設定好之後,我們開啟Program.cs,在系統的入口處新增這樣一行程式碼:
ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
這主要是針對Arcgis10.0的變化而設定的,新增後的程式碼如下:
namespace MyHelloWorld { static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1());
在ToolbarControl的屬性設定中,我們可以通右鍵——屬性——Item來給Toolbar控制元件設定我們需要的工具,在這裡我選擇了一些常用的工具:儲存、移動、撤銷、放大、縮小等等,過程如下圖所示:
全部設定後之後,第一章的內容就基本結束了,將程式除錯後,最終效果如下圖,一個最簡單的GIS桌面程式就出來啦~~