1. 程式人生 > >ArcGIS Engine 系統開發設計(一):簡單的地圖讀取、展示

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的屬性,來給它新增上我們需要的工具了,同時要記得在ToolBar控制元件和axTOCCControl1控制元件的屬性設定中,將ToolBar的Buddy選項設定為axTOCCControl1,這樣就可以將二者進行聯動。

在ToolbarControl的屬性設定中,我們可以通右鍵——屬性——Item來給Toolbar控制元件設定我們需要的工具,在這裡我選擇了一些常用的工具:儲存、移動、撤銷、放大、縮小等等,過程如下圖所示:



全部設定後之後,第一章的內容就基本結束了,將程式除錯後,最終效果如下圖,一個最簡單的GIS桌面程式就出來啦~~